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 crond 不执行原因分析

Linux shell 局部变量与全局变量

CentOS 搭建 SVN Server

在命令行快速切换目录

 

 

原文: Linux/bin,/sbin,/usr/bin,/usr/sbin区别