为什么某些执行程序位于/bin、/sbin、/usr/bin或/usr/sbin目录下?例如,less命令位于/usr/bin目录下。为什么不是/bin、/sbin或/usr/sbin?这些目录之间有什么区别呢?
在这篇文章中,让我们主要讲述一下Linux文件系统结构,并解释各个目录的含义。
1. / 根目录
所有文件和目录都从根目录开始。 只有root用户在该目录下有写权限。 请注意,/root是root用户的主目录,与根目录不同。
2. /bin 用户二进制文件
包含二进制可执行文件。 在单用户模式下需要使用的常见Linux命令位于该目录下。 系统所有用户使用的命令也位于这里。 例如:ps、ls、ping、cp。
3. /sbin 系统二进制文件
与/bin目录类似,/sbin也包含二进制可执行文件。 但是,该目录下的Linux命令通常由系统管理员用于系统维护目的。 例如:iptables、reboot、fdisk、swapon。
4. /etc 配置文件
包含所有程序所需的配置文件。 其中还包括启动和关闭脚本,用于启动/停止各个程序。 例如:/etc/resolv.conf、/etc/init.d/cron 。
5. /dev 设备文件
设备文件。这包括终端设备、USB设备或任何连接到系统上的设备。 例如:/dev/tty1、/dev/stdin。
6. /proc 进程信息
包含有关系统进程的信息。 这是一个伪文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录包含有关具有特定pid的进程的信息。 例如:/proc/uptime包含有关系统资源的文本信息。
7. /var 可变文件
var代表可变文件。 这个目录下可以找到那些预计会增长的文件。 其中包括系统日志文件(/var/log)、软件包和数据库文件(/var/lib)、电子邮件(/var/mail)、打印队列(/var/spool)、锁文件(/var/lock)以及重启后需要的临时文件(/var/tmp)。
8. /tmp 临时文件
包含系统和用户创建的临时文件。 该目录下的文件在系统重新启动时会被删除。
9. /usr 用户程序
包含用户程序的二进制文件、库、文档和源代码的二级程序。
/usr/bin目录包含用户程序的二进制文件。如果在/bin目录下找不到用户二进制文件,可以在/usr/bin目录下查找。例如:at、awk、cc、less、scp。 /usr/sbin目录包含系统管理员的二进制文件。如果在/sbin目录下找不到系统二进制文件,可以在/usr/sbin目录下查找。例如:atd、cron、sshd、useradd、userdel。
/usr/lib目录包含/usr/bin和/usr/sbin的库。
/usr/local目录下包含从源代码安装的用户程序。例如,当从源代码安装apache时,它将安装在/usr/local/apache2目录下。
10. /home 用户目录
用于存储所有用户的个人文件的家目录。 例如:/home/john、/home/rose。
11. /boot 引导加载程序文件
包含与引导加载程序相关的文件。 内核initrd、vmlinux和grub文件位于/boot目录下。 例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic。
12. /lib 系统库
包含支持/bin和/sbin目录下的二进制文件的库文件。 库文件的文件名要么以ld开头,要么以lib.so.*结尾。 例如:ld-2.11.1.so、libncurses.so.5.7。
13. /opt 可选附加应用程序
opt代表可选。各个的厂商的应用程序一般安装在这儿。 例如安装在/opt/目录或/opt/子目录下。
14. /mnt 挂载目录
临时挂载目录,系统管理员可以在其中挂载文件系统。
15. /media 可移动媒体设备
可移动设备的临时挂载目录。 例如,/media/cdrom用于CD-ROM;/media/floppy用于软盘驱动器
16. /srv 服务数据
srv代表服务。 包含特定服务器服务相关的数据。 例如,/srv/cvs包含与CVS相关的数据。
上面大概介绍了linux的目录结构,明白了目录结构有助于我们更好定位linux的文件,能帮助我们更加熟练使用linux。