no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.


linux:aliases [2016/01/12 10:48] (aktuell) – angelegt Till Helge Helwig
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>
 +