Für Linux-Enthusiasten und Entwickler ist die Befehlszeile ein äußerst wichtiges Werkzeug. Bei häufiger Nutzung der Befehlszeile machen wir jedoch unweigerlich Eingabefehler oder vergessen die Befehle, die wir zuvor verwendet haben. An dieser Stelle kann der Linux-Befehlsverlauf hilfreich sein. Es ermöglicht uns, frühere Befehle leicht zu finden und wiederzuverwenden, was unsere Arbeitseffizienz erheblich verbessert. Lassen Sie uns nun gemeinsam dieses leistungsstarke Tool erkunden!
Grundlagen der Geschichte
HISTSIZE
变量值设置保存在历史列表中的命令数。默认情况下,该值为 500。这些先前发出的命令(称为历史列表)存储在历史文件中。它的默认位置是~/.bash_history
,这个位置存储在shell变量HISTFILE
中.
Der Befehl !
wird in diesem Artikel verwendet, um Befehle aus der Bash-Verlaufsliste in die Eingabe einzuführen. Diese Funktion erleichtert Benutzern das schnelle Wiederholen von Befehlen, das Ersetzen von Text, das Bearbeiten von Parametern und das Korrigieren von Rechtschreibfehlern in vorherigen Befehlen.
Beispiel für eine Befehlswiederholung
Hier sind einige Beispiele dafür, was Sie damit machen können !
.
Wiederholen Sie den letzten Befehl am Anfang der passenden Zeichenfolge
!
gefolgt vom ersten Zeichen (oder der ersten Zeichenfolge), das dem auszuführenden Befehl entspricht, wiederholt die Instanz dieses Befehls:
[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
Den letzten Befehl an einer beliebigen Stelle in der Zeichenfolge immer wieder abgleichen
!?
Das Format ist das gleiche wie oben, aber der Befehl von Li Shiming muss nicht am Anfang des Befehls stehen:
[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"}]
Wiederholen Sie den n-ten Befehl im Verlauf
Wiederholen Sie den n-ten Befehl im Bash-Verlauf:
[root@localhost ~]# !772
Letzten Befehl wiederholen
Wenn es einen Befehl gibt, den ich ständig verwende, dann ist es !!
。重复历史列表中的最后一个命令,其行为与 !-1
Das Gleiche wie:
[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 ~]#
Verwenden Sie es, wenn Sie vergessen haben, sudo
来执行,可以结合!!
zum vorherigen Befehl hinzuzufügen. Es kann später auch in Verbindung mit dem Pipe-Zeichen verwendet werden.
$ 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
Zeichenfolge wiederholen und ersetzen
Ich gebe oft lange Befehle ein und gebe sie dann mit anderen Parametern erneut ein. Oder ich muss einen Befehl erneut ausgeben, weil in meinem vorherigen Befehl ein Tippfehler enthalten war. Durch die Zeichenfolgenersetzung kann ich dies tun, ohne den gesamten langen Befehl erneut eingeben zu müssen. Hier ist die Syntax:
!!:s^oldstring^newstring
im ^
-Befehl ist das Trennzeichen und ersetzt die vorherige alte Zeichenfolge durch die folgende neue Zeichenfolge.
[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命令行时有所帮助,并能够让你更加高效地完成自己的工作。
Das obige ist der detaillierte Inhalt vonLinux-Befehlsverlauf – Verbessern Sie ganz einfach die Effizienz der Befehlszeile. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!