GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So korrigieren Sie Fehler und Tippfehler in früheren Konsolenbefehlen unter Linux

Haben Sie jemals unwissentlich einen Befehl mit einem Tippfehler ausgeführt? Nun, Sie können einfach den Pfeil nach oben/unten drücken, um den Befehlsverlauf aufzurufen, den falsch geschriebenen Befehl zu finden, den Tippfehler zu bearbeiten und ihn schließlich erneut auszuführen. Das werden die meisten von uns normalerweise tun! Es gibt jedoch auch andere Möglichkeiten, Tippfehler in zuvor eingegebenen Befehlen zu korrigieren. In diesem Tutorial sehen wir alle Möglichkeiten, Fehler in früheren Konsolenbefehlen in Linux und Unix zu korrigieren.

Haftungsausschluss:

Dieser Artikel enthält eine NSFW (Not Safe For Work) und ein ungewöhnliches Wort an einigen Stellen. Obwohl ich dieses Wort leicht maskiert hatte, konnte ich es nicht ganz vermeiden. Da es keine Möglichkeit gibt, dieses Wort auszuschließen, entschuldigen Sie sich bitte im Voraus, wenn Sie sich durch diesen Beitrag unwohl gefühlt haben und ich Sie in irgendeiner Weise beleidigt habe.

1. Korrigieren Sie Fehler in vorherigen Konsolenbefehlen mit der 'thef*ck'-App

Das Dienstprogramm Thef*ck wird verwendet, um Fehler und Tippfehler in den zuvor ausgeführten Befehlen in Linux zu korrigieren.

Haben Sie in Eile einen Befehl mit einem Tippfehler ausgeführt? Haben Sie vergessen, sudo hinzuzufügen in einem Befehl? Kein Problem! Diese Anwendung zeigt automatisch die korrigierten Befehle für den zuvor ausgeführten Befehl!!

Sie können den richtigen Befehl auswählen und die EINGABETASTE drücken, um ihn auszuführen. Sie müssen nicht durch den Befehlsverlauf navigieren, um Tippfehler in einem Befehl manuell zu korrigieren!

Der Entwickler dieser Anwendung ließ sich von einem Tweet inspirieren und diese coole Bewerbung gemacht. Es ist in der Sprache Python geschrieben. Es ist eine Open-Source-Anwendung und ihr Code ist in GitHub öffentlich verfügbar.

1.1. Installation

Wir können es entweder mit dem PiP installieren Paketmanager oder der Standardpaketmanager der Distribution.

Stellen Sie sicher, dass Sie PiP installiert haben .

Führen Sie nach der Installation von PiP den folgenden Befehl aus, um es wie folgt zu installieren:

$ pip3 install --user thefuck

Dadurch wird die neueste verfügbare Version installiert.

Es ist auch für viele Linux- und Unix-Distributionen gepackt, sodass Sie es mit dem Standard-Paketmanager Ihrer Distribution installieren können. Auf der GitHub-Seite des Projekts (am Ende angegeben) erfahren Sie, wie Sie es mit dem OS-Paketmanager installieren.

1.2. Konfiguration

Es wird empfohlen, die folgende Zeile in Ihrem .bash_profile hinzuzufügen , .bashrc , .zshrc oder ein anderes Startskript.

$ nano ~/.bashrc

Fügen Sie die folgende Zeile hinzu:

eval $(thefuck --alias fixthis)

Hier habe ich „fixthis“ als Alias ​​verwendet. Sie können als Alias ​​verwenden, was Sie wollen.

Drücken Sie Ctrl+o und ENTER zum Speichern der Datei und Ctrl+x um es zu schließen.

Führen Sie den folgenden Befehl aus, um die Änderungen zu aktualisieren:

$ source ~/.bashrc

1.3. Verwendung

Das 'fixthis' funktioniert basierend auf einer Reihe von eingebauten Regeln. Die vollständige Liste der aktivierten Regeln finden Sie hier. Sie können auch Ihre eigenen Regeln erstellen.

Beim Ausführen eines falsch eingegebenen Befehls wird versucht, den vorherigen Befehl mit einer Regel abzugleichen. Wenn eine Übereinstimmung gefunden wird, wird ein neuer Befehl unter Verwendung der übereinstimmenden Regel erstellt und ausgeführt.

Sehen wir uns einige Beispiele an.

Ich werde mein Manjaro-System mit dem folgenden Befehl als normaler Benutzer aktualisieren:

$ pacman -Syu

Beispielausgabe:

error: you cannot perform this operation unless you are root.

Wie Sie sehen können, zeigt der obige Befehl einen Berechtigungsfehler an. Weil ich sudo nicht hinzugefügt habe vor dem Befehl.

sudo muss nicht hinzugefügt werden und den Befehl erneut ausführen. Alles, was Sie tun müssen, ist einfach den 'fixthis'-Befehl wie unten auszuführen:

$ fixthis

Jetzt werden gültige Befehlsvorschläge für den zuvor ausgeführten Befehl aufgelistet.

Wenn es dasjenige ist, das Sie ausführen möchten, drücken Sie einfach die EINGABETASTE, um es auszuführen. Ist dies nicht der Fall, drücken Sie die Pfeiltasten NACH OBEN/NACH UNTEN, um andere vorgeschlagene Befehle anzuzeigen.

In meinem Fall gehe ich mit dem ersten, was der richtige Befehl ist, wie in der Ausgabe unten gezeigt.

sudo pacman -Syu [enter/↑/↓/ctrl+c]

Sehen? Wenn der vorherige Befehl aufgrund eines Berechtigungsfehlers fehlgeschlagen ist, stellt die App „fixthis“ dem Befehl sudo voran und führe es erneut aus. Cool, oder? Um die Ausführung des Befehls abzubrechen, drücken Sie Strg+C .

Wenn Sie einen falsch geschriebenen Befehl ausgeführt haben, wird der Rechtschreibfehler korrigiert und der Befehl erneut ausgeführt.

$ pithon

Beispielausgabe:

bash: pithon: command not found
$ fixthis
python3 [enter/↑/↓/ctrl+c]

Wenn Sie Befehle rekursiv bis zum Erfolg korrigieren möchten, können Sie das -r verwenden Möglichkeit:

$ fixthis -r

Weitere Beispiele finden Sie im folgenden offiziellen Screencast des Entwicklers.

Obwohl diese App sehr nützlich ist, um Tippfehler und Fehler in Linux-Befehlen schnell zu beheben, hat diese App einen sensiblen und unangemessenen Namen, sodass Sie sie in manchen Situationen möglicherweise nicht verwenden möchten.

Wenn Sie sich beim Ausführen dieses Befehls in solchen Situationen unwohl fühlen, können Sie einfach einen Alias ​​erstellen (z. B. bitte, fixthis), wie im Abschnitt "Konfiguration" oben gezeigt.

2. Korrigieren Sie Fehler in Befehlen mit Fix

Die Korrektur ist ein weiteres cooles Dienstprogramm, das uns hilft, Fehler oder Tippfehler in einem Befehl schnell zu korrigieren. Auch wenn der Fix dasselbe wie thef*ck macht, unterscheidet er sich geringfügig.

Thef*ck ist stark in der Syntax, während Fix besser ist, wenn der semantische Aspekt wichtig ist. Thef*ck kann Ihnen nicht sagen, welches Paket Sie installieren sollen, wenn die Ausführung eines Skripts nicht funktioniert.

Das Hilfsprogramm „Fix“ soll verwendet werden, wenn Sie nicht wissen, wie Sie es selbst beheben können. Es schlägt einige Lösungen für die falsch eingegebenen oder falsch geschriebenen Befehle vor.

Es verwendet Codex AI von OpenAI um alle möglichen Lösungen vorzuschlagen, um die Fehler in den Befehlen zu korrigieren. Alles, was Sie tun müssen, ist, dem Befehl einfach „fix“ voranzustellen, und die KI schlägt optimale Lösungen vor.

2.1. Fix unter Linux installieren

Die Installation von Fix ist einfach!

1. Zunächst müssen Sie Zugriff auf die Codex-API von OpenAI erhalten .

2. Und git klonen Sie das Repository:

$ git clone https://github.com/tom-doerr/fix.git

Der Inhalt des Github-Repositorys des Projekts wird in einen lokalen Ordner mit dem Namen „fix“ geklont '.

3. cd in das 'fix'-Verzeichnis:

$ cd fix

4. Fügen Sie main.py hinzu zu Ihrem $PATH:

$ cp $PWD/main.py ~/.local/bin/fix

2.2. Verwendung

Um einen falsch geschriebenen Befehl zu korrigieren, fügen Sie einfach „fix“ vor dem Befehl ein, wie unten:

$ fix mkdir abc/def

Um den letzten Befehl zu reparieren, tun Sie einfach:

$ fix !!

Die KI generiert meistens falsche Lösungen, aber genug der generierten Lösungen funktionieren tatsächlich, um nützlich zu sein.

Hier ist die visuelle Demo der Fix-Anwendung.

Empfohlene Lektüre:

  • Verschiedene Möglichkeiten, Ihren letzten Befehl unter Linux zu wiederholen

3. Korrigieren Sie falsch geschriebene Bash-Befehle mit Caret-Symbol

Dieser Trick funktioniert nur auf BASH.

Dieser Trick ist sehr einfach. Wir ersetzen einfach das falsche Wort mit richtigem Wort mit Caret (^ ) Symbol.

Nehmen wir an, Sie möchten ein Verzeichnis mit 'mkdir erstellen ' Befehl. Aber Sie haben das 'i verpasst ' im Befehl und geben Sie 'mkdr ein ' stattdessen wie unten.

$ mkdr ostechnix
bash: mkdr: command not found

Um den Tippfehler im obigen Befehl zu beheben, können wir einfach 'dr ersetzen ' mit 'dir ' mit Caret-Symbol wie unten:

