返回首页   进站必读

1.28 环境变量


1.28 环境变量

1.28.1 环境变量的概念

在我们的当前目录下有一个可执行文件,它的作用是打印出hello world!,我们执行一下:

$ls
hello.c hello
$hello
hello: 找不到命令
$./hello
hello world!
想一下,为什么我们执行ls的时候就可以执行,而要执行hello的时候就必须要加上./呢?
我们先用which命令看一下ls这个文件在哪里存放:
$which ls
/bin/ls
在我们没有告诉系统完整路径时,系统会在一个名为PATH的的环境变量所存的路径下去找这个文件,我们用env打印当前的环境变量看一下:
$env
...
DESKTOPSESSION=gnome
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
QTIMMODULE=xim
PWD=/home/ymqqqqdx
XMODIFIERS=@im=ibus
...
我们找到PATH项可以看到/bin在这个环境变量中,所以我们输入ls后,系统会到这个目录下去寻找。

1.28.1 更改环境变量

如果我们要把hello所在的目录也添加到PATH里面,是不是直接输入hello就可以直接运行我们这个程序了呢?
下面我们来试一下:

pwd
/home/ymqqqqdx
export PATH=/home/ymqqqqdx
hello
hello world!
ls
ls: 找不到命令
这是怎么了?怎么连ls都找不到了呢?
我们上面把PATH设置为了/home/ymqqqqdx/,而这个目录下没有ls,所以系统就报错了。不要急,我们重新启动一下终端就好了。
正确的做法是这样的:
$export PATH=$PATH:/home/ymqqqqdx
hello
hello world!
ls
hello.c hello

1.28.3 修改终端启动脚本

由上面的例子我们可以看出,我们做的修改在关闭终端后没有保存,怎么才能将我们做的修改保存起来呢?
修改~/.bashrc:

$gedit ~/.bashrc
此时我们用gedit打开了这个文件,到这个文件的最下方,添加我们上面输入的export PATH=$PATH:/home/ymqqqqdx,然后保存退出。
这时我们重启一下终端,终端就会按着这个脚本顺序执行,把我们的路径添加到了环境变量之中。