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

Anpassen von Linux-Dateisystembefehlen

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!


Linux
  1. Linux-Befehle:jobs, bg und fg

  2. 5 Linux-Befehle zur Fehlerbehebung im Netzwerk

  3. So verschlüsseln Sie ein einzelnes Linux-Dateisystem

  4. Meine 8 beliebtesten praktischen Linux-Befehle

  5. 5 Linux-Befehle, die ich nie benutze

FreeDOS-Befehle für Linux-Fans

Grundlegende Linux-Befehle

Linux-Befehle - Vollständiges Handbuch

Gruppenverwaltungsbefehle in Linux

90 Linux-Befehle, die häufig von Linux-Systemadministratoren verwendet werden

Linux-Verzeichnisbefehle:Eine vollständige Anleitung