Linux /bin, /sbin, /usr/bin, /usr/sbin 区别
Linux下我们经常用到的四个应用程序的目录是:/bin、/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*、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget 等
/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 等
/ : this is root directory
/bin : commands in this dir are all system installed user commands
/sbin: commands in this dir are all system installed super user commands
/usr/bin: user commands for applications
/usr/sbin: super user commands for applications
/usr/local/bin : application user commands
/usr/local/sbin: application super user commands
/bin: 是系统的一些指令.
/sbin: 一般是指超级用户指令.
/usr/bin: 是你在后期安装的一些软件的运行脚本.
MacOS 操作系统
MacOS 系统是 Unix,包含的命令目录如下:
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
/opt/local/bin
/opt/local/sbin
解释说明:
/usr/bin 是操作系统提供的二进制文件
/usr/local/ bin是用户提供的二进制文件所在的位置
在命令行上键入命令的名称时,shell将按顺序在$PATH环境变量中包含的路径中搜索所述命令
$ echo $PATH
/opt/grails-3.3.0/bin:/opt/groovy-2.4.12/bin:/opt/scala-2.12.3/bin:/usr/local/go/bin:/opt/phantomjs-2.1.1/bin:/usr/local/node/bin:/usr/local/nginx/sbin:/usr/local/openssl/bin://usr/local/openssl/sbin:/usr/local/php5/bin://usr/local/php5/sbin:/opt/apache-maven-3.5.0/bin:/usr/X11/bin:/opt/mysql-5.7.17/bin:/usr/local/bin/geckodriver:/opt/libwebp-1.0.3-mac-10.14/bin:/opt/local/sbin:/opt/local/bin:/user/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/opt/grails-3.3.0/bin:/opt/groovy-2.4.12/bin:/opt/scala-2.12.3/bin:/usr/local/go/bin:/opt/phantomjs-2.1.1/bin:/usr/local/node/bin:/usr/local/nginx/sbin:/usr/local/openssl/bin://usr/local/openssl/sbin:/usr/local/php5/bin://usr/local/php5/sbin:/opt/apache-maven-3.5.0/bin:/usr/X11/bin:/opt/mysql-5.7.17/bin:/opt/libwebp-1.0.3-mac-10.14/bin:/opt/local/sbin:/opt/local/bin:/user/local/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Users/homer/perl5/perlbrew/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin
一个常见的模式是在$PATH中,将/usr/local/bin放在/usr/bin之前,这允许您安装备用版本的二进制文件,并让它们优雅地“覆盖”操作系统提供的二进制文件。操作系统更新不会破坏用户安装的软件包,这种模式特别是在流行的 Homebrew软件包管理器工具的OSX中使用。
例如,OSX El Capitan提供了git版本2.5.4(在/usr/bin中),如果你想要一个更新的版本,你可以使用Homebrew来安装git版本2.7.0(到/usr/local/bin)。由于/usr/local/bin位于$PATH环境变量中的/usr/bin之前,因此当您在shell中发出命令git时,将使用较新的Homebrew版本。
$ cat /etc/paths /usr/local/bin /usr/bin /bin /usr/sbin /sbin
对于 /opt/local/bin 和 /opt/local/sbin,暂没有发现需要将它们添加到路径中。但似乎它们可能与它们的/usr/local类似物位于类似的位置,因为/opt传统上包含用户安装的二进制文件.
注意:相同的解释适用于/usr/lib 与/usr/local/lib,融会贯通,聪明的你!
综述
如果是用户和管理员必备的二进制文件,就会放在/bin;
如果是系统超级管理员必备,但是一般用户根本不会用到的二进制文件,就会放在 /sbin
如果不是用户必备的二进制文件,多半会放在/usr/bin;
如果不是系统管理员必备的工具,如网络管理命令,多半会放在/usr/sbin
参考推荐:
Linux之/etc/profile、~/.bash_profile等几个文件的执行过程
原文: Linux/bin,/sbin,/usr/bin,/usr/sbin区别
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2020-12-10 16:46:05
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!