linux history命令使用解讀
命令行歷史
當(dāng)執(zhí)行命令后,系統(tǒng)默認(rèn)會在內(nèi)存記錄執(zhí)行過的命令
當(dāng)用戶正常退出時(shí),會將內(nèi)存的命令歷史存放對應(yīng)歷史文件中,默認(rèn)是 ~/.bash_history
登錄shell時(shí),會讀取命令歷史文件中記錄下的命令加載到內(nèi)存中 登錄進(jìn)shell后新執(zhí)行的命令只會記錄在內(nèi)存的緩存區(qū)中;這些命令會用戶正常退出時(shí)“追加”至命令歷史文件中利用命令歷史。
可以用它來重復(fù)執(zhí)行命令,提高輸入效率
1. 命令:history
history [-c] [-d offset] [n] history -anrw [filename] history -ps arg [arg...]
2. 常用選項(xiàng)
選項(xiàng) | 說明 |
---|---|
-c | 清空命令歷史 |
-d offset | 刪除歷史中指定的第 offset 個(gè)命令 |
n | 顯示最近的 n 條歷史 |
-a | 追加本次會話新執(zhí)行的命令歷史列表至歷史文件 |
-r | 讀歷史文件附加到歷史列表 |
-w | 保存歷史列表到指定的歷史文件 |
-n | 讀歷史文件中未讀過的行到歷史列表 |
-p | 展開歷史參數(shù)成多行,但不存在歷史列表中 |
-s | 展開歷史參數(shù)成一行,附加在歷史列表后 |
3. 命令歷史相關(guān)環(huán)境變量
變量 | 說明 |
---|---|
HISTSIZE | 命令歷史記錄的條數(shù) |
HISTFILE | 指定歷史文件,默認(rèn)為~/.bash_history |
HISTFILESIZE | 命令歷史文件記錄歷史的條數(shù) |
HISTTIMEFORMAT="%F %T $(whoami) " | 顯示時(shí)間和用戶 |
HISTIGNORE="str1:str2*:..." | 忽略str1命令,str2開頭的歷史 |
HISTCONTROL | 控制命令歷史的記錄方式 ignoredups 是默認(rèn)值,可忽略重復(fù)的命令,連續(xù)且相同為“重復(fù)” ignorespace 忽略所有以空白開頭的命令 ignoreboth 相當(dāng)于ignoredups, ignorespace的組合 erasedups 刪除重復(fù)命令 |
4. 持久保存變量
以上變量可以 export 變量名=“值” 形式存放在 /etc/profile 或 ~/.bash_profile
示例
[root@centos ~]#cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH export HISTCONTROL=ignoreboth export HISTTIMEFORMAT="%F %T " [root@centos ~]# [root@centos /]#history 5 123 2021-03-25 15:52:15 cd ~ 124 2021-03-25 15:52:16 pwd 125 2021-03-25 15:52:18 cd / 126 2021-03-25 15:52:19 pwd 127 2021-03-25 15:52:30 history 5 [root@centos /]#
5. 調(diào)用命令行歷史
# 重復(fù)前一個(gè)命令方法 重復(fù)前一個(gè)命令使用上方向鍵,并回車執(zhí)行 1. 按 !! 并回車執(zhí)行 2. 輸入!-1 并回車執(zhí)行 3. 按 Ctrl+p 并回車執(zhí)行 使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令 ctrl-r來在命令歷史中搜索命令 (reverse-i-search)`': Ctrl+g:從歷史搜索模式退出
header 1 | header 2 |
---|---|
!:0 | 執(zhí)行前一條命令(去除參數(shù)) |
!n | 執(zhí)行history命令輸出對應(yīng)序號n的命令 |
!-n | 執(zhí)行history歷史中倒數(shù)第n個(gè)命令 |
!string | 重復(fù)前一個(gè)以“string”開頭的命令 |
!?string | 重復(fù)前一個(gè)包含string的命令 |
!string:p | 僅打印命令歷史,而不執(zhí)行 |
!$:p | 打印輸出 !$ (上一條命令的最后一個(gè)參數(shù))的內(nèi)容 |
!*:p | 打印輸出 !*(上一條命令的所有參數(shù))的內(nèi)容 |
^string | 刪除上一條命令中的第一個(gè)string |
^string1^string2 | 將上一條命令中的第一個(gè)string1替換為string2 |
!:gs/string1/string2 | 將上一條命令中所有的string1都替換為string2 |
# 要重新調(diào)用前一個(gè)命令中最后一個(gè)參數(shù),三種方式 1. !$ # 表示前一個(gè)命令中最后一個(gè)參數(shù) 2. Esc, . # 點(diǎn)擊Esc鍵后松開,然后點(diǎn)擊 . 鍵 3. Alt+ . # 按住Alt鍵的同時(shí)點(diǎn)擊 . 鍵
header 1 | header 2 |
---|---|
command !^ | 用上一個(gè)命令的第一個(gè)參數(shù)做command的參數(shù) |
command !$ | 利用上一個(gè)命令的最后一個(gè)參數(shù)做command的參數(shù) |
command !* | 利用上一個(gè)命令的全部參數(shù)做command的參數(shù),如 ls !* |
command !:n | 利用上一個(gè)命令的第n個(gè)參數(shù)做command的參數(shù) |
command !n:^ | 調(diào)用第n條命令的第一個(gè)參數(shù) |
command !n:$ | 調(diào)用第n條命令的最后一個(gè)參數(shù) |
command !n:m | 調(diào)用第n條命令的第m個(gè)參數(shù) |
command !n:* | 調(diào)用第n條命令的所有參數(shù) |
command !string:^ | 從命令歷史中搜索以 string 開頭的命令,并獲取它的第一個(gè)參數(shù) |
command !string:$ | 從命令歷史中搜索以 string 開頭的命令 ,并獲取它的最后一個(gè)參數(shù) |
command !string:n | 從命令歷史中搜索以 string 開頭的命令,并獲取它的第n個(gè)參數(shù) |
command !string:* | 從命令歷史中搜索以 string 開頭的命令 ,并獲取它的所有參數(shù) |
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux 可執(zhí)行文件與寫操作的同步問題(文件讀寫操作產(chǎn)生的鎖機(jī)制)
在哪種系統(tǒng)下都會有文件操作產(chǎn)生的同步問題,今天說說linux下讀寫文件的鎖機(jī)制。2013-10-10centos7利用yum安裝lnmp的教程(linux+nginx+php7.1+mysql5.7)
lnmp相信不用多介紹了,大家應(yīng)該都知道,下面這篇文章主要給大家介紹了關(guān)于centos7利用yum安裝lnmp(linux+nginx+php7.1+mysql5.7)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2018-03-03使用Apache HttpClient執(zhí)行GET、POST、PUT和DELETE請求的操作方法
Apache HttpClient 是一個(gè)功能強(qiáng)大且靈活的庫,用于在Java中處理HTTP請求,本教程將演示如何使用Apache HttpClient來執(zhí)行GET、POST、PUT和DELETE請求,感興趣的朋友跟隨小編一起看看吧2024-12-12Linux環(huán)境使用crontab命令設(shè)置定時(shí)周期性執(zhí)行任務(wù)【含php執(zhí)行代碼】
這篇文章主要介紹了Linux環(huán)境使用crontab命令設(shè)置定時(shí)周期性執(zhí)行任務(wù),結(jié)合實(shí)例形式較為詳細(xì)的分析了crontab命令的功能、應(yīng)用場景及相關(guān)操作注意事項(xiàng),并附帶了php執(zhí)行代碼供大家參考,需要的朋友可以參考下2019-07-07