Linux下配置文件修改PATH环境变量、alias别名、个性化提示符,env

Linux下配置文件修改PATH环境变量、alias别名、个性化提示符,env

配置文件

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变量出错。

参考来源