2020-04-18

Terminal Command Sammlung

Rsync

lsof -ad3-999 -c rsync*

Zeigt an, welche Datei gerade gelesen wird

rsync -avx --info=progress2 /a /b/

Macht eine 1 zu 1 Kopie

strace -e open $(ps -o lwp= -LC rsync | sed 's/^/-p/')*

Zeigt in Echtzeit an, welche Datei gerade gelesen wird

cat ~/bak.log | egrep '^\*deleting' | cut -c 13- > ~/to_be_deleted*

Auflistung von Dateien, die gelöscht werden sollen

cat ~/bak.log | egrep '^<f' | cut -c 13- > ~/to_be_transfered

Auflistung von Dateien, die übertragen werden sollen

        sum=0
        while IFS= read line;
        do
                size=ls -l  "${SRC}${line}" | cut -d " " -f5 ;
                sum=$((size+sum))
        done < ~/to_be_transfered
echo $sum | numfmt --to iec --format "%8.4f"

Errechnet die gesamte zu übertragende Masse an Daten

Git

git format-patch --stdout first_commit^..last_commit > changes.patch

Erstellt einen Patch über die angegebe Range aus Commits

git am -3 < changes.patch

Wendet einen patch an und ermöglicht es Konflikte aufzulösen.

FFmpeg

ffmpeg -framerate 30 -pattern_type glob -i '*.jpg' \
  -c:v libx264 -r 30 -pix_fmt yuv420p test.mp4

Generiert ein Video aus Bildern

Openssh

ssh-keygen -t ed25519 -f file

Generiert einen SSH-Key in die datei "file"

ssh-copy-id -i cert name@x.y

Kopiert den Key auf den Server

autossh -i ~/.ssh/x -fN -R :1337:localhost:22 x@y.z -p 900

Reverse ssh Tunnel von y.z:1337 zu localhost:22, Verbindungsaufbau über Port 900

Certbot

Cron

/usr/bin/flock -n /tmp/fcj.lockfile x

Legt eine Lock-Datei an, so kann das übergebene Programm nicht mehrfach starten, nützlich, wenn man per Cron periodisch lang laufende Scripte startet

GnuPG

gpg --keyserver pgp.mit.edu --send-keys (key id)

Sendet Public-Key zu Key-Server

zsh

ls DSCF<6800-6900>.JPG

Numerisches Globbing