shell类型
使用 cat /etc/shells ,查看用户的可用shell。
使用 echo $SHELL ,查看当前正在使用的shell。
打开terminal终端,shell等待用户输入,并执行输入的操作命令,这种方式叫做交互式模式。
执行.sh脚本,不用等待用户输入,直接按文本顺序执行命令,这种方式叫做非交互式模式。
像通过SSH登陆,每次连接都需要预先输入用户名和密码,叫做登陆shell。
而像打开terminal终端,不需要输入用户名和密码,直接可用,叫做非登录shell。
PATH环境变量
我们在终端中输入的命令,最终都会递交给shell处理并运行。而shell支持的每一个命令,都会在PATH路径中找到对应的可执行文件。
仿照上面的样子,自行编译一个可执行文件,让终端可以识别该指令并运行。
发现用户只能通过 ./hello的方式去运行,并不能直接 hello去运行,原因就是没有将应用路径添加到环境变量中。
添加环境变量的几种方式:
1.添加当前用户的PATH环境变量,作用范围仅限于当前用户
修改用户目录下的 .bashrc ,末尾添加应用的绝对路径 export PATH=$PATH:/home/liang/c_program/test
修改后立即生效。
.bashrc文件可以设置环境变量的原因,是因为在 ~/.profile 中调用了 .bashrc 。
那么直接修改 ~/.profile,也是可以达到相同目的的。但修改后不会立即生效,需要重启系统,或重新登陆。
重启系统,或重新登陆。
2.添加所有用户的PATH环境变量,适用于所有用户
以管理员身份编辑 /etc/profile,末尾添加应用的路径,export PATH=$PATH:/home/liang/c_program/test
修改后不会立即生效,需要重启系统,或重新登陆。
重启系统,或重新登陆。
3.添加整个系统环境的PATH环境变量,适用于整个系统环境,与用户无关
以管理员身份编辑 /etc/environment,末尾添加路径,:/home/liang/c_program/test
重启系统,或重新登陆。
4.将可执行文件,直接复制到已有的PATH路径中
不是很推荐这种方式,会让文件空间变得拥挤,也不利于后期维护。