So erstellen Sie Aliase und Shell-Funktionen in Linux

Inhalt

Ein Terminalfenster auf einem Linux-Laptop

Erstellen Sie Ihre eigenen Linux-Befehle mit Aliasen und Bash-Shell-Funktionen. Kontrollieren Sie sich wiederholende Aufgaben, kürzen Sie langwierige Prozesse und konfigurieren Sie Standardbefehle mit Alternativen, die Sie immer verwenden und sich nur schwer merken können.

Alias und Shell-Skripte sind leistungsstarke Techniken auf Linux- und Unix-ähnlichen Betriebssystemen, die es Ihnen ermöglichen, Ihre Befehlszeilenerfahrung so zu verbessern, dass sie genau das ist, was Sie wollen. Sie können Ihre eigenen Befehle einstellen, die auf Ihre spezifischen Bedürfnisse zugeschnitten sind und sich wiederholende Aufgaben entlasten.

Alias ​​​​und Skripte der Shell mach die gleiche arbeit. Sie ermöglichen es Ihnen, sich zu etablieren (und Name) eine Reihe von Bash-Shell-Funktionen, die dann unter dem von Ihnen angegebenen Namen aufgerufen werden können. Das Eingeben des Namens ist einfacher und bequemer, als jedes Mal alle Schritte oder Befehle eingeben zu müssen, wenn Sie sie verwenden möchten.

Der Unterschied zwischen einem Alias ​​und einem Skript liegt in der Komplexität und dem Umfang. Skripte eignen sich besser, um längere und aufwändigere Code-Schnipsel zu speichern. Aliase sind perfekt, um Befehlssätze kürzer und prägnanter zu halten.

Vordefinierte Aliase

Einige Aliase sind für Sie vordefiniert. Um die Liste der Aliase anzuzeigen, die auf Ihrem System definiert sind, Alias-Befehl ohne Parameter verwenden:

alias

Dies sind die Aliase, die auf dem Ubuntu-Testcomputer definiert sind, auf dem dieser Beitrag untersucht wurde. Wenn ich benutzerdefinierte Aliase definiert hätte, diese würden auch in dieser Liste erscheinen.

Ganz oben auf der Liste, Es gibt einen knifflig aussehenden Alias ​​namens alert. Dazu kommen wir gleich. Es gibt viele verschiedene Aliase für ls Befehl, und es gibt eine Gruppe von Aliasnamen, die die Farbausgabe an die grep Befehlsfamilie. Als Beispiel, mit diesen Aliasen definiert, immer wenn ich schreibe:

grep

Das System interpretiert es als:

grep --color=auto

Dies zeigt einen wichtigen Punkt mit Aliasen. Sie können denselben Namen haben wie vorhandene Befehle. Sie können sogar den ursprünglichen Befehl in sich selbst enthalten.

Hier ist die Definition von grep alias.

Alias ​​grep = 'grep --color = auto'
  • das alias Der Befehl wird verwendet, um einen Alias ​​zu setzen.
  • Der Name des Alias ​​ist unten angegeben. In diesem Beispiel ist es grep.
  • Das Gleichheitszeichen verbindet die Name von alias zu Karosserie alias. Für alle Aliase, außer den ganz einfachen, der Body des Alias ​​ist in einfache Anführungszeichen eingeschlossen '.
  • Der Rumpf des Alias ​​ist der Abschnitt, der ausgeführt wird, wenn der Alias ​​in der Befehlszeile verwendet wird.

Der Körper dieses Alias ​​ruft einfach die grep Befehl mit dem --color=auto Möglichkeit.

Alias-Alarm

Als kurze Randnotiz, und damit du weißt was es tut, das alert Alias ​​wird verwendet, um Sie zu benachrichtigen, wenn ein Befehl abgeschlossen ist. Es zeigt auch an, ob der Befehl erfolgreich abgeschlossen wurde oder nicht. Bietet eine grafische Systemwarnung am oberen Bildschirmrand.

Hier ist ein einfaches Beispiel. das sleep Der Befehl schläft fünf Sekunden lang. alert dann heißt es alias. Der Alias ​​verifiziert die Lösung des obigen Befehls. Extrahieren Sie den letzten Befehl aus der Archivdatei. Bestimmt, ob der Befehl erfolgreich abgeschlossen wurde oder nicht. Präsentieren Sie dann die Ergebnisse in einem Systemalarm.

Wenn der Befehl wie erwartet ausgeführt wurde, das Systemwarnungssymbol ist ein kleines Terminalfenster. Wenn der Befehl einen Fehlercode zurückgegeben hat, das Systemwarnungssymbol ist ein rotes Fehlersymbol.

Schlaf 5; Alarm

