日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux历史数据导出命令,Linux Bash history从入门到进阶

發布時間:2023/12/16 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux历史数据导出命令,Linux Bash history从入门到进阶 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

像所有shell一樣,Linux命令行終端保留用戶過去執行的命令的歷史記錄(bash history)。此歷史記錄是永久性的,即使重新啟動系統也會保留在內存中。這些存儲的命令可以自由重復使用。

使用bash歷史記錄(history)的命令是“history”。此命令是內置 bash命令,用于提取有關Linux用戶在所有先前會話中已執行的命令的歷史記錄信息。在本教程中,我們將通過學習history命令的正確用法來使您充分利用shell歷史。 Linux默認將特定用戶的命令歷史記錄存儲在?/.bash_history文件中。

查看整個歷史

用戶可以使用以下簡單命令,查看shell命令的整個歷史記錄:

$ history

歷史記錄將以以下默認格式打印在屏幕上:

在上圖中,您可以看到所有命令的列表,并為每個命令分配了一個編號。數字1命令對應于您運行的第一個命令,最后一個編號的命令代表您執行的最新命令。

如果自從使用bash以來一直在運行許多命令,您會發現這里將顯示成百上千個這樣的命令。要訪問一些相關命令,您可以過濾歷史記錄功能顯示的結果。

過濾歷史記錄輸出

如果要基于先前命令中可能使用的特定關鍵字過濾歷史記錄輸出,則可以按以下方式使用history命令:

$ history | grep [keyword]

例:在此示例中,我只想查看在 shell 中運行過的ping命令。因此,我將使用以下命令:

$history | grep ping

您可以看到我的輸出現在僅顯示包含搜索關鍵字“ping”的命令

查看許多最近的命令

您還可以查看特定數量的命令,例如:

N個最近的命令

或者

N個最舊的命令

N最近的命令

您可以通過以下命令查看特定數量的最近運行的命令:

$ history | tail -n

例:

在此示例中,我想用關鍵字“ ping”查看我運行的最后3條命令:

$ history | grep ping |tail -3

輸出僅顯示3個最近的ping命令,而不是整個歷史記錄

N個最舊的命令

您可以通過以下命令查看特定數量的最早的運行命令:

$ history | head -n

例:

在此示例中,我想查看我運行的最舊的3條命令,關鍵字為“ ping”:

$ history | grep ping |head -3

輸出僅顯示3個最舊的ping命令,而不是整個歷史記錄

列出所有帶有日期和時間戳的命令

如果要查看命令歷史記錄以及日期和時間戳,請使用以下導出命令:

$ export HISTTIMEFORMAT='%F, %T'

現在,當您希望查看歷史記錄時,只需運行history命令以以下格式查看輸出:

請注意,此格式更改是臨時的,關閉會話后將恢復為以前的標準。

從歷史導航命令

在命令行上時,您可以瀏覽以前運行的命令,也可以通過提供關鍵字來調用一些最近使用的命令。

滾動瀏覽命令

您可以使用鍵盤命令瀏覽歷史記錄命令

向上箭頭/Ctrl + P

顯示以前使用的命令。您可以多次點擊這些控件以返回到歷史記錄中的特定命令。

向下箭頭/Ctrl + N

顯示您使用的下一個命令。您可以多次點擊這些控件以前進到歷史記錄中的特定命令。

ALT + R

如果在當前行上編輯從歷史記錄中拉出的命令,則可以使用此控件將其還原為原始命令。

調出命令

您可以使用以下組合鍵從歷史記錄中調用、運行或選擇不運行特定命令:

CTRL + R

通過指定搜索字符串從歷史記錄中調用命令。

CTRL + O

運行通過Ctrl + R調用的命令

CTRL + G

退出歷史記錄,而無需運行通過Ctrl + R調用的命令

例:

在此示例中,我按了CTRL + R,然后提供了搜索字符串“ ar”。歷史記錄顯示命令“ arch”。

