Dieser Artikel richtet sich an Personen die ihre Shell Kenntnisse erweitern wollen. Shell Veteranen werden hier wahrscheinlich nichts finden was Sie noch nicht wissen.

TAB Complete

Für manche sieht es wie Zauberei aus aber eigentlich drücke ich nur TAB

Vor etlichen Jahren saß ich im Büro bei einem großen österreichischen Unternehmen neben einem Oracle Consultant und sah ihm dabei zu wie er mit Zweifinger-Adler-Suchsystem Befehle in ein Terminalfenster eintippte. Es war die reinste Folter.

Egal ob bei Dateinamen, Pfaden oder Befehlen, ohne Tab Complete wäre man wahrscheinlich 10 mal so langsam. Der wahrscheinlich zeitsparenste Trick ist einfach so oft wie möglich TAB zu drücken um seine Commandos zu vervollständigen. Vorrausgesetzt man arbeitet auf einer Shell die das unterstützt, kann man TAB auch für Argumente von Befehlen wie zum Beispiel git oder docker verwenden, oder dafür Plugins installieren.

Wie bei allen Automatismen sollte man vor dem ENTER aber nochmal innehalten ob der Befehl auch wirklich das ist was man ausführen wollte.

Cursor

Um den aktuellen Befehl zu bearbeiten verwende ich folgende Shortcuts:

Ctrl + a - Bewegt den Cursor zum Anfang des Befehls

Ctrl + e - Bewegt den Cursor zum Ende des Befehls

Ctrl + w - Löscht das Wort links vom Cursor

Ctrl + bzw Ctrl + bewegt den Cursor ein Wort links beziehungsweise rechts

Es gibt natürlich noch mehr Shortcuts, aber mit diesen 4 Tastaturkombinationen komme ich meistens aus.

History

Mit history kann man sich die Historie der abgesetzten Befehle ansehen. Vor allem auf Systemen auf denen ich noch nie war oder schon länger nicht mehr ( wo war nochmal diese eine Konfigurationsdatei?) ist das ganz hilfreich.

MIt und kann man den letzten Befehle durchwechseln.

Reverse History Suche

Lange Zeit habe ich eigentlich nur mit history | grep <SUCHBEGRIFF> oder mit den Pfeiltasten Befehle gesucht, bis ich beim Blick über die Schulter eines Shell Wizards mir diesen Spruch abgeschaut habe. Einen bestimmten Befehl zu suchen ist damit nochmal schneller.

Ctrl + R + Suchbegriff tippen anfangen

# git commit -m "Initial vibe code"
bck-i-search: git _

Ist der erste Treffer nicht das was man sucht, kann man entweder weitertippen um den Suchbegriff weiter auszuschreiben, oder man drückt ein weiteres mal Ctrl + R um zum nächsten Treffer zu kommen. Das Ganze ist nur am Anfang etwas ungewohnt, wenn man es ein paar mal geübt hat wird man nicht mehr ohne diesen Shortcut arbeiten.

Alias

Für Befehle die man häufig verwendet, sollte man sich Aliase definieren. Aliase können in der Shell Konfigurationsdatei der verwendeten Shell wie zum Beispiel der .bashrc oder der .zshrc Datei im eigenen home Verzeichnis gesetzt werden. Man kann aber auch einfach direkt in der Shell mit alias definieren wenn man den Alias nur temporär braucht.

Der Klassiker ist dabei der Alias ll

alias ll="ls --color -trlah"

Um alle aktuellen Aliase zu sehen reicht ein alias alleine:

alias

-='cd -'
...=../..
....=../../..
.....=../../../..
......=../../../../..
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'

Tmux

Über Tmux könnte man eine eigenen Artikel schreiben. Mit Tmux kann man mehrere virtuelle Terminalsitzungen in einem Terminal verwalten. Sessions kann man detachen, also in den Hintergrund "ablösen" und wieder attachen. Das ist vor allen interessant wenn man remote arbeitet da auch bei Verbindungsverlust die Session weiter läuft.

tmux Befehle beginnen grundsätzlich immer mit Ctrl B gefolgt von dem eigentlich Kommando, was zumindest zu Beginn etwas gewöhnungsbedürftig ist. Somit ist aber sichergestellt das die Tmux Kommandos nicht mit anderen Tastenkombos kollidieren.

Ich starte automatisch beim Öffnen eines Terminalfensters immer Tmux , damit ich diiese in mehrere Unterfenster teilen kann. Ctrl B + % für horizontales Teilen eines Fensters in 2 Hälften und Ctrl B + " für vertikales Teilen.

Wer sich die Zeit nimmt sich in Tmux einzuarbeiten und es sich nach seien Bedürfnissen konfiguriert wird mit noch mehr Produktivität auf der Shell belohnt werden.

Tmux Getting Started


Anmerkungen

ja dieser Artikel existiert auch um mein Markdown Feature zu testen