shell命令解析器与环境变量
shell是什么
shell就是一个应用程序,我们可以通过键盘、串口给他发送命令,回车后就会去执行这些命令。一般命令由程序名和命令名组成,shell会到PATH环境变量去找输入的程序,也可以输入绝对、相对路径,shell就会到输入的路径去寻找程序。
例如这样一个应用程序hello.c:
1 |
|
如果用gcc编译一下, 会产生一个可执行文件hello。
gcc -o hello hello.c
如果我们在终端中输入hello,终端会提示错误,因为终端在PATH环境变量中找不到hello这个程序。所以我们输入相对路径./hello。 终端会输出:
Hello, World!
如果我们在程序名后面加上命令名,例如:
./hello seraphembera
终端输出:
Hello, seraphembera!
这里的seraphembera就是命令名。
PATH环境变量
环境变量是什么
环境变量就是操作系统维护了一个全局变量表,所有系统进程都可以访问。
环境变量的作用
将变量共享给多个进程,或者传递变量给子进程。
永久设置方法
修改/etc/environment
例如:
sudo gedit /etc/environment
然后添加下行:
PATH="/usr/local/sbin:usr/local/bin:usr/sbin:/sbin:/bin:/usr/games:/usr/local/games:/home/book"
然后重启系统或重新登陆,这种方法对所有用户有效。
修改~/.bashrc
例如:
export PATH=$PATH:/home/book
然后重启系统或重新登陆,这种方法只对当前用户有效。
临时设置方法
例如:
export PATH=$PATH:/home/book