在一般情况下,Linux文件系统中bin或sbin目录中的文件都是可执行的。有时我们为了方便不输入路径就能调用指令或工具,这时要就要设置用户的环境变量PATH。
看下面的一例:
[root@localhost ~]# ls
adduml.sh lsfile.sh mkuml-2004.07.17 mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt tmp upgrade.log
[root@localhost ~]# /bin/ls
adduml.sh lsfile.sh mkuml-2004.07.17 mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt tmp upgrade.log
上面的例子,第一个指令就是直接运行了ls命令来显示当前目录下的文件和子目录;第二个条/bin/ls 指令是用绝对路径的ls来运行的;这两种方式运行的结果看来是一样的。
再看下面的一例:
[leon@leon stl_ch6]$ ll
-rw-rw-r-- 1 leon leon 956 10-18 22:04 ex06-09.cpp
-rw-rw-r-- 1 leon leon 956 10-18 22:03 ex06-09.cpp~
[leon@leon stl_ch6]$g++ -o run ex06-09.cpp<CR>
上面的例子,当用编译指令编译生成可持行文件时(本例中的"run"),如果不设置环境变量PATH时,直接在运令行中使用可执行文件Linux会提示没有这个Shell指令或者没有这个文件:
[leon@leon stl_ch6]run<CR>
bash: run: command not found
我们可以用export PATH来设置环境变量。比如把下面一行加入到用户家目录下的.bashrc 或.profile文件中;
export PATH=.:$PATH
($PATH是一个变量宏用以替换赋值给它的Shell路径,如PATH=/usr/local/jdk/bin)
解释:您可以找出Linux文件系统中所有bin或sbin目录的的绝对路径,然后把它们用:号分割,比如上面所设置的。第一个.表示用户当前所处的目录;
添加好后,我们再运行一下source,也就是:
#source .bashrc
或
#source .profile
如果发现指令只有root权限才运行,这时您要用到su; 如果您用的是普通用户,可能无权查看一些文件的目录的内容,您也需要用到su来切换身份;请参考:《Linux 系统中的超级权限的控制》