[Shell]Bash变量:环境变量的配置文件和登录信息

Posted 王小麦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Shell]Bash变量:环境变量的配置文件和登录信息相关的知识,希望对你有一定的参考价值。

只有把环境变量放入配置文件中,才能每次开机自动生效。source命令:让配置文件直接生效,而不用注销或重新登录。

 

  source 配置文件  或者  . 配置文件(等同于 source 配置文件)

 

【系统中五类环境变量配置文件】

  /etc/profile

  /etc/profile.d/*.sh

  ~/.bash_profile

  ~/.bashrc

  /etc/bashrc

( etc目录内环境变量配置文件对所有用户有效,~开头的只对当前用户有效 )

 

【配置文件的执行流程】

  /etc/profile ------> ~/.bash_profile ------> ~/.bash_rc ------> /etc/bashrc ------- 命令提示符

    |                                   |

    |--------------> /etc/profile.d/*.sh(加载这里面的所有脚本) <--------|

              |

              |

           /etc/profile.d/lang.sh -----> /etc/locale.conf( LANG="en_US.UTF-8" )

 

 

  第一条路: 

    /etc/profile -> /etc/profile.d/*.sh ->

 

  第二条路:

    vi ~/.bash_profile

技术分享图片
# .bash_profile

# Get the aliases and functions ( 如果家目录下有.bashrc, 则执行 )
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin ( 环境变量追加家目录下的bin目录,我这里的$HOME是 /home/weichen )

export PATH ( 设为环境变量 )
技术分享图片

    如果想把某个目录作为系统默认搜索命令的路径,并永久生效,就可以写在这个配置文件中。

 

    vi ~/.bashrc

技术分享图片
# .bashrc

# Source global definitions  ( 如果有/etc/bashrc 文件,则执行 )
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# Uncomment the following line if you don‘t like systemctl‘s auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions  ( 如果需要定义系统命令别名,可以写在这个配置文件 )

alias vi=vim
alias rm=‘rm -i‘
alias cp=‘cp -i‘
alias mv=‘mv -i‘
技术分享图片

 

    vi /etc/bashrc

定义PS1变量
umask
PATH变量
调用/etc/profile.d/*.sh文件

(此文件仅针对 no login shell)

 

【总结】

  想让配置永久生效,可以写在上面的任意一个配置文件中,但要注意:是对所有用户生效还是当前用户;后面的文件配置内容将覆盖前面的,除非使用变量叠加。

 

【其它配置文件和登录信息】

  ~/.bash_logout

  默认是空的,如果想让系统注销时执行一些命令,可以写在这个配置文件中。

 

  ~/.bash_history

  历史命令的保存文件,只有 history -w 或者 注销登录 才会写到文件中,是系统排错时的重要依据,但是在设置密码后要清空历史命令。

 

  Shell登录信息:

  1. 本地终端登录信息:/etc/issue

    \d        显示当前系统日期

    \s        显示操作系统名称

    \l         显示登录的终端号,这个比较常用

    \m       显示硬件体系结构,如i386、i686等

    \n        显示主机名

    \o        显示域名

      \r         显示内核版本

    \t         显示当前系统时间

    \u         显示当前登录用户的序列号

 

  2. 远程终端登录信息:/etc/issue.net

      上面的转义符在/etc/issue.net文件中不能使用

      是否显示此登录信息,由ssh的配置文件/etc/ssh/sshd_config决定,加入“ Banner /etc/issue.net ” 行才能显示(记得重启SSH服务) 

技术分享图片
编辑:
vi /etc/ssh/sshd_config

加入:
#Banner none
Banner /etc/issue.net

重启:
service sshd restart
技术分享图片

 

  3. 登录后欢迎信息:/etc/motd

    不管是本地登录还是远程登录,都可以显示此欢迎信息。

以上是关于[Shell]Bash变量:环境变量的配置文件和登录信息的主要内容,如果未能解决你的问题,请参考以下文章

bash的环境配置文件(系统开机加载文件变量的方式)

ReactNative进阶(四十三):Mac 通过 .bash_profile 文件配置环境变量

深入理解 shell/bash

深入理解 shell/bash

Linux Shell基础 - Bash变量 - 环境变量 - 位置参数变量 - 预定义变量

管道符和作业控制 shell变量 环境变量配置文件