1. 程式人生 > >已解決:登入Linux後好多命令不能用,如使用service會報錯service command not found

已解決:登入Linux後好多命令不能用,如使用service會報錯service command not found

su 或者 su root:的話只是將當前身份轉為root,使用者shell並沒有改變.所以有些系統命令不能使用.  
su -或者su -l或者su -l root,可以完全的將當前環境轉為root環境.如同root直接登陸. 
其次,service的路徑為/sbin/service
如果shell沒有改變,那麼你的PATH中預設沒有/sbin,所以不行,而如果用su -命令環境改為root,PATH中就包含/sbin

--------------------------------------------------------------------

以下是另外的文章

新安裝的linux系統,如果進行精簡安裝可能會出現bash:command not found 的提示,大家在安裝的時候可以選擇預設安裝basic的元件,一般即可。到時候可以再升級。


如果新裝的系統,執行一些很正常的諸如:shutdown,fdisk的命令時,悍然提示:bash:command not found。那麼 

首先就要考慮root 的$PATH裡是否已經包含了這些環境變數。 

主要是這四個:/bin ,/usr/bin,/sbin,/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*、 gzip、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等。 

可以在家目錄下檢視.bash_profile裡的PATH。如果是:PATH=$PATH:$HOME/bin則需要新增成如下: 


PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin

今天在虛擬機器上安裝了CentOS5.5,發現執行一些很正常的諸如:init,shutdown,fdisk 等命令時,悍然提示: 

bash: xx command not found。 

那麼,首先就要考慮root 的$PATH裡是否已經包含了這些環境變數(可能是我安裝的時候選擇了“最小安裝”,導致一些功能沒開啟)。 

主要是這四個:/bin , /usr/bin, /sbin, /usr/sbin。