dpkg-query -L <package>
listet alle installierten Dateien von <package>
.convert image{01..10}.jpg output.pdf
fasst die 10 Bilder zu einem PDF zusammen.hostname -b
für dessen Einstellung, hostname
liest ihn wieder.rename 's/$/.old/' *
versieht die Dateien in einem Ordner mit dem Suffix .old
. Dito mit rename 's/^/prefix/' *
. Weitere Tricks zu rename
findet man bei commandlinefu.com.for i in *.wav; do lame -v -h -b 192 --lowpass 21 "$i" "`basename "$i" .wav`".mp3; done
man chattr
oder Wikipedia.find . -type f -exec chmod 0644 {} \;
sucht alle Dateien unter dem aktuellen Verzeichnis und setzt deren Zugriffsrechte zu 644
.find . -type d -exec chmod 0755 {} \;
sucht alle Verzeichnisse unter dem aktuellen Verzeichnis und setzt deren Zugriffsrechte zu 755
.find . -name '*.txt' -exec sed 's/old/new/g' {} \;
ändert in einem Verzeichnis mit Textdateien den Text old
zu new
.find <directory path> -mtime +365 -type f -delete
löscht alle Dateien, die älter als 365 Tage sind. A find Tutorial and Primer liefert ein paar weitere elementare Anwendungen von find.sed /BEGIN/,/END/s/xxx/yyy/g input.txt
ersetzt xxx
mit yyy
von BEGIN
bis END
in input.txt
.let seconds=(3600-60*`date +%M`-`date +%S`)%1800
zählt die Sekunden bis zur nächsten halben Stunde.grep -ri 'suchstring' ./
sucht rekursiv nach suchstring
in allen Dateien unterhalb des momentanen Verzeichnisses. Alternativen: find ./ -exec grep -i 'Suchstring' /dev/null {} \;
oder find . -type f -print0 |xargs –null grep -i 'Suchstring
'.hdparm -I <device>
zeigt ausführliche Informationen zu einer Festplatte, hdparm -B
stellt Advanced Power Management ein.nice yes > /dev/null
shred -vzn 1 /dev/sdx
löscht eine Festplatte durch Überschreiben mit Zufallszahlen, gefolgt von Nullen.env -i HOME="$HOME" bash -l -c 'befehl'
liefert eine sehr minimalistische Umgebung (aber mit HOME
und systemweiter Login-Umgebung, typischerweise auch PATH
), leicht kontrollierbar mit befehl = env
. Das Shebang #!/usr/bin/env -S -i bash
(oder -l
ersetzt durch --noprofile --norc
) hat eine weiter reduzierte Umgebung (ohne HOME
und ohne systemweiter Umgebung) zur Folge.mount -t vfat /dev/sdxx /mnt/v1 -o uid=robert,gid=robert
bindet eine als VFAT partitioniertes Speichermedium als Nutzer robert
ein.xclip <file>
verfrachtet <file>
ins mausgestützte Primary Clipboard. -o
ist die umgekehrte Richtung zu <stdout>
, -selection
erlaubt die Wahl des Clipboards. Siehe dazu die Manpage.
Achtung Die in einem Headless Server vorliegende Entropie kann zu gering sein für hinreichend sichere Pseudo-Zufallszahlen. Abhilfe schafft das Paket haveged
.
ssh
-Zugang zu einem Rechner möglich ist: Man erzeugt auf dem Client mit ssh-keygen -t dsa
ein passwortfreies Schlüsselpaar, dessen öffentlicher Schlüssel auf dem Server an die Datei ~/.ssh/authorized_keys
(ein Schlüssel pro Zeile) angehängt werden muss. Der geheime Schlüssel auf dem Client sollte natürlich nicht verloren gehen. Oktober 2015 Neuere OpenSSH-Versionen (z.B. 7.1 auf Hias.Local) verwenden öffentliche Schlüssel vom Typ ssh-dss
im Standard aus Sicherheitsgründen nicht mehr. Abhilfe schafft ein PubkeyAcceptedKeyTypes +ssh-dss
in /home/robert/.ssh/config
.ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
Offending key in /home/name/.ssh/known_hosts: 6
, löscht man durch sed -i '6d' ~/.ssh/known_hosts
, wobei die Zeile (hier 6) entsprechend angepasst werden muss. Mit einem Editor kann man natürlich auch die Zeile in known_hosts
löschen.top
System- und Servicemanager der von mir eingesetzten Linux-Distributionen Debian und Arch.
hostnamectl
― Setzen und Lesen des Hostname und der machine-info
/etc/nologin
(oder der entsprechende Symlink), so kann sich nur mehr root
anmelden. Alle übrigen Nutzer bekommen beim misslungenen Anmeldeversuch den Inhalt der Datei nologin
als Entschuldigung angezeigt.cron
— Die Tageszeit, an der die täglichen, wöchentlichen, und monatlichen Cronjobs laufen, finden sich unter /etc/crontab
. Über crontab -e
kann auch jeder Nutzer Cronjobs laufen lassen, die unter /var/spool/cron/crontabs
zu jedem Nutzer verwaltet werden.pikaur
. Sehr komfortabel, aber mit einem »Pitfall«: Bei einem Update von Python muss er von Hand aktualisiert werden also git clone https://aur.archlinux.org/pikaur.git
und makepkg -si
.grep -r