关于profile、bashrc、~/.bash_profile的一些理解

今天看视频讲的几个系统配置文件看得一脸懵逼,然后我看了些博客,觉得这还是留到系统的启动再详细了解吧,大概说说shell的交互式和登录式来引出profile和bashrc。

简单说交互式就是给你命令提示符让你可以随时输命令,像使用xshell这种远程工具连接上的,还有带图形界面的系统提供的伪终端terminal,以及在服务器终端使用ctrl+alt+fn切换的都是交互式shell,

非交互式就是你写的.sh结尾的shell脚本文件,执行过程中你除了输入参数以外并不能像上述终端一样交互式地输入shell命令让它执行。有一个简单的判断标准就是PS1变量的值是不是空值,非空就是交互式,空就是非交互式。

登陆式的判断只需要通过一条命令shopt login_shell,返回的结果是on表示登陆式,为off表示非登陆式。大部分情况都是登录式的,这里说两个非登录式的启动方式,执行bash命令时默认是非登录式的,ssh执行远程命令也是非登录式的,在图形界面打开的terminal也是非登录式的。

说完了这些,来说说profile和bashrc两个文件,profile是指系统用户一旦登录就执行的文件,且只执行一次,bashrc则是每次打开一个bash就会执行一次,不管是否登录,所以修改profile文件需要重启系统或者使用source命令来更新系统配置环境,而修改bashrc文件只用新打开一个bash就执行了更改。

猜你喜欢

转载自www.cnblogs.com/Clownly/p/12078626.html