Linux底子概念

打印 上一主题 下一主题

主题 749|帖子 749|积分 2247

Linux
Linux 和 UNIX 中的文件系统是一个以 / 为根的树状式文件布局,/ 是 Linux 和 UNIX 中的根目次,同样它也是文件系统的起点。全部的文件和目次都位于 / 路径下,包括经常听到的 /usr、/etc、/bin、/home 等。在早期的 UNIX 系统中,各个厂家都定义了自己文件系统的定名构成,比较杂乱,而且难以区分。
为了制止在 Linux 系统上也出现这种定名杂乱的问题,在 1994 年推出了 FSSTND(FileSystem Standard) 的 Linux 文件系统条理布局标准,厥后 UNIX 团队把 FSSTND 发扬光大,成为了厥后的 FHS(FileSystem Hierarchy Standard) 。
FHS 标准使得浩繁的 Linux distributions(Linux 发行版) 有了同一的文件系统定名标准,换一种说法:FHS 就是一种文件系统的定名标准。一般来说,Linux distributions 都需要遵循 FHS 规定的


  • 目次布局和目次内容
  • 文件范例的权限
但是,FHS 仅仅定义了两层规范,第一层是 / 下面的各个目次要放什么文件数据,比如 /etc 下面需要放设置文件,/bin/sbin 下面需要放可实验文件等;第二层是针对 /usr/var 这两个目次来定义的,比如 /usr/share 需要放共享数据,/var/log需要放系统登录文件等。
下面就来为看一下 Linux 在 / 下都有哪些定义和规范。
FHS 规范

下面先容的这些规范,只是 FHS 文档指定的目次和文件的一部门,完备的标准可在 Filesystem Hierarchy Standard 在线获得。
首先先来先容一下根目次的重要性和意义:
根目次是整个系统中最重要的一个目次,后续的目次都是以根目次为底子举行衍生,更重要的一点,根目次与开机、还原、系统修复有关,由于系统开机需要特定的情况,所以系统出现错误时,根目次也必须要包含有能够修复文件系统的步伐才行。所以 FHS 规定不要将根目次的分区大小设置的过大,实际上是越小越好,以减少出错率。
FHS 同样规定了根目次下面应该要有这些目次的存在。
/home 目次

/home 目次是系统默认的利用者主文件夹(home directory)。
/boot 目次

/boot 目次包含启动操作系统所需的静态文件,比如 Linux 内核,这些文件对系统的启动至关重要。Linux Kernel 常用的文件名为 vmlinuz, 但是如果利用的是 grub2 这个开机步伐,还会存在 /boot/grub2 这个目次。
boot 下面是这样的。


万万不要删除 /boot 目次,这样做可能会导致系统无法启动。
/dev 目次

/dev 目次都是一些设备节点,这些设备节点是 Linux 系统中的设备大概是内核提供的假造设备。这些设备节点同样也对系统正常运行至关重要。/dev 目次和子目次下的设备是字符设备和块设备。字符设备就是鼠标、键盘、调制解调器,块设备就是硬盘、软盘驱动器。存储 /dev 目次下的文件就相当于是存储某个设备。
比较重要的文件有
/dev/hda:主 IDE 通道上的主设备,当提到 IDE/ATA 硬盘时,主通道是第一和第二驱动器毗连到主板或接口卡的通道。
/dev/hdb:主 IDE 通道上的从设备。
/dev/tty0:第一个假造控制台。假造控制台又被称为 VC,也称为假造终端 VT,是用于盘算机用户界面的键盘和显示器的概念组合。
/dev/tty1:第二个假造控制台。
/dev/sda:主 SCSI 和 SATA 通道上的第一个设备。
/dev/lp0:第一个并行端口。
下面是 dev 下面的目次。


/etc 目次

/etc 目次是为盘算机本地的配置文件保留的,系统主要的配置文件都放在这个目次下,比如账号暗码,服务的启停,一般来说,这个目次下面一般用户只有读权限,只有 root 用户具有修改权限
/etc 下比较重要的几个文件有
/etc/modprobe.d 内核驱动模块
/etc/passwd 存储用户暗码
/etc/fstab 存储挂载信息
/etc/issue 存储系统启动显示的内容
/etc 目次下不要存放二进制文件,二进制文件最好放在 /sbin/bin 中。
/etc 目次下有两个重要的文件,/etc/x11 用于存放 X Window 系统配置文件,比方 xorg.conf,/etc/opt 这个主要存放第三方协力软件 /opt 的干系配置文件。
/lib 目次

系统的函数库有很多,而 /lib 目次就像一个堆栈,它用于存放实验 /bin/sbin 中二进制文件所需要的库,这些共享库映像对于系统 boot 和实验根文件系统中的下令特殊重要。
/media 目次

