引言
事实上命令文件放在哪都可自行决定,也就是自己想放哪就放哪,这些目录不过是约定,不过遵守约定会更好啦,毕竟没有人会想要自己的电脑一团糟吧,尤其是Linux
优先级
Linux下的这些bin目录都是存放命令的,如果不同的目录下有相同名称的可执行程序,将通过优先级决定先运行哪个目录的二进制文件,可以通过使用命令echo $PATH
查看环境变量以确定命令执行的优先级,比如我的系统输出如下:
1
2
[yexca@yexca-PC ~]$ echo $PATH
/home/yexca/.local/bin:/home/yexca/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
从前到后以:
分隔,越靠前优先级越高
/bin
系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等
/usr/bin
系统预装的可执行程序,会随着系统升级而改变
后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb、wget等
/usr/local/bin
给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件
/sbin
一般是指超级用户指令。主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等
/usr/sbin
放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等