Serie: Zeigt her eure Aliase
Fr, 10. Februar 2023, Ralf Hersel
Es ist ein Mythos, der gerne von den Mainstream-Tech-Medien kolportiert wird: "Wenn Du Linux benutzt, bist Du gezwungen, die Kommandozeile zu verwenden!". Richtig ist, dass niemand gezwungen wird, in einem Terminal zu arbeiten. Wer mit einer GNU/Linux-Distribution arbeitet, kann das tun, ohne jemals ein Terminal zu öffnen. Tatsächlich entdecken die meisten Anwender:innen die Kommandozeile früher oder später zu ihrem Vorteil.
Warum die Verwendung des Terminals für viele einen grossen Nutzen bringt, haben wir bereits in hunderten Artikeln beschrieben. Auch über das Thema "Alias" gab es schon einen Beitrag. In dieser Serie geht es jedoch darum, Eure eigenen Alias zu präsentieren und damit anderen Anwender:innen neue Ideen zu vermitteln, wie sie ihre Arbeit im Terminal vereinfachen können.
Beginnen möchte ich mit einer Anfänger-freundlichen Erklärung, was es mit den Aliasen auf sich hat. Wenn ihr auf der Kommandozeile arbeitet, gebt ihr Befehle ein, wie ls, grep, cd, usw. Das können auch umfangreichere Kommandos sein, wie die Suche nach einem Text in Unterverzeichnissen: grep -r "rawhtml" oder noch längere Anweisungen wie: mpv --ytdl-format=bestaudio ytdl://ytsearch:"Titel", um Musikstücke zu suchen und wiederzugeben.
Mit dem alias Befehl könnt ihr umfangreiche Befehlsketten durch ein einfaches Kommando ersetzen. Statt den langen Befehl mpv --ytdl-format=bestaudio ytdl://ytsearch:"Titel" einzutippen, wann immer ihr einen Song hören möchtet, wäre es doch besser, könnte man stattdessen: play "Titel" eingeben.
Zu jeder Shell (Bash, Z-Shell, Fish-Shell) gibt es eine Konfigurationsdatei, die als versteckte Datei in Eurem Home-Verzeichnis liegt. Sie heissen .bashrc oder .zshrc oder ... keine Ahnung, wie sie bei der Fish-Shell heisst. Diese Datei könnt ihr mit einem Texteditor bearbeiten, um eigene Alias-Einträge hineinzuschreiben. Achtet darauf, dass sich neue Einträge erst nach einem Neustart des Terminals auswirken. Um die aktuellen Alias-Einträge der Konfigurationsdatei im Terminal anzeigen zu lassen, tippt ihr alias ein. Bei mir sieht die Ausgabe so aus:
cat=bat
clean='pamac remove -o; flatpak uninstall --unused'
clip2file='wl-paste -t image/png > ~/Bilder/clipboard_image.png'
cp='cp -i'
df='df -h'
free='free -m'
gitu='git add . && git commit && git push'
h=cd
l='ls -l'
ll='ls -la'
ls='ls $LS_OPTIONS'
m=ncmpcpp
play='_y(){ mpv --ytdl-format=bestaudio ytdl://ytsearch:"$*";}; _y'
r=ranger
run-help=man
scan='nmap -sn -oG - 192.168.1.0/24'
which-command=whence
z='_z 2>&1'
Diese Ausgabe dient lediglich der schnellen Information über die verfügbaren Aliase. Besser ist es, die Datei in einem richtigen Editor zu öffnen. Dann sieht es bei mir so aus:
Um eigene Einträge von bestehenden unterscheiden zu können, empfiehlt es sich, diese mit Kommentaren zu umschliessen (#Ralf). Komplizierte Befehle sollten gesondert dokumentiert werden (siehe Tresor). In der Regel können Alias-Einträge nicht mit Parametern umgehen, die von aussen eingespeist werden. In diesen Fällen kann eine function eingesetzt werden (siehe e und tresor).
In meiner .zshrc seht ihr viele Beispiele für einfache Alias-Einträge:
- für ein einfaches Datei-Listing tippe ich l anstatt ls -l
- der Befehl ll erzeugt ein Listing mit versteckten Dateien
- um zum Home-Verzeichnis zu gelangen, gebe ich h, statt cd ein
- das Kommando scan gibt mir eine Liste aller Geräte im lokalen Netzwerk
- play habe ich bereits oben erklärt
- mit clean entferne ich Orphans und ungenutzte Flatpaks
- statt cat verwende ich bat, weil das eine viel schönere Dateiausgabe erzeugt
Bei manchen Einträgen ist zu beachten, dass zusätzliche Pakete benötigt werden (micro, nmap, ranger, mpv, ytdl, bat). Apropos micro: der export-Befehl ersetzt den Standard-Editor (nano) durch den viel besseren Editor Micro. Da diese Ersetzung Parameter verlangt, kommt eine Funktion statt eines Alias zum Einsatz. Der Alias:
alias e='micro $1'
.. funktioniert nicht, weil der Parameter $1 nicht verarbeitet werden kann. Manchmal klappt das, wie ihr beim play-Alias sehen könnt. Die Erklärung, wann es geht und wann nicht, spare ich mir. Mein Tipp: sobald Parameter mit im Spiel sind, verwendet ihr besser eine Funktion anstatt eines Alias. Offensichtlicher wird das bei der Funktion tresor. Hier haben wir es mit einem ganzen Shell-Skript zu tun, welches man auf keinen Fall in einem Alias unterbringen kann.
Wer sich über den letzten Eintrag wundert (fast directory switch), den verweise ich auf diese Seite.
Ich hoffe, dass Euch der erste Artikel dieser Serie ein paar Erkenntnisse und Ideen zur Vereinfachung Eurer Arbeit im Terminal gebracht hat. Wir freuen uns auf Eure Aliase – schreibt bitte einen Artikel darüber!