Die Stärke des Linux-Terminals besteht darin, dass Sie Ihre Umgebung schnell so anpassen können, dass sie Ihren Anforderungen entsprechend besser und härter funktioniert. Es gibt viele verschiedene Möglichkeiten, Ihr Terminal zu "hacken", einige davon sind praktisch ganze Bereiche der Informatik für sich, aber es gibt viele kleine Tricks für Anfänger - insbesondere wenn es um die Arbeit mit dem Linux-Dateisystem geht. Siehe meinen Artikel Dateien mit dem Linux-Terminal verwalten für die Grundlagen.
Die einfachste Möglichkeit, Ihre Arbeitsterminalumgebung anzupassen, besteht darin, die Konfigurationsdatei zu bearbeiten, die Ihre persönlichen Shell-Einstellungen enthält. Bash (die Bourne Again Shell ) ist die gebräuchlichste Shell unter Linux (einschließlich Red Hat Enterprise Linux und Fedora), und die Konfigurationsdatei von Bash ist ~/.bashrc
.
Erstelle einen Alias
Ein einfacher erster Schritt in die Anpassung ist das Erstellen von Aliassen. Mit Aliassen können Sie Ihre eigenen einfachen Befehle definieren oder vorhandene neu definieren. Um Aliase hinzuzufügen, bearbeiten Sie Ihre Datei .bashrc
in einem Texteditor oder erstellen Sie sie direkt vom Terminal aus mit echo
Befehl.
Zum Beispiel, um ls
neu zu definieren Befehl, sodass immer --classify
verwendet wird (-F
) und --almost-all
(-a
)-Optionen eine Alias-Regel zu .bashrc
hinzufügen , und dann source
(Lesen und laden Sie) die geänderte Konfigurationsdatei.
$ echo "alias ls='ls --classify --almost-all'" >> ~/.bashrc
$ source .bashrc
$ ls
bin/
Desktop/
despacer.sh
documentation.zip*
Documents/
Music/
Pictures/
Public/
Nachdem der Alias erstellt und neu geladen wurde, wird die Datei ls
Der Befehl verwendet immer --classify
Option, damit Sie Dateien von Ordnern unterscheiden können, und die Option --almost-all
Option zum Ausschließen der Punkt- und Doppelpunktnotation. Es gibt viele weitere Optionen für ls
Befehl. Siehe ls
Handbuch für weitere Informationen, indem Sie Folgendes eingeben:
$ man ls
Sie können Aliase für alle möglichen sich wiederholenden einfachen Aufgaben erstellen. Komplexe Operationen erfordern möglicherweise etwas Robusteres als einen Alias, wie ein Shell-Skript, aber Aliase sind eine großartige Möglichkeit, Ihre Umgebung für sich arbeiten zu lassen.
Passen Sie Ihren Papierkorb an
Öffnen Sie eine Reihe von Fenstern, um die Datei zu finden, die Sie löschen möchten. Verschieben Sie die Datei in den Papierkorb oder Papierkorb Symbol auf Ihrem Desktop. Wenn Sie genug Papierkorb gesammelt haben und sicher sind, dass alles sicher von Ihrem System entfernt werden kann, gehen Sie zum Papierkorb Menü und wählen Sie Leer .
Es gibt standardmäßig keinen Papierkorb in Ihrem Terminal, aber andererseits ist ein "Papierkorb" nur ein anderer Ordner, der alle Dateien akzeptiert, die Sie letztendlich löschen möchten. Die Daten sind noch da, bis Sie sie leeren. Das ist trivial. Mit den Lektionen, die Sie in diesem Artikel gelernt haben, können Sie ein sicheres und zuverlässiges Papierkorbsystem für Ihr Terminal erstellen.
Wenn Ihr Computer über einen Desktop verfügt, wie z. B. den GNOME-Desktop auf Red Hat Enterprise Linux und Fedora, dann haben Sie bereits einen Systempapierkorb unter ~/.local/share/Trash/files
. Sie können direkt auf diesen Ordner verweisen oder, um Tipparbeit zu sparen, einen symbolischen Link darauf erstellen:
$ ln --symbolic ~/.local/share/Trash/files ~/.trash
Wenn Ihr Computer keinen Desktop hat, haben Sie möglicherweise keinen Papierkorb Ordner, aber Sie können einen manuell erstellen. Ein Papierkorb ist eigentlich nur ein weiterer Ordner. Verwenden Sie das mkdir
Befehl mit dem --parents
(-p
) Option zum Erstellen einer Reihe von Ordnern in einem einzigen Befehl:
$ mkdir --parents ~/.local/share/Trash/files
$ ln --symbolic ~/.local/share/Trash/files ~/.trash
Wenn Sie eine Datei oder einen Ordner in den Papierkorb verschieben möchten, verwenden Sie den mv
Befehl wie gewohnt:
$ mv oldfile.txt ~/.trash
Erstellen Sie einen besseren Papierkorbbefehl
Eine noch reibungslosere Art, einen Papierkorb zu verwenden Ordner ist es, Ihren eigenen neuen Befehl namens trash
zu schreiben , wodurch eine Datei in Ihren ~/.trash
verschoben wird Mappe. Dies ist eine Übung für Fortgeschrittene und führt einige neue Befehle ein, aber Sie werden vielleicht überrascht sein, wie einfach es ist, Ihre eigenen benutzerdefinierten Befehle zu erstellen. In nur zwei Zeilen Bash-Code können Sie Ihr persönliches Abfallmanagementsystem entwerfen.
Bevor Sie Ihren eigenen Befehl erstellen, benötigen Sie einen Ort zum Speichern benutzerdefinierter Skripts. Es ist üblich, dass Linux-Benutzer einen ~/bin
pflegen Verzeichnis, in dem sie persönliche Dienstprogramme und ausführbare Binärdateien aufbewahren. Dies ist standardmäßig nicht vorhanden, aber Sie können es erstellen und dann zu Ihrem Pfad hinzufügen:
$ mkdir ~/bin
$ echo "export PATH=$PATH:$HOME/bin" >> ~/.bashrc
$ source ~/.bashrc
Jetzt können Sie mit dem echo
Ihren eigenen Papierkorbbefehl erstellen Befehl:
$ echo '#!/bin/sh' > ~/trash
$ echo 'mv "${@}" ~/.local/share/Trash/files' >> ~/trash
Alternativ können Sie einen Texteditor öffnen und den Code kopieren und einfügen:
#!/bin/sh
mv "${@}" ~/.local/share/Trash/files
Speichern Sie die Datei unter ~/bin/trash .
Die erste Zeile dieses Skripts deklariert, welche Anwendung erforderlich ist, um es auszuführen. In diesem Fall gibt die erste Zeile an, dass der sh
Shell, die sich im /bin
befindet Verzeichnis im Stammverzeichnis Ihres Dateisystems, ist erforderlich. Immerhin ist dies ein Shell-Skript:eine Reihe von Bash-Shell-Befehlen in der Reihenfolge der gewünschten Ausführung.
Die zweite Zeile verwendet den mv
Befehl in Verbindung mit einer speziellen Bash-Variablen, "${@}"
, was alles, was nach dem Befehl eingegeben wird bedeutet . Dadurch ist es möglich, dass ein einzelner Befehl auf mehrere Dateien wirkt. Sie müssen Ihren Befehl nicht einmal pro Datei wie folgt ausführen:
$ trash foo
$ trash bar
$ trash baz
Stattdessen programmieren Sie Ihren Befehl so, dass er mehrere Argumente gleichzeitig erkennt:
$ trash foo bar baz
Um zu bestätigen, dass Ihr Shell-Skript korrekt ist, verwenden Sie cat
Befehl, um den Inhalt der Datei mit der Ausgabe Ihrer Shell zu verketten:
$ cat trash
#!/bin/sh
mv "${@}" ~/.local/share/Trash/files
Um diesen Befehl für sich selbst nutzbar zu machen, verwenden Sie mv
um es in ein Verzeichnis namens ~/bin
zu verschieben (Dieses Verzeichnis existiert standardmäßig nicht, erstellen Sie es also zuerst):
$ mkdir ~/bin
$ mv trash ~/bin
Ihre Shell sieht Ihr Shell-Skript derzeit als eine Datei voller Text. Sie haben dem Computer noch nicht erlaubt, Ihr Skript als ausführbaren Befehl zu behandeln. Diese Unterscheidung ist wichtig, denn wenn Ihre Shell ohne Ihre ausdrückliche Erlaubnis alles als Befehl ausführen könnte, hätte jede Datei auf Ihrem System das Potenzial, beliebigen Code auszuführen (stellen Sie sich vor, Sie würden alle Tabellen in einer wichtigen Datenbank löschen, nur weil Sie oder eine Ihrer Benutzer haben auf die falsche Datei geklickt).
Um einer Datei die Berechtigung zu erteilen, als ausführbare Datei behandelt zu werden, setzen Sie das ausführbare Bit in seinen Dateiattributen mit dem chmod
(Modus ändern) Befehl:
$ chmod +x ~/bin/trash
Jetzt können Sie die Datei als Befehl ausführen. Testen Sie dies, indem Sie eine Datei erstellen und diese Datei dann in den Papierkorb verschieben:
$ echo "This is rubbish." >> rubbish.file
$ cat rubbish.file
This is rubbish.
$ ~/bin/trash rubbish.file
Wenn Sie einen Desktop auf Ihrem Computer ausführen, öffnen Sie Ihren Papierkorb und bestätigen Sie diese rubbish.file
befindet sich jetzt im Papierkorb Ihres Systems. Wenn Sie keinen Desktop ausführen, schauen Sie einfach in Ihren ~/.trash
Symlink. Senden Sie als Ad-hoc-Filter die Ausgabe von ls
Befehl über eine Pipe (|
), mit dem grep
Befehl, um nach der Zeichenfolge Müll zu suchen :
$ ls ~/.trash | grep rubbish
rubbish.file
Beachten Sie jedoch, dass Sie Ihren trash
verwenden Befehl ohne Angabe des vollständigen Pfads nicht wie erwartet funktionieren:
$ echo "This is more rubbish." >> rubbish2.file
$ trash rubbish2.file
bash: trash: command not found...
Dies liegt daran, dass es sich noch nicht in Ihrem ausführbaren Pfad befindet.
Sagen Sie Ihrer Shell, wo sie suchen soll
Einige Befehle, wie cd
, pwd
, und alias
, sind in Ihre Shell integriert. Andere, wie ls
, mv
, und echo
, werden an Orten installiert, die Ihre Shell als gültige Suchorte für Befehle festlegt. Wenn Sie Befehle wie ls
eingeben , mv
, oder trash
, durchsucht Ihre Shell eine Liste von Verzeichnissen, von denen ihr mitgeteilt wurde, dass sie ausführbare Dateien enthalten. Sie können diese Liste der Suchorte anzeigen, indem Sie sich den PATH
ansehen Variable. Das echo
Mit dem Befehl können Sie in Variablen nachsehen, indem Sie ein Dollarzeichen voranstellen ($
) vor dem Variablennamen:
$ echo $PATH
/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin:/usr/local/sbin
Damit Sie trash
verwenden können genau wie bei jedem anderen Befehl auf Ihrem System müssen Sie Ihren persönlichen ~/bin
hinzufügen Verzeichnis zu Ihrer PATH-Variablen. Shell-Umgebungsvariablen werden geladen, wenn die Shell gestartet wird, also werden sie in ~/.bashrc
gesetzt Konfigurationsdatei. Sie können dieses Verzeichnis mit einem Texteditor zu Ihrem PATH hinzufügen oder einfach das echo
verwenden Befehl mit einer doppelten Weiterleitung, um die Regel an Ihre Konfiguration anzuhängen:
$ echo 'export PATH=$PATH:/home/seth/bin' >> ~/.bashrc
Laden Sie Ihre neue Konfiguration in Ihre Shell:
$ source ~/.bashrc
Und versuchen Sie Ihren Befehl noch einmal:
$ trash rubbish2.file
Datei dauerhaft entfernen
Irgendwann muss Ihr Mülleimer geleert werden. Der rm
Der Befehl entfernt eine Datei aus Ihrem Dateisystem (dauerhaft, verwenden Sie ihn also sparsam und vorsichtig).
Da der rm
Befehl schädlich sein kann, wenn er missbraucht wird, ist es eine gute Idee, Ihre Interaktion damit einzuschränken und seinen Umfang einzuschränken, wenn Sie ihn verwenden. In diesem Fall möchten Sie rm
um nur innerhalb Ihres Papierkorbs zu arbeiten, sodass Sie einen Alias erstellen können, um das Risiko einer falschen Eingabe des Befehls zu verringern. Je seltener Sie rm
aufrufen , desto geringer ist die Wahrscheinlichkeit, dass Sie versehentlich Dateien entfernen.
Erstellen Sie einen Alias namens empty
indem Sie Folgendes eingeben:
$ echo 'empty="rm --recursive --verbose --force ~/.local/share/Trash/files/*"' >> ~/.bashrc
Im Gegensatz zu Ihrem trash
Befehl, empty
wird als eingebauter Befehl behandelt, da es eher ein Alias als ein externes Skript ist. Das bedeutet, dass Sie nichts in Ihr ~/bin
einfügen müssen Verzeichnis oder fügen Sie etwas zu Ihrem PATH
hinzu Variable. Sie müssen nur Ihre Shell-Konfiguration neu laden und dann Ihren neuen eingebauten Befehl testen:
$ source .bashrc
$ empty
removed '/home/seth/.trash/rubbish.file
removed '/home/seth/.trash/rubbish2.file
Übung macht fließend
Sie haben jetzt Ihr erstes Shell-Skript programmiert und Ihre Shell-Umgebung angepasst. Kleine Übungen wie diese sind wichtig, denn je mehr man in der Shell arbeitet, desto besser wird man darin. Versuchen Sie, Ihre Zeit im Terminal zu maximieren, um sich damit vertraut zu machen. Sie müssen zunächst keine großen Aufgaben erledigen. Fangen Sie klein an und arbeiten Sie sich hoch.
Es gibt keine bessere Zeit als die Gegenwart, also erkunden Sie das Linux-Terminal!