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 ~]#
?