Vorwort Tatsächlich gibt es für das bescheidene „!“ in Linux viele erstaunliche Einsatzmöglichkeiten, die Sie in Erstaunen versetzen werden. In diesem Artikel werden die magischen Verwendungsmöglichkeiten von „!“ ausführlich beschrieben. Werfen wir einen Blick auf die ausführliche Einführung. Führen Sie den vorherigen Befehl aus Beispielsweise können Sie nach der Ausführung des vorherigen Befehls die folgende Methode verwenden, um den vorherigen Befehl erneut auszuführen: $ whereis bash #Befehl bash ausführen: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz $ !! # Führen Sie den vorherigen Befehl erneut aus, wo sich bash befindet bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz !! stellt den zuletzt ausgeführten Befehl dar. Wie Sie sehen, wird bei der Eingabe von zwei Ausrufezeichen der vorherige Befehl angezeigt und gleichzeitig ausgeführt. Normalerweise denken wir natürlich daran, für diese Aufgabe die Taste „AUF“ zu verwenden. Aber wenn es auf der vorherigen Befehlserweiterung basiert, ist !! praktischer. $ /opt/user/test.txt #Habe vergessen, mehr einzugeben $ mehr!! #Ist das nicht viel schneller? Benutzen Sie es! Ist das nicht viel bequemer? Führen Sie einen Befehl mit dem ersten oder letzten Argument des vorherigen Befehls aus. Verwenden Sie den letzten Parameter des vorherigen Befehls Wenn Sie beispielsweise mit ls den Inhalt eines Verzeichnisses ohne Parameter auflisten, dies aber mit dem Parameter -al erneut ausführen möchten, ohne einen langen Parameter angeben zu müssen, können Sie die folgende Methode verwenden: $ ls /proc/1/task/1/net/tcp /proc/1/Aufgabe/1/net/tc $ ls -al !$ ls -al /proc/1/task/1/net/tcp -r--r--r-- 1 root root 0 22. Dezember 17:30 /proc/1/task/1/net/tcp Hier stellt !$ den letzten Parameter des vorherigen Befehls dar. Verwenden Sie den ersten Parameter des vorherigen Befehls Um den ersten Parameter des vorherigen Befehls zu verwenden, verwenden Sie einfach !^, zum Beispiel: $ ls -al !^ Entfernen Sie den letzten Parameter und führen Sie den vorherigen Befehl aus Wenn Sie den vorherigen Befehl ohne den letzten Parameter ausführen möchten: $ ls -al dir #Angenommen, dir ist eine sehr lange Zeichenfolge $ !:- ls -al In welchen Szenarien könnte es verwendet werden? Wenn beispielsweise der letzte Parameter Ihres vorherigen Befehls eine lange Zeichenfolge ist und Sie diese nicht verwenden möchten und das Löschen mit der Rücktaste langsam ist, können Sie die obige Methode verwenden. Alle Parameter des vorherigen Befehls verwenden Wir haben bereits erwähnt, dass wir den letzten Parameter des vorherigen Befehls verwenden. Was passiert, wenn es nicht der letzte Parameter ist? Es ist ganz einfach, verwenden Sie einfach !*. Wenn uns beispielsweise bei der Eingabe des Find-Befehls ein Fehler unterläuft und wir diesen korrigieren möchten: $ fin -name "test.zip" #Das Suchwort hier ist falsch. $ finden !* finde ./ -name "test.zip" ./workspaces/shell/find/test.zip ./workspaces/shell/test.zip Verwenden Sie die im vorherigen Befehl angegebenen Parameter Einige Leser fragen sich möglicherweise: Was ist, wenn ich nur einen der Parameter verwenden möchte? Befolgen Sie einfach die Regel ![Befehlsname]:[Parameternummer]. Zum Beispiel: $ cp -rf dira dirb/ #Kopiere dira nach dirb $ ls -l !cp:2 #Den Inhalt von dira anzeigen ls -l dira gesamt 0 -rw-rw-r-- 1 hyb hyb 0 Dez 22 17:45 testdatei Der Effekt ist deutlicher, wenn die Parameter des vorherigen Befehls sehr lang sind und Sie in der Mitte einen Parameter verwenden müssen. Befehle im Verlauf ausführen Wir alle wissen, dass wir mit dem Verlaufsbefehl zuvor ausgeführte Befehle anzeigen können, aber wie führen wir die Befehle im Verlauf erneut aus? Wir können die Taste „UP“ zum Anzeigen verwenden, aber wenn der Verlaufsbefehl sehr lang ist, ist das nicht sehr praktisch. In diesem Fall ist „!“ praktisch: $ Geschichte (Weitere Inhalte wurden hier weggelassen) 2043 berühren ./dira/testfile 2044 cp -rf dira dirb/ 2045 ls -al dira 2046 ls -l dira 2047 ls -al dira 2048 ls -l dira 2049 ls -al dira 2050 ls -l dira 2051 Geschichte Wir können sehen, dass der Verlaufsbefehl die zuvor ausgeführten Befehle anzeigen kann, und wir können auch einen Wert davor sehen. Wenn wir den vorherigen Befehl cp -rf dira dirb/ ausführen möchten, können wir dies eigentlich auf folgende Weise tun: $ !2044 #2044 ist der n-te ausgeführte Befehl cp -rf dira dirb/ Das heißt, historische Befehle werden über ![historischer Befehlswert] ausgeführt. Wenn wir den vorletzten Befehl ausführen möchten, gibt es natürlich eine Möglichkeit: $ !-2 #Auf das Ausrufezeichen folgt eine negative Zahl, und die negative Zahl stellt die letzte Zahl des Elements dar Ausführen historischer Befehle nach Schlüsselwort !Sie können Befehle basierend auf Schlüsselwörtern ausführen. Führen Sie den vorherigen Befehl aus, beginnend mit dem Schlüsselwort Führen Sie beispielsweise den vorherigen Suchbefehl aus: $ !find #Führen Sie den vorherigen Befehl aus, beginnend mit find Führen Sie den vorherigen Befehl mit dem Schlüsselwort aus Führen Sie für ein weiteres Beispiel den vorherigen Befehl mit dem Namen aus: $ finde ./ -name "test" ./prüfen ./finden/testen $ !?Name? finde ./ -name "test" ./prüfen ./finden/testen Ersetzen Sie die Parameter des vorherigen Befehls Zum Beispiel: $ find ./ -name "alt*" -a -name "*.zip" Wenn wir in diesem Befehl „alt“ durch „neu“ ersetzen müssen: $ !!:gs/alt/neu Die Rolle der logischen Negation Dies ist die bekannteste Funktion, um beispielsweise alle Dateien außer denen mit der Endung cfg zu löschen: rm !(*.cfg) # Vorsicht beim Löschen Auf die Einzelheiten werde ich hier nicht näher eingehen. Zusammenfassen Die Wirkung des Ausrufezeichens „!“ ist manchmal tatsächlich verblüffend. Es wurde vielleicht gerade schon einmal erwähnt! In Kombination mit anderen Zeichen, um eine bestimmte Verwendung einer bestimmten Bedeutung darzustellen, können wir tatsächlich kombinieren oder erweitern, um noch mehr wunderbare Verwendungsmöglichkeiten zu entdecken. Darauf wird hier nicht näher eingegangen. Welche anderen guten Entdeckungen haben Sie gemacht? Hinterlassen Sie gerne eine Nachricht! Nun, das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.
Das könnte Sie auch interessieren:
|
<<: Tiefgreifendes Verständnis der Kernprinzipien von React Native (Bridge of React Native)
>>: Mysql 5.6 fügt eine Methode zum Ändern von Benutzername und Passwort hinzu
Inhaltsverzeichnis Variablenbereich Das Konzept d...
ins und del wurden in HTML 4.0 eingeführt, um Auto...
Dieser Beitrag stellt eine Reihe kostenloser Phot...
Ausgehend von diesem Artikel dient eine neue Arti...
Da das Team Front-End und Back-End trennt, überni...
Inhaltsverzeichnis 1. Zertifikat generieren 2. Ak...
In einigen Szenarien müssen wir unsere Felder vom...
Was ist SSH? Administratoren können sich remote a...
Einführung Wie im vorherigen Artikel erwähnt, gib...
Inhaltsverzeichnis 1. Props übergeordnete Kompone...
In diesem Tutorial erfahren Sie alles über die In...
Inhaltsverzeichnis Eckig erreichen Aufrufreihenfo...
<Text> <div id="Wurzel"> &l...
Vorwort Da immer wieder Fehler auftreten, protoko...
In diesem Artikel wird der spezifische Code des j...