Linux 命令列小技巧 – !歎號的用處
導讀 |
bash 的歷史記錄裡保留了輸入的
行記錄。以下是如何充分利用該記錄和
! 符號的使用教程。 |
HISTSIZE
變數值設定儲存在歷史列表中的
數。預設情況下,該值為 500。這些先前發出的命令(稱為歷史列表)儲存在歷史檔案中。它的預設位置是
~/.bash_history
,這個位置儲存在
變數
HISTFILE
中。
本文中使用
!
命令將 bash 歷史記錄列表中的命令引入到輸入中。此功能使使用者可以輕鬆地快速重複命令、替換文字、操作引數和修復先前命令中的拼寫錯誤。
以下是可以使用
!
執行操作的一些示例。
!
後跟與要執行的命令匹配的第一個字元(或者字串)將重複該命令的例項:
[root@localhost ~]# ls /root/ anaconda-ks.cfg centos2ol.sh employee.json list_users new.txt wsbkuplog.txt [root@localhost ~]# !l ls /root/ anaconda-ks.cfg centos2ol.sh employee.json list_users new.txt wsbkuplog.txt [root@localhost ~]# !ls ls /root/ anaconda-ks.cfg centos2ol.sh employee.json list_users new.txt wsbkuplog.txt
!?
格式與上述相同,但李世明令不必是命令的開頭:
[root@localhost ~]# cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}] [root@localhost ~]# !?employee cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}] [root@localhost ~]# !?json cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
重複 bash 歷史記錄中的第 n 個命令:
[root@localhost ~]# !772
如果有一個我一直使用的命令,那就是
!!
。重複歷史列表中的最後一個命令,其行為與
!-1
相同:
[root@localhost ~]# cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}] [root@localhost ~]# !! cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}] [root@localhost ~]# !-1 cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}] [root@localhost ~]#
如果上一條命令忘記新增
sudo
來執行,可以結合
!!
來使用。還可以後面結合管道符使用。
$ yum update Loaded plugins: priorities, update-motd, upgrade-helper You need to be root to perform this command. $ sudo !! sudo yum update Loaded plugins: priorities, update-motd, upgrade-helper
$ ls dir dir1 dir2 file file1 file2 hello.txt $ !! | grep file ls | grep file file file1 file2
我經常發輸入較長的命令,然後用不同的引數重新輸入。或者,我需要重新發出一個命令,因為我之前的命令中有一個錯字。字串替換讓我無需重新輸入整個長命令即可完成此操作。下面是語法:
!!:s^oldstring^newstring
命令中的
^
是分隔符,用後面的newstring字串替換前面的oldstring字串。
[root@localhost ~]# ll /etc/httpd/conf.d total 16 -rw-r--r-- 1 root root 2926 Nov 4 2020 autoindex.conf -rw-r--r-- 1 root root 400 Nov 4 2020 README -rw-r--r-- 1 root root 1252 Nov 4 2020 userdir.conf -rw-r--r-- 1 root root 764 Nov 4 2020 welcome.conf [root@localhost ~]# !!:s^conf.d^conf ll /etc/httpd/conf total 28 -rw-r--r-- 1 root root 11899 Nov 4 2020 httpd.conf -rw-r--r-- 1 root root 13064 Nov 4 2020 magic [root@localhost ~]#
這些是每個系統管理員都應該熟悉的命令。這些命令可以節省大量時間。
本文原創地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2840221/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux小技巧scp命令Linux
- 程式設計小技巧之 Linux 文字處理命令(二)程式設計Linux
- Linux命令列六大技巧Linux命令列
- LINUX命令列終端提示符多種實用技巧!Linux命令列
- 最實用也最容易被遺忘的 Linux 命令列使用技巧Linux命令列
- 生信小技巧:實用的命令(3)
- IDEA小技巧:Markdown裡的命令列可以直接執行了Idea命令列
- 實用處理字串的linux命令字串Linux
- 在 Linux 命令列中使用 ls 列出檔案的技巧Linux命令列
- Linux命令列中幾個使用history相關的技巧Linux命令列
- Linux命令技巧之30個必會的命令技巧Linux
- JavaScript兩個歎號(!!)JavaScript
- Linux命令列Linux命令列
- 收集 Linux 命令列執行的命令Linux命令列
- Linux中11個比較實用的命令列Linux命令列
- 7個讓你驚歎的HTML技巧HTML
- linux下查詢命令的技巧Linux
- 命令列技巧:使用 find 和 xargs 查詢和處理檔案命令列
- 教你一些Linux中隱藏bash歷史命令的小技巧Linux
- 資料科學家的命令列技巧資料科學命令列
- Linux的命令列介面簡介Linux命令列
- 命令列使用小結命令列
- Linux技巧--刪除某列Linux
- Linux命令列筆記Linux命令列筆記
- [C++]括號使用小技巧C++
- 良許 | 從命令列同時移動多個檔案型別的小技巧命令列型別
- 工作列“居中”顯示!這個美觀又實用的小技巧
- Linux文字處理技巧分享Linux
- 分享一條history命令小技巧
- Linux文字處理命令Linux
- 用於與非 Linux 使用者一同工作的 Linux 命令列工具Linux命令列
- Linux 命令列下的好東西Linux命令列
- 命令列技巧:分割檔案內容命令列
- 在 Linux中find命令使用技巧Linux
- js 陣列去重小技巧JS陣列
- Trick:處理加減等差數列的技巧
- 處理 Linux 檔案的 3 個技巧Linux
- Linux 系統中 sudo 命令的 10 個技巧Linux