[[Vorlage(getestet,general)]] {{{#!vorlage Wissen [:Terminal:Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] '''alias''' definiert Kurznamen (Aliase) für Befehlsaufrufe. Alias ist als Shell-Builtin bei vielen [:Shell:Shells] integriert, unter anderem bei der [:Bash:], der Standard-Shell unter Ubuntu. \\ \\ = Syntax = Die allgemeine Syntax lautet [1]: {{{#!vorlage Befehl alias Kurzname='Befehl' }}} Beispiel: {{{#!vorlage Befehl alias ll='ls -la' }}} == Anzeigen aller definierten Aliase == {{{#!vorlage Befehl alias }}} {{{alias ll='ls -l' alias ls='ls --color=auto' }}} == Anzeigen eines bestimmten Alias == {{{#!vorlage Befehl alias ll }}} {{{alias ll='ls -l' }}} == Folgendes Wort auf Alias prüfen == Normalerweise wird nur das erste Wort jedes Befehls, den man im Terminal eingibt, für die Alias-Ersetzung überprüft. Wenn man beim Erzeugen eines Alias den neuen Befehl mit einem Leerzeichen beendet, wird allerdings auch das folgende Wort überprüft: {{{#!vorlage Befehl alias Kurzname='Befehl[mark] [/mark]' }}} === Aliase mit sudo === Bedingt durch den obigen Umstand funktionieren üblicherweise Aliase mit [:sudo:] nicht. Beispiel: {{{#!vorlage Befehl sudo ll /root/ }}} {{{ sudo: ll: command not found }}} Dies kann man jedoch beheben, indem man für `sudo` den folgenden Alias angibt: {{{#!vorlage Befehl alias sudo='sudo[mark] [/mark]' }}} So wird auch ein auf `sudo` folgender Alias (wie z.B. `ll`) interpretiert. = Dauerhafte Verwendung = Eingegebene Aliase sind flüchtig, d.h. diese stehen nach einem erneuten Aufruf der Konsole nicht mehr zur Verfügung. Es gibt allerdings zwei Möglichkeiten, diese dauerhaft zu definieren. Einmal durch Bearbeiten der Datei '''~/.bashrc''' oder durch Anlegen der Datei '''~/.bash_aliases'''. == Definieren in der Datei .bashrc == Man öffnet die Datei '''~/.bashrc''' mit einem Editor [2]. Unter dem Absatz `Alias definitions` können dann die gewünschten Kurznamen eingetragen werden. {{{ # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. alias ll='ls -l' alias la='ls -la' }}} Anschließend speichert und schließt man die Datei. == Definieren in der Datei .bash_aliases == Die zweite Möglichkeit ist, Aliase zentral in der Datei '''~/.bash_aliases''' zu definieren. Der Vorteil dieser Möglichkeit liegt in der Übersichtlichkeit. Die Datei wird einfach mit einem Editor [2] erstellt und die Aliase werden zeilenweise eingetragen. {{{ alias ll='ls -l' alias la='ls -al' alias ..='cd ..' }}} Anschließend wird die Datei gespeichert und geschlossen. Damit die '''.bash_aliases''' auch eingelesen wird, muss die '''.bashrc''' unter Umständen geändert werden. Die folgenden Zeilen müssen darin enthalten sein und dürfen nicht auskommentiert sein: {{{ if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi }}} === Aktualisieren der Dateien .bashrc und .bash_aliases === Damit die geänderten Einstellungen wirksam werden, muss die Konfigurationsdatei neu eingelesen werden: {{{#!vorlage Befehl source ~/.bashrc }}} Bei eigener Alias-Datei genügt es, diese einzulesen: {{{#!vorlage Befehl source ~/.bash_aliases }}} = Umgehen eines Alias = Es kann vorkommen, dass ein Alias den ursprünglichen Befehl "überschreibt" (z.B.: `alias ls='ls -l'`). Will man das umgehen, kann man seinem Befehl einen `\ ` oder `command` voranstellen: {{{#!vorlage Befehl \BEFEHL }}} oder {{{#!vorlage Befehl command BEFEHL }}} = Zurücksetzen = Um einen Alias zurückzusetzen, dient der Befehl `unalias`. Das folgende Beispiel bewirkt, dass der oben angegebene Alias für `ll` nicht mehr gültig ist: {{{#!vorlage Befehl unalias ll }}} Um alle Alias-Definitionen aufzuheben, dient der Befehl {{{#!vorlage Befehl unalias -a }}} = Beispiele = Übergibt den `ls`-Befehl an [:less:], so dass längere Ausgaben auf einer Seite gelesen werden können und dann weitergescrollt werden kann: {{{#!vorlage Befehl alias ll='ls | less' }}} Kodiert eine Linux-zeichenkodierte Datei (UTF8 und Linux-Zeilenumbrüche) in eine Windows-Datei um (Latin1 und Windows-Zeilenumbrüche) (hierfür muss '''recode''' installiert sein): {{{#!vorlage Befehl alias rclw='recode utf-8..CP1252/CR-LF' }}} Wie oben, nur Umkodierung von Windows nach Linux: {{{#!vorlage Befehl alias rcwl='recode CP1252/CR-LF..utf-8' }}} Kürzt den Befehl zum Installieren eines Programms (der Name muss natürlich noch zusätzlich angegeben werden) mit Hilfe von [:apt/apt-get:apt-get] ab: {{{#!vorlage Befehl alias sagi='sudo apt-get install' }}} Ruft apt-get mit Root-Rechten auf, braucht noch einen folgenden Befehl (wie `install` oder `purge` oder ...): {{{#!vorlage Befehl alias sag='sudo apt-get' }}} Kombiniert zwei Befehle zum Aktualisieren der Pakete {{{#!vorlage Befehl alias up='sudo apt update && sudo apt upgrade' }}} Kann, kombiniert mit einem Suchbegriff, nach einem Paket suchen: {{{#!vorlage Befehl alias acs='apt-cache search' }}} Ein Beispiel für einen einfachen Ortswechsel im Verzeichnisbaum: mit dem Alias `des` kann man von überall im Verzeichnisbaum direkt in der Shell in das Desktop-Verzeichnis springen: {{{#!vorlage Befehl alias des='cd ~/Desktop ' }}} In das übergeordnete Verzeichnis wechseln: {{{#!vorlage Befehl alias ..='cd ..' }}} Zwei Verzeichnisse höher wechseln: {{{#!vorlage Befehl alias ...='cd ../..' }}} = Links = * [:Shell/Befehlsübersicht:] - Übersicht über verschiedene Shellbefehle #tag: Shell