1) Verzeichnis erstellen und hineinwechseln
mkdir -p {DirName} && cd $_
Der Parameter „-p“ für mkdir erstellt fehlende Verzeichnisse oberhalb von {DirName} und gibt keinen Fehler aus, falls das Verzeichnis schon existiert. Der Parameter „$_“ für cd liefert das Argument des zuvor benutzten Bash-Befehls, deshalb erstellt diese Sequenz ein Verzeichnis (incl. etwaigen fehlenden Verzeichnissen darüber) und wechselt anschließend hinein. Übrigens, wenn Sie sich das als Alias definieren wollen, dann müssen Sie etwas tricksen, Aliase nehmen keine Parameter. Definieren Sie sich also eine Funktion (geht auch in .bash_aliases):
xcd() { mkdir -p "$1" && cd "$_"; }
2) Sudo in Script erzwingen
Ein Script benötigt sudo, aber Sie möchten es auch ohne sudo aufrufen können, es soll sich dann selbständig „sudofizieren“. Setzen Sie folgenden Code zu Beginn des Scripts:
if [ $(id -u) -ne 0 ]; then sudo "$0 $*" exit $? fi
Nur der Superuser hat ID 0, für jeden anderen Benutzer ruft das Script sich wieder selbst auf mit allen Parametern und sudo.
3) Search und Replace in Textdateien mit überlangen Zeilen
Passiert gerne beim Export von Datenbanken: manche Zeilen sind zigtausende Zeichen lang. Wenn man das mit sed bearbeiten will, geht es schief, weil sed eine Begrenzung für die maximal zulässige Anzahl von Zeichen in einer Zeile hat. Benutzen Sie in solchen Fällen perl:
perl -pi -e 's/{string-in}/{string-out}/g' {file}
4) Nur die IP einer URL ausgeben
Oft benötigt man nur die IP einer URL, aber dig erzählt einen ganzen Roman. Ein nettes kleines Alias (wiederum als Funktion) ist deshalb:
xdig() { dig +noall +answer "$1"|awk '{print $5}'; }
5) Prozess suchen, aber Suche dafür ausfiltern
Finden Sie es auch lästig, wenn Sie mit ps einen Prozess in der Prozessliste suchen, und dafür das Ergebnis von ps mit grep filtern, dann ist immer grep im Ergebnis mit dabei? Auch hierzu ein hilfreiches Funktions-Alias:
xps() { ps ax |grep -i "$1"|grep -v grep; }
Ja, das geht auch mit „ps -C“, aber dann ist es nicht mehr der BSD-Parameter-Standard, findet weniger und außerdem, warum auch immer, funktioniert „-C“ nicht mit „-e“ (alle Prozesse im UNIX-Parameter-Standard).
//Update: Unser Linux-Guru weist mich darauf hin, dass die gewünschte Funktionalität mittels pgrep eleganter zu erzielen ist, nämlich mit pgrep -aif „$1“. Die Funktionsdefinition dafür lautet:
xps() { pgrep -aif "$1"; }
Übrigens, wenn Sie die Datei .bash_aliases editieren, müssen Sie sich danach nicht neu einloggen, um die geänderten Aliase wirksam zu machen. Führen Sie stattdessen „source .bashrc“ aus, das lädt die Umgebung im laufenden Terminal neu.