media 媒体的英文,也就是说 /media下可以存放用于可移动媒体(比方 USB、DVD、CD-ROM 和 Zip 磁盘)的安装点和子目次。
/mnt 目次

如果想要临时挂载某些额外的设备,可以放在 /mnt 这个目次下,实在最早的时候,/mnt 用途和 /media 一样,只是厥后有了 /media 之后,这个目次就被用来临时挂载了。
/opt 目次

/opt/ 目次为大多数应用步伐软件包提供存储空间,将文件放置在 /opt/ 目次中的包会创建一个与包同名的目次。反过来,该目次保存了原本会分散在整个文件系统中的文件,从而为系统管理员提供了一种简朴的方法来确定特定包中每个文件的角色。
比方,如果 sample 是位于 /opt/ 目次中的特定软件包的名称,那么全部文件都放置在 /opt/sample/ 目次中的目次中,比方 /opt/sample/bin/ 表示二进制文件 和 /opt/sample/man/ 用于手册页。
/proc 目次

/proc 目次本身是一个假造文件系统(virtual filesystem),他放置的数据是在内存中,比如系统焦点信息,行程信息,周边设备网络状态等。因为这个目次下的数据都是在内存中的,所以本身不占用磁盘空间。
这个目次下比较重要的文件有 /proc/cpuinfo/proc/dma/proc/interrupts/proc/net/


/sbin 目次

/sbin 目次存储 root 用户利用的可实验文件。/sbin 中的可实验文件在启动时利用,用于系统管理和实验系统恢复操作。除了 /bin 中的二进制之外,/sbin 还包含启动、恢复和修复系统所需要的二进制文件。
/sbin 目次下包含 arp、clock、halt、init、grub、ifconfig、route、shutdown 等。
/tmp 目次

这个目次下面存放的都是一些临时文件,这些文件在系统重新启动时被扫除。
/sys 目次

这个目次实在和 /proc 非常类似,也是一个假造文件系统,主要是记录焦点与系统硬件干系信息。这个目次同样也不占用磁盘空间。
/usr 目次

