问题产生: 在学习Linux的过程中对Linux系统的文件结构感到不解,例如/bin 和 /usr/bin 和 /usr/local/bin 之间的区别以及各个目录到底是存放什么内容的问题,需要进行进一步的学习!
列举一下Linux中比较重要的部分目录:
- 主目录: /root,/home/username
- 用户可执行文件: /bin,/usr/bin,/usr/local/bin
- 系统可执行文件: /sbin,/usr/sbin,/usr/local/sbin
- 其他挂载点: /media,/mnt
- 配置: /etc
- 临时文件: /tmp
- 内核和Bootloader: /boot
- 服务器数据: /var,/srv
- 系统信息: /proc,/sys
- 共享库: /lib,/usr/lib,/usr/local/lib
/bin,/usr/bin,/sbin,/usr/sbin之间的区别是什么?
bin为binary的简写,/bin目录下都是二进制可执行文件,主要存放系统最基本的一些命令的可执行文件,例如: cat,cp,chmod df,dmesg,gzip,kill,ls,mkdir,more,mount,rm,su,tar等命令;
sbin是system binary的简写,/sbin一般是指超级用户指令,存放的是超级用户权限的系统指令,只有系统超级用户才可以运行例如: cfdisk,dhcpcd,dump,e2fsck,fdisk,halt,ifconfig,ifup, ifdown,init,insmod,lilo,lsmod,mke2fs,modprobe,quotacheck,reboot,rmmod, runlevel,shutdown等命令;
/usr/bin: 这个目录是系统用户的常用命令的存放地,它不像/bin那样在系统启动或紧急情况下也需要用到,但它包含了大多数用户日常使用的命令,常见的命令有: awk,less,wget,vim 等;
/usr/sbin: 这个目录存放的是非系统管理员也可能需要使用的系统管理程序,尽管这些程序通常是由系统管理员使用的,但某些情况下普通用户也可能需要它们,常见的命令有: cron,dhcpd,named,sshd 等服务器的守护进程;
(usr是指Unix System Resource而不是User,/usr/bin下面的都是系统预装的可执行程序,系统升级有可能会被覆盖,而/usr/local/bin目录是给用户放置自己的可执行程序,不会被系统升级而覆盖同名文件)