在linux的應用中修改腳本,變量等是常常遇到的,在各種軟件的安裝配置文檔中幾乎都會有關於/bin、/sbin、/usr/bin、/usr/sbin的配置,此次就詳細的研究一下這些文件下都有什麼,如下的內容多數是從各個文檔中摘抄總結的.mysql
先說/bin和/sbin,bin實際上是binary二進制的縮寫,sbin我我的理解是否是就是super bin的縮寫。linux
/bin和/sbin下都存放有各種系統的指令,區別就是/sbin下的設計的系統指令須要更高的權限和安全保證,例如:c++
/bin是系統的一些指令。bin爲binary的簡寫主要放置一些系統的必備執行檔例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。sql
/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、個人我的理解他們與上面兩個文件的區別在於,這兩個文件夾是後期用戶安裝上去的命令,而上面的文件夾是系統安裝時的必備包程序,例如:bash
/usr/bin 是你在後期安裝的一些軟件的運行腳本。主要放置一些應用軟體工具的必備執行檔例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m四、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。less
/usr/sbin 放置一些用戶安裝的系統管理的必備程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。tcp
以前在作天津移動的項目時,遇到過一個問題,用非root用戶登陸,在執行mysql和ifconfig這種命令是提示command not found,當時個人作法是作了一個軟鏈接解決了問題:工具
ln -s /mysql_home/mysql /usr/bin ln /sbin/ifconfig /usr/binui
可是如今看來應該並很差,由於問題的根源應該是非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