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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

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

發(fā)布時(shí)間:2023/12/16 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux历史数据导出命令,Linux Bash history从入门到进阶 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

像所有shell一樣,Linux命令行終端保留用戶過(guò)去執(zhí)行的命令的歷史記錄(bash history)。此歷史記錄是永久性的,即使重新啟動(dòng)系統(tǒng)也會(huì)保留在內(nèi)存中。這些存儲(chǔ)的命令可以自由重復(fù)使用。

使用bash歷史記錄(history)的命令是“history”。此命令是內(nèi)置 bash命令,用于提取有關(guān)Linux用戶在所有先前會(huì)話中已執(zhí)行的命令的歷史記錄信息。在本教程中,我們將通過(guò)學(xué)習(xí)history命令的正確用法來(lái)使您充分利用shell歷史。 Linux默認(rèn)將特定用戶的命令歷史記錄存儲(chǔ)在?/.bash_history文件中。

查看整個(gè)歷史

用戶可以使用以下簡(jiǎn)單命令,查看shell命令的整個(gè)歷史記錄:

$ history

歷史記錄將以以下默認(rèn)格式打印在屏幕上:

在上圖中,您可以看到所有命令的列表,并為每個(gè)命令分配了一個(gè)編號(hào)。數(shù)字1命令對(duì)應(yīng)于您運(yùn)行的第一個(gè)命令,最后一個(gè)編號(hào)的命令代表您執(zhí)行的最新命令。

如果自從使用bash以來(lái)一直在運(yùn)行許多命令,您會(huì)發(fā)現(xiàn)這里將顯示成百上千個(gè)這樣的命令。要訪問(wèn)一些相關(guān)命令,您可以過(guò)濾歷史記錄功能顯示的結(jié)果。

過(guò)濾歷史記錄輸出

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

$ history | grep [keyword]

例:在此示例中,我只想查看在 shell 中運(yùn)行過(guò)的ping命令。因此,我將使用以下命令:

$history | grep ping

您可以看到我的輸出現(xiàn)在僅顯示包含搜索關(guān)鍵字“ping”的命令

查看許多最近的命令

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

N個(gè)最近的命令

或者

N個(gè)最舊的命令

N最近的命令

您可以通過(guò)以下命令查看特定數(shù)量的最近運(yùn)行的命令:

$ history | tail -n

例:

在此示例中,我想用關(guān)鍵字“ ping”查看我運(yùn)行的最后3條命令:

$ history | grep ping |tail -3

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

N個(gè)最舊的命令

您可以通過(guò)以下命令查看特定數(shù)量的最早的運(yùn)行命令:

$ history | head -n

例:

在此示例中,我想查看我運(yùn)行的最舊的3條命令,關(guān)鍵字為“ ping”:

$ history | grep ping |head -3

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

列出所有帶有日期和時(shí)間戳的命令

如果要查看命令歷史記錄以及日期和時(shí)間戳,請(qǐng)使用以下導(dǎo)出命令:

$ export HISTTIMEFORMAT='%F, %T'

現(xiàn)在,當(dāng)您希望查看歷史記錄時(shí),只需運(yùn)行history命令以以下格式查看輸出:

請(qǐng)注意,此格式更改是臨時(shí)的,關(guān)閉會(huì)話后將恢復(fù)為以前的標(biāo)準(zhǔn)。

從歷史導(dǎo)航命令

在命令行上時(shí),您可以瀏覽以前運(yùn)行的命令,也可以通過(guò)提供關(guān)鍵字來(lái)調(diào)用一些最近使用的命令。

滾動(dòng)瀏覽命令

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

向上箭頭/Ctrl + P

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

向下箭頭/Ctrl + N

顯示您使用的下一個(gè)命令。您可以多次點(diǎn)擊這些控件以前進(jìn)到歷史記錄中的特定命令。

ALT + R

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

調(diào)出命令

您可以使用以下組合鍵從歷史記錄中調(diào)用、運(yùn)行或選擇不運(yùn)行特定命令:

CTRL + R

通過(guò)指定搜索字符串從歷史記錄中調(diào)用命令。

CTRL + O

運(yùn)行通過(guò)Ctrl + R調(diào)用的命令

CTRL + G

退出歷史記錄,而無(wú)需運(yùn)行通過(guò)Ctrl + R調(diào)用的命令

例:

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

通過(guò)按ctrl + O運(yùn)行命令“ arch”時(shí),它顯示了我系統(tǒng)的CPU體系結(jié)構(gòu):

history進(jìn)階

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

從歷史記錄運(yùn)行命令

