8 Tippfehler, die Sie unter Linux wirklich vermeiden müssen

Veröffentlicht: 2023-01-15
Nahaufnahme einer Tastaturtaste mit der Aufschrift "Oops!"
Redpixel.pl/Shutterstock
Überprüfe noch einmal, ob du deinen Befehl richtig eingegeben hast, bevor du „Enter“ drückst. Unter Linux kann ein Tippfehler destruktive Auswirkungen haben. Verwenden Sie die Tab-Vervollständigung, um so viele Befehlszeileneinträge wie möglich automatisch auszufüllen. Auch Aliase für lange und komplizierte Befehle sind eine tolle Idee.

Die Linux-Befehlszeile liefert große Leistung. Das Problem ist, dass die richtige Verwendung dieser Kraft von der Genauigkeit Ihrer Eingabe abhängt. Hier sind acht Tippfehler, die Sie niemals machen möchten.

Inhaltsverzeichnis

Die Linux-Befehlszeile
1. Vergessen Sie nicht das -a
2. Verwenden der falschen Laufwerkskennung mit dd
3. Verwenden der falschen Laufwerkskennung mit mkfs
4. Löschen Sie Ihre Crontab-Datei nicht
5. Wiederholung der Geschichte
6. Die Katastrophe der Räume
7. Verwenden Sie > anstelle von >>
8. Umleitung in die falsche Richtung
So vermeiden Sie Tippfehler in der Befehlszeile

Die Linux-Befehlszeile

Die Linux-Befehlszeile ist ein Portal zu großer Macht, aber ein Tippfehler genügt, damit sich diese Macht gegen Sie wendet. Wir haben alle von dem Befehl gehört, den Sie niemals ausführen sollten. Worüber wir hier sprechen, sind Befehle, die Sie ausführen möchten, bei denen jedoch ein Fehler eine Katastrophe bedeuten kann.

Wenn Sie „Enter“ drücken, wird alles, was Sie eingegeben haben, von der Shell verarbeitet. Aliase und Variablen werden erweitert. Befehle, Optionen und Parameter werden identifiziert. Dies wird Parsing genannt. Der nächste Schritt übergibt Ihre geparste Eingabe an die Befehle, die Ihre Anweisungen ausführen werden.

Wenn Sie bei der Eingabe Ihrer Befehle einen Fehler machen, wird dies möglicherweise als Syntaxfehler abgefangen. Aber wenn Ihr Fehler eine andere gültige Befehlszeile erstellt, wird sie ausgeführt.

Ein einfacher Tippfehler kann wirklich destruktiv sein. Das Ausmaß der Zerstörung hängt vom Befehl und vom Fehler ab. Sie könnten Zeit verlieren. Sie könnten eine Datei verlieren. Sie könnten ein ganzes Dateisystem verlieren.

VERWANDT: Was ist die Bash-Shell und warum ist sie für Linux so wichtig?

1. Vergessen Sie nicht das -a

Möglicherweise müssen Sie jemanden zu einer Gruppe hinzufügen, damit er beispielsweise eine bestimmte Software verwenden darf. Beispielsweise erfordert VirtualBox, dass Benutzer Teil der Gruppe „vboxusers“ sind. Das können wir mit usermod .

Der Befehl groups listet die Gruppen eines Benutzers auf.

 Gruppen 

Auflisten der Gruppen eines Benutzers mit dem Befehl groups

Wir fügen den Benutzer dave einer neuen Gruppe hinzu. Das -a (Anhängen) fügt die neue Gruppe der Liste bestehender Gruppen hinzu, in denen sich der Benutzer befindet. Die Option -G (Gruppen) identifiziert die Gruppe.

 sudo usermod -a -G vboxusers dave 

Hinzufügen eines Benutzers zu einer neuen Gruppe mit dem Befehl usermod

Die neue Gruppe wird angezeigt, nachdem sich der Benutzer an- und abgemeldet hat.

 Gruppen 

Die vboxusers-Gruppe, die in der Liste der Gruppen angezeigt wird, in denen sich dieser Benutzer befindet

Er ist jetzt in der Gruppe „vboxusers“. Wenn Sie jedoch vergessen, die Option -a (anhängen) zu verwenden, werden alle vorhandenen Gruppen des Benutzers entfernt. Die einzige Gruppe, in der sie sein werden, ist die neue Gruppe.

Dies ist der falsche Befehl:

 sudo usermod -G vboxusers dave 

Hinzufügen eines Benutzers zu einer Gruppe ohne Verwendung der Anhängeoption -a

Wenn sie sich das nächste Mal anmelden, werden sie feststellen, dass sie nur in einer Gruppe sind.

 Gruppen 

Der Benutzer befindet sich jetzt in einer einzelnen Gruppe

Wenn Sie einen einzigen konfigurierten Benutzer haben und dies mit ihm tun, werden Sie ernsthafte Probleme bekommen. Zum einen ist der Benutzer kein Mitglied der „sudo“-Gruppe mehr, sodass Sie sudo nicht verwenden können, um Dinge zu korrigieren.

VERWANDT: Hinzufügen eines Benutzers zu einer Gruppe (oder zweiten Gruppe) unter Linux

2. Verwenden der falschen Laufwerkskennung mit dd

Der Befehl dd schreibt Datenblöcke in Dateisysteme. Es wird häufig verwendet, um ISO-Images auf USB-Speichersticks zu schreiben.

Das Linux-Benennungsschema für Speichergeräte verwendet einen einzelnen Buchstaben zur Identifizierung. Die erste Festplatte heißt „/dev/sda“, die zweite „/dev/sdb“, die dritte „/dev/sdc“ und so weiter. Partitionen werden durch Nummer identifiziert. Die erste Partition auf der ersten Festplatte ist „/dev/sda1“, die zweite „/dev/sda2“ und so weiter.

Wenn Sie ein Image auf einen USB-Speicherstick brennen, müssen Sie die Laufwerkskennung des USB-Speichersticks kennen. Wir finden das heraus, indem wir lsblk durch grep leiten und nach Einträgen suchen, die „sd“ enthalten.

 lsblk | grep sd 

Verwendung von grep, um in der Ausgabe des Befehls lsblk nach Zeilen mit „sd“ zu suchen

Wir können sehen, dass die Festplatte „/dev/sda“ ein 32-GB-Laufwerk mit drei Partitionen ist. Eine der Partitionen ist die „/boot“-Partition, und die Partition „/dev/sda3“ ist unter „/“ gemountet, was das Stammverzeichnis des Dateisystems ist.

Die Festplatte „/dev/sdb“ wird als 7,5-GB-Laufwerk gemeldet. Es ist unter „/media/dave/Pink“ gemountet. Laufwerk „/dev/sda“ ist einfach die Hauptfestplatte auf diesem Computer und „/dev/sdb“ ist der USB-Speicherstick.

Der Befehl zum Schreiben einer ISO-Datei, die sich im Verzeichnis „~/Downloads“ befindet, auf unseren USB-Speicherstick lautet:

 sudo dd bs=4M if=Downloads/distro-image.iso of=/dev/sdb conv=fdatasync status=progress 

Schreiben eines Bildes auf einen USB-Speicherstick mit dem Befehl dd

Wir werden nach unserem Passwort gefragt, dann tritt dd in Aktion. Es gibt kein "Sind Sie sicher?" Warnungen oder Rückzugsmöglichkeiten. Das Schreiben beginnt sofort.

Die dd-Fortschrittsanzeige, während sie ein Bild auf einen USB-Speicherstick schreibt

Wenn Sie jedoch den falschen Buchstaben für die Laufwerkskennung eingeben und dieser mit einer vorhandenen Festplatte übereinstimmt, überschreiben Sie dieses Laufwerk anstelle des Memory Sticks.

Dies ist der falsche Befehl:

 sudo dd bs=4M if=Downloads/distro-image.iso of=/dev/sda conv=fdatasync status=progress 

Das versehentliche Schreiben eines Images auf die Hauptfestplatte endet mit einer Fehlermeldung

Wir sagten dd , es solle „/dev/sd a “ verwenden, also tat es das. Die Schreibaktion ist viel schneller, endet aber mit einer Warnung. Sie haben gerade Ihre Linux-Installation zerstört.

Überprüfen und überprüfen Sie die Laufwerkskennungen, bevor Sie „Enter“ drücken.

VERWANDT: So brennen Sie eine ISO-Datei auf ein USB-Laufwerk unter Linux

3. Verwenden der falschen Laufwerkskennung mit mkfs

Es gibt andere Befehle, die Laufwerksbezeichner als Teil ihrer Befehlszeile verwenden, wie z. B. die mkfs Tools. Diese formatieren Laufwerke, indem sie Dateisysteme auf Partitionen erstellen.

Auf diesem Computer haben wir ein 25-GB-Laufwerk und ein 10-GB-Laufwerk.

Die Ausgabe von lsblk wird durch grep geleitet und zeigt die Festplatten in einem Computer an

Wenn wir ein Ext4-Dateisystem auf der ersten Partition des 10-GB-Laufwerks erstellen möchten, würden wir diese Befehle verwenden.

 sudo umount /dev/sdb1
 sudo mkfs.ext4 /dev/sdb1 

Erstellen eines ext4-Dateisystems auf einem USB-Speicherstick

Wenn wir jedoch den Fehler machen, ein „a“ anstelle eines „b“ in der Laufwerkskennung zu verwenden, löschen wir eine der Partitionen auf dem 25-GB-Laufwerk und machen unseren Computer nicht mehr bootfähig.

Dies ist der falsche Befehl:

 sudo umount /dev/sda1
 sudo mkfs.ext4 /dev/sda1 

Versehentliches Formatieren des Hauptlaufwerks eines Computers

Dieser eine kleine Buchstabe hat es in sich, also stellen Sie sicher, dass Sie das richtige Laufwerk wählen.

VERWANDT: So verwenden Sie den mkfs-Befehl unter Linux

4. Löschen Sie Ihre Crontab-Datei nicht

Der cron Daemon führt Aufgaben zu festgelegten Zeiten für Sie aus. Es entnimmt seine Konfiguration aus einer crontab -Datei. Jeder Benutzer – einschließlich Root – kann eine crontab -Datei haben. Um Ihre crontab zu bearbeiten, verwenden Sie diesen Befehl:

 crontab -e 

Der Befehl zum Bearbeiten Ihrer crontab-Datei: crontab -e

Die crontab -Datei wird in einem Editor geöffnet. Sie können Änderungen vornehmen und neue Befehle hinzufügen.

Eine in einem Editor geöffnete Crontab-Datei

Aber wenn Sie sich beim Befehl vertippen und „r“ statt „e“ drücken, entfernen Sie – wie beim Löschen – Ihre crontab -Datei.

Dies ist der falsche Befehl:

 crontab-r 

Der Befehl, der Ihre crontab-Datei löscht: crontab -r

Wenn Sie das nächste Mal den Befehl crontab -e verwenden, sehen Sie eine leere Standarddatei.

Dies ist ein leichter Fehler, da „e“ und „r“ auf den meisten Tastaturen nebeneinander stehen. Eine komplizierte crontab -Datei neu zu erstellen, macht keinen Spaß.

VERWANDT: Was ist ein Cron-Job und wie verwendet man ihn?

5. Wiederholung der Geschichte

Die Verwendung des history ist großartig, wenn Sie versuchen, Tastenanschläge zu reduzieren und Zeit zu sparen. Wenn Sie einen langatmigen Befehl aus der Geschichte ziehen können, gewinnen Sie an Geschwindigkeit und Genauigkeit. Solange Sie den richtigen Befehl aus Ihrem Verlauf auswählen.

Der history listet Ihre vorherigen Befehle im Terminalfenster auf. Sie sind nummeriert. Um einen Befehl wiederzuverwenden, stellen Sie seiner Nummer ein Ausrufezeichen „ ! “, und drücken Sie die „Enter“-Taste.

 Geschichte 

Angenommen, wir haben ein Git-Repository geklont, sind damit in Schwierigkeiten geraten und haben es gelöscht. Wir müssen es noch einmal klonen. Durch Scrollen im Terminalfenster können wir bald den Befehl git clone erkennen. Wir können es erneut ausführen, indem wir Folgendes eingeben:

 !60

Aber wenn wir nur auf den Bildschirm geblickt und die Nummer falsch gelesen haben, könnten wir irrtümlicherweise die nächste Nummer auswählen:

 !61

Das führt den nächsten Befehl in der Liste aus, rm * . Das löscht alle Dateien in Ihrem aktuellen Verzeichnis.

Sie können auch das „ ! ” Ausrufezeichen mit einer Textfolge. Der erste passende Befehl wird für Sie ausgeführt. Es wird nicht angezeigt, damit Sie überprüfen können, ob es das ist, an das Sie gedacht haben, es wird sofort ausgeführt.

Stellen Sie sich das Szenario vor, in dem Sie ein Skript namens „restart.sh“ haben. Dieses Skript legt standardmäßig eine Reihe von Konfigurationsdateien für einige Software fest, die Sie schreiben. Während Sie entwickeln und testen, müssen Sie von Zeit zu Zeit die Tafel sauber wischen, also rufen Sie Ihr Skript auf.

Dieser Befehl sollte ausreichen, um den Befehl in Ihrem Verlauf zu finden, abzugleichen und auszuführen.

 !betreffend

Aber wenn Sie den reboot seit der letzten Verwendung Ihres Skripts verwendet haben, ist es der reboot , der gefunden und sofort ausgeführt wird.

Der Befehl rm * wird versehentlich ausgeführt

Auf Ihrem Single-User-Heimcomputer ist das wahrscheinlich nur ein Ärgernis. Auf einem gemeinsam genutzten Server ist es auch für viele andere ein Ärgernis.

VERWANDT: So verwenden Sie den History-Befehl unter Linux

6. Die Katastrophe der Räume

Leerzeichen in Dateinamen und Verzeichnispfaden können Chaos anrichten. Deshalb sollten sie immer maskiert oder zitiert werden.

Umgang mit Leerzeichen in Dateinamen unter Linux
RELATED How to Deal With Spaces in Filenames on Linux

Probleme mit Leerzeichen können durch die Verwendung der Tab-Vervollständigung vermieden werden. Drücken Sie die „Tabulator“-Taste, wenn Sie einen Dateinamen oder Verzeichnispfad eingeben, und die Shell vervollständigt automatisch so viel wie möglich vom Pfad oder Dateinamen. Möglicherweise müssen Sie einen Buchstaben eingeben, um zwischen der gewünschten Datei und allen anderen Dateien mit demselben Namen zu unterscheiden, aber ein weiterer Druck auf die „Tabulatortaste“ vervollständigt den Rest des Dateinamens für Sie.

Dies spart Tastenanschläge, verhindert, dass sich Leerzeichen aufgrund von Tippfehlern einschleichen, und maskiert alle legitimen Leerzeichen korrekt, sodass sie keine Probleme verursachen.

Nehmen wir an, wir haben ein „Development“-Verzeichnis, das zwei weitere Verzeichnisse enthält, „geocoder“ und „bin“. Es gibt auch ein „bin“-Verzeichnis innerhalb des „geocoder“-Verzeichnisses.

Um die Dateien im Verzeichnis „geocoder/bin“ zu löschen und das Verzeichnis zu entfernen, verwenden Sie diesen Befehl.

 rm -r geocoder/bin 

Löschen des Verzeichnisses geocoder/bin

Stellen Sie sich nun vor, Sie hätten versehentlich ein Leerzeichen nach „geocoder/“ hinzugefügt, so wie hier.

Dies ist der falsche Befehl:

 rm -r geocoder/ bin 

Versehentliches Löschen der Geocoder- und Bin-Verzeichnisse

Boom. Das Verzeichnis „Entwicklung“ ist jetzt leer. Die Verzeichnisse „Development/geocoder“, „Development/geocoder/bin“ und „Development/bin“ wurden alle vollständig gelöscht.

Denken Sie daran, dass die Tab-Vervollständigung Ihr Freund ist.

VERWANDT: Verwenden Sie die Tab-Vervollständigung, um Befehle auf jedem Betriebssystem schneller einzugeben

7. Verwenden Sie > anstelle von >>

