Linux命令列中幾個使用history相關的技巧

夢共裡醉發表於2021-07-17
當你頻繁使用 行時,有效地使用歷史記錄可以大大提高生產力。
1. 使用 HISTTIMEFORMAT 顯示時間戳

當在 行輸入 history時,它將顯示序號和命令。出於審計目的,將時間戳與命令一起顯示可能會有所幫助。

[root@localhost ~]# export HISTTIMEFORMAT='%F %T '
[root@localhost ~]# history | less

Linux命令列中幾個使用history相關的技巧Linux命令列中幾個使用history相關的技巧

2. 使用Ctrl + r 搜尋歷史記錄

當你已經執行了很長的命令時,可以簡單地使用關鍵字搜尋歷史記錄並重新執行同一命令,而不必完全鍵入它。按Ctrl + r 並鍵入關鍵字。在以下示例中,我搜尋了wget,它在包含wget一詞的歷史記錄中顯示了先前的命令“ wget -O /etc/yum.repos.d/ -Base.repo ”。

# 當按下ctrl + r鍵,會出現下面狀態。
(reverse-i-search)`': 
# 然後輸入 wget ,後面會有命令過濾出匹配的歷史命令。如果顯示出來的是不想要的命令,可以繼續補充命令列。
(reverse-i-search)`wget ': wget -O /etc/yum.repos.d/CentOS-Base.repo 

當搜尋出想要的命令列,可以按下  EnterEnter鍵,就可執行命令了。

過濾出匹配的歷史命令,想要更改引數,可以按一下tab鍵、或者方向鍵,可以退出搜尋模式來修改這條歷史命令,並執行。

3.速重複上一個命令

可以使用 !!兩個歎號,執行上一條命令。也可以使用 !-1,執行上一條命令。
Linux命令列中幾個使用history相關的技巧Linux命令列中幾個使用history相關的技巧

Linux命令列中幾個使用history相關的技巧Linux命令列中幾個使用history相關的技巧

4. 從history中執行特定命令

可以使用 !加數字,執行history裡面指定行號的命令。

[root@localhost ~]# !4
ss -tul
Netid     State      Recv-Q     Send-Q         Local Address:Port          Peer Address:Port     Process     
udp       UNCONN     0          0                  127.0.0.1:323                0.0.0.0:*                    
udp       UNCONN     0          0                      [::1]:323                   [::]:*                    
tcp       LISTEN     0          128                  0.0.0.0:ssh                0.0.0.0:*                    
tcp       LISTEN     0          128                     [::]:ssh                   [::]:*

Linux命令列中幾個使用history相關的技巧Linux命令列中幾個使用history相關的技巧

5. 使用HISTSIZE控制歷史記錄中的總行數

預設情況下Centos8中,history儲存1000條歷史記錄。可以使用下面命令檢視:

[root@localhost ~]# echo $HISTSIZE
1000

將以下兩行新增到 .bash_profile,然後執行 source ~/.bash_profile即可生效。下面命令中,使history儲存歷史記錄少一些,只儲存200條。

[root@localhost ~]# echo "HISTSIZE=200" >> .bash_profile 
[root@localhost ~]# echo "HISFILETSIZE=200" >> .bash_profile 
[root@localhost ~]# source ~/.bash_profile

其中 HISTSIZE變數,控制history命令顯示的數量。

其中 HISTFILESIZE變數,控制 .bash_history檔案中,歷史記錄的數量。

6. 更改歷史記錄檔名

預設情況下,歷史記錄的檔名叫 .bash_history,可以使用 HISTFILE變數更改它的檔名,可以將HISTFILE變數寫入 ~/.bash_profile檔案中,以下示例:

[root@localhost ~]# echo "HISTFILE=/root/.cmd_hist" >> ~/.bash_profile 
[root@localhost ~]# reboot

新增完成之後,重啟作業系統,可以看到新的歷史記錄檔案已經可以儲存歷史記錄了。
Linux命令列中幾個使用history相關的技巧Linux命令列中幾個使用history相關的技巧

7. 清除歷史記錄

使用 -c選項清除歷史記錄:

[root@localhost ~]# history -c

Linux命令列中幾個使用history相關的技巧Linux命令列中幾個使用history相關的技巧

8. 禁用歷史記錄

如果你想全部禁用歷史記錄,則將HISTSIZE和HISTFILESIZE設定為0,如下所示。

[root@localhost ~]# echo "HISTSIZE=0" >> .bash_profile 
[root@localhost ~]# echo "HISFILETSIZE=0" >> .bash_profile 
[root@localhost ~]# source ~/.bash_profile

Linux命令列中幾個使用history相關的技巧Linux命令列中幾個使用history相關的技巧

總結

當你頻繁使用Linux命令列時,有效地使用歷史記錄可以大大提高生產力。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2781851/,如需轉載,請註明出處,否則將追究法律責任。

相關文章