如前所述,history命令通過(guò)將數(shù)字與每個(gè)命令相關(guān)聯(lián)來(lái)顯示命令。通過(guò)使用以下命令,您可以根據(jù)其歷史記錄從歷史記錄中運(yùn)行某個(gè)命令:

$ !#

例:

在這里,我從歷史記錄中運(yùn)行命令號(hào)95:

$ !95

輸出顯示“ lscpu”的結(jié)果,該結(jié)果在我的bash歷史記錄中列為命令編號(hào)95。此命令顯示我的CPU和操作系統(tǒng)規(guī)格。

您可以使用以下命重新執(zhí)行上一個(gè)命令:

$ !!

例:

在這里,您可以看到我運(yùn)行了“ arch”命令。通過(guò)運(yùn)行上述命令,我可以使用重新執(zhí)行'arch'命令來(lái)查看我的CPU體系結(jié)構(gòu),如下所示:

為了從歷史記錄中搜索命令,然后運(yùn)行它,請(qǐng)使用以下命令:

$ ![keyword]

例:

我將使用以下命令對(duì)最后一個(gè)帶有關(guān)鍵字“ dconf”的命令重新執(zhí)行:

$ !dconf

您可以在下圖中顯示,它的確是我運(yùn)行的最后一個(gè)dconf命令。

使用先前命令中的參數(shù)

Linux bash使您可以使用上一個(gè)命令中的參數(shù)來(lái)運(yùn)行新命令。當(dāng)您要避免重新輸入冗長(zhǎng)或復(fù)雜的參數(shù)時(shí),它特別有用。為此,可以使用以下命令:

使用上一個(gè)命令的最后一個(gè)參數(shù)

$ [Command] !$

變量!$中存儲(chǔ)了前一個(gè)命令的最后一個(gè)參數(shù)。

例:

在此示例中,我將創(chuàng)建一個(gè)長(zhǎng)名稱的文件。

Nano [longnameOfaFile]

然后,通過(guò)避免再次按以下方式鍵入長(zhǎng)名稱,我將其復(fù)制到另一個(gè)位置:

Cp !$ [destinationfolder]

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

使用上一個(gè)命令的第一個(gè)參數(shù)

有時(shí),只有前一個(gè)命令的第一個(gè)參數(shù)對(duì)當(dāng)前命令有幫助。

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

$ [command] !^

例:

在以下示例中,我通過(guò)指定主機(jī)名和計(jì)數(shù)作為參數(shù)來(lái)運(yùn)行ping命令。現(xiàn)在,我想在新命令中使用主機(jī)名(第一個(gè)參數(shù))而不是2(最后一個(gè)參數(shù))。為此,我將使用以下命令:

$ ping !^

使用上一個(gè)命令的所有參數(shù)

您還可以通過(guò)使用以下命令來(lái)使用上一命令中的所有參數(shù):

$ !*

使用歷史命令中的一個(gè)參數(shù)

您還可以使用歷史記錄中的命令的某個(gè)參數(shù)。為此,請(qǐng)使用以下命令:

$ [command] ![keyword]:#

例:

$ echo !cp:2

該命令將采用以下參數(shù):

命令:echo

關(guān)鍵字:cp? [搜索的歷史命令的關(guān)鍵詞,取最后一個(gè)匹配的命令]

#:2(命令的第二個(gè)參數(shù))

以下輸出顯示了我運(yùn)行的最后一個(gè)cp命令的第二個(gè)參數(shù):

使用歷史命令中的所有參數(shù)

以下命令將存儲(chǔ)搜索到的history命令中的所有參數(shù),并在當(dāng)前命令中使用它們:

$ command ![keyword]:*

例:

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

$ echo ![cp]:*

修改和運(yùn)行以前的命令

如果您鍵入了錯(cuò)誤的命令,或者想通過(guò)更改其中的一些文本來(lái)對(duì)命令再次執(zhí)行;以下是這樣做的方法:

$ ^[previoustext]^[newtext]

例:

我將命令“ grep”錯(cuò)誤鍵入為“ gep”,現(xiàn)在我想通過(guò)更正文本來(lái)運(yùn)行命令:

$ ^gep^grep

現(xiàn)在您可以看到我的更正命令將按如下所示正確運(yùn)行:

清楚history記錄

為了清除bash的歷史記錄,請(qǐng)使用以下命令:

$ history -c

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

在本教程中,我們了解到,雖然打印整個(gè)歷史記錄內(nèi)容可能沒(méi)有用,但通過(guò)我們學(xué)到的命令優(yōu)化輸出還是非常有用的。

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。