记得我们上头谈过
[tab]
的妙用吧?除了命令补齐、档名补齐之外,还可以½行指令的选项
/
参数
补齐功能!那就是从这个目录里面找到相对应的指令来处理的!
其实这个目录底下的内容是由
/etc/profile.d/bash_completion.sh
这个文件载入的啦!
反正你只要记得,
bash
的
login shell
情况下所读取的整体环境配置文件其实只有
/etc/profile
,但是
/etc/profile
还会呼½出其他的配置文件,所以让我们的
bash
操作½口变的非常的友善啦!
½下来,
让我们来瞧瞧,那么个人偏好的配置文件又是怎么回事?
.
~/.bash_profile (login shell
才会读
)
bash
在读完了整体环境设定的
/etc/profile
并½此呼½其他配置文件后,½下来则是会读取使用者的
个人配置文件。
在
login shell
的
bash
环境中,所读取的个人偏好配置文件其实主要有三个,依序
分别是:
1.
~/.bash_profile
2.
~/.bash_login
3.
~/.profile
其实
bash
的
login shell
设定只会读取上面三个文件的其中一个,
而读取的顺序则是依照上面的顺
序。
也就是说,如果
~/.bash_profile
存在,那么其他两个文件不论有无存在,都不会被读取。
如果
~/.bash_profile
不存在才会去读取
~/.bash_login
,而前两者都不存在才会读取
~/.profile
的意思。
会
有这么多的文件,其实是因应其他
shell
转换过来的使用者的习惯而已。
先让我们来看一下
dmtsai
的
/home/dmtsai/.bash_profile
的内容是怎样呢?
[dmtsai@study ~]$
cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [
-
f ~/.bashrc ]; then
<==
底下
这
三行在判
断
并
读
取
~/.bashrc
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
<==
底下
这
几行在
处
理
个
人化
设
定
export PATH
这个文件内有设定
PATH
这个变量喔!而且还使用了
export
½
PATH
变成环境变量呢!
由于
PATH
在
/etc/profile
当中已经设定过,所以在这里就以累加的方式增加用户家目录下的
~/bin/
为额
外的执行文件放置目录。这也就是说,你可以½自己½立的执行档放置到你自己家目录下的
~/bin/
目
录啦!
那就可以直½执行该执行档而不需要使用绝对
/
相对路径来执行该文件。
这个文件的内容比½有趣的地方在于
if ... then ...
那一段!那一段程序代码我们会在
第十二章
shell
script
谈到,假设你现在是看不懂的。
该段的内容指的是『
判断家目录下的
~/.bashrc
存在否,若存
在则读入
~/.bashrc
的设定
』。
bash
配置文件的读入方式比½有趣,主要是透过一个指令『
source
』
来读取的!
也就是说
~/.bash_profile
其实会再呼½
~/.bashrc
的设定内容喔!最后,我们来看看整
个
login shell
的读取流程: