linux 目录结构

简述了一下,linux目录的结构,每个目录以及每个目录均放些什么文件

对于学习 linux ,基本系统目录的结构和作用,需要弄清楚。

linux 系统和 windows 系统不同,我们都知道,windows 有 C 盘 D 盘 E 盘等等,这个 C D E 是盘符,在 windows 里面,可以理解为有多个根目录,一个盘符代表一个根目录,这是在windows 里面的,linux 里面,没有盘符的概念。整个系统只有一个根目录,目录结构像是一个根倒长的树,一个 / (根目录) 开始,下面是很多件和文件夹。这点区别和 windws 是完全不同的。

另外一点,就是在 linux 系统中,命令,文件名,及路径,严格区分大小写,对大小写很敏感,这点也和 windows 不同,举个例子吧,在 windows 中,有一个文件夹,叫 qq , qq  QQ  qQ  Qq 在windows 都是同一个文件夹,但是在linux中,这是 4 个不同的文件。

dir-1

使用 tree 命令来打印一下 linux 的目录结构

[root@localhost ~]# tree / -d -L 2
/
├── bin
├── boot
│   ├── efi
│   ├── grub
│   └── lost+found
├── dev
├── etc
├── home
├── lib
├── lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
│   ├── 1
│   ├── 2
│   ├── 3
│   ├── 4
│   ├── 5
│   ├── 6
│   ├── 7
│   ├── 8
│   └── 9
├── root
├── sbin
├── tmp
├── usr
│   ├── bin
│   ├── local
│   ├── sbin
│   ├── share
│   └── lib
└── var
    ├── log
    ├── spool
    └── run

// PS:这个打印出来很多,我是删除了一部分

/ 根。每一个文件或目录,都是从根开始,根目录,只有 root 用户对其有权限写入。

/bin 用户二进制文件。这里目录里包含二进制可执行文件,一般常见的命令,给系统用户所使用的命令,都是存在于这个目录下,如 ls cp ps cat grep 等。

/boot 这个目录下,包含了系统的引导程序,以及启动信息,比如 kernel initrd 镜像。一般情况下是使用一个单独的分区,而 /boot/efi ,若是计算机使用 UEFI 启动,则会有这个文件夹,使用 UEFI 的,这也会是一单独的分区。

/dev 这个目录下,是设备文件,以及终端,USB 等。比如:/dev/sda(硬盘) /dev/tty1 (终端)

/etc 配置文件的存放目录,一般系统的配置文件都在这个目录下,以及一些重要配置件,如:/etc/fstab /etc/inittab /etc/sysctl.conf(内核相关参数配置),/etc/resolv.conf(DNS配置), /etc/init.d/ 目录则是一些服务的控制文件,比如启动和停止以及重启。

/home 用户的默认家目录,都存在于个目录下,用来存储普通用户的文件,及档案。如:一个用户叫做 ainy,则这个用户的家目录为 /home/ainy,若用户很多,则可以考虑穿上分区分大一些,非多用户的情况下,可以不单独分区。

/lib /lib64 系统库文件夹,lib lib64 只有64位系统中,才有 lib64 目录,区别就是32位和系统和64位系统,这里包含了一些执行程序所需要库文件,例如可以使用 ldd 命令来查看,另外一个命令执行时,所需要的库文件

[root@localhost ~]# ldd /bin/ls
	linux-vdso.so.1 =>  (0x00007fff9a39e000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fda61151000)
	librt.so.1 => /lib64/librt.so.1 (0x00007fda60f49000)
	libcap.so.2 => /lib64/libcap.so.2 (0x00007fda60d44000)
	libacl.so.1 => /lib64/libacl.so.1 (0x00007fda60b3c000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fda607a8000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fda605a3000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fda6137b000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fda60386000)
	libattr.so.1 => /lib64/libattr.so.1 (0x00007fda60181000)
[root@localhost ~]# 

/media 自动挂载的目录,在系统开始了 automount(自动挂载) 后,当我们插入了光盘,U 盘等移动设备,会自动挂载到这个目录下。

/mnt 这个目录一般情况空的,用于系统管理员临时挂载设备的挂载点,不过挂载不挂载到这里,还是用户自己决定的。这只是系统提供的一个临时挂载点。

/opt 可选的附加程序,opt 代表是可选的,包括了各个厂商的附加程序,一般会是安装在这个目录下,或者这个目录下的子目录。系统刚装完时,这个目录一般是空的。

/proc 这是一个虚拟的文件系统,这个目录的所有数据都存在内存当中,所以是一个虚拟文件系统,关机会被全部清空,当系统再次启动后,从内存读出来,包括了所有内核相关,系统核心,内部、外部设备、网络状态等,/proc下以数字为目录的,是进程的 PID 号,包括进程的所有信息,由于是虚拟文件系统,都存在地内存中,所以不占用实际磁盘空间。如:/proc/cpuinfo 记录了 CPU 的信息。/proc/meminfo 记录了内存信息。/proc/modules 记录了模块加载的信息。 /proc/net/ 目录下则是网络相关的。

/root 这个是超级管理员 root 的家目录,区别于普通用户,没有放到 /home 目录下,而是单独的一个目录。

/sbin 系统二进制文件,这个目录和 /bin 一样,也包含了二进制的执行文件,区别在于这个目录下的命令通常都是由管理员使用,对系统进行维护,以及配置之类,如:fdisk ifconfig iptables reboot mkfs 等。

/tmp 一般用于给用户或者正在执行的程序或者进程提供的临时存放的文件的目录,这个目录所有用户都有权限写入,也都有权限访问,重要的数据不要放到此目录下。

/usr 用于应用程存放的目录,/usr/bin 应用程序执行文件,和 /bin 有点类似,而 /usr/share 则是一些应用程序配置模板,应用程序说明,以及 man 手册,/usr/lib 则是存放很多不能执行,但却是很多应用程序需要的一些库文件及函数库文件。

/var 存放于随时改变,而很频繁的一些文件,如 系统日志,都是存放于这个目录下(/var/log) 用户邮件 /var/spool/mail,/var/run 则是一些进和程序启动后,PID 文件的存放目录。一般建议单独分区,且空间不要太小。

猜您喜欢