首頁 > 系統教程 > Linux > 主體

Linux命令歷史記錄-輕鬆提高命令列效率

WBOY
發布: 2024-02-13 18:45:02
轉載
1243 人瀏覽過

對於Linux愛好者和開發者來說,命令列是一個極為重要的工具。但是,在頻繁使用命令列的過程中,我們難免會出現輸入錯誤或忘記之前曾經使用過的命令等問題。此時,Linux命令歷史記錄就可以派上用場了。它能夠讓我們輕鬆地找到並重複使用先前的命令,大大提高我們的工作效率。下面,就讓我們一起來探究一下這個強大的工具吧!

history的基礎

#HISTSIZE 變數值設定儲存在歷史清單中的指令數。預設情況下,該值為 500。這些先前發出的命令(稱為歷史列表)儲存在歷史文件中。它的預設位置是~/.bash_history,這個位置儲存在shell變數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
登入後複製
Linux命令歷史記錄-輕鬆提高命令列效率

重複比對字串中任意位置的最後一個指令

#!?格式與上述相同,但李世明令不必是命令的開頭:

[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"}]
登入後複製
Linux命令歷史記錄-輕鬆提高命令列效率

重複歷史記錄中的第 n 個指令

#重複 bash 歷史記錄中的第 n 個指令:

[root@localhost ~]# !772
登入後複製
Linux命令歷史記錄-輕鬆提高命令列效率

重複最後一條指令

如果有一個我一直使用的指令,那就是!!。重複歷史清單中的最後一個指令,其行為與 !-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 ~]# 
登入後複製

Linux命令歷史記錄-輕鬆提高命令列效率
# 如果上一條指令忘記加上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 ~]# 
登入後複製
Linux命令歷史記錄-輕鬆提高命令列效率

通过本文的学习,我们已经学会了如何使用Linux命令历史记录来提高我们的命令行操作效率。同时,我们还了解了常用的历史命令操作以及如何对历史记录进行配置和管理。希望这篇文章对你在使用Linux命令行时有所帮助,并能够让你更加高效地完成自己的工作。

以上是Linux命令歷史記錄-輕鬆提高命令列效率的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:lxlinux.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!