bash歷史命令數 如何使用Bash歷史記錄命令

2021-10-08 05:17:36 字數 3119 閱讀 6474

bash歷史命令數

bash歷史悠久。 也就是說,它是乙個老祖先的外殼(bourne外殼),但是它還有乙個很棒的history命令,它根據其功能數量超過了所有其他外殼歷史介面。 bash版本的history允許反向搜尋,快速呼叫,重寫歷史記錄等。

history命令與許多其他命令不同。 您可能習慣於將命令作為可執行檔案放置在常見的系統級位置,例如/usr/bin/usr/local/bin~/bin。 內建的history命令不在您的path,並且沒有物理位置:

$ 

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.

[ ...

]

因此,每個shell中的歷史記錄功能都是唯一的,因此您在bash中使用的內容可能無法在tcsh,fish或dash中使用,而在bash中使用的內容可能無法在bash中使用。 在某些情況下,了解bash的功能可能會激發其他shell的使用者建立有趣的駭客來轉殖bash的行為,並且可能會解鎖您從未知道的bash功能。

history命令最基本,最頻繁的用法是檢視您的shell會話的歷史記錄:

$ 

echo

"hello"

hello

$ echo

"world"

world

$ history

1echo

"hello"

2echo

"world"

3history

在這種情況下, event是記錄在您的歷史記錄中的命令,以換行符表示。

換句話說,它是一行,由索引號標記以供參考。

事件指示符大多以感嘆號開頭,有時也稱為「 **」 (!)。

要從歷史記錄中重新執行命令,請使用感嘆號,緊隨其後(無空格)後跟所需命令的索引號。 例如,假設第1行包含命令echo "hello",而您想再次執行它:

$ 

!1echo

"hello"

hello

您可以通過從歷史記錄中的當前位置開始提供負數的行來使用相對定位。 例如,返回歷史記錄中的三個條目:

$ 

echo

"foo"

foo

$ echo

"bar"

bar

$ echo

"baz"

baz

$ ! -

3echo

"foo"

foo

如果您只返回一行,則可以使用速記!!代替!-1。 這節省了整個按鍵時間!

$ 

echo

"foo"

$ !!

echo

"foo"

foo

您也可以反過來通過條目搜尋特定的字串以執行命令。 要搜尋以特定字串開頭的命令,請使用感嘆號,然後緊跟(無空格)後跟要搜尋的字串:

$ 

echo

"foo"

$ true

$ false

$ !

echo

echo

"foo"

foo

您還可以搜尋在任意位置(不僅是開頭)包含字串的命令。 為此,請使用!像往常一樣,加上您要搜尋的字串,但在字串的兩端都用問號括起來。 如果您知道該字串後面緊跟乙個換行符,則可以省略結尾的問號(這意味著這是您在按return鍵之前輸入的最後乙個內容):

$ 

echo

"foo"

$ true

$ false

$ ! ?foo?

echo

"foo"

foo

類似於在行首搜尋字串,您可以搜尋字串並用新字串替換它,更改命令:

$ 

echo

"hello"

hello

$ echo

"world"

world

$ ^hello^foo

echo

"foo"

foo

在bash中,history命令的功能遠遠超過此處介紹的內容,但這是習慣使用您的歷史記錄而不只是將其作為參考的乙個良好的開始。 經常使用history命令,並檢視無需鍵入命令即可執行的操作。 您可能會感到驚訝!

翻譯自:

bash歷史命令數

Bash的歷史命令

一 歷史命令 1 語法 history 選項 歷史命令儲存檔案 選項 c 清空歷史命令 w 把快取中的歷史命令寫入歷史命令儲存檔案 bash histoty 歷史命令預設儲存1000條,可以在環境變數配置檔案 etc profile中進行修改。2 歷史命令呼叫方式 3 命令與檔案補全 在bash中,...

定製Bash歷史命令

一位在 中提到了 當前終端中的命令歷史是在終端退出時寫入檔案,多個終端間的命令執行歷史不能實時共享。的問題,我也遇到這樣的問題,基於他的解決方法上,在.bash rc中新增 prompt command history a history n prompt command 使用如下命令去掉所有的重複...

bash基礎特性之歷史命令

shell程序會在其會話中儲存此使用者提交執行過的命令,shell程序啟動後所有當前執行過的命令都會儲存在shell程序的記憶體中 只有使用者登出時才儲存到檔案中。1 history命令 用於檢視已經執行過的命令 1.root localhost history 2.1 ifconfig 3.2 s...