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/31524109/viewspace-2910693/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Linux命令列下令人驚歎的驚歎號(!)Linux命令列
- 實用的Linux命令列技巧Linux命令列
- 最實用的 Linux 命令列使用技巧Linux命令列
- Linux 使用者的 3 個命令列小技巧Linux命令列
- 最實用的Linux命令列使用技巧彙總Linux命令列
- 最實用的 Linux 命令列使用技巧彙總Linux命令列
- Linux 命令列工具使用小貼士及技巧(1)Linux命令列
- Linux 命令列工具使用小貼士及技巧(4)Linux命令列
- Linux 命令列工具使用小貼士及技巧(3)Linux命令列
- Linux 命令列工具使用小貼士及技巧(四)Linux命令列
- Linux 命令列工具使用小貼士及技巧(2)Linux命令列
- Linux小技巧scp命令Linux
- 你值得了解的 10 個有趣的 Linux 命令列小技巧Linux命令列
- 程式設計小技巧之 Linux 文字處理命令(二)程式設計Linux
- 20個有用的linux命令列技巧Linux命令列
- Linux命令列六大技巧Linux命令列
- 六個優雅的 Linux 命令列技巧Linux命令列
- 生信小技巧:實用的命令(3)
- 5個經典有趣的 Linux 命令列技巧Linux命令列
- 給新手的 10 個有用 Linux 命令列技巧Linux命令列
- 最有用的Linux命令列使用技巧集錦Linux命令列
- LINUX命令列終端提示符多種實用技巧!Linux命令列
- 最實用也最容易被遺忘的 Linux 命令列使用技巧Linux命令列
- Linux 常見命令小技巧集錦Linux
- JavaScript兩個歎號(!!)JavaScript
- Linux程式設計——用getopt處理命令列引數Linux程式設計命令列
- IDEA小技巧:Markdown裡的命令列可以直接執行了Idea命令列
- Linux命令列中幾個使用history相關的技巧Linux命令列
- 在 Linux 命令列中使用 ls 列出檔案的技巧Linux命令列
- 實用處理字串的linux命令字串Linux
- 7個讓你驚歎的HTML技巧HTML
- Linux命令技巧之30個必會的命令技巧Linux
- Linux命令技巧Linux
- 每個Linux使用者都應該知道的命令列技巧Linux命令列
- [C++]括號使用小技巧C++
- 命令列技巧:使用 find 和 xargs 查詢和處理檔案命令列
- javascript兩個歎號!!的作用是什麼JavaScript
- 實用的jQuery小技巧jQuery