Die Umleitung sendet die Ausgabe eines Prozesses an eine Datei. Wir verwenden das Größer-als-Zeichen „ > “, um die Ausgabe eines Prozesses zu erfassen. Wenn die Datei existiert, wird sie zuerst geleert.

Nehmen wir an, wir untersuchen ein Speicherleck. Wir haben ein Skript namens „memlog.sh“. Es zeigt Speicherstatistiken einmal pro Sekunde an. Wir werden das zur späteren Analyse in eine Datei namens „memory.txt“ umleiten.

 memlog.sh > Speicher.txt
 Kopfspeicher.txt 

Erfassen und Anzeigen der Ausgabe des memlog.sh-Skripts

Am nächsten Tag wollen wir unsere Untersuchung fortsetzen und starten das Skript neu. Dieses Mal müssen wir zwei Größer-als-Zeichen „ >> “ verwenden, damit die neuen Daten an die Datei angehängt werden.

 memlog.sh >> speicher.txt 

Anhängen neuer Daten an das Ende einer bestehenden Datei

Wenn wir ein einzelnes Größer-als-Zeichen „>“ verwenden, gehen die Daten von gestern verloren, da die Datei zuerst geleert wird.

VERWANDT: Was sind stdin, stdout und stderr unter Linux?

8. Umleitung in die falsche Richtung

Die Umleitung kann den Inhalt einer Datei als Eingabe für ein Programm verwenden.

Wir haben eine Datei namens „placenames.sql“, die wir in sqlite3 importieren möchten. Die Schemadatei beschreibt, wie die Datenbanktabellen neu erstellt werden. Es enthält auch die Daten, die wir in der Datenbank speichern möchten. Mit 1,3 GB und über 11 Millionen Zeilen ist es eine große Datei.

 ls -hl Ortsnamen.sql
 wc Ortsnamen.sql 

Überprüfen der Größe einer Datei mit ls und wc

Mit diesem Befehl können wir eine neue Datenbank namens „places.sqlite3“ erstellen.

 sqlite3 orte.sqlite3 < ortsnamen.sql 

Importieren eines Schemas aus einer Datei in sqlite3

Meistens verwenden wir bei der Weiterleitung das Zeichen „>“. Sie müssen sich konzentrieren, um zu vermeiden, dass Sie aus Gewohnheit „>“ eingeben. Wenn Sie dies tun, wird die von sqlite3 generierte Ausgabe in Ihre Schemadatei geschrieben und damit gelöscht.

Dies ist der falsche Befehl:

 sqlite3 orte.sqlite3 > ortsnamen.sql 

Versehentliche Umleitung in eine Schemadatei von sqlite3

Unsere Schemadatei wurde zerstört und von der Willkommensnachricht der sqlite3 Shell überschrieben.

 Katzen-Ortsnamen.sql 

Die überschriebene Schemadatei, die die Willkommensnachricht von sqlite3 enthält

Tschüss, 1,3 GB Daten.

So vermeiden Sie Tippfehler in der Befehlszeile

Es gibt gute Gewohnheiten, die Sie annehmen können, um diese Art von Fehlern zu vermeiden.

Verwenden Sie nach Möglichkeit die Tab-Vervollständigung. Sie vermeiden Probleme mit Leerzeichen in Verzeichnispfaden und Dateinamen.

Erstellen Sie Ihre eigenen kurzen und einprägsamen Aliase für lange, komplizierte Befehle, die Sie gelegentlich verwenden müssen. Auf diese Weise werden Sie es nicht vermasseln, indem Sie die falschen Optionen und Parameter verwenden.

So tippen Sie weniger und arbeiten schneller im Linux-Terminal
RELATED So tippen Sie weniger und arbeiten schneller im Linux-Terminal

Es ist notorisch schwierig, Ihr eigenes Schreiben Korrektur zu lesen, aber das ist es, was Sie auf der Befehlszeile tun müssen. Lesen Sie, was wirklich da ist. Schauen Sie nicht einfach hin und denken Sie, es sagt, was Sie schreiben wollten. Was sagt es wirklich? Denn darum geht es wirklich.

VERWANDT: 8 tödliche Befehle, die Sie niemals unter Linux ausführen sollten