Shell中的命令別名、命令歷史和命令替換

命令別名

可以使用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'

可以看到,lsls --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í)行的命令。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容