Nach fünf Sekunden, Wir sehen diese Systemwarnung:

Systemwarnung für Suspend-Befehl

Das Symbol ist ein kleines Terminalfenster, was bedeutet, dass alles gut gelaufen ist. Versuchen wir es noch einmal mit einem Befehl, von dem wir wissen, dass er fehlschlagen wird:

DoomedToFail; Alarm

Unsere Systemwarnung hat jetzt ein Fehlersymbol.

Definition eines trivialen Alias

Wie wir gesehen haben, einen Alias ​​setzen, wir nehmen das alias Befehl.

Lass uns ein Pseudonym für ihn erstellen clear Befehl. Unser Alias ​​wird aufgerufen cls und werde anrufen clear Befehl.

Unsere Definition von Aliasen ist so trivial, dass sie es nicht rechtfertigt, in einfachen Anführungszeichen zu stehen. Wenn der Hauptteil des Alias komplexer ist als dieser, oder wenn es Leerzeichen enthält, Schließen Sie es in einfache Anführungszeichen ein. Wir definieren den Alias, verwenden ls , um eine Ausgabe in das Terminalfenster zu setzen und dann unseren neuen Alias zu verwenden cls Gehen Sie folgendermaßen vor, um den Bildschirm zu reinigen.

Alias cls=clear
ls -l
Cls

Der Bildschirm wird gelöscht. Erfolg, auch bei kurzer Dauer. Der Alias bleibt nur so lange erhalten, wie dieses Terminalfenster geöffnet bleibt. Sobald das Fenster geschlossen ist, Der Alias verschwindet.

Dann, Wie machen wir unsere Aliase dauerhaft??

Die .bashrc-Datei und Aliase

Sie fragen sich vielleicht, wo vorgefertigte Aliase definiert sind. befindet sich im Archiv “.bashrc” in Ihrem Benutzerordner. Diese Datei wird gelesen, und die darin enthaltenen Befehle werden jedes Mal ausgeführt, wenn Sie eine interaktive Shell starten. Mit anderen Worten, Wenn Sie ein Terminalfenster öffnen.

Geben Sie den folgenden Befehl in Ihren Benutzerordner ein, um den Inhalt der Datei anzuzeigen “.bashrc” mit hervorgehobener Syntax.

gedit .bashrc

Dadurch wird die gedit Editor mit der Datei “.bashrc” hineingeladen.

gedit mit .bashrc geladen

Hervorgehobene Bereiche zeigen zwei Bereiche, in denen Aliase definiert sind.

Wenn Sie durch das Dokument blättern, Zwei weitere Abschnitte, die mit Aliasnamen verknüpft sind, werden enthüllt:

Die erste davon ist die Definition von alert alias. Die zweite ist eine if Stellungnahme. Es bedeutet übersetzt als, “ob die Datei” .bash_aliases “existiert, Lesen”.

Wenn Sie nur wenige Aliase haben, die Sie festlegen möchten, Sie können sie in Ihrer ".bashrc"-Datei ablegen. Platzieren Sie sie unter dem Abschnitt, der die ls alias.

Wenn Sie viele Aliase erstellen, oder Sie mögen einfach die Idee, Ihre Aliase in Ihrer eigenen Datei kapseln zu lassen, Sie können sie in Ihrer Datei ".bash_aliases" definieren. Ein Vorteil, wenn Sie sie in Ihrer Datei erstellen “.bash_aliases” ist, dass Sie nicht versehentlich eine der Einstellungen in der Datei ändern können “.bashrc”. Ein weiterer Vorteil ist, dass ihre Aliase leicht in neue Systeme kopiert werden können, da sie vollständig von der Datei ".bashrc" getrennt sind..

Speichern von Aliasen in der .bash_aliases Datei

Die Datei “.bash_aliases” es wird nicht existieren, bis du es glaubst. Sie können die Datei mit diesem Befehl erstellen:

.bash_aliases berühren

Lassen Sie uns die Datei bearbeiten und einige Aliase hinzufügen. Mit diesem Befehl wird die Datei geöffnet. “.bash_aliases” bei gedit Editor.

gedit .bash_aliases

Wir haben drei Aliase hinzugefügt. Die erste ist unsere cls Aliase, die wir zuvor verwendet haben. Der nächste heißt h. und ist eine Abkürzung zum Aufrufen history Befehl.

Der dritte Alias heißt ftc. Das heisst “Anzahl der Dateitypen”.

Dieser Alias ist komplexer, es wird also in einfache Anführungszeichen eingeschlossen. Verwendet eine Kette von Befehlen, die durch Pipes miteinander verbunden sind. Erzeugt eine geordnete Liste verschiedener Dateierweiterungen und Verzeichnisnamen, mit einer Zählung für jeden Listeneintrag.

