命令別名
可以使用alias命令查看和修改命令別名。
下面是一個(gè)查看系統(tǒng)中命令別名的示例:
$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
可以看到,ls是ls --color=auto的別名,當(dāng)鍵入ls并運(yùn)行時(shí),實(shí)際上運(yùn)行的是ls --color=auto命令。
用戶也可以自行創(chuàng)建或修改別名:
$ alias dt='date -d today +"%Y-%m-%d %H:%M:%S"'
$ dt
2018-06-30 12:15:37
上面的例子將dt作為date -d today +"%Y-%m-%d %H:%M:%S"的別名,當(dāng)運(yùn)行前者時(shí),實(shí)際上運(yùn)行的是后者。
用戶還可以刪除別名:
$ unalias dt
上面的命令刪除了dt別名。
命令歷史
在Shell提示符后按<Up>和<Down>(上箭頭和下箭頭)按鍵,可以翻出上一條和下一條命令,這是命令歷史的功能。
使用history查看命令歷史:
$ history
# 省略
634 ls
635 date
636 history
每一條命令都被賦予一個(gè)編號(hào),使用!編號(hào)即可運(yùn)行該編號(hào)的命令:
$ !635
date
Sat Jun 30 12:21:11 CST 2018
!!可以運(yùn)行上一條命令:
$ !!
date
Sat Jun 30 12:21:42 CST 2018
還可以對(duì)歷史命令進(jìn)行部分替換并執(zhí)行,例如使用history查看時(shí)有一條這樣的命令:
640 ls ~
使用!number:s/pattern/replacement/將編號(hào)為number的命令中的pattern替換為replacement,比如將上面命令中的~替換為.,即執(zhí)行ls .,可使用下面的命令:
$ !640:s/~/./
命令替換
使用`完成將命令嵌入到另一條命令:
$ echo "Time is `date`"
Time is Sat Jun 30 12:31:28 CST 2018
事實(shí)上,Shell會(huì)首先執(zhí)行date命令,得到Sat Jun 30 12:31:28 CST 2018,之后再執(zhí)行echo "Time is Sat Jun 30 12:31:28 CST 2018",這樣就實(shí)現(xiàn)了將date嵌入到echo中執(zhí)行的命令。