Diese Kommandos sollten auf allen Unix-basierenden Betriebssystemen (MacOS X, Linux, etc.) funktionieren. Sofern Abweichungen bekannt sind, sind diese an den entsprechenden Stellen dokumentiert.
Alle nicht-versteckten Dateien vom Typ Text (MIME text/plain) des aktuellen Verzeichnis anzeigen:
file -i0 * | grep -a text/plain | cut -d '' -f1
Die Größe von Verzeichnissen lässt sich mit folgendem Befehl berechnen:
du -hs /foobar
Dateien/Verzeichnisse kopieren und deren Eigenschaften (Besitzer, Erstellungsdatum, etc.) beibehalten:
cp -a [source] [target]
Zwei Dateien vergleichen, ob sie identisch sind (byte-weise):
cmp -l [file1] [file2]
Rechte rekursiv für alle Dateien/Unterordner in einem Ordner setzten, um bspw. Lese- oder Schreibrechte für viele Ordner und Dateien zu setzen oder zu entziehen. Pfade und Rechte müssen für den Einzellfall angepasst werden.
Dateien (-rwxr--r--):
find ./ -type f -print -exec chmod 644 {} \;
Ordner (drwxr-xr-x):
find ./ -type d -print -exec chmod 755 {} \;
tar -zcvf foobar.tar.gz foobar/
Quelle: Zyxware Technologies: How to create and extract a .tar.gz archive using command line
Einzelne Datei in eine ZIP-Datei verpacken und komprimieren:
zip -9 [zip-file] [filename]
Einen gesamten Ordner in einer ZIP-Datei verpacken und komprimieren:
zip -9 -r [zip-file] [folder]
Das Attribut -9 steht dabei für die maximale Komprimierung.
Zum entpacken eines ZIP-Archives gibt es den Befehl unzip:
unzip [zip-file]
Inhalt einer tar-Datei ausgeben:
tar -tvf example.tar
Das Attribut t listet den Inhalt der Datei auf.
Das Attribut v (für „verbose“) gibt die Ausgabe von tar auf der Konsole aus.
Das Attribut f weist tar an, die angegebene Datei (hier: example.tar) zu verwenden.
Inhalt einer tar.gz- oder tgz-Datei ausgeben:
tar -ztvf example.tar.gz
Das zusätzliche Attribut z weist tar an, die Datei mit gzip für die Auflistung zu dekomprimieren.
Inhalt einer tar.bz2-Datei ausgeben:
tar -jtvf example.tar.bz2
Das zusätzliche Attribut j weist tar an, die Datei mit bzip2 für die Auflistung zu dekomprimieren.
Eine tar.gz- oder tgz-Datei entpacken:
tar zxvf example.tgz
Das Attribut z weißt tar an, die Datei mithilfe von gzip zu entpacken.
Das Attribut x entpackt die tar-Datei.
Das Attribut v gibt während des Entpackens Meldungen auf der Konsole aus.
Das Attribut f weißt tar an, die angegebene Datei (hier: example.tgz) zu verwenden.
Um ein tar-Archiv in ein anderes Verzeichnis zu entpacken, muss nach dem Dateinamen das Attribut -C (Achtung: großes C!) mit dem Ziel-Verzeichnis angegeben werden:
tar zxvf example.tgz -C ~/tmp/example
Alle ans System angeschlossene Festplatten mit Partitionen, Größe und Mount-Punkt lassen sich mit lsblk ausgeben:
lsblk
Unter macOS ist lsblk nicht verfügbar, dort eignet sich der Befehlt df:
df
Um während eines Kopier-Vorgangs von dd zu sehen, wie weit fortgeschritten der Vorgang ist, muss eine zweites, virtuelles Terminal geöffnet werden, indem dann der Fortschritt abgefragt werden kann. Im zweiten Terminal muss zunächst die Prozess-ID (PID) von dd ermittelt werden:
pgrep -l '^dd$'
Die Rückgabe sieht in etwas wie folgt aus (Prozess-ID, Prozess):
2342 dd
Nun kann man mit dem Befehl kill ein USR1-Signal an den dd-Prozess (PID: 2342) schicken und dieser gibt dann den aktuellen Status auf sein STDERR (hier: das erste Terminal in dem dd läuft) aus:
kill -USR1 2342
Die Ausgabe sieht dann z.B. so aus:
$ dd if=/dev/random of=/dev/null bs=1K count=100 0+14 records in 0+14 records out 204 bytes (204 B) copied, 24.92 seconds, 0.0 kB/s
Dieser Befehl zeigt allerdings nur einmalig den Status von dd an, er kann aber beliebig oft wiederholt werden. Um den Status automatisch wiederholt ausgeben zu lassen, kann der Befehl watch zur Hilfe genommen werden:
watch -n 10 kill -USR1 2342
Über das Attribut -n von watch wird ein Intervall (in Sekunden) definiert, wie oft der nachfolgende Befehl (hier: kill -USR1 2342) ausgeführt werden soll.
Wenn OpenSSL installiert ist, lassen sich darüber sehr einfach Passwörter erzeugen:
openssl rand -base64 12
echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | base64 --decode
Quelle: Ask Ubuntu: How can I decode a base64 string from the command line?
Die IP einer Domain lässt sich mit dem Befehl dig erfragen:
dig example.com A +short
Der Befehl dig ohne die Paramter A +short ergibt eine ausführliche Auflistung inklusive abgefragtem DNS-Server.
Mit dem Programm wget können Dateien und Seiten aus dem Internet geladen werden.
Um mit wget eine einzelne Datei herunterzuladen reicht folgender Befehl:
wget http://example.org/downloads/example.zip
Die E-Mails werden mit dem E-Mail-Programm mutt verschickt:
mutt -s "Betreff" -a /tmp/foobar.tar.gz foo@example.com < /tmp/message.txt