查看环境变量
env
env为environment的缩写,列出所有的环境变量。
set
set查看所有的变量(包含环境变量和自定义变量),其中自定义变量主要为一些与bash接口有空的变量以及用户自定义的变量。其中重要的几个如下:
PS1='\h:\W \u\$ ' # 命令提示符号
\h: 主机名在第一个小数点之前的名字
\W: 利用basename函数获取的工作目录名称
\u: 目前用户的账号名称
export
export也可以把所有的环境变量显示出来,但是它还有一个重要的作用就是把自定义变量转换为环境变量,这有什么用呢?
用处大着呢,主要用户解决子进程继承父进程里面自定义的变量内容,避免重复创建。我们的bash其实就是系统中的一个进程,当我们通过开启其他程序,其实是开启一个该进程的一个子进程,这个子进程会继承父进程中所有的环境变量,但不会继承自定义变量。为了解决这个问题,才有了export命令,执行该命令即可把父进程中的自定义变量转换为环境变量,这样子进程就可以直接使用这些变量而不用额外申明定义了。
与之相对就是通过declare
卸载环境变量为自定义变量。
note: 在bash定义的别名,变量等信息若不保存到配置文件中,则会在该bash被注销后失效。
常见的环境变量
PATH
PATH为执行文件查找的路径,它一般用于执行命令指示可执行文件的查找范围。
echo $PATH,可以打印当前shell的可查找的范围:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
其中各个目录用:分割
如果在PATH定义的目录中含有多个名字相同的可执行文件,那么先查询到的同名命令先被执行。
实战
为mac添加ll
命令
经常使用Linux 的小伙伴肯定比较喜欢使用ll
这个命令来显示某个文件包含的所有的文件信息,但是在mac中没有预设这个别名命令,所以需要手动设置。
通过alias 命令即可为目标命令创建别名。这里的操作是:
alias ll='ls -alF'
这样定义后,该别名命令会在本次bash注销后失效,所以我们需要写入到配置文件中方便每次打开shell时都能使用该别名命令。bash shell会在启动时依次读取全局配置文件和用户配置文件,其中全局配置文件是为本机的所有的用户服务的,一般不要轻易修改。此类配置文件一般放在/etc/
下面,具体名字由不同的distribution决定,在我的mac里是:/etc/bashrc:/etc/bashrc_Apple_Terminal
。而用户配置文件则是每个使用该机器的用户自己再量身打造的配置,此类配置文件放在用户主目录下,一般为:~/.bash_profile
。
那么这里我们在自己的目录下的配置文件中添加ll
别名设置。
cd
vim .bash_profile
alias ll='ls -alF'
source .bash_profile
其中,source
是加载配置文件,否则需要注销bash, 重新开启才能生效。
效果图如下: