您的位置:首页 > 运维架构 > Linux

Linux基础之/bin、 /sbin、/ usr/bin,、/usr/sbin的用处

2015-11-05 10:33 537 查看
在linux的应用中修改脚本,变量等是经常遇到的,在各类软件的安装配置文档中几乎都会有关于/bin、/sbin、/usr/bin、/usr/sbin的配置,这次就详细的研究一下这些文件下都有什么,以下的内容多数是从各个文档中摘抄总结的.

先说/bin和/sbin,bin其实是binary二进制的缩写,sbin我个人理解是不是就是super bin的缩写。

/bin和/sbin下都存放有各类系统的指令,区别就是/sbin下的设计的系统指令需要更高的权限和安全保证,例如:

/bin是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/sbin一般是指超级用户指令主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。

接下来说/usr/bin和/usr/sbin、我的个人理解他们与上面两个文件的区别在于,这两个文件夹是后期用户安装上去的命令,而上面的文件夹是系统安装时的必备包程序,例如:

/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/sbin 放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。

之前在做天津移动的项目时,遇到过一个问题,用非root用户登录,在执行mysql和ifconfig这种命令是提示command not found,当时我的做法是做了一个软连接解决了问题:
ln -s /mysql_home/mysql /usr/bin ln /sbin/ifconfig /usr/bin

但是现在看来应该并不好,因为问题的根源应该是非root用户没有权限执行这个命令,单纯链接并不是根本解决方法,那控制某个用户执行命令的权限在哪呢?这个其实是由环境变量决定的,可以在各自项目上看一下:
如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么
首先就要考虑用户的$PATH里是否已经包含了这些环境变量。
可以查看PATH,如果是:PATH=$PATH:$HOME/bin则需要添加成如下:
PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin
直接输入export可以查看path:
[root@localhost u-boot-sh4]# export
****
****
declare -xPATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/us
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux