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...