美文网首页
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