已解决:登录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。





你可能感兴趣的:(Linux)