Benutzer-Werkzeuge

Webseiten-Werkzeuge


unix:commands

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
unix:commands [2015-01-27 11:27] – "Internet" mit "Dateien mit wget laden" eingefügt a.kamolaunix:commands [2019-09-02 10:43] (aktuell) – [Festplatten und Partitionen auflisten] Hinweis zu "df" ergänzt a.kamola
Zeile 4: Zeile 4:
  
 ===== Dateien ===== ===== Dateien =====
 +
 +==== Auflisten ====
 +
 +Alle nicht-versteckten Dateien vom Typ Text ([[lexikon:mime|MIME]] ''text/plain'') des aktuellen Verzeichnis anzeigen:
 +
 +<code bash>
 +file -i0 * | grep -a text/plain | cut -d '' -f1
 +</code>
  
 ==== Größe von Verzeichnissen ==== ==== Größe von Verzeichnissen ====
Zeile 12: Zeile 20:
 du -hs /foobar du -hs /foobar
 </code> </code>
 +
 +==== Verschieben/Kopieren ====
 +
 +Dateien/Verzeichnisse kopieren und deren Eigenschaften (Besitzer, Erstellungsdatum, etc.) beibehalten:
 +
 +<code bash>
 +cp -a [source] [target]
 +</code>
 +
 +==== Dateien vergleichen ====
 +
 +Zwei Dateien vergleichen, ob sie identisch sind (byte-weise):
 +
 +<code bash>
 +cmp -l [file1] [file2]
 +</code>
 +
 +==== Rechte rekursiv setzen ====
 +
 +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--%%''):
 +
 +<code bash>
 +find ./ -type f -print -exec chmod 644 {} \;
 +</code>
 +
 +Ordner (''%%drwxr-xr-x%%''):
 +
 +<code bash>
 +find ./ -type d -print -exec chmod 755 {} \;
 +</code>
 +
 +===== Archive =====
 +
 +==== tar-Archive erstellen ====
 +
 +<code bash>
 +tar -zcvf foobar.tar.gz foobar/
 +</code>
 +
 +Quelle: [[http://www.zyxware.com/articles/2009/02/26/how-to-create-and-extract-a-tar-gz-archive-using-command-line|Zyxware Technologies: How to create and extract a .tar.gz archive using command line]]
 +
 +==== Dateien und Ordner als ZIP-Datei verpacken ====
 +
 +Einzelne Datei in eine ZIP-Datei verpacken und komprimieren:
 +
 +<code bash>
 +zip -9 [zip-file] [filename]
 +</code>
 +
 +Einen gesamten Ordner in einer ZIP-Datei verpacken und komprimieren:
 +
 +<code bash>
 +zip -9 -r [zip-file] [folder]
 +</code>
 +
 +Das Attribut ''-9'' steht dabei für die maximale Komprimierung.
 +
 +==== Inhalte eines ZIP-Archives entpacken ====
 +
 +Zum entpacken eines ZIP-Archives gibt es den Befehl ''unzip'':
 +
 +<code bash>
 +unzip [zip-file]
 +</code>
 +
 +==== Inhalte eines tar-Archives auflisten ====
 +
 +Inhalt einer **tar**-Datei ausgeben:
 +
 +<code bash>
 +tar -tvf example.tar
 +</code>
 +
 +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:
 +
 +<code bash>
 +tar -ztvf example.tar.gz
 +</code>
 +
 +Das zusätzliche Attribut ''z'' weist ''tar'' an, die Datei mit ''gzip'' für die Auflistung zu dekomprimieren.
 +
 +Inhalt einer **tar.bz2**-Datei ausgeben:
 +
 +<code bash>
 +tar -jtvf example.tar.bz2
 +</code>
 +
 +Das zusätzliche Attribut ''j'' weist ''tar'' an, die Datei mit ''bzip2'' für die Auflistung zu dekomprimieren.
 +
 +==== Inhalte eines tar-Archives entpacken ====
 +
 +Eine **tar.gz**- oder **tgz**-Datei entpacken:
 +
 +<code bash>
 +tar zxvf example.tgz
 +</code>
 +
 +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:
 +
 +<code bash>
 +tar zxvf example.tgz -C ~/tmp/example
 +</code>
 +
 +===== Dateisysteme =====
 +
 +==== Festplatten und Partitionen auflisten ====
 +
 +Alle ans System angeschlossene Festplatten mit Partitionen, Größe und Mount-Punkt lassen sich mit ''lsblk'' ausgeben:
 +
 +<code bash>
 +lsblk
 +</code>
 +
 +Unter macOS ist ''lsblk'' nicht verfügbar, dort eignet sich der Befehlt ''df'':
 +
 +<code bash>
 +df
 +</code>
 +
 +==== Status von dd anzeigen ====
 +
 +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:
 +
 +<code bash>
 +pgrep -l '^dd$'
 +</code>
 +
 +Die Rückgabe sieht in etwas wie folgt aus (Prozess-ID, Prozess):
 +
 +<code>
 +2342 dd
 +</code>
 +
 +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:
 +
 +<code bash>
 +kill -USR1 2342
 +</code>
 +
 +Die Ausgabe sieht dann z.B. so aus:
 +
 +<code>
 +$ 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
 +</code>
 +
 +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:
 +
 +<code bash>
 +watch -n 10 kill -USR1 2342
 +</code>
 +
 +Ü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.
 +
 +Quelle: [[http://linuxcommando.blogspot.de/2008/06/show-progress-during-dd-copy.html|Linux Commando: Show Progess During dd Copy]]
 +
 +===== Sicherheit =====
 +
 +==== Passwörter erzeugen ====
 +
 +Wenn [[openssl:start|OpenSSL]] installiert ist, lassen sich darüber sehr einfach Passwörter erzeugen:
 +
 +<code bash>
 +openssl rand -base64 12
 +</code>
 +
 +===== Text =====
 +
 +==== Einen base64-String dekodieren  ====
 +
 +<code bash>
 +echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | base64 --decode
 +</code>
 +
 +Quelle: [[http://askubuntu.com/a/178546|Ask Ubuntu: How can I decode a base64 string from the command line?]]
  
 ===== Internet ===== ===== Internet =====
 +
 +==== IP einer Domain abfragen ====
 +
 +Die [[lexikon:ip|IP]] einer [[lexikon:domain|Domain]] lässt sich mit dem Befehl ''dig'' erfragen:
 +
 +<code>dig example.com A +short</code>
 +
 +Der Befehl ''dig'' ohne die Paramter ''A +short'' ergibt eine ausführliche Auflistung inklusive abgefragtem [[lexikon:dns|DNS-Server]].
  
 ==== Dateien mit wget laden ==== ==== Dateien mit wget laden ====
Zeile 26: Zeile 230:
 wget http://example.org/downloads/example.zip wget http://example.org/downloads/example.zip
 </code> </code>
 +
 +===== E-Mail =====
 +
 +==== E-Mail mit Datei-Anhang verschicken ====
 +
 +Die E-Mails werden mit dem E-Mail-Programm [[http://www.mutt.org/|mutt]] verschickt:
 +
 +<code bash>
 +mutt -s "Betreff" -a /tmp/foobar.tar.gz foo@example.com < /tmp/message.txt
 +</code>
 +
 +===== Links =====
 +
 +  * [[http://helmbold.de/artikel/linux-blatt|Linux auf einem Blatt]]
unix/commands.1422354447.txt.gz · Zuletzt geändert: 2015-01-27 11:27 von a.kamola