06.總結
history命令用於顯示使用者以前執行過的歷史命令,並且能對歷史命令進行追加和刪除等操作。該命令單獨使用時,僅顯示歷史命令,在命令列中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。這也是初學者用得比較頻繁的命令之一,因為剛開始涉及的很多命令記不清楚,這個時候history命令就能起到很好的效果。
歷史命令是被儲存在記憶體中的,當退出或者登入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注釋行 使用 號 變數名必須以字母或下劃線開頭,後面跟數字...