Linux 系统目录结构

Linux的系统目录组织方式是树形的,从根目录/开始,其下又有多个子目录:

[root@runoops ~]# ls / bin dev home lib64 media opt root sbin sys usr boot etc lib lost+found mnt proc run srv tmp var

我们的shell提示符是[root@runoops ~]#,其中root表示当前用户名,runoops表示主机名,**~表示当前所在目录为家目录,root用户的家目录就是根目录下的root目录,后面的 # 表示当前是root用户,如果是普通用户,则是$**符号,普通用户的家目录都在根目录下的home目录下;

home目录主要是存贮与用户相关的配置文件;

我们可以使用tree命令直观的看出系统的目录结构,默认Centos并没有安装tree命令,使用yum -y install tree即可安装该命令,tree命令的参数-L可以指定显示的目录层数:

 [root@runoops ~]# tree -L 1 /
  /
  |-- bin -> usr/bin
  |-- boot
  |-- dev
  |-- etc
  |-- home
  |-- lib -> usr/lib
  |-- lib64 -> usr/lib64
  |-- lost+found
  |-- media
  |-- mnt
  |-- opt
  |-- proc
  |-- root
  |-- run
  |-- sbin -> usr/sbin
  |-- srv
  |-- sys
  |-- tmp
  |-- usr
  `-- var

  20 directories, 0 files

系统目录作用说明

目录名说明
/binbin目录主要存放的是系统的命令,我们所使用的命令如lsyum等,都存放于bin目录下,bin目录不止有/bin,还有/usr/bin//usr/sbin//sbin/也是同样的作用,区别是sbin目录下的命令是超级用户root使用的命令;
/bootboot目录主要存放系统的启动文件,当我们启动系统时,进入的grub界面,就是存放在boot目录下;
/devdev目录是存放设备文件的目录,在Linux系统中,一切皆文件,所以即使是硬盘,光驱,在目录下呈现的也是一个文件;
/lib & /lib64lib及lib64是存放系统的库文件的目录,很多命令会依赖库文件,查看一个命令依赖哪些库,可以使用ldd命令:ldd /bin/ls;
/proc系统进程目录,系统的每个进程都会在这个目录下创建自己的进程文件和目录;在proc目录下存在以数字命名的目录,这就是进程的PID,在PID目录下可以看到cwd文件指向一个位置,这就是进程运行所在的目录;
/run进程运行存放临时文件的目录,在系统重启或关机后目录会清空;
/srv存放服务产生的文件,默认为空;
/sys存放系统内核相关的文件,一般不会使用到这个目录;
/tmp临时目录,任何用户都可以在其下创建文件;
/usr系统用户使用到的命令或文件、库文件的存放位置;一般安装的服务都会放在/usr/local目录下;
/var存放系统运行相关的文件,如日志/var/log;进程PID等。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。