Heim  >  Artikel  >  System-Tutorial  >  Linux-Befehlsverlauf – Verbessern Sie ganz einfach die Effizienz der Befehlszeile

Linux-Befehlsverlauf – Verbessern Sie ganz einfach die Effizienz der Befehlszeile

WBOY
WBOYnach vorne
2024-02-13 18:45:021278Durchsuche

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
Linux-Befehlsverlauf – Verbessern Sie ganz einfach die Effizienz der Befehlszeile

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"}]
Linux-Befehlsverlauf – Verbessern Sie ganz einfach die Effizienz der Befehlszeile

Wiederholen Sie den n-ten Befehl im Verlauf

Wiederholen Sie den n-ten Befehl im Bash-Verlauf:

[root@localhost ~]# !772
Linux-Befehlsverlauf – Verbessern Sie ganz einfach die Effizienz der Befehlszeile

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 ~]# 

Linux-Befehlsverlauf – Verbessern Sie ganz einfach die Effizienz der Befehlszeile
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
Das

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-Befehlsverlauf – Verbessern Sie ganz einfach die Effizienz der Befehlszeile

通过本文的学习,我们已经学会了如何使用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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen