久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Bash中的history命令怎么用

158次閱讀
沒有評論

共計 2295 個字符,預(yù)計需要花費 6 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

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

history 是內(nèi)置的命令

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

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

$ which history which: no history in [PATH]

history 其實是 Shell 本身的一個內(nèi)置函數(shù):

$ 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 的內(nèi)置函數(shù),所以每種 Shell 的 history 函數(shù)都是獨一無二的。因此,你在 Bash   中能使用的功能可能無法在 Tcsh,F(xiàn)ish 或 Dash 中使用,同樣的,在 Tcsh,F(xiàn)ish 或 Dash 中能使用的功能也可能無法在 Bash   中使用。

查看你的 Bash 命令歷史記錄

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

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

事件提示符

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

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

$ !1 echo  hello  hello

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

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

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

$ 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

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

$ 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

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

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

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

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

充分利用 history 命令

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

以上是“Bash 中的 history 命令怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

向 AI 問一下細節(jié)

丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-07發(fā)表,共計2295字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 贵阳市| 舟山市| 日照市| 南澳县| 苏尼特左旗| 门头沟区| 咸阳市| 陇西县| 阳江市| 安国市| 高台县| 商南县| 无极县| 孟津县| 曲水县| 大荔县| 慈利县| 龙口市| 明星| 茌平县| 松溪县| 集贤县| 哈巴河县| 平南县| 河池市| 普宁市| 修武县| 顺平县| 巴林左旗| 锦州市| 邓州市| 双牌县| 泰州市| 随州市| 朝阳市| 筠连县| 扎兰屯市| 泸溪县| 平远县| 安龙县| 竹北市|