Skip to main content

Nützliche Bash-Einzeiler

Logausgabe verfolgen und gleichzeitig nach einem bestimmten String suchen

tail -f file | grep --line-buffered my_pattern

SSH Keys von Github importieren

ssh-import-id-gh <username>

ODER falls auf dem System dieses Tool nicht vorinstalliert ist

mkdir -m 700 ~/.ssh; curl https://github.com/<username>.keys >> ~/.ssh/authorized_keys

Inhalte in Dateien ersetzen

sed -i 's/old-text/new-text/g' input.txt

Passwort generieren

date +%s | sha256sum | base64 | head -c 32 ; echo

String hashen

echo -n "yourstring" | shasum -a 512

Timestamp zu Datum konvertieren

date -d @<TIMESTAMP>

ex. 
date -d @1616934873
Sun 28 Mar 2021 02:34:33 PM CEST

Datum zu Timestamp konvertieren

Linux
date -d '06/12/2012 07:21:22' +"%s"

Beachte: Amerikanisches Datumsformat, sprich MM/DD/YYYY

Mac OS
date -j -u -f "%a %b %d %T %Z %Y" "Tue Sep 28 19:35:15 EDT 2010" "+%s"

Dateien von Gerät A zu Gerät C über Gerät B kopieren (Jumphost-like)

scp -oProxyCommand="ssh -W %h:%p user@host_jumphost" quelldatei user@host_ziel:zielverzeichnis

Backup des gesamten Systems anfertigen

rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup

Alle Dateien aus Unterordnern in das aktuelle Verzeichnis verschieben

find . -mindepth 2 -type f -print -exec mv {} . \;

Alle selber erstellten User auflisten

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

Es werden keine Systemuser aufgeführt (welche i.d.R. eine UserID < 1000 haben)

IP Adressen in Webserver-Zugriffslogs auszählen

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr