


8 Geheimnisvolle M?glichkeiten, den (!) Operator in Linux -Befehlen zu verwenden
Jun 17, 2025 pm 01:59 PMDer '!'
Symbol oder Operator unter Linux kann als logischer Negationsoperator verwendet werden und Befehle aus dem Verlauf mit Optimierungen abrufen oder zuvor ausgeführte Befehle mit ?nderungen ausführen.
Die meisten der folgenden Linux -Befehle verwenden mit '!'
Das Symbol kann zwischen verschiedenen Schalen variieren. W?hrend die von mir bereitgestellten Beispiele h?ufig in der Bash -Shell verwendet werden, haben einige andere Linux -Shells m?glicherweise unterschiedliche Implementierungen oder unterstützen m?glicherweise bestimmte Verwendungen des "!" Symbol überhaupt.
Tauchen wir in die erstaunlichen und mysteri?sen Verwendung von '!'
Symbol oder Bediener in Linux -Befehlen.
Inhaltsverzeichnis
1. Führen Sie einen Befehl aus dem Verlauf mit den Befehlsnummern aus
M?glicherweise sind Sie sich der Tatsache m?glicherweise nicht bewusst, dass Sie einen Befehl aus Ihrem Verlaufsbefehl (bereits/früher ausgeführte Befehle) ausführen k?nnen. Suchen Sie zuerst die Befehlsnummer, indem Sie den Befehl " Verlauf " ausführen.
$ Geschichte
Um einen Befehl aus der Geschichte durch seine Befehlsnummer auszuführen, k?nnen Sie das '!'
Symbol gefolgt von der Befehlsnummer wie gezeigt.
$! 1551
Wenn Sie den obigen Befehl ausführen, wird der obere Befehl unter Zeilennummer 1551 aus Ihrem Verlauf ausgeführt.
Bitte beachten Sie, dass die tats?chliche Befehlsnummer je nach Befehlsverlauf variieren kann. Sie k?nnen den Befehl historisch verwenden, um die Liste der Befehle zusammen mit ihren Zeilennummern anzuzeigen.
2. Führen Sie zuvor ausgeführte Befehle unter Linux aus
Sie k?nnen diese Befehle ausführen, die Sie zuvor durch ihre Laufsequenz ausgeführt haben. Der letzte Laufbefehl wird als -1 , der zweite letzte als -2 , der siebte letzte As -7 usw. dargestellt.
Wenn Sie beispielsweise den Befehl wiederholen m?chten, der vor sechs, acht oder zehnten Befehlen ausgeführt wurde, k?nnen Sie das !-n
verwenden, wobei n
die Anzahl der Befehle zurück ist, auf die Sie sich verweisen m?chten.
$ Geschichte $! -6 $! -8 $! -10
3. übergeben Sie die Argumente des vorherigen Befehls an einen neuen Befehl
Ich muss den Inhalt des Verzeichnisses ' /home/$ user/binary/Firefox ' auflisten, damit ich gefeuert habe.
$ ls/home/$ user/binary/Firefox
Dann wurde mir klar, dass ich ' ls -l ' h?tte feuern sollen, um zu sehen, welche Datei dort ausführte. Soll ich den gesamten Befehl noch einmal eingeben? Nein, ich brauche es nicht. Ich muss nur das letzte Argument zu diesem neuen Befehl mit sich bringen als:
$ ls -l! $
Hier !$
4. Wie man mit zwei oder mehr Argumenten in Befehlen umgeht
Angenommen, ich habe eine Textdatei 1.Txt auf dem Desktop erstellt.
$ touch /home/avi/desktop/1.txt
und kopieren Sie es dann mit dem CP -Befehl in ' /home/avi/downloads ' mit dem vollst?ndigen Pfad.
$ cp /home/avi/desktop/1.txt/home/avi/downloads
Jetzt haben wir zwei Argumente mit dem CP -Befehl übergeben. Erstens ist ' /home/avi/desktop/1.txt ' und das zweite ist ' /home/avi/downloads ', lassen Sie sie anders umgehen und einfach echo [arguments]
ausführen, um beide Argumente unterschiedlich zu drucken.
$ echo "1. Argument ist :!^" $ echo "2. Argument ist :! CP: 2"
Hinweis 1. Argument kann als “!^”
“![Name_of_Command]:[Number_of_argument]”
Im obigen Beispiel war der erste Befehl ' CP ' und das zweite Argument wurden zum Drucken ben?tigt. Daher “!cp:2”
, wenn ein Befehl besagt, dass XYZ mit 5 Argumenten ausgeführt wird und Sie das 4. Argument erhalten müssen, k?nnen Sie “!xyz:4”
verwenden und es so verwenden, wie Sie m?chten. Alle Argumente k?nnen von “!*”
Zugegriffen werden.
5. Führen Sie die letzten Befehle aus, basierend auf bestimmten Schlüsselw?rtern
Wir k?nnen die zuletzt ausgeführten Befehle auf der Grundlage von Schlüsselw?rtern ausführen. Wir k?nnen es wie folgt verstehen:
$ ls /home> /dev /null [Befehl 1] $ ls -l/home/avi/desktop>/dev/null [Befehl 2] $ ls -la/home/avi/downloads>/dev/null [Befehl 3] $ ls -la /usr /bin> /dev /null [Befehl 4]
Hier haben wir den LS -Befehl verwendet, aber mit unterschiedlichen Schalter und für verschiedene Ordner. Darüber hinaus haben wir an die Ausgabe jedes Befehls an ' /dev /null ' gesendet, um die Konsole sauber zu halten.
Führen Sie nun die letzten Laufbefehle auf der Grundlage von Schlüsselw?rtern aus.
$! LS [Befehl 1] $! ls -l [Befehl 2] $! ls -la [Befehl 3] $! ls -la [Befehl 4]
überprüfen Sie die Ausgabe und Sie werden erstaunt sein, dass Sie bereits ausgeführte Befehle nur mit ls
-Schlüsselw?rtern ausführen.
6. Wiederholen Sie den zuletzt ausgeführten Befehl unter Linux
Sie k?nnen Ihren zuletzt ausgeführten Befehl mit (!!)
Operator ausführen/?ndern. Dies ist eine Kurzhinweis, mit der Sie sich auf den vorherigen Befehl beziehen k?nnen, der in der Befehlszeile ausgeführt wurde.
Zum Beispiel habe ich am letzten Tag ein Ein-Liner-Skript ausgeführt, um die IP-Adresse des Linux-Ger?ts herauszufinden.
$ ip adDr show | grep inet | grep -v 'inet6' | Grep -v '127.0.0.1' | awk '{print $ 2}' | cut -f1 -d/ schneiden
Dann habe ich pl?tzlich herausgefunden, dass ich die Ausgabe des obigen Skripts in eine Datei ip.txt umleiten muss. Was soll ich also tun? Sollte ich den gesamten Befehl erneut weitergeben und die Ausgabe in eine Datei umleiten? Nun, eine einfache L?sung besteht darin, den UP
zu verwenden und '> ip.txt'
hinzuzufügen, um die Ausgabe in eine Datei umzuleiten.
$ ip adDr show | grep inet | grep -v 'inet6' | Grep -v '127.0.0.1' | awk '{print $ 2}' | Schnitt -f1 -d/> ip.txt ausschneiden
Vielen Dank an den Lebensrettungsschlüssel UP
Life Savioor hier. Betrachten Sie nun die folgende Bedingung, wenn ich das n?chste Mal das folgende Ein-Liner-Skript ausführe.
$ ifconfig | Grep "Inet addr:" | awk '{print $ 2}' | Grep -v '127.0.0.1' | Schnitt -f2 -d:
Sobald ich das Skript ausführte, gab die Bash -Eingabeaufforderung einen Fehler mit der Meldung ? Bash: ifConfig: Befehl nicht gefunden “ zurück. Es war nicht schwierig für mich, diesen Befehl als Benutzer auszuführen, bei dem es als Root ausgeführt werden sollte.
Also, was ist die L?sung? Es ist schwierig, sich als Root anzumelden und dann den gesamten Befehl erneut einzugeben! Auch ( UP -Navigationschlüssel ) ist im letzten Beispiel hier nicht zur Rettung gekommen. Also? Wir müssen “!!”
anrufen Ohne Zitate, die den letzten Befehl für diesen Benutzer aufrufen.
$ su -c "!!" Wurzel
Hier ist Su der Switch -Benutzer, der das Root !!
-c
wird durch den Befehl ersetzt und der letzte Laufbefehl wird hier ersetzt. Ja! Sie müssen ein Stammkennwort angeben.
7. Entfernen Sie Dateien mit Ausnahme einer Datei mit '!' Operator
In Linux !
Der Bediener (der als " Bang " -Personal bezeichnet wird) wird für die Erweiterung der Verlaufsweiterung verwendet, mit der Sie sich auf frühere Befehle in Ihrem Befehlsverlauf verweisen und verschiedene Operationen mit ihnen ausführen k?nnen.
Um alle Dateien aus einem Verzeichnis mit Ausnahme einer bestimmten Datei ( wichtig_file.txt ) zu entfernen, k?nnen Sie den Befehl rm verwenden !
Bediener wie gezeigt.
$ rm! (wichtig_file.txt)
So entfernen Sie alle Dateitypen aus dem Ordner mit Ausnahme der Erweiterung, deren Erweiterung " .pdf
" ist.
$ $ rm! (*. PDF)
8. überprüfen Sie, ob ein Verzeichnis unter Linux vorhanden ist
Hier werden wir '! -d'
zu validieren, wenn das Verzeichnis existiert oder nicht von logischem und Operator (&&)
um dieses Verzeichnis nicht zu drucken, und logisch oder operator (||)
das das Verzeichnis vorliegt, ist vorhanden.
Logik ist, wenn die Ausgabe von [ ! -d /home/avi/Tecmint ]
ist 0 , es wird das ausführen, was jenseits logisch liegt, und es geht an logisch oder (||)
und das, was jenseits logisch oder über logisch liegt.
$ [! -d/home/avi/tecmint] && printf '\ nno so/home/avi/tecmint verzeichnis existieren \ n' || printf '\ n/home/avi/tecmint -Verzeichnis existieren \ n'
?hnlich wie bei der obigen Bedingung, aber hier, wenn das gewünschte Verzeichnis nicht vorhanden ist, wird der Befehl beendet.
$ [! -d/home/avi/tecmint] && beenden
Eine allgemeine Implementierung in der Skriptsprache, bei der das gewünschte Verzeichnis nicht vorhanden ist, erstellt es eine.
[! -d/home/avi/tecmint] && mkdir/home/avi/tecmint
Das ist alles vorerst. Wenn Sie eine andere Verwendung von '!'
Was wissenswert ist, m?chten Sie uns m?glicherweise Ihren Vorschlag in das Feedback geben. Bleiben in Verbindung!
Das obige ist der detaillierte Inhalt von8 Geheimnisvolle M?glichkeiten, den (!) Operator in Linux -Befehlen zu verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Als Systemadministrator k?nnen Sie sich (heute oder in Zukunft) in einer Umgebung arbeiten, in der Windows und Linux koexistieren. Es ist kein Geheimnis, dass einige gro?e Unternehmen einige ihrer Produktionsdienste in Windows -Boxen bevorzugen (oder müssen).

In Linux-Systemen 1. IPA- oder Hostname-I-Befehl verwenden, um private IP anzuzeigen. 2. Verwenden Sie curlifconfig.me oder curlipinfo.io/ip, um ?ffentliche IP zu erhalten. 3. Die Desktop -Version kann private IP über Systemeinstellungen anzeigen, und der Browser kann auf bestimmte Websites zugreifen, um die ?ffentliche IP anzuzeigen. 4. Gemeinsame Befehle k?nnen als Aliase für einen schnellen Anruf festgelegt werden. Diese Methoden sind einfach und praktisch und für IP -Anzeigenanforderungen in verschiedenen Szenarien geeignet.

Node.js basiert auf Chrome's V8 Engine und ist eine offene, ereignisgesteuerte JavaScript-Laufzeitumgebung, die zum Aufbau skalierbarer Anwendungen und Backend-APIs hergestellt wurde. NodeJS ist dafür bekannt, dass sie aufgrund seines nicht blockierenden E/A-Modells leicht und effizient ist und effizient

LinuxcanrunonModesthardwareWithSpecificMinimumRequirements Amshouldbeatleast512MBForCommand-LINEUSOR2GBFORTESKTOPENVIRMENTS.DIKSPACEREQUIRESAMINIMUMUMOF5–10 GB, obwohl25GBISBETTERFORAD

MySQL ist in C geschrieben und ist eine Open-Source, plattformübergreifend und eines der am h?ufigsten verwendeten relationalen Datenbankverwaltungssysteme (RDMS). Es ist ein wesentlicher Bestandteil des Lampenstacks und ein beliebtes Datenbankverwaltungssystem für Webhosting, Datenanalyse,

Ubuntu hat lange als Bastion von Bastion of Barrierefreiheit, Polnisch und Macht im Linux -?kosystem gelandet. Mit der Ankunft von Ubuntu 25.04, dem Codenamen ?Plucky Puffin“, hat Canonical erneut sein Engagement für die Bereitstellung eines gezeigt

MongoDB ist eine leistungsstarke, hochskalierbare dokumentorientierte NoSQL-Datenbank, die für den starken Verkehr und eine enorme Datenmenge erstellt wurde. Im Gegensatz zu herk?mmlichen SQL -Datenbanken, die Daten in Zeilen und Spalten in Tabellen speichern, strukturiert MongoDB Daten in einem j

Magento wurde in PHP geschrieben und ist eine beliebte Open-Source-Plattform und eine vielseitige E-Commerce-Plattform, die Unternehmen einen Online-Einkaufswagen bietet. Es nutzt verschiedene PHP -Frameworks wie Symfony und Laminas, um seine Funktionalit?t und Benutzerfreundlichkeit zu verbessern. Magier
