Linux Shell基础 环境变量配置文件
Posted lizhouwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Shell基础 环境变量配置文件相关的知识,希望对你有一定的参考价值。
source命令:使环境变量配置文件强制生效
source 命令会强制执行脚本中的全部命令,而忽略脚本文件的权限。该命令主要用于让重新配置的环境变量配置文件强制生效。source 命令格式如下:
[[email protected] ~]# source 配置文件 或 [[email protected] ~]#.配置文件
"."就是 source 命令
环境变量配置文件
登录时生效的环境变量配置文件
在 Linux 系统登录时主要生效的环境变量配置文件有以下 5 个:- /etc/profile。
- /etc/profile.d/*.sh。
- ~/.bash_profile。
- -/.bashrc。
- /etc/bashrc。
- -USER 变量:根据登录的用户给这个变量赋值(就是让 USER 变量的值是当前用户)。
- -LOGNAME 变量:根据 USER 变量的值给这个变量赋值。
- -MAIL 变量:根据登录的用户来定义用户的邮箱为 /var/spool/mail/ 用户名。
- -PATH 变量:根据登录用户的 UID 是否为 0,判断 PATH 变量是否包含 /sbin、/usr/sbin 和 /usr/local/sbin 这三个系统命令目录。
- -HOSTNAME 变量:根据主机名给这个变量赋值。
- -HISTSIZE 变量:定义历史命令的保存条数。
- -umask:定义 umask 默认权限。注意:/etc/profile 文件中的 umask 权限是在"有用户登录过程(输入了用户名和密码)"时才会生效的。
- -调用 /etc/profile.d/*.sh文件,也就是调用 /etc/porfile.d/ 目录下所有以 .sh 结尾的文件。
3. 由 /etc/profile 文件调用 ~/.bash_profile文件。~/.bash_profile文件主要实现了两个功能:
1. 调用了 ~/.bashrc 文件。
2. 在 PATH 变量后面加入了":$HOME/bin"这个目录。也就是说,如果我们在自己的家目录中建立了 bin 目录,然后把自己的脚本放入"~/bin"目录中,就可以直接执行脚本,而不用通过目录执行了。
4. 由 ~/.bash_profile 文件调用 -/.bashrc 文件。在 -/.bashrc 文件中主要实现了两个功能:
1. 定义默认别名。笔者把自己定义的别名也放入了这个文件。
2. 调用/etc/bashrc。
5. 由 ~/.bashrc 文件调用 /etc/bashrc 文件。在 /etc/bashrc 文件中主要定义了如下内容。
但是如果我们误删除了这些环境变量,比如删除了 /etc/bashrc 或 ~/.bashrc 文件,那么这些文件中的配置就会失效(~/.bashrc 文件会调用 /etc/bashrc 文件),我们的提示符就会变成下面这样:
5. 由 ~/.bashrc 文件调用 /etc/bashrc 文件。在 /etc/bashrc 文件中主要定义了如下内容。
- PS1 变量:也就是用户的提示符。如果我们想要永久修示符,就要在这个文件中修改。
- umask:定义 umask 默认权限。这个文件中定义的 umask 是针对"没有用户登录过程(不需要输入用户名和密码,比如从一个终端切换到另一个终端,或进入子Shell)"时生效的。如果是"有用户登录过程",则 /etc/profile 文件中的 umask 生效。
- PATH 变量:会给 PATH 变量追加值,当然也是在"没有用户登陆过程"时才调用的。
- 调用 /etc/profile.d/*.sh 文件,这也是在"没有用户登录过程"时才调用的。在"有用户登录过程"时,/etc/profile_d/*.sh 文件已经被 /etc/profile 文件调用过了。
但是如果我们误删除了这些环境变量,比如删除了 /etc/bashrc 或 ~/.bashrc 文件,那么这些文件中的配置就会失效(~/.bashrc 文件会调用 /etc/bashrc 文件),我们的提示符就会变成下面这样:
-bash-4.1#
因为在 /etc/bashrc 文件中会设定 PS1 命令提示符,如果这个文件不存在或没有被调用,那么提示符就会是 Bash 最基本的样子。注销时生效的环境变量配置文件
在用户退出登录时,只会调用一个环境变量配置文件,就是 ~/.bash_logout。这个文件默认没有写入任何内容,但是如果我们希望在退出登录时执行一些操作,比如清除历史命令、备份某些数据,就可以把命令写入这个文件。其他的环境变量配置文件
~/bash_history 文件是历史命令保存文件。登陆信息及修改
[[email protected] /]# cat /etc/issue S Kernel on an m
系统在每次登录时,会依赖这个文件的配置显示欢迎界面。在 /etc/issue 文件中允许使用转义符调用相应信息,其支持的转义符可以通过 man agetty 命令查询,如表 1 所示。
转义符 | 作 用 |
d | 显示当前系统日期 |
s | 显示操作系统名称 |
1 | 显示登录的终端号,这个转义符比较常用 |
m | 显示硬件体系结构,如i386、i686等 |
显示主机名 | |
o | 显示域名 |
显示内核版本 | |
显示当前系统时间 | |
u | 显示当前登录用户的序列号 |
/etc/issue.net
配置 /etc/issue 文件会在本地终端登录时显示欢迎信息,如果远程登录(如 ssh 远程登录,或 Telnet 远程登录)需要显示欢迎信息,则需要配置 /etc/issue.net 文件。使用这个文件时有两点需要注意:- 在 /etc/issue 文件中支持的转义符在 /etc/issue.net 文件中不能使用。
- ssh 远程登录是否显示 /etc/issue.net 文件中的欢迎信息,是由 ssh 的配置文件决定的。
[[email protected] ~]# cat /etc/ssh/sshd_config ...省略部分输出... # no default banner path #Banner none Banner /etc/issue.net …省略部分输出…
这样,在 ssh 远程登录时,也可以显示欢迎信息,只是不能再识别"d"和"l"等信息了。
/etc/motd
/etc/motd 文件中也有欢迎信息的,这个文件和 /etc/issue 及 /etc/issue.net 文件的区别是:/etc/issue 及 /etc/issue.net 文件是在用户登录之前显示欢迎信息的;而 /etc/motd 文件是在用户输入用户名和密码,正确登录之后显示欢迎信息的。/etc/motd 文件中的欢迎信息,不论是本地登录,还是远程登录,都可以显示。自定义快捷键
[[email protected] /]# stty -a speed 38400 baud; rows 24; columns 80; line = 0; intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
修改已有快捷键,命令如下:
[[email protected] ~] # stty 关键字 快捷键 例如: [root01ocalhost ~]# stty intr ^p #定义Ctrl +P快提键为强制中止,"^"字符只需手工输入即可 [[email protected] ~】# stty -a speed 38400 baud; rows 21; columns 104; line = 0; intr = ^P; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
强制中止的快提键变成了Ctrl+P
以上是关于Linux Shell基础 环境变量配置文件的主要内容,如果未能解决你的问题,请参考以下文章