VERBUNDEN: Wie man Pipes unter Linux verwendet

Wenn wir die Datei gespeichert haben “.bash_aliases”, Wir könnten erwarten, dass unsere Aliase aktiv und erreichbar sind. Das ist nicht der Fall. Die Bash-Shell muss die Datei lesen, bevor Alias-Definitionen aktiv sind. Dies geschieht immer dann, wenn eine interaktive Shell geöffnet wird.

Zusätzlich können wir die integrierte Bash-Shell nutzen. . zum Befehle lesen und ausführen in einer Datei. Denn unsere Datei “.bash_alias” gelesen, wenn verarbeitet “.bashrc”, Wir sollten unseren Test durch Aufrufen durchführen “.bashrc”. Auf diese Weise können wir überprüfen, ob die Datei ".bash_alias" von ".bashrc" aufgerufen wird und ob unsere Aliase am Leben und in gutem Zustand sind..

Die Befehle, die wir verwenden, sind:

gedit .bash_alias

So bearbeiten Sie die Datei “.bash_alias”.

. .bashrc

Dadurch werden die Befehle innerhalb von “.bashrc”, wer ruft an “.bash_alias”.

Ftc

Dadurch wird die ftc alias.

Unser Alias antwortet, was bedeutet, dass Bash so viel in “.bashrc” wie in “.bash_aliases”, und unsere neuen Aliase sind jetzt aktiv.

Sie können jetzt fortfahren und der Datei neue Aliase hinzufügen “.bash_aliases” wenn sie Ihnen in den Sinn kommen. Wenn Sie feststellen, dass Sie mehr als ein- oder zweimal Dinge tun, Erwägen Sie, einen Alias für diese.

Eindeutige Aliase

Es gibt einen Befehl für Aliase löschen damit BAsh sie nicht erkennt oder darauf reagiert. Erfrischend offen, Der Befehl heißt unalias.

Um es zu benutzen, Geben Sie den Namen des Alias an, den Bash vergessen soll. Damit Bash unsere ftc alias, verwenden unalias so was:

Unalias FTC

Sie können verwenden unalias Gehen Sie folgendermaßen vor, um die von Ihnen definierten Aliase und alle vordefinierten Aliase zu entfernen.

So entfernen Sie alle Aliase aus Ihrem System, Verwenden Sie die -a (alles) Möglichkeit:

Unalias -a

Trotz dieses, Bash-Speicherverlust wird nicht dauerhaft sein. Wenn Sie das nächste Mal ein Terminalfenster öffnen, decknamen “Vergessen” Wille. Um sie wirklich zu entfernen, Sie müssen sie aus Ihren Dateien löschen “.bashrc” und “.bash_alias”.

Wenn Sie denken, dass Sie sie jemals zurückbekommen möchten, Löschen Sie sie nicht aus Ihrer ".bashrc"-Datei. Stattdessen, Kommentieren Sie sie, indem Sie einen Hash hinzufügen # am Anfang jedes alias Leitung. Damit Ihre ".bash_alias"-Datei nicht wirksam ist, Umbenennen. Wenn Ihre ".bashrc"-Datei sie nicht sehen kann, wird es nicht lesen. Das Rückgängigmachen dieser Schritte zum Zurücksetzen Ihrer Aliase ist eine triviale Angelegenheit..

Shell-Funktionen

Likas Aliase, Bash-Shell-Funktionen können innerhalb der Datei ".bashrc" festgelegt werden, Aber es ist oft am besten, sie in Ihre eigene Definitionsdatei zu legen. Wir werden es nennen “.bash_functions”, Befolgen der für die Datei verwendeten Konvention “.bash_aliases”.

Das bedeutet, dass wir die ".bashrc" -Datei anweisen sollten, unsere Definitionen zu lesen.. Wir können den Codeausschnitt, der in der Datei gelesen wird, kopieren und ändern. “.bash_aliases”. Start gedit und laden Sie die Datei hoch “.bashrc” mit diesem Befehl:

gedit .bashrc

Sie müssen den unten gezeigten hervorgehobenen Abschnitt hinzufügen.

Sie können den Alias-Bereich markieren und auf Ctrl+C Wechseln Sie dann zu der gewünschten Stelle des neuen Abschnitts, und drücken Sie Ctrl+V Gehen Sie folgendermaßen vor, um eine Kopie des Texts einzufügen. Nach, Alles, was Sie tun müssen, ist, die beiden Stellen zu ändern, an denen es heißt “.bash_aliases” ein “.bash_functions”.

Wir können diese Änderungen speichern und schließen gedit.

