Seite wählen

Kommentar in der Bash History

von | Nov 12, 2020 | Linux

Heute stelle ich euch einen der „billigsten“ Tricks der Linux CLI vor, den erstaunlicherweise fast keiner kennt.

Kennt ihr es nicht auch? Ihr benutzt ein Kommando in der bash und könnt euch das Kommando einfach nicht merken. Das gemeine daran: Wenn ihr euch das Kommando nicht merken könnt, könnt ihr es auch mit Hilfe von Ctrl+r nicht suchen. Also bleibt nur „googeln“ oder mit den Pfeiltasten mühsam nach dem richtigen Kommando suchen.

Eine super Ergänzung dazu ist das Kommentieren von Kommandos.

Ein simples Beispiel:
~$ find . -mtime +30 -print # find files older than 30 days
./.bash_logout
./.bashrc
./.gnupg
./.profile
./.ssh
./.ssh/authorized_keys

Nun kann das Kommando in der Suche der Bash History (Ctrl+r) mit Hilfe des Kommentars gefunden werden:
(reverse-i-search)`older': find . -mtime +30 -print # find files older than 30 days

Zugegeben, das war jetzt sehr billig. Man kann dieses Vorgehen aber noch weiter „aufbohren“ in dem man Platzhalter einfügt. Als etwas komplexeres Beispiel dient hier ein zfs send der einen Snapshot auf einen Backup-Server archiviert und (für bessere Transferraten) mbuffer nutzt.
~$ zfs send -I <last-incremental-snapshot> data/test@<current-incremental-snapshot> | mbuffer -O <backup-server>:<port>   # transfer zfs snapshots to backup server
-bash: syntax error near unexpected token `|'

Durch die Platzhalter bekommt man beim Ausführen des Kommandos leider eine nicht so schöne Fehlermeldung, aber immerhin ist die “Kommando-Vorlage” nun in der Bash History verfügbar.
(reverse-i-search)`backup': zfs send -I <last-incremental-snapshot> data/test@<current-incremental-snapshot> | mbuffer -O <backup-server>:<port>   # transfer zfs snapshots to backup server

Um den unschönen Syntax Fehler und damit verbundene, potentielle Fehler zu vermeiden kann das Kommando auch direkt in die Bash History ($HOME/.bash_history) geschrieben werden. Nach einem Logout / Login oder history -a ist das neue Kommando dann verfügbar.

Solltest ihr viele Kommandos hinterlegen wollen, denkt bitte daran eure Bash-History entsprechend groß zu dimensionieren. Nicht das die “Kommando-Vorlagen” schon nach einem Tag wieder aus der History verschwunden sind.

Falls dieser Tip für euch völlig unverständlich ist kann ich unser Linux Training nur wärmstens empfehlen 😉

Tobias Redel
Tobias Redel
Head of Professional Services

Tobias hat nach seiner Ausbildung als Fachinformatiker bei der Deutschen Telekom bei T-Systems gearbeitet. Seit August 2008 ist er bei NETWAYS, wo er in der Consulting-Truppe unsere Kunden in Sachen Open Source, Monitoring und Systems Management unterstützt. Insgeheim führt er jedoch ein Doppelleben als Travel-Hacker, arbeitet an seiner dritten Millionen Euro (aus den ersten beiden ist nix geworden) und versucht die Weltherrschaft an sich zu reißen.
Mehr Beiträge zum Thema Linux

Squid 4 Proxy mit LDAP & MITM SSL-Bump

Im Zuge meiner Ausbildung bei NETWAYS durfte ich mich diese Woche mit Squid auseinandersetzen. Dabei merkte ich, dass man sich bezüglich LDAP & SSL-BUMP wirklich nur auf die offiziellen Squid Dokus und die Red Hat Dokus verlassen konnte. Squid ist ein Caching...

Ceph OSDs mit BlueStore erstellen

BlueStore ist das neue Speicher-Backend für Ceph ab Luminous. v12.2.x. Es wird standardmäßig verwendet, wenn neue OSDs durch ceph-disk, ceph-deploy oder ceph-volume erzeugt werden. Es bietet einen großen Vorteil in Bezug auf Leistung, Robustheit und Funktionalität...

Putty mit tmux

Nachdem ich öfters mit dem Tool Putty  zu tun bekommen habe, um mich von einer Windows-Umgebung auf einen Linux-Host zu verbinden, habe ich recherchiert wie man beim verbinden einer SSH-Session von Putty direkt eine Tmux-Session auf dem Linux-Server eröffnen kann....

Veranstaltungen

Dez 01

Icinga 2 Fundamentals Training | Online

Dezember 1 @ 09:00 - Dezember 4 @ 17:00
Dez 03

DevOps Meetup

Dezember 3 @ 17:30 - 20:30
Dez 08

Terraform mit OpenStack Training | Online

Dezember 8 @ 09:00 - Dezember 9 @ 17:00
Dez 08

Icinga 2 Advanced Training | Online

Dezember 8 @ 09:00 - Dezember 10 @ 17:00
Dez 15

GitLab Training | Online

Dezember 15 @ 09:00 - Dezember 16 @ 17:00