login shell和non-login shell与bashrc和profile

前言-关于环境变量

使用 echo 查看该 PATH 变量的内容:echo $PATH
在这里插入图片描述
当再终端运行任何命令时,shell就会在这PATH里面查找命令,比如新建了一个sh脚本
在这里插入图片描述
这里直接test.sh,shell就会在环境变量中查找该命令,但是没有找到,因为没有配置到环境变量中。
如果添加到环境变量中(注意,添加到环境变量的是目录,添加到环境变量是单个文件是不行的)
使用下列命令添加到环境变量中

 export PATH=$PATH:/workplace/testShell

在这里插入图片描述
添加单个文件会失败
在这里插入图片描述

一、login shell和non-login shell

用户登录到linxu时输入账号和密码,此时获得的bash就称为login shell,可以通过echo $0查看
,如果此时在本bash环境下使用sh命令新建shell,那么就不是login shell
在这里插入图片描述
直接登录系统,然后打开shell这时候显示的是bash,所以是non-login shell
而如果用xshell或者宝塔登录的 因为都是输入了账号和密码所以是login shell
在这里插入图片描述
xshell和宝塔都是login shell
在这里插入图片描述
在这里插入图片描述

二、交互shell和非交互式shell

交互式shell是每次只执行一行代码的,就是平常一回车一运行的模式
使用echo $-会有i出现
在这里插入图片描述
如果一次能运行多行的代码那就不是交互式shell,比如下面这个脚本,一次能够运行多行
在这里插入图片描述

三、几个文件的作用

1、/etc/profile

用来设置系统环境参数,用于交互式login shell。

2、bashrc

bashrc是环境变量配置文件,用于交互式non-login shell。
有/etc/bashrc和~/.bashrc文件,前者是对所有用户都生效,后者仅对对应用户生效

用法1:设置别名

在这里插入图片描述

用法二:设置命令组合

在这里插入图片描述
在这里插入图片描述
注意:
修改后如果想要立即生效,需要运行source ~/.bashrc

3、~/.bash_profile文件

查看文件内容看到,这个文件还是加载的bashrc文件内容
在这里插入图片描述
区别在于bash_profile只会在交互式login shell才会被读取执行,.bashrc 是启动交互式非登录 Shell 时才被执行的,虽然最后都是执行bashrc文件。
大多数 Linux 发行版都是使用 ~/.profile 而不是 ~/.bash_profile。因为 ~/.profile 文件可以被所有 Shell 读取,而 ~/.bash_ profile 仅能被 Bash Shell 读取。
总结:bash_profile 和 .bashrc 是在调用 Bash 时运行的包含 Shell 命令的文件。.bash_profile 可以在交互式登录 Shell 上被读取和执行,而 .bashrc可以在非登录 Shell 上被读取和执行。

4、各个文件总结

在这里插入图片描述

  • ~/.bash_profile 可以设定本用户专有的路径,环境变量等,它只在登入的时候执行一次。是交互式、login 方式进入 bash 运行的,也就是只有用户登录时才会生效
  • ~/.bashrc 也是某用户专有设定文档,可以设定路径,命令别名,每次 shell script 的执行都会使用它一次,是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行或者每次打开新的 shell 时就会读取该文件。
    在这里插入图片描述
    可以看到最终都会读取当前用户的~/.bashrc

四、添加环境变量

一个变量可以对应多个值,多个值用:进行分割
例如下面导入是PATH=原先值:后添加的值
在这里插入图片描述

1、临时设置
 export PATH=$PATH:/workplace/testShell

如上图所示
立即生效临时改变,当关闭当前shell后会失效

2、修改~/.bashrc文件(建议)

在文件末尾添加一行

 export PATH=$PATH:/workplace/testShell

生效方法:

  1. 重新打开终端(综上可知最后会打开这个配置文件)
  2. 输入“source ~/.bashrc”命令立即生效

对当前用户永久有效

3、修改/etc/profile

也是在最后一行加入,需要系统重启以后生效,这个会影响所有用户

五、总结

1、系统重启会重新读取全局系统配置,这个将应用于交互式和非交互式,然后读取当前用户的bashrrc配置,而交互式非登录也算是进入了,也要加载全局的一些配置即读取/etc/bashrc,最后也会到~ /.bashrc,所以说推荐配置~/.bashrc
2、配置分为临时设置,修改文件设置,修改 ~/.bashrc可以使用“source ~/.bashrc”命令立即生效或者重启终端,修改/etc/profile需要重启系统生效,一个变量可以对应多个值,多个值用:进行分割

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贪睡的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值