/usr 目次是需要好好聊聊的一个目次了,很多读者都误以为 /usr 是 user 的缩写,实在 usr 是 Unix Software Resource 的缩写,FHS 发起软件开辟者应该将数据合理的放置在这个目次的次目次下,不要自己创建软件独立的目次。
全部系统默认的软件都会放在 /usr 下面,因此这个目次有点类似 Windows 中的 C:\Windows\ + C:\Program files\ 这两个目次的综合,一般来说,系统刚安装完毕后,这个目次会占用较多的磁盘容量,/usr 的次目次发起有下面这些内容
*/usr/bin/*一般用户能够利用的指令都放在这个目次下,CentOS 7 开始,/usr/bin 下指令和 /bin 目次下指令一毛一样。
*/usr/lib/*根本上,与 /lib 功能相同,所以 /lib 就是链接到这个目次中的。
/usr/local 系统管理员在在本机下载的软件都发起安装到这个目次下,便于管理。
/usr/sbin 非系统正常运行所需要的系统指令,最常见的就是某些网络服务器软件的服务指令,不过根本功能与 /sbin 差不多,因此目前 /sbin 就是链接到此目次中的。
/usr/share 共享文件放置区,这个目次下还有这些次目次 /usr/share/man ,/usr/share/doc,/usr/share/zoneinfo
/usr/games 与游戏干系的数据放置处
/usr/include C/C++ 等步伐语言的 header 和 include 放置处,也是直接链接的。
/usr/src 一般源码发起放在这,src 是 source 的意思,至于焦点源码则发起放在 /usr/src/linux 目次下。
/run 目次

早期的 FHS 规定系统开机后所产生的各项信息应该要放置到 /var/run 目次下,新版的 FHS 则规范到 /run 下面。
/var 目次

如果说 /usr 是安装时会占用较大磁盘容量的目次,那么 /var就是在系统运行后才会渐渐占用磁盘容量的目次。/var 主要包括高速缓存、登录文件以及某些软件运行所产生的的目次,包括步伐文件,比方 MySQL 数据库文件等,常见的目次有
/var/cache 应用步伐缓存目次
/var/crash 系统错误信息
/var/log 日志记录
/var/run 历程的标识数据
/var/tmp 临时文件目次
/var/lock 文件锁定记录
/srv 目次

srv 可以看做 service 的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目次,常见的服务比方 WWW, FTP 。
CentOS 7 在目次的编排上与已往的版本不同,上面已经大致描述过了,这里做个汇总,比较大的差异就是将许多原本应该在根目次里面的目次,将全部数据挪到了 /usr 里面去,然后举行链接设置,这些内容包括


  • /bin -> /usr/bin
  • /sbin -> /usr/sbin
  • /lib -> /usr/lib
  • /lib64 -> /usr/lib64
  • /var/lock -> /run/lock
  • /var/run -> /run
为了方便大家直观的看到这些目次都是做什么的,手绘了一个图,图中的这些目次之间的关系很像一棵树,所以这个目次又叫做目次树。


这个目次树已经很清晰了。
绝对路径和相对路径

和其他系同一样,Linux 中的路径也分为绝对路径(absolute)和相对路径(relative),这两种的写法依据如下:


  • 由根目次开始的路径都是绝对路径,比如上图目次树中的 /boot、/usr/local 等
  • 相对于当前文件路径的写法是相对路径,比如 ../var/log 目次
这里需要注意一点,相对路径是以当前所在路径的相对位置来移动的,比如当前在 /boot 这个目次下,想要移动到 /usr/src 这个目次
绝对路径表示法:/usr/src
相对路径表示法:../usr/src
这里还需要注意两个特殊的目次:


  • . :代表当前目次,也可以利用 ./ 来表示
  • .. :代表上一层目次,也可以用 ../ 来表示
关于绝对路径和相对路径的取舍问题:当文件路径很长时,推荐利用相对路径,因为不消向绝对路径一样,把全部的路径都写一遍,而直接利用 ../ 即可;
但是从文件路径的精确性来说,绝对路径要比相对路径要好。
如果是在写步伐来管理系统,务必利用绝对路径,因为绝对路径不管文件路径在哪,都会找到指定的文件;而相对路径如果文件移动后,就可能会存在找不到文件的情况。
与目次有关的指令

下面就来看看和目次干系的几条指令
cd

cd 就是 change directory 的缩写,这条指令能够切换当前工作目次,有下面四种切换方式
cd /路径名 # 表示切换到指定的工作目次
cd ./   # 表示切换到当前工作目次(无任何切换)
cd ..   # 表示切换到当前工作目次的上一层目次
cd ~    # 表示返回到当前用户目次
下面来演示一下这四个 cd 切换方式的操作


可以看到,分别利用 cd /usr/local 切换到了指令目次下;利用 cd ./ 没有切换任何目次;利用 cd .. 切换到了当前工作目次的上一级;利用 cd ~ 切换到了当前登任命户的默认工作目次。
这里需要注意的就是 cd ~ ,如果直接利用 cd ,切换结果和 cd ~ 一样,也就是说 "cd ~ == cd "。
pwd

上面还有一条指令是 pwd ,这个指令是最常用的指令,它的利用频率几乎和 cd 一样。
pwd 是 Print Working Directory 的缩写,它是打印出当前所在目次的指令。
但是 pwd 不愿定只用于显示当前工作路径,它还可以用来显示指定工作目次下的文件路径
mkdir

mkdir 用于创建新目次,它是 make directory 的缩写,一般来说,它背面会跟着两个参数。


  • -m :设置文件的权限,直接设置,不消考虑默认文件的创建权限
  • -p :递归创建目次
在 /tmp 文件目次下创建了一个叫做 test1 的空目次,并打印出了当前的工作目次。
如果想要创建不想让其他用户访问的目次,可以利用下面的下令
  1. mkdir -m 711 test2
复制代码
ls -ld 列出文件目次的详细信息,可以看到,详细信息最前面的是文件的权限。
一个一个创建目次太麻烦了,如今想要快速创建这些目次,比如想要创建 /test1/test2/test3/test4 这种目次格式,利用了下面代码
  1. mkdir test1/test2/test3/test4
复制代码
Linux 会提出不能利用这种创建方式。
此时就需要 -p 这个参数的出现了,这个参数能够允许递归创建目次,如下所示
只不过利用 -p 这种方式并不推荐利用,因为很轻易打错字。
rmdir

rmdir 用于删除空目次,它的利用和 mkdir 非常类似,mkdir -p 用于递归创建目次,同样的,rmdir -p 也能够递归删除目次。
这里需要注意,rmdir 只是删除空目次,这也意味着目次里面有内容的话是无法删除的,那该如何删除呢?可以直接利用 rm -r 来举行删除。
mv

利用 mv 能够修改目次的名称,比如创建了一个叫做 test 的目次,厥后觉得这个目次无法表现出来它的全部者,想要改一下它的名字,这时候就可以利用 mv 指令就可以修改。
在了解完根本的目次操作之后,下面来想一个问题,为什么能够在各种目次下实验 ls 指令都能够显示内容?按理说 ls 不应该只是在其存放路径下才能够利用吗?
首先大家需要先了解一个 PATH 的概念,PATH 是情况变量,当在实验一条指令的时候,首先系统会按照 PATH 的设置去每个 PATH 下搜寻文件名为 ls 的可实验文件,如果有多个可实验文件,那么优先搜索到的先被实验。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

何小豆儿在此

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表