日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux history命令详解

發布時間:2023/12/16 linux 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux history命令详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

命令行歷史

當執行命令后,系統默認會在內存記錄執行過的命令

當用戶正常退出時,會將內存的命令歷史存放對應歷史文件中,默認是 ~/.bash_history

登錄shell時,會讀取命令歷史文件中記錄下的命令加載到內存中

登錄進shell后新執行的命令只會記錄在內存的緩存區中;這些命令會用戶正常退出時“追加”至命令歷史文件中

利用命令歷史。可以用它來重復執行命令,提高輸入效率

1. 命令:history

history [-c] [-d offset] [n] history -anrw [filename] history -ps arg [arg...]

2. 常用選項

選項說明
-c清空命令歷史
-d offset刪除歷史中指定的第 offset 個命令
n顯示最近的 n 條歷史
-a追加本次會話新執行的命令歷史列表至歷史文件
-r讀歷史文件附加到歷史列表
-w保存歷史列表到指定的歷史文件
-n讀歷史文件中未讀過的行到歷史列表
-p展開歷史參數成多行,但不存在歷史列表中
-s展開歷史參數成一行,附加在歷史列表后

3. 命令歷史相關環境變量

變量說明
HISTSIZE命令歷史記錄的條數
HISTFILE指定歷史文件,默認為~/.bash_history
HISTFILESIZE命令歷史文件記錄歷史的條數
HISTTIMEFORMAT="%F %T $(whoami) "顯示時間和用戶
HISTIGNORE="str1:str2*:..."忽略str1命令,str2開頭的歷史
HISTCONTROL控制命令歷史的記錄方式
ignoredups 是默認值,可忽略重復的命令,連續且相同為“重復”
ignorespace 忽略所有以空白開頭的命令
ignoreboth 相當于ignoredups, ignorespace的組合
erasedups 刪除重復命令

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 programsPATH=$PATH:$HOME/binexport PATH export HISTCONTROL=ignoreboth export HISTTIMEFORMAT="%F %T " [root@centos ~]#[root@centos /]#history 5123 2021-03-25 15:52:15 cd ~124 2021-03-25 15:52:16 pwd125 2021-03-25 15:52:18 cd /126 2021-03-25 15:52:19 pwd127 2021-03-25 15:52:30 history 5 [root@centos /]#

5. 調用命令行歷史

# 重復前一個命令方法 重復前一個命令使用上方向鍵,并回車執行 1. 按 !! 并回車執行 2. 輸入!-1 并回車執行 3. 按 Ctrl+p 并回車執行使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令 ctrl-r來在命令歷史中搜索命令 (reverse-i-search)`’: Ctrl+g:從歷史搜索模式退出 header 1header 2
!:0執行前一條命令(去除參數)
!n執行history命令輸出對應序號n的命令
!-n執行history歷史中倒數第n個命令
!string重復前一個以“string”開頭的命令
!?string重復前一個包含string的命令
!string:p僅打印命令歷史,而不執行
!$:p打印輸出 !$ (上一條命令的最后一個參數)的內容
!*:p打印輸出 !*(上一條命令的所有參數)的內容
^string刪除上一條命令中的第一個string
^string1^string2將上一條命令中的第一個string1替換為string2
!:gs/string1/string2將上一條命令中所有的string1都替換為string2
# 要重新調用前一個命令中最后一個參數,三種方式 1. !$ # 表示前一個命令中最后一個參數 2. Esc, . # 點擊Esc鍵后松開,然后點擊 . 鍵 3. Alt+ . # 按住Alt鍵的同時點擊 . 鍵 header 1header 2
command !^用上一個命令的第一個參數做command的參數
command !$利用上一個命令的最后一個參數做command的參數
command !*利用上一個命令的全部參數做command的參數,如 ls !*
command !:n利用上一個命令的第n個參數做command的參數
command !n:^調用第n條命令的第一個參數
command !n:$調用第n條命令的最后一個參數
command !n:m調用第n條命令的第m個參數
command !n:*調用第n條命令的所有參數
command !string:^從命令歷史中搜索以 string 開頭的命令,并獲取它的第一個參數
command !string:$從命令歷史中搜索以 string 開頭的命令 ,并獲取它的最后一個參數
command !string:n從命令歷史中搜索以 string 開頭的命令,并獲取它的第n個參數
command !string:*從命令歷史中搜索以 string 開頭的命令 ,并獲取它的所有參數

總結

以上是生活随笔為你收集整理的linux history命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。