配置文件
linux系统普通用户目录(cd ~)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件,
~/.bash_history 记录之前输入的命令
~/.bash_logout 当你退出bash shell时执行的命令
~/.bash_profile 当你登入shell时执行(用户登录时,该文件仅仅执行一次。默认情况下执行用户的~/.bashrc文件)
~/.bashrc 当你登入shell时执行(登录时以及每次打开新的shell时,该文件被读取)包含专用于用户的bash shell的bash信息
~/.bash_profile和~/.bashrc的区别:~/.bash_profile只在会话开始时被读取一次,而~/.bashrc则每次打开新的终端时,都要被读取。
~/.bash_profile 是交互式、login 方式进入 bash 运行的;~/.bashrc 是交互式 non-login 方式进入 bash 运行的。通常二者设置大致相同,所以通常前者会调用后者。
这些文件是每一位用户对终端功能和属性设置,修改~/.bashrc可以改变环境变量PATH、别名alias和提示符。
除了修改~/.bashrc文件外,还可以修改如“/etc/profile”文件【/etc/profile文件为系统的每个用户设置环境信息】、“/etc/bashrc”文件【为每一个运行bash shell的用户执行此文件】及目录“/etc /profile.d”下的文件。
但是修改/etc路径下的配置文件将会应用到整个系统,属于系统级的配置;而修改~/.bashrc则只是限制在用户应用上,属于用户级设置。
修改~/.bashrc,无需root权限,不会影响其他用户。
/etc/profile中设定的变量(全局)可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。
执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个。
如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在 ~/.bash_profile文件中一般会有下面的代码:
1
2
3
|
if [ -f ~/.bashrc ] ; then . . /bashrc fi |
~/.bashrc中,一般还会有以下代码:
1
2
3
|
if [ -f /etc/bashrc ] ; then . /etc/bashrc fi |
所以,~/.bashrc会调用 /etc/bashrc文件。最后,在退出shell时,还会执行 ~/.bash_logout文件。
PATH环境变量修改
PATH变量决定了shell 将到哪些目录中寻找命令或程序。如果要执行的命令的目录在 $PATH 中,您就不必输入这个命令的完整路径,直接输入命令就可以了。一些第三方软件没有将可执行文件放到 Linux 的标准目录中。因此,将这些非标准的安装目录添加到 $PATH 是一种解决的办法。
作为惯例,所有环境变量名都是大写。(Linux 区分大小写)
如:在文件/etc/profile中新增:
1
2
|
export JAVA_HOME= /opt/java/jdk export JRE_HOME=${JAVA_HOME} /jre |
alias别名
一般在.bashrc或/etc/bashrc文件里有定义alias的几行
1
2
3
|
alias rm =’ rm -i’ alias cp =’ cp -i’ alias mv =’ mv -i’ |
可以在该配置文件中添加自己风格的别名,如
1
2
|
alias cls= clear alias ls = '/bin/ls -F --color=tty --show-control-chars' |
也许你用惯了top,我们也可以用top来打开htop。
编辑/root/.bashrc文件,添加如下代码
1
2
3
|
if [ -f /usr/local/bin/htop ]; then alias top =’ /usr/local/bin/htop ’ fi |
提示符
1
|
echo $PS1 #显示当前的提示符设定 |
可以通过编辑各自home目录下的.bash_profile和.bashrc来设置个性化提示符。(设置格式可查man bash手册中的PROMPTING部分)
例如PS1=”[u: w]$ ” ,提示符就变成:[root:/usr/bin]$
1
|
PS1= '${debian_chroot:+($debian_chroot)}[ 33[01;32m][u[ 33[01;34m][ 33[00m]:[ 33[01;35m]w[ 33[01;32m] $] ' |
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)、source /etc/profile,就可以立刻加载修改后的设置,使之生效。(也可以重启生效)
定制环境变量修改/etc/profile文件,所有用户的shell都有权使用这些环境变量,缺点是可能会给系统带来安全性问题。(修改针对所有的用户的,所有的shell)
修改~/.bashrc文件更为安全,它可以把使用这些环境变量的权限控制到用户级别
在/etc/profile里设置系统环境变量时,路径末尾不能以"/"结尾,否则将导致整个PATH变量出错。