20.11.28
bash 的登录与欢迎信息
vim /etc/issue
:在命令行界面本地终端登录时的欢迎语句文件
常用的转义字符
- d 本地端时间的日期
- l 显示第几个终端机的接口;
- m 显示硬件的等级(i386/i486/i586/i686....)
- 显示主机的网络名称
- O 显示 domain name
- 操作系统的版本 (类似 uname-r)
- 显示本地端时间的时间
- s 操作系统的名称
- v 操作系统的版本
vim /etc/issue.net
:远程登陆时显示的欢迎语句文件,不支持转义字符
vim /etc/motd
:用户成功登录系统之后,欢迎语句文件
bash 的环境配置文件
-
登陆方式
login shell
:输入用户的账号与密码,此时取得的 bash 就称为login shellnon-login shell
:以 X window 登陆 Linux 后, 再以 X 的图形化接口启动终端机,此时那个终端接口并没有需要再次的输入账号与密码,那个 bash 的环境就称为 non-login shell -
login shell
读取方式实线的的方向是主线流程,虚线的方向则是被呼叫的配置文件
-
/etc/profile (login shell 才会读):登陆取得 bash 时一定会读取的配置文件
主要配置:
- PATH:会依据 UID 决定 PATH 变量要不要含有 sbin 的系统命令目录;
- MAIL:依据账号配置好使用者的 mailbox 到 /var/spool/mail/账号名;
- USER:根据用户的账号配置此一变量内容;
- HOSTNAME:依据主机的 hostname 命令决定此一变量内容;
- HISTSIZE:历史命令记录笔数。CentOS 5.x 配置为 1000 ;
读取外部数据:
- /etc/inputrc:判断使用者有没有自定义输入的按键功能,如果没有的话, /etc/profile 就会决定配置『INPUTRC=/etc/inputrc』这个变量(此一文件内容为 bash 的热键、[tab]要不要有声音等等的数据)
- /etc/profile.d/*.sh:只要在 /etc/profile.d/ 这个目录内且扩展名为 .sh,并具有r 权限(规范了 bash 操作接口的颜色、 语系、ll 与 ls 命令的命令别名、vi 的命令别名、which 的命令别名等等)
- /etc/sysconfig/i18n:这个文件是由 /etc/profile.d/lang.sh 引入,这也是我们决定 bash 默认使用何种语系的重要配置文件
-
~/.bash_profile (login shell 才会读)
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
其实 bash 的 login shell 配置只会读取上面三个文件的其中一个, 而读取的顺序则是依照上面的顺序
为兼容其他shell 转换过来的使用者的习惯
-
-
non-login shell
读取方式-
~/.bashrc:取得 non-login shell 时,该 bash 配置文件仅会读取 ~/.bashrc
-
~/.bashrc 会调用/etc/bashrc 文件,/etc/bashrc 帮我们的 bash 定义出底下的数据:
- 依据不同的 UID 规范出 umask 的值;
- 依据不同的 UID 规范出提示字符 (就是 PS1 变量);
- 呼叫 /etc/profile.d/*.sh 的配置
/etc/bashrc 是 CentOS 特有的 (其实是 Red Hat 系统特有的)
[root@www ~]# cat ~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' <==使用者的个人配置 alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then <==整体的环境配置 . /etc/bashrc fi
-
source 配置文件档名
:使配置文件立刻生效
范例:将家目录的 ~/.bashrc 的配置读入目前的 bash 环境中
[root@www ~]# source ~/.bashrc <==底下这两个命令是一样的!
[root@www ~]# . ~/.bashrc
其他相关配置文件
- /etc/man.config:规范了使用 man 的时候, man page 的路径到哪里去寻找
- ~/.bash_history:默认的情况下, 我们的历史命令就记录在这里
- ~/.bash_logout:记录了:注销 bash 后,系统会执行完相应操作后才离开