操作系统:centos8
1、PATH变量
(1) alias
alias命令用于设置命令的别名:
$ alias 别名=命令
unalias命令用于取消命令的别名:
$ unalias 别名
例如,
如果担心复制文件是误将文件覆盖,那么执行 $ alias cp="cp -i"
则每次覆盖都会询问用户。
也可以取消cp命令的别名$ unalias cp
。
可以查看所有的alias别名$ alias
ps:alias设置别名只在当前终端生效,若要使它永久生效,需要写入 /etc/profile 或 ~/.bashrc 文件内,然后source一下
(2) 命令文件
在linux中所有的一切都是文件,命令文件也不例外。那么当用户执行了一条 "ls " 命令后发生了什么事情?
- 如果是以绝对或相对路径输入的命令则直接执行(如执行/bin/ls)。
- 检查是否为alias别名命令。
- 由bash判断是“内部命令”还是“外部命令”。(内部命令是属于解释器内部的,外部命令是独立于解释器之外的命令文件)。
- 通过 $PATH 变量中定义的路径进行命令查找。
(3) type
如何区分“内部命令”和“外部命令”?
$ type 命令名称
例如,查看echo命令:
$ type echo
echo 是 shell 内建
发现echo是bash解释器内部的命令。
如果我们禁用该内部命令,再用type查看:
$ enable -n echo
$ type echo
echo 是 /usr/bin/echo
发现linux系统还自带了一个echo的命令文件,也是外部命令。
(4) $PATH
查看$PATH变量的方法:
$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/local/go/bin:/home/gopath/bin
$PATH变量是“解释器的助手”,它负责告诉bash用户要执行的命令可能存放再哪里,目录之间用冒号“:”隔开,bash在这些目录里寻找命令文件。
为变量增加新的值:
$ PATH = $PATH:/root/bin
$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/local/go/bin:/home/gopath/bin:/root/bin
不过这种更改只对当前用户和当前终端生效,如果切换用户或者切换终端再查看$PATH变量,会发现还是原来的值。
如果要对所有用户生效则需要在 /etc/profile 配置文件中添加export 变量名=变量值
,我们之前在配置golang环境变量时就是这么做的。
2、其他环境变量
在linux系统中还有许多重要的环境变量,我们可以用 $ env
命令查看到它们。
以下几个是我们应该知道的环境变量:
变量名称 | 作用 |
---|---|
HOME | 用户的主目录 |
SHELL | 当前的shell是哪个程序 |
HISTSIZE | 历史命令记录条数 |
PATH | 在路径中的目录查找执行文件 |