5 kleine Helferlein für Linux

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert