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)}\[\033[01;32m\][\u\[\033[01;34m\]\[\033[00m\]:\[\033[01;35m\]\w\[\033[01;32m\] \$] '

 

 

每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)、source /etc/profile,就可以立刻加载修改后的设置,使之生效。(也可以重启生效)

 

定制环境变量修改/etc/profile文件,所有用户的shell都有权使用这些环境变量,缺点是可能会给系统带来安全性问题。(修改针对所有的用户的,所有的shell)

修改~/.bashrc文件更为安全,它可以把使用这些环境变量的权限控制到用户级别

在/etc/profile里设置系统环境变量时,路径末尾不能以"/"结尾,否则将导致整个PATH变量出错。

参考来源

上一篇:第02讲:Flink 入门程序 WordCount 和 SQL 实现


下一篇:UK Day29 - 解决每次连接MongoDB需执行source ~/.bash_profile的问题