Linux系统PATH变量配置

时间:2023-03-09 13:10:24
Linux系统PATH变量配置

alias命令用于设置命令的别名,格式为“alias 别名=命令”

例如担心复制文件时误将文件被覆盖,可以执行alias cp=" cp -i",如此一来

每次复制命令都会询问用户是否要覆盖。

unalias命令用于取消命令的别名:格式为"unalias 别名"

查看当前alias设置情况:

[root@localhost testA]# alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
未设置alias cp=" cp -i"时,testA与testB文件夹中同时存在111.txt,但是未提醒用户是否覆盖
[root@localhost testA]# cp .txt ../testB/.txt
[root@localhost testA]# 已设置alias cp =" cp -i"后,开始提示用户是否覆盖
[root@localhost testA]# alias cp=" cp -i"
[root@localhost testA]# cp .txt ../testB/.txt
cp:是否覆盖"../testB/111.txt"? y
[root@localhost testA]#

取消alias中的cp命令:

[root@localhost testA]# unalias cp

linux中万物皆文件,命令也不例外也是文件,那当用户发送一条命令后

都会发生什么事情呢?

步骤一:如果是以绝对路径/输入的命令则直接执行(如执行/bin/ls)
步骤二:检查是否为alias别名命令
步骤三:由bash判断其实内部命令还是外部命令
    内部命令:属于解释器内部的
    外部命令:独立于解释器外的命令文件
步骤四:通过$PATH变量中定义的路径进行命令查找

查看$PATH变量的方法:echo $PATH

[root@localhost ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/netcat/bin:/root/bin

如果想要知道某个命令是内部命令还是外部命令可以执行"type 命令名字"来获取

[root@localhost ~]# type cd
cd 是 shell 内嵌
[root@localhost ~]# type tree
tree 是 /usr/bin/tree
[root@localhost ~]#