Linux:/bin;/sbin;/usr/bin;/usr/sbin;/usr/local/bin;/usr/local/sbin的意义
来源:互联网 发布:ido软件下载中文版 编辑:程序博客网 时间:2024/05/22 05:07
Linux:/bin;/sbin;/usr/bin;/usr/sbin;/usr/local/bin;/usr/local/sbin的意义
实验环境:
CentOS 6.5
[root@localhost ~]# uname -aLinux localhost.localdomain 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686 i686 i386 GNU/Linux[root@localhost ~]#
首先看下PATH变量在不同用户下的值:
root用户:
[root@localhost ~]# whoamiroot[root@localhost ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@localhost ~]#
普通用户:
[test1280@localhost ~]$ whoamitest1280[test1280@localhost ~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/test1280/bin
bin是binary的缩写,二进制。
上述六个目录的含义:
/bin:通常是普通用户和超级用户都会用到的必要的命令,例如ls,pwd等等。
[root@localhost ~]# which lsalias ls='ls --color=auto' /bin/ls[root@localhost ~]# which pwd/bin/pwd[root@localhost ~]# su - test1280[test1280@localhost ~]$ which lsalias ls='ls --color=auto' /bin/ls[test1280@localhost ~]$ which pwd/bin/pwd[test1280@localhost ~]$
/sbin:通常是系统管理员使用的必要的来管理系统的命令,例如shutdown,ifconfig等等。
[root@localhost ~]# which shutdown /sbin/shutdown[root@localhost ~]# which ifconfig/sbin/ifconfig[root@localhost ~]# su - test1280[test1280@localhost ~]$ which shutdown /sbin/shutdown[test1280@localhost ~]$ which ifconfig/sbin/ifconfig[test1280@localhost ~]$
注:sbin意义为system binary。
/usr/bin:通常是一些非必要的,但是普通用户和超级用户都可能使用到的命令,例如gcc,ldd等等。
[root@localhost ~]# which gcc/usr/bin/gcc[root@localhost ~]# which ldd/usr/bin/ldd[root@localhost ~]# su - test1280[test1280@localhost ~]$ which gcc/usr/bin/gcc[test1280@localhost ~]$ which ldd/usr/bin/ldd[test1280@localhost ~]$
注:很多时候我们自己安装的软件,可能在此处建立一个软连接(符号链接),指向实际的可执行文件。
/usr/sbin:通常是一些非必要的,由系统管理员来使用的管理系统的命令,例如crond,httpd等等。
[root@localhost ~]# which crond/usr/sbin/crond[root@localhost ~]# which httpd/usr/sbin/httpd[root@localhost ~]# su - test1280[test1280@localhost ~]$ which crond/usr/sbin/crond[test1280@localhost ~]$ which httpd/usr/sbin/httpd[test1280@localhost ~]$
注:这里面有很多类似httpd等这样的后台程序,主要是提供一些服务,有相当一部分是关于网络的(并不全是,例如crond),这个时候这个进程就是作为一个“服务器”,接受外部的请求。
/usr/local/bin:通常是用户后来安装的软件,可能被普通用户或超级用户使用。
/usr/local/sbin:通常是用户后来安装的软件,一般是用来管理系统的,被系统管理员使用。
从用户权限角度来看,*sbin下的命令都是用来管理系统的,所以一般是普通用户无法执行,只有系统管理员可以执行,而*bin下的命令则是所有用户都可以执行的。
注:以上所说的并不是绝对的,例如ifconfig在/sbin下,但是普通用户一般具有可执行权限。
[test1280@localhost ~]$ ll /sbin/ifconfig -rwxr-xr-x. 1 root root 70024 May 10 2012 /sbin/ifconfig[test1280@localhost ~]$
从可运行的时间角度看,/bin以及/sbin是和/在同一文件系统,在挂载其他文件系统之前就可以使用/bin以及/sbin下的命令。
/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin可能与根文件系统不在同一文件系统之中,可能是在其他文件系统中后挂载上去的。
使用Tarball(源代码)编译安装的软件通常都是在/usr/local/bin以及/usr/local/sbin中。
十分重要的二进制程序放置在/bin以及/sbin中;
不是十分重要的二进制程序放置在/usr/bin以及/usr/sbin中。
进行这样子的分隔是为了尽可能地缩小根分区。
在最开始不同用户下的PATH示例中我们看到,普通用户与超级用户有基本一样的PATH(包含的搜索目录列表差不多),但是他们在看到一个命令时搜索的路径顺序不相同。
在我实验的环境中,普通用户也是包含了*sbin这样的目录列表。
在有些版本中,普通用户的PATH不包含*sbin目录列表,所以当执行ifconfig时,通常会报command not found这样的错误,原因是ifconfig在/sbin中,但是PATH没有包含/sbin这个目录,导致报错。
这个时候如果我们用绝对路径来执行:
/sbin/ifconfig
如果ifconfig对一般用户具有可执行权限,那么就可以正常执行。
关键点在于,告诉你当前的shell,我去哪里找这个命令(可执行文件)。
当PATH包含的目录下没有时,我可以使用绝对路径来指定。
下面这四句话是引用自别的博客:
如果是用户和管理员必备的二进制文件,就会放在/bin;
如果是系统管理员必备,但是一般用户根本不会用到的二进制文件,就会放在/sbin;
如果不是用户必备的二进制文件,多半会放在/usr/bin;
如果不是系统管理员必备的工具,如网络管理命令,多半会放在/usr/sbin;
参考资料:
1.http://blog.sina.com.cn/s/blog_8184e03301012z2x.html
2.http://blog.csdn.net/kkdelta/article/details/7708250
3.http://blog.csdn.net/xh16319/article/details/12861523
- Linux:/bin;/sbin;/usr/bin;/usr/sbin;/usr/local/bin;/usr/local/sbin的意义
- Linux的/bin、/sbin、/usr/sbin、/usr/bin、/usr/local/bin、/usr/local/sbin
- Linux文件系统中/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin文件夹的区别是什么
- linux系统的/bin,/sbin,/usr/bin,/usr/sbin
- Linux 中 /bin、/sbin、/usr/sbin、/usr/bin的区别
- /bin,/sbin,/usr/bin,/usr/sbin区别
- /bin ,/usr/bin,/sbin,/usr/sbin
- /bin,/sbin,/usr/sbin,/usr/bin 目录
- /bin,/sbin,/usr/sbin,/usr/bin 目录
- /bin,/sbin,/usr/bin,/usr/sbin区别
- /bin,/sbin,/usr/sbin,/usr/bin 目录
- /bin、/sbin、/usr/bin、/usr/sbin
- /bin,/sbin,/usr/sbin,/usr/bin 目录
- /bin,/sbin,/usr/bin,/usr/sbin区别
- /bin,/sbin,/usr/sbin,/usr/bin 目录
- /bin,/sbin,/usr/bin,/usr/sbin区别
- /bin,/sbin,/usr/sbin,/usr/bin 区别
- /bin,/sbin,/usr/sbin,/usr/bin 目录
- Oracle的三种高可用集群方案
- jquery获取表格除第一行以外的所有行并清空
- Android 使用Palette获取Gallery图片主色调
- 微信企业号/企业微信的corpid和secret
- 谈谈java的运行机制
- Linux:/bin;/sbin;/usr/bin;/usr/sbin;/usr/local/bin;/usr/local/sbin的意义
- tomcat指定·jdk linux
- 对JavaEE基础多线程基础的理解
- 练习17.21 使用本节中定义的valid函数重写8.3.2节(第289页)中的电话号码程序。
- WF公务车新需求开发(再续)
- MQTT协议理解和翻译计划
- select根据text默认选中
- LisView多布局展示
- 谈谈主函数main