美文网首页
Linux profile、bashrc文件的作用和区别

Linux profile、bashrc文件的作用和区别

作者: 威猛的小老虎i | 来源:发表于2021-01-05 14:30 被阅读0次

最近在复现基于milvus的问答时,遇到了在命令行输入中文导致编码错误的问题,需要修改locale设置,同时记录一下常见配置文件的修改方法。

1. profile文件

1.1 profile文件的作用

profile文件( /etc/profile ) ,是设置系统级别的环境变量和启动程序的,其中的配置会对所有用户生效。当用户登录后,该文件会被执行,除此之外,会从( /etc/profile.d) 目录下的配置文件查找sh配置。

1.2 profile文件中添加环境变量

  • 由于profile文件会对所有的用户生效,因此不建议在profile文件中添加环境变量。
  • 当需要添加环境变量时,按照以下方式添加:
    添加一个HOST的值为 ming.com的环境变量

export HOST=ming.com

添加时,可以为行尾使用 ; ,也可以不使用。一个变量名可以对应多个变量值,多个变量值用 : 分隔。

  • 添加环境变量后,需要重新登陆生效,也可以使用source令配置立即生效:

source /etc/profile

  • 查看是否生效可以使用 echo 测试:

echo $HOST

2. bashrc文件

2.1 bashrc文件的作用

bashrc文件用于配置函数或者别名,其相当于shell的配置文件,bashrc是我用到的最多的配置文件,例如装conda的时候需要激活该文件。

  • bashrc文件有两种级别:系统级别的位于/etc/bashrc(宿主机),/etc/bash.bashrc(docker容器),用户级别的位于~/.bashrc,分别对所有用户和当前用户生效。
  • ~ 指的是当前用户的主目录,假如现在用户是sxe, 则相当于 /home/sxe/.bashrc

2.2 bashrc个性化设置

  • 用户可以在~/.bashrc中进行个性化设置,例如路径、命令别名等。
export name='sxe'
alias ls=sl

2.3 bashrc设置locale

  • 之前在命令行输入中文会报错,需要设置一下locale,具体方式如下:

export LC_ALL="C.UTF-8"

  • 在宿主机或者容器的bashrc文件添加以上命令,C.UTF-8 表示所有编码方式(可以尝试一下zh_CN.UTF-8), LC_ALL 会覆盖其他的设置,最后source 一下文件即可。

3. bash_profile文件

bash_profile只对单一用户有效,文件存储位于~/.bash_profile(宿主机),该文件是一个用户级的设置,可以理解为某一个用户的profile目录下。这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。
和profile文件类似,bash_profile也会在用户登录时生效,也可以用于设置环境变量。但bash_profile只会对当前用户生效。

  • 一般会在bash_profile文件中显示地调用bashrc,用户登录Linux 启动 bash 时会首先读取bash_profile文件,这样bashrc文件也就可以执行了,其中的个性化设置也会相应生效。


    bash_profile文件

例如开机自动运行某个脚本,可以在bashrc文件中添加以下命令:

python /home/sxe/test.py

4.总结

bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile、bash_profile用于交互式login shell。

相关文章

网友评论

      本文标题:Linux profile、bashrc文件的作用和区别

      本文链接:https://www.haomeiwen.com/subject/dfjioktx.html