misty's technology stack

一天不折腾, 一天没长进.

Shell编程之环境变量配置文件

变量类型

  • 用户自定义变量

  • 环境变量

  • 预定义变量

  • 位置参数变量

环境变量的作用定义每个用户的操作环境

source命令

  • source [配置文件] 或者 ./配置文件

  • 修改配置文件后必须注销重新登录才能生效,使用source命令可以不用登录

环境变量配置文件简介

  • 环境变量配置文件中主要是定义对系统操作环境生效的系统默认环境变量,如path等

常见环境变量文件

  • 用户登录环境变量加载顺序
    《Shell编程之环境变量配置文件》

开机登录自动加载环境变量配置文件,需要注意系统变量与用户变量(配置在用户家目录的环境变量配置文件)

  • /etc/profile

    • USER变量
    • LOGNAME变量
    • MAIL变量
    • PATH变量
    • HOSTNAME变量
    • HISTSIZE变量
    • UMASK
    • 调用/etc/profile.d/*.sh 文件
  • /etc/profile.d/*.sh

  • ~/.bash_profile

    • 调用了~/.bashrc文件
    • 在PATH变量后面加入了:$[HOME]/bin目录
  • ~/.bashrc

    • 定义别名
    • 调用/etc/bashrc
  • /etc/bashrc

    • PS1变量,定义起始符
    • umask
    • PATH变量
    • 调用/etc/profile.d/*.sh文件

注意有无登录shell的调用顺序是不一样的;当某个文件被删除,那么后面的调用就会被终止,出现形似bash5.2#这样的起始符(系统默认的单用户模式),修复的话直接找rpm包copy对应的文件或者其他Linux系统中copy都可以

其他配置文件

  • 注销时生效的环境变量配置文件~/.bash_logout

    • 例如history -c添加进去会在每次退出的时候清空历史命令,一般其实也不需要,只有在命令中输入铭文的用户名和密码才建议清除历史命令
  • ~/.bash_history历史命令记录,之前登录留下的记录,和使用history命令查看可能有点区别,当正常退出的时候会将内存中的history命令写入到历史命令的配置文件

    • /etc/profileHISTORY_SIZE修改最大历史记录的条数

Shell登录信息

  • 本地终端欢迎信息/etc/issue

    • 支持转义字符,显示终端号比较常用\l,用于查看当前登录的终端号便于切换
      《Shell编程之环境变量配置文件》
  • 远程终端的欢迎信息:/etc/issue.net

    • 转移符在/etc/issue.net文件中不能使用
    • 是否显示欢迎信息,由ssh的配置文件决定,/etc/ssh/sshd_config加入Banner /etc/issue.net 行才能显示(记得重启ssh服务)
默认是 #Banner none
修改成 Banner /etc/issue.net

然后重启ssh服务 service sshd restart

登陆后欢迎信息: /etc/motd(推荐)

  • 不管是本地登录还是远程登录都可以显示此欢迎信息,建议写成警告信息

umask权限

  • 查看系统默认权限

  • 注意:

    • 文件最高的权限为666(系统认为执行权限为最高权限,默认创建的文件不应该拥有执行权限)
    • 目录最高的权限为777
    • 权限不能使用数字进行换算,而必须使用字母
      • 如果使用数字相见换算那么 文件最高权限666 - 033(umask值) = 633 显然不合理
      • 666 (rw-rw-rw-) – 022 (—-w–w-) = rw-r–r– (644);
    • umask定义的权限,是系统默认权限中准备丢弃的权限
      • 文件(或者目录)的默认就是 创建权限是最高权限 去掉umask中重合的部分

其他注意点

  • 变量的叠加
PATH=${PATH}:$[HOME]/bin
export PATH
  • 判断文件是否存在
if [-f ~/bashrc ];then
    ./bashrc
fi
点赞
  1. misty说道:

    可以markdown?

    • 可以
    • 不可以

发表评论

电子邮件地址不会被公开。 必填项已用*标注