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 111.txt ../testB/111.txt [root@localhost testA]# 已设置alias cp =" cp -i"后,开始提示用户是否覆盖 [root@localhost testA]# alias cp=" cp -i" [root@localhost testA]# cp 111.txt ../testB/111.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 ~]#