linux歷史命令

2022-09-06 01:06:13 字數 3307 閱讀 1688

"忘記歷史的linux使用者注定要輸入很多資訊。」

這也讓強有力的歷史命令(包括bash shell的歷史變體)不僅在援引之前執行命令而不需重新輸入它們時有用,在呼叫其它很少用到的命令時也有用,這省去了必須重新使用它們的麻煩。該命令按時間順序列出了之前執行命令的清單。

該命令的輸出示例如下:

01

$ history

02

...

03

62 rm 092210.sql

04

63 mysqldump

05

64 mysqldump -u root -p dev_gamenomad_com > 092210.sql

06

65 more 092210.sql

07

66 rm 092210.sql

08

...

09

9991 mkdir chapter05

10

9992 cd chapter05

11

9993 dir

12

9994 npm install websocket-server

13

9995 node hello.js

14

9996exit

15

9997 history

1

$ !10000

2

sudo /etc/init.d/apache2 start

3

* starting web server apache2

掌控歷史擴充套件

敲擊向上箭頭鍵會顯示之前執行的命令,敲擊enter鍵會再次執行該命令。但是還可以使用另乙個可能更快的包括歷史擴充套件功能的選擇:

$ !!
$ !-2
執行早期命令的另一方式是輸入緊跟著感嘆號的命令序列號的開頭。符合字元物件的第一條命令會執行。舉例來說,假設最後三條命令如下:

$ history

...9876 build-book /home/wjgilmore/easy_php

9877 mkdir chapter05

9878 cd chapter05

9879 touch chapter05.md

你可以只通過執行以下命令來再次執行構書指令碼:

$ !b
用兩步過程建立乙個確認它的新目錄和導航和以運用歷史擴充套件縮短。在本例中,我建立了乙個叫做easy_bash的新目錄,位置在/home/wjgilmore/books。要確認該目錄,運用!$來獲得在前一命令中發現在最後「字元」:

$ mkdir /home/wjgilmore/books/easy_bash

$ cd !$

搜尋命令歷史

雖然可以翻閱命令歷史(或使用grep命令),但在使用ctrl+r開放選擇搜尋它之後也可以呼叫該命令的片段,提示的命令行將如下所示:

(reverse-i-search)`':
開始輸入命令片段,命令行會實時更新反映出最符合的一條。輸入apa後會出現類似於這樣的命令:

(reverse-i-search)`apa': sudo /etc/init.d/apache2 start
當你看到想要的命令,敲擊enter執行它,或者敲擊向上箭頭鍵在重新執行前修改它。

調整歷史行為

你可以做很多有趣的設定更改來控制命令歷史的行為方式。例如,bash shell設定的預設歷史大小是500條記錄,這個限制很快就達到了,即使是很小的命令列相互作用。你可以通過設定在bash配置檔案(.bashrc,位於主目錄中)上發現的histsize變數提高限制數。

histsize=10000
你在命名為histcontrol的.bashrc中通常還會遇到另乙個與歷史有關的變數。該變數幫助明確規定歷史檔案中的存放內容(位於.bash_history,也可見於主目錄中)。例如,你也許在檢查最新的日誌檔案附件時重複執行了尾命令,就在執行tail的幾分鐘裡。通過重複來集群歷史檔案不太實際,通過設定它為ignoredups來讓histcontrol變數忽視複製行。

histcontrol=ignoredups
可疑效用的另乙個histcontrol設定是忽略空格。該histcontrol設定的結果是所有前面有空格的執行命令都從歷史檔案中刪除。這對於不跟蹤每條命令似乎起了反作用,但是如果你除了ignoredups之外還想實現該功能,你可以將兩者設定成:

histcontrol=ignoreboth
我最後要談及的乙個功能是命令替換。假設你想基於乙個虛擬主機配置檔案模板快速配置一群虛擬主機。這些命令序列可能非常長,就像下面所示:

$ cp vhost.template /etc/apache2/sites-**ailable/dev.example.com

$ cp vhost.template /etc/apache2/sites-**ailable/forum.example.com

$ cp vhost.template /etc/apache2/sites-**ailable/staging.example.com

通常你執行該一列命令的方法會是首先輸入和執行,接著向上滾動、刪除尾行片段(dev.example.com),然後輸入下一片段(forum.example.com),然後重新執行。另一種方法,你可以運用命令替換來快速地用一行字串替換另一相關字串,如下所示:

$ !!:s/dev/forum
該命令列在指向-點選介面中已為使用者帶來了大量好處,讓任務執行和作業系統導航可以快速且優雅地完成。最大程度上地利用歷史命令只能增加這些功能,促進生產力會走得更遠。

Linux檢視歷史命令

今天面試問到怎麼檢視歷史命令,我說用上方向鍵把面試官逗笑了,特此查詢記錄一下。linux中,bash輸入的命令記錄,通過history檢視所有歷史記錄。記錄會存在.bash history 或者root bash history 中,通過echo histfile 使用此命令檢視環境變數 histo...

linux 命令操作 歷史管理

細看了一下linux cmd histroy 的管理,總結如下 1.history.一般情況下,需要檢視先前的操作指令,可以選擇 history n 指令,其中 n 表示顯示的歷史記錄行數,即先前的n條指令。在後台,history 指令讀取的是對應user的主目錄下的.bash history檔案。...

Linux檢視歷史命令 history

root linux history n root linux history c root linux history raw histfiles 引數 n 數字,意思是 要列出最近的 n 筆命令列表 的意思!c 將目前的 shell 中的所有 history 內容全部消除 a 將目前新增的 hi...