Linux基礎程式設計 history命令

2021-10-07 20:25:45 字數 3554 閱讀 5815

06.總結

history命令用於顯示使用者以前執行過的歷史命令,並且能對歷史命令進行追加和刪除等操作。

這也是初學者用得比較頻繁的命令之一,因為剛開始涉及的很多命令記不清楚,這個時候history命令就能起到很好的效果。

該命令單獨使用時,僅顯示歷史命令,在命令列中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。

歷史命令是被儲存在記憶體中的,當退出或者登入shell時,會自動儲存或讀取。在記憶體中,歷史命令僅能夠儲存1000條歷史命令,該數量是由環境變數histsize進行控制。

history的通用格式如下:

格式: history [選項]

[引數]

-a

將當前shell會話的歷史命令追加到命令歷史檔案中

,命令歷史檔案是儲存歷史命令的配置檔案

-c清空當前歷史命令列表

-d刪除歷史命令列表中指定序號的命令

-n從命令歷史檔案中讀取本次shell會話開始時沒有讀取的歷史命令

-r讀取命令歷史檔案到當前的shell歷史命令記憶體緩衝區

-s將指定的命令作為單獨的條目加入命令歷史記憶體緩衝區。

在執行新增之前先刪除命令歷史記憶體緩衝區中最後一條命令

-w把當前的shell歷史命令記憶體緩衝區的內容寫入命令歷史檔案

5.1 檢視歷史命令
[deng@localhost ~

]$ history

[deng@localhost ~

]$

5.2 檢視指定條數的命令(最近)
//這裡檢視最近5條命令

[deng@localhost ~

]$ history 5

816 man history

817 help history

818 history

819 history

820 history 5

[deng@localhost ~

]$

5.3 將當前歷史寫入歷史檔案中
[deng@localhost ~

]$ history -w

[deng@localhost ~

]$

將當前歷史寫入到歷史檔案中並追加到歷史列表中。

5.4 讀取歷史檔案並並將內容追加到歷史列表中

[deng@localhost ~

]$ history -r

[deng@localhost ~

]$

5.5 將當前shell會話的歷史命令追加到命令歷史檔案中
[deng@localhost ~

]$ history -a

[deng@localhost ~

]$

5.6 刪除所有條目從而清空歷史列表
[deng@localhost ~

]$ history -c

[deng@localhost ~

]$ history

646 history

[deng@localhost ~

]$

5.7 執行歷史列表中646條命令
[deng@localhost ~

]$ history

646 history

[deng@localhost ~

]$ !

646history

646 history

[deng@localhost ~

]$

5.8 執行最近一條歷史命令
[deng@localhost ~

]$ !

!history

646 history

647 history

648!-

1649 history

[deng@localhost ~

]$

5.9 常用設定
$ export histcontrol=ignoredups               # 消除命令歷史中的連續重複條目

$ export histsize=

0 # 禁用history命令

$ export histcontrol=erasedups # 在整個歷史中去除重複命令

$ export histfilesize=

1000000 # 設定歷史檔案大小

$ export histtimeformat=

'%f %t' # 設定時間戳,執行後生效

$ export histtimeformat=

"%f %t `whoami`" # 顯示執行使用者,對管理員很有用

$ export histignore=「pwd:ls:」 # 忽略特殊命令,只忽略ls並不忽略ls -lart

$ export histcontrol=ignorespace # 忽略某條特定命令

$ export histfile=

/root/history.txt # 設定歷史檔案的儲存目錄

5.10 常用引數
$ !

!     # 前一條命令;

$ !:

0     # 不帶引數的前一條命令名;

$ !^     # 前一條命令的第乙個引數;

$ !:n     # 前一條命令的第n個引數;

$ !$     # 前一條命令的最後乙個引數;例如 $ mkdir test; cd !$

$ !* # 前一條命令的所有引數,命令名除外;

$ !n     # 第n條命令;

$ !-n     # 倒數第n條命令;

$ !str    # 最近一條以str開頭的命令;

$ !?str    # 最近一條包含str的命令;

$ ^a^b   # 將上一條命令名中的a替換為b;

$ !:gs/a/b  # 將上一條命令的所有a替換為b(包含命令名和引數)。

$ !:

3 # 第三個引數數

$ !:2-

4 # 第2到4個引數

$ !:

-3 # 從第0個到第三個引數

$ !* # 第乙個到最後乙個引數

$ !:

2* # 第2個到最後乙個

$ !:

2- # 從第2個開始,但不要結尾引數

linux 程式設計基礎

版本介紹 計算機語言的分類 編譯型 執行前翻譯,解釋型 區域性變數 local可以檢視區域性變數 定義乙個區域性變數 ii chenzhou 變數賦值 contrainid sudo docker ps a grep kafka cut c1 12 通過命令列取值 echo contrainid環境...

Linux程式設計基礎 Socket程式設計

linux下的socket程式設計大體上包括tcp socket udp socket即raw socket這三種,其中tcp和udp方式的socket程式設計用於編寫應用層的socket程式,是我們用得比較多的,而raw socket則用得相對較少,不在本文介紹範圍之列。tcp socket 基於...

linux基礎 shell基礎程式設計

以檔案形式存放批量的linux命令集合,該檔案能被shell解釋執行,這種檔案就是shell指令碼程式。通常由一些linux命令,shell命令,注釋和控制語句構成 第一行 指定用哪個程式來編譯和執行指令碼 bin bush 或 bin sh注釋行 使用 號 變數名必須以字母或下劃線開頭,後面跟數字...