通過按ctrl + O運行命令“ arch”時,它顯示了我系統的CPU體系結構:

history進階

bash歷史記錄的真正魅力在于使用各種命令并自定義history命令本身以充分利用歷史記錄功能:

從歷史記錄運行命令

如前所述,history命令通過將數字與每個命令相關聯來顯示命令。通過使用以下命令,您可以根據其歷史記錄從歷史記錄中運行某個命令:

$ !#

例:

在這里,我從歷史記錄中運行命令號95:

$ !95

輸出顯示“ lscpu”的結果,該結果在我的bash歷史記錄中列為命令編號95。此命令顯示我的CPU和操作系統規格。

您可以使用以下命重新執行上一個命令:

$ !!

例:

在這里,您可以看到我運行了“ arch”命令。通過運行上述命令,我可以使用重新執行'arch'命令來查看我的CPU體系結構,如下所示:

為了從歷史記錄中搜索命令,然后運行它,請使用以下命令:

$ ![keyword]

例:

我將使用以下命令對最后一個帶有關鍵字“ dconf”的命令重新執行:

$ !dconf

您可以在下圖中顯示,它的確是我運行的最后一個dconf命令。

使用先前命令中的參數

Linux bash使您可以使用上一個命令中的參數來運行新命令。當您要避免重新輸入冗長或復雜的參數時,它特別有用。為此,可以使用以下命令:

使用上一個命令的最后一個參數

$ [Command] !$

變量!$中存儲了前一個命令的最后一個參數。

例:

在此示例中,我將創建一個長名稱的文件。

Nano [longnameOfaFile]

然后,通過避免再次按以下方式鍵入長名稱,我將其復制到另一個位置:

Cp !$ [destinationfolder]

您可以看到我可以使用變量!$復制文件而無需重新輸入文件名!

使用上一個命令的第一個參數

有時,只有前一個命令的第一個參數對當前命令有幫助。

在這種情況下,可以使用以下命令:

$ [command] !^

例:

在以下示例中,我通過指定主機名和計數作為參數來運行ping命令。現在,我想在新命令中使用主機名(第一個參數)而不是2(最后一個參數)。為此,我將使用以下命令:

$ ping !^

使用上一個命令的所有參數

您還可以通過使用以下命令來使用上一命令中的所有參數:

$ !*

使用歷史命令中的一個參數

您還可以使用歷史記錄中的命令的某個參數。為此,請使用以下命令:

$ [command] ![keyword]:#

例:

$ echo !cp:2

該命令將采用以下參數:

命令:echo

關鍵字:cp? [搜索的歷史命令的關鍵詞,取最后一個匹配的命令]

#:2(命令的第二個參數)

以下輸出顯示了我運行的最后一個cp命令的第二個參數:

使用歷史命令中的所有參數

以下命令將存儲搜索到的history命令中的所有參數,并在當前命令中使用它們:

$ command ![keyword]:*

例:

在以下命令中,我將使用echo命令打印最后一個cp命令的所有參數,如下所示:

$ echo ![cp]:*

修改和運行以前的命令

如果您鍵入了錯誤的命令,或者想通過更改其中的一些文本來對命令再次執行;以下是這樣做的方法:

$ ^[previoustext]^[newtext]

例:

我將命令“ grep”錯誤鍵入為“ gep”,現在我想通過更正文本來運行命令:

$ ^gep^grep

現在您可以看到我的更正命令將按如下所示正確運行:

清楚history記錄

為了清除bash的歷史記錄,請使用以下命令:

$ history -c

此命令將清除您的歷史記錄并從文件?/.bash_history中刪除所有內容

在本教程中,我們了解到,雖然打印整個歷史記錄內容可能沒有用,但通過我們學到的命令優化輸出還是非常有用的。

總結

以上是生活随笔為你收集整理的linux历史数据导出命令,Linux Bash history从入门到进阶的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。