Lassen Sie uns nun die Datei ".bash_functions" erstellen und bearbeiten und eine Funktionsdefinition einfügen.

.bash_functions berühren
gedit .bash_functions

Dadurch wird die Datei geöffnet “.bash_functions” leer in gedit.

Fügen wir eine einfache Funktion namens up. up verwendet einen einzelnen Befehlszeilenparameter, das ist eine Ziffer. up dann rufe ich an cd .. diese Anzahl von Malen. Dann, Wenn Sie den Befehl

oben 2

up Rufen cd .. zweimal und es würde im Verzeichnisbaum um zwei Ebenen nach oben gehen.

Es gibt verschiedene Alternativen um eine Funktion einzustellen. Hier ist eins:

Funktion nach oben() {

Das Wort function es ist optional. Wenn Sie ein Traditionalist sind, benutze es, wenn du dir nicht die Mühe machst es zu schreiben, Lass es aus.

Hier ist unsere gesamte Funktion in gedit:

Die Shell-Up-Funktion () Bash und gedit

Funktion nach oben() {

Dies markiert den Beginn unserer Funktionsdefinition, und benenne die Funktion up.

Stufen=$1

Dies erzeugt eine Variable namens levels und setze ihn auf den Wert des ersten Parameters. Dieser Parameter ist eine Ziffer, die der Benutzer beim Aufrufen der Funktion bereitstellt. das $1 es bedeutet “Erster Befehlszeilenparameter”.

während [ "$Ebenen" -gt "0" ]; tun

Dann gehen wir in eine Schleife. Dies bedeutet übersetzt “während der Wert von levels ist größer als null, Tun Sie, was im Schleifenkörper enthalten ist “.

Im Körper der Schleife, wir haben zwei befehle. Sohn:

CD ..

Gehen Sie im Verzeichnisbaum eine Ebene nach oben.

Ebenen=$(($Ebenen - 1))

Anziehen levels auf einen neuen Wert, das ist eins weniger als sein aktueller Wert.

Dann gehen wir zurück zum Anfang des Zyklus, der Vergleich zwischen dem Wert von levels und wird zu Null. Und levels ist größer als null, Der Schleifentext wird erneut ausgeführt. Wenn nicht größer als Null, Die Schleife endet und wir gehen zu done Stellungnahme, und die Funktion ist vorbei.

Speichern Sie diese Änderungen, und schließen Sie gedit.

Wir werden die Befehle lesen und ausführen in “.bashrc” die die Befehle in unserer Datei lesen und ausführen sollten “.bash_functions”.

. .bashrc

Wir können die Funktion testen, indem wir an eine Stelle im Verzeichnisbaum wechseln und up So kehren Sie zu einem Punkt zurück “Vorgesetzter” im Verzeichnisbaum.

cd ./work/backup/
oben 2

Die Funktion funktioniert. Wir haben im Baum zwei Verzeichnisebenen nach oben verschoben.

Behalte den Überblick bei dem Kerl

Wenn Sie eine Reihe von Aliasnamen und eine Funktionsbibliothek erstellen, Es kann schwierig sein, sich zu merken, ob ein bestimmter Befehl ein Alias ​​oder eine Funktion ist. Du kannst den ... benutzen type Befehl um dich zu erinnern. Das Gute hier ist, dass Sie auch die Definition sehen können.

Lass uns benutzen type in unserer ftc alias und unser up Funktion.

Typ ftc
tippe ein

Wir erhalten eine sehr nützliche Erinnerung daran, welche Art von Befehl jeder ist, zusammen mit ihren Definitionen.

Fang an zu sammeln

Aliase und Funktionen können die Verwendung der Befehlszeile erheblich beschleunigen. Sie können Skripte verkürzen und ermöglichen es Ihnen, die Alternativen, die Sie immer mit Standardbefehlen verwenden, zu integrieren.

Wann immer Sie eine raffinierte oder nützliche Funktion sehen, Sie können es anpassen und anpassen, und fügen Sie es dann Ihren ".bash_aliases"- oder ".bash_functions"-Dateien hinzu.

setTimeout(Funktion(){
!Funktion(F,B,e,v,n,T,S)
{wenn(f.fbq)Rückkehr;n=f.fbq=Funktion(){n.callMethode?
n.callMethod.apply(n,Argumente):n.queue.push(Argumente)};
wenn(!f._fbq)f._fbq = n;n.drücken=n;n.geladen=!0;n.version=’2.0′;
n.Warteschlange=[];t=b.Element erstellen(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(T,S) } (window, dokumentieren,'Skript',
„https://connect.facebook.net/en_US/fbevents.js’);
fbq('drin', ‘335401813750447’);
fbq('Spur', 'Seitenansicht');
},3000);

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.