8 Tippfehler, die Sie unter Linux wirklich vermeiden müssen
Veröffentlicht: 2023-01-15Die 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.
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
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
Die neue Gruppe wird angezeigt, nachdem sich der Benutzer an- und abgemeldet hat.
Gruppen
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
Wenn sie sich das nächste Mal anmelden, werden sie feststellen, dass sie nur in einer Gruppe sind.
Gruppen
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
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
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.
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
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.
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
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
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
Die crontab
-Datei wird in einem Editor geöffnet. Sie können Änderungen vornehmen und neue Befehle hinzufügen.
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
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.
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.
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
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
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
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
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
Mit diesem Befehl können wir eine neue Datenbank namens „places.sqlite3“ erstellen.
sqlite3 orte.sqlite3 < ortsnamen.sql
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
Unsere Schemadatei wurde zerstört und von der Willkommensnachricht der sqlite3
Shell überschrieben.
Katzen-Ortsnamen.sql
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.
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