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