中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Bash中的history命令怎么用

發布時間:2021-10-25 15:18:04 來源:億速云 閱讀:236 作者:小新 欄目:系統運維

小編給大家分享一下Bash中的history命令怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

history 是內置的命令

history 命令與許多其他的命令不同。你可能習慣于命令都作為可執行文件放置在常見的系統級的位置,例如 /usr/bin,/usr/local/bin  或 ?/ bin。但是,內置的 history 命令并不在你的環境變量 PATH 保存的路徑中的。

實際上,history 命令并沒有保存在物理位置中:

$ which history  which: no history in [PATH]

history 其實是 Shell 本身的一個內置函數:

$ type history history is a shell builtin $ help history history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]  Display or manipulate the history list. [...]

由于 history 是 Shell 的內置函數,所以每種 Shell 的 history 函數都是獨一無二的。因此,你在 Bash  中能使用的功能可能無法在 Tcsh,Fish 或 Dash 中使用,同樣的,在 Tcsh,Fish 或 Dash 中能使用的功能也可能無法在 Bash  中使用。

查看你的 Bash 命令歷史記錄

history 命令最基本,最頻繁的用法就是查看你的 Shell 會話的命令歷史記錄:

$ echo "hello" hello $ echo "world" world $ history   1  echo "hello"   2  echo "world"   3  history

事件提示符

事件提示符 (!) 是按事件搜索歷史記錄的。這里的事件,指的是每一條記錄在歷史記錄里的命令。換句話說,它就是一行命令,并被數字索引標記著以供引用。

要重新運行歷史記錄中的一個命令,用 ! 直接加上 (無空格) 你想要運行的命令前面的索引數字即可。例如,假設歷史記錄中的第一條指令是 echo hello  ,然后你想重新運行它:

$ !1 echo "hello" hello

你還可以通過從歷史記錄中的當前位置開始提供負數的行來使用相對定位。例如,返回歷史記錄中倒數第3條命令:

$ echo "alvin" alvin $ echo "hello" hello $ echo "world" world $ !-3 echo "alvin" alvin

如果你只想返回上一條命令,你可以使用簡寫 !! 來替代 !-1。這整整節省了一次按鍵的時間!!!

$ echo "alvin" alvin $ !! echo "alvin" alvin

字符串搜索

你也可以通過特定的字符串來搜索歷史記錄中的命令并運行它。

若是想要搜索以特定字符串開頭的命令,就用 ! 直接加上 (無空格) 你想要搜索的字符串:

$ echo "alvin" alvin $ true $ false $ !echo echo "alvin" alvin

你還可以搜索在任意位置包含特定字符串的命令。要做到這點,你只需要用 ! 直接加上前后兩端都被 ? 包圍的特定字符串即可,像這樣:

$ echo "alvin" alvin $ true $ false $ !?alvin? echo "alvin" alvin

如果你知道你想要搜索的字符串在命令的最后面,那就可以省略字符串后面的 ?,像這樣:

$ echo alvin alvin $ !?alvin echo alvin alvin

值得注意的是,若是歷史記錄中包含目標字符串的命令不止一條,則它只會執行符合條件的命令中最后的一條:

$ echo "hello world" hello world $ echo "hello alvin" hello alvin $ !?hello? echo "hello alvin" hello alvin

字符串替換

你可以搜索一個特定的字符串并用新字符串替換它,從而更改命令:

$ echo "hello" hello $ echo "world" world $ ^hello^alvin echo "alvin" alvin

但是它只能替換第一次出現的目標字符串,若是命令中出現兩次目標字符串,則只有第一次出現的會被替換,像這樣:

$ echo "hello hello" hello hello $ ^hello^alvin echo "alvin hello" alvin hello

與字符串搜索一樣,當歷史記錄中包含目標字符串的命令不止一條時,只替換并執行最后一條:

$ echo "hello world" hello world $ echo "hello" hello $ ^hello^alvin echo "alvin" alvin

充分利用 history 命令

實際上,Bash 的 history 命令的功能遠不止本文所提到的,但這是你習慣使用 history 命令的一個很好的開始,而不僅僅是利用 history  來查看歷史記錄。要經常使用 history 命令,看看你只利用 history 命令而不輸入具體的指令能完成多少事情,你會被驚艷到的。

以上是“Bash中的history命令怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岱山县| 深水埗区| 阿巴嘎旗| 伊川县| 祁门县| 河西区| 邳州市| 秀山| 古蔺县| 舒城县| 湟中县| 东山县| 民丰县| 铁岭县| 麻江县| 乌什县| 北安市| 于都县| 马山县| 潞西市| 区。| 庆阳市| 大荔县| 宣化县| 商都县| 同江市| 清河县| 房产| 镇安县| 湖南省| 丹江口市| 黄山市| 绥滨县| 张掖市| 新田县| 青田县| 屏东市| 五华县| 达拉特旗| 中江县| 河北省|