Linux下提⽰命令不到:bash:commandnotfound
Linux下输⼊某些命令时会提⽰:bash:command not found。
⾸先,查看$PATH中是否包含了这些命令。
$PATH:决定了shell到哪些⽬录中去寻命令或程序,PATH值是⼀系列的⽬录。当运⾏程序时,linux到这些⽬录下搜索进⾏编译链接。
格式:
PATH = $PATH:<PATH1>:<PATH2>:<PATH3>:...:<PATH N>
可以将⾃⼰指定的路径加到PATH中,中间⽤冒号":"隔开。环境变量更改后,会在⽤户下次登录的时候⽣效;若想⽴即⽣效,则需要执⾏:
1 $ source .bash_profile
完成之后可以通过 echo  echo PATH查看当前的搜索路径。这样定制之后,可以避免频繁的启动位于shell搜索路径之外的程序。
查看PATH值:
⽅法⼀:export
1 [root@localhost /]# export
2 declare -x BASH_ENV="/root/.bashrc"
3 declare -x G_BROKEN_FILENAMES="1"
4 declare -x HISTSIZE="1000"
5 declare -x HOME="/root"
6 declare -x HOSTNAME="localhost.localdomain"
7 declare -x INPUTRC="/etc/inputrc"
8 declare -x LANG="zh_CN.GB18030"
9 declare -x LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
10 declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
11 declare -x LOGNAME="root"
12 declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01
13 declare -x MAIL="/var/spool/mail/root"
14 declare -x OLDPWD="/"
15 declare -x PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin"
16 declare -x PWD="/"
17 declare -x SHELL="/bin/bash"
18 declare -x SHLVL="1"
19 declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
20 declare -x SSH_CLIENT="192.168.199.107 63049 22"
21 declare -x SSH_CONNECTION="192.168.199.107 63049 192.168.199.10 22"
22 declare -x SSH_TTY="/dev/pts/2"
23 declare -x TERM="vt100"
24 declare -x USER="root"
25 declare -x USERNAME="root"
26 [root@localhost /]#
⽅法⼆: echo echo PATH
1 [root@localhost /]# echo $PATH
2 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
3 [root@localhost /]#
添加$PATH环境变量:
[root@localhost u-boot-sh4]#export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH
再次查看:
1 [root@localhost u-boot-sh4]# echo $PATH
2 /opt/STM/STLinux-2.3/devkit/sh4/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
则说明添加PATH成功。
上述⽅法添加PATH 在终端关闭后会消失。建议通过编辑/etc/profile 修改PATH,也可修改/home⽬录下的 .bashrc
1 [root@localhost etc]# vim /etc/profile
2 # /etc/profile
3
4 # System wide environment and startup programs, for login setup
5 # Functions and aliases go in /etc/bashrc
6
7 pathmunge () {
8        if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
9            if [ "$2" = "after" ] ; then
10              PATH=$PATH:$1
11            else
12              PATH=$1:$PATH
13            fi
14        fi
15 }
16
17 # Path manipulation
18 if [ `id -u` = 0 ]; then
19        pathmunge /sbin
20        pathmunge /usr/sbin
21        pathmunge /usr/local/sbin
22 fi
linux没有vim命令23
24 pathmunge /usr/X11R6/bin after
25
26 unset pathmunge
27
28 # No core files by default
29 ulimit -S -c 0 > /dev/null 2>&1
30
31 "/etc/profile" [已转换] 49L, 842C
在最后添加:
1 export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
保存后,退出,执⾏:
1 [root@localhost etc]# source /etc/profile
不报错就成功。
$PATH下⽬录简介
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、ifu
p、 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等。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。