24. $ 也是变量。
echo $
解释:$ 也是变量代表当前SHELL执行的PID(Process ID)。通过 echo $$ 既可以看到或者用 ps -e | grep bash。
25. ? 也是变量。
username=John
echo $?
0
12name=Vasdf
echo $?
130
解释:? 变量的值是上一个指令的返回值。例如上一个指令错误的时候 echo $? 的返回值就不再是0了。
26. locale 查看 Linux语系。
locale -a
解释:locale可以查看计算机可以使用的语系。
27. /etc/issue 和 /etc/issue.net
解释:如同PS1一样,这些文档包含了登录时,计算机出现的欢迎讯息。/etc/issue.net 是在telnet远程登录到计算机的时候,出现的欢迎讯息。最后,他们都有特殊的字符,如下列表。
issue 內的各代碼意義 |
\d 本地端時間的日期; \l 顯示第幾個終端機介面; \m 顯示硬體的等級 (i386/i486/i586/i686...); \n 顯示主機的網路名稱; \o 顯示 domain name; \r 作業系統的版本 (相當於 uname -r) \t 顯示本地端時間的時間; \s 作業系統的名稱; \v 作業系統的版本。 |
28. /etc/motd
解释:/etc/motd文档里面包含了login以后,屏幕上显示的讯息。而且不能使用像 /etc/issue 和 /etc/issue.net 里如上所使用的变量。
29. login 和 none-login shell
解释:login shell 是需要完整登录的流程,例如从tty1~tty6 登入。none-login shell 是不需要登入的bash界面。例如在图形化界面下打开一个shell窗口。不论那种,如果想把自己定义的变量变成开机以后自动装载的环境变量。就必须把变量的设定写入文档内。如 /etc/profile, ~/.bash_profile 等。
30. /etc/profile ~/.bash_profile (这两个都只有 login shell 才会读取)
解释:不论 ~/.bash_profile、~/.bash_login 或者 ~/.profile 都是属于使用者个人设定。而 /etc/profile 是每个服务器使用者登录取得bash时一定会读取的设定档。不经如此。
/etc/profile 还会呼叫外部的设定资料:
/etc/inputrc 此文档内容为 bash的热键,[tab] 要不要有声音等等。关于shell输入的参数。
/etc/profile.d/*.sh 凡是profile.d 目录所有以 sh 结尾的脚本都会被呼叫执行。
/etc/sysconfig/i18n 这个是 /etc/profile.d/lang.sh 呼叫进来的。用 locale 查看的 bash 所使用的语系。
读取的流程图:
实线是主线流程,虚线是呼叫设定。同时,从这副图可以看到,/etc/bashrc 同样也会呼叫 /etc/profile.d 目录下的 sh 脚本。
31. source 和 “.”
cat ~/.bash_profile | grep bashrc
解释:在执行上一个命令的时候,我们会发现出现这样的两行:
·if [ -f ~/.bashrc ]; then
. ~/.bashrc
这里,”.“ 和 source 是一样的。都是把文档里的设定读到当前的 shell 环境中去。
32. ~/.bashrc (non-login shell 会读取)
解释:上一副只是 login shell 读取文档的流程图。 在桌面环境下,打开一个shell,其只会读取 home目录下的 .bashrc 设定文档。然而,~/.bashrc 设定文档一般会招呼读取 /etc/bashrc 中的设定。 这样来看, /etc/bashrc 和 /etc/profile 是对等的。只是一个服务于 login shell,而另一个服务于 non-login shell。如果你想做一些个人的设定,把设定的内容放在 ~/.bash_prfile 里. ~/.bashrc 行的下面就可以了。
下次有机会对这些llinux bash启动脚本做详细的分析!
33. ~/.bash_logout
解释:这个文档里记录了用户登出后,系统为用户还需完成的任务。比如,清空暂时文件,备份文件等。
资料:
http://linux.vbird.org/linux_basic/0320bash/csh/