Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:aliases

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

linux:aliases [2016/01/12 10:48] (aktuell)
Till Helge Helwig angelegt
Zeile 1: Zeile 1:
 +====== Aliases (mit mehreren Befehlen) ======
 +
 +Wenn man die Bash häufig benutzt, merkt man sehr schnell, dass man bestimmte Befehle häufig wiederholt. Um die Benutzung zu vereinfachen,​ kann man sich Aliases definieren, die einen Befehl (oder sogar mehrere) auf einmal ausführen.
 +
 +Diese Einstellungen macht man in der ''​.bashrc''​ oder der ''​.bash_profile''​ im eigenen Home-Verzeichnis. Um sie zu editieren, kann man sie bspw. mit ''​vim''​ öffnen:
 +
 +<code bash>$ vim ~/​.bash_profile</​code>​
 +
 +Ein grafischer Text-Editor geht natürlich auch. Sollte die Datei nicht existieren, kann man sie einfach anlegen.
 +
 +===== Einfache Aliases =====
 +
 +Ein klassisches Alias (das manchmal vom Betriebssystem sogar schon vordefiniert ist), ist die Kurzform ''​ll''​ für ''​ls -l''​. Diese würde man in der Datei so anlegen:
 +
 +<code bash>​alias ll='ls -l'</​code>​
 +
 +Natürlich kann man hier auch komplexere Ausdrücke verwenden:
 +
 +<code bash>​alias alldirs='​find . -type d'</​code>​
 +
 +Dies definiert ein Alias, um alle Verzeichnisse im aktuellen Pfad aufzulisten (ist ja nur ein Beispiel).
 +
 +===== Komplexe Aliases =====
 +
 +Um mehrere Befehle durch ein Alias ausführen zu lassen, gibt es mehrere Wege. Man kann in Aliases die gleichen Operatoren verwenden wie direkt in der Kommandozeile,​ wenn man mehrere Befehle kombinieren will:
 +
 +<code bash>
 +# beide befehle ausführen, egal was passiert
 +alias doBoth='​command1;​ command2'​
 +
 +# den zweiten Befehl nur ausführen, wenn der erste geklappt hat
 +alias doAnd='​command1 && command2'​
 +
 +# den zweiten Befehl nur ausführen, wenn der erste nicht geklappt hat
 +alias doOr='​command1 || command2'​
 +</​code>​
 +
 +Persönlich finde ich diese Notation bei komplexeren Sachen etwas unübersichtlich. Zum Glück gibt es aber eine Alternative:​ Funktionen. Man kann globale Funktionen definieren, die dann in immer zur Verfügung stehen. Das sieht dann so aus:
 +
 +<code bash>
 +myShortcut() {
 +   ​command1
 +   ​command2
 +}</​code>​
 +
 +In der Funktion kann man natürlich auch wieder die Bash-Operatoren (und theoretisch auch noch viel mehr) benutzen.
 +
 +===== Aliases aktivieren =====
 +
 +Wenn du ein neues Terminal öffnest, wird automatisch eine existierende ''​~/​.bashrc''​ und/oder ''​~/​.bash_profile''​ eingelesen, also sind alle deine Aliases sofort verfügbar.
 +
 +Um sie in einem Terminal verfügbar zu machen, in dem du gerade arbeitest, kannst du auch das Einlesen der Datei erzwingen:
 +
 +<code bash>$ source ~/​.bash_profile</​code>​
 +
  
linux/aliases.txt · Zuletzt geändert: 2016/01/12 10:48 von Till Helge Helwig