$ ^dr^dir^

Jetzt interpretiert die Bash dies als 'mkdir ' und führen Sie es aus und zeigen Sie die Ausgabe wie unten gezeigt an.

mkdir ostechnix

4. Korrigieren Sie Tippfehler bei der Verwendung des cd-Befehls

Ich habe oft versucht, schnell in die Konsole einzutippen und mit Tippfehlern gelandet, wenn cd in ein Verzeichnis.

$ cd Pctures
bash: cd: Pctures: No such file or directory

Ich werde ein oder zwei Wörter vermissen, wenn ich den Verzeichnisnamen eintippe. Wenn Sie so etwas wie ich sind, erfahren Sie hier, wie Sie Tippfehler bei der Verwendung von cd automatisch korrigieren Befehl.

Um dieses Problem zu beheben, bearbeiten Sie ~/.bashrc Datei:

$ nano ~/.bashrc

Fügen Sie am Ende die folgende Zeile hinzu:

shopt -s cdspell

Drücken Sie Ctrl+o und ENTER zum Speichern der Datei und Ctrl+x um es zu schließen.

Führen Sie den folgenden Befehl aus, um die Änderungen zu aktualisieren:

$ source ~/.bashrc

Von nun an erkennt Ihre Shell automatisch den richtigen Verzeichnispfad, auch wenn Sie sich vertippt haben.

Dieser Trick hat einige Nachteile. Der Fall und die Reihenfolge ist wichtig.

Zum Beispiel, wenn Sie 'Bilder' verwenden statt 'Bilder' , wird der Pfad nicht erkannt. Hier habe ich 'p' in Kleinbuchstaben verwendet für das Verzeichnis 'Bilder' .

$ cd Pctures
bash: cd: Pctures: No such file or directory

Auch wenn Sie 'Pctrues' verwenden statt 'Bilder' , erkennt es den Verzeichnispfad immer noch nicht, selbst wenn Sie die richtige Groß-/Kleinschreibung verwenden, und beschwert sich, dass es keine solche Datei oder kein solches Verzeichnis gibt.

$ cd Pctrues
bash: cd: Pctrues: No such file or directory

Hier habe ich die Reihenfolge der Buchstaben im Verzeichnis „Bilder“ geändert.

Auch wenn mehr als ein Buchstabe im Verzeichnispfad fehlt, funktioniert es nicht so gut.

Bitte beachten Sie, dass dieser Tipp nur für 'cd gilt ' Befehl. Außerdem gilt dieser Tipp nur für Bash. In Fish und Zsh ist diese Funktion integriert.

Bonus - Paketinstallation vorschlagen, wenn ein fehlender Befehl ausgeführt wird

Sie sollten bemerkt haben, dass Sie beim Ausführen eines nicht verfügbaren Befehls eine Fehlermeldung wie die folgende erhalten:

bash: ....: command not found

Wenn Sie wissen, welches Paket den fehlenden Befehl enthält, können Sie dieses Paket einfach installieren und den Befehl erneut ausführen. Wenn Sie es jedoch nicht wissen, brauchen Sie vielleicht ein wenig Hilfe.

Um dieses Problem zu beheben, gibt es ein Paket mit dem Namen „command-not-found“. '. Dies schlägt eine Liste von Paketen vor, die installiert werden müssen, um den nicht verfügbaren Befehl zu verwenden.

Es durchsucht automatisch die offiziellen Repositorys, wenn ein nicht erkannter oder nicht verfügbarer Befehl eingegeben wird. Einzelheiten finden Sie unter folgendem Link.

  • Installation von Paketen vorschlagen, wenn ein nicht verfügbarer Befehl ausgeführt wird

Schlussfolgerung

Los geht's! Dies sind einige Möglichkeiten, mit Befehlszeilen-Tippfehlern und Fehlern in Linux- und Unix-Systemen umzugehen. Sie können diejenige auswählen, die zu Ihnen passt, oder eine Kombination aus zwei oder mehr verwenden. Zum Beispiel verwende ich von Zeit zu Zeit sowohl 'Fix' als auch 'thef*ck', um Fehler und Tippfehler in Konsolenbefehlen zu beheben.


Linux
  1. 10 erstaunliche und mysteriöse Verwendungen von (!) Symbolen oder Operatoren in Linux-Befehlen

  2. So deaktivieren Sie Befehle zum Herunterfahren und Neustarten in Linux

  3. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  4. Linux-Befehle:jobs, bg und fg

  5. So beschränken Sie Benutzerbefehle in Linux

So führen Sie Linux-Startskripts und -Befehle automatisch aus

So korrigieren Sie einfach falsch geschriebene Bash-Befehle in Linux

So führen Sie mehrere Linux-Befehle in einem einzigen Befehl aus

So installieren und verwenden Sie den fd-Befehl unter Linux

So führen Sie mehrere Linux-Befehle gleichzeitig im Linux-Terminal aus

Wie man ein C-Programm unter Linux schreibt und ausführt