Konsolentricks

Wechseln zu: Navigation, Suche

Eine Sammlung von Konsolenbefehlen, die nicht jedem geläufig sind aber durchaus mal verdammt praktisch sein können.

Einfacher HTTP-Server

Mir folgendem Befehl wird ein einfacher HTTP-Server gestartet. Freigegeben ist der Ordner, in dem man sich gerade befindet. Optional kann ein Port angegeben werden (hier 1234, Standardwert ist 8000). Bei Ports <= 1024 sind Root-Rechte notwendig.

$ python -m SimpleHTTPServer 1234

Erreichbar ist der Server per http://localhost:1234 oder von außen per http://ip:1234 (ggf. im Router forwarden).

Denkt aber an mögliche Sicherheitsrisiken bei dieser Methode!

Dateien im Netzwerk versenden per netcat

Sender schickt Datei als TCP-Stream raus (Empfänger-IP und Port anpassen):

$ nc 111.222.333.444 6666 < datei.txt

Empfänger nimmt Datei an (Port anpassen):

$ nc -l -p 6666 > datei.txt

Achtung: Unverschlüsselt und praktisch für jeden im Netzwerk offen, funktioniert auch über das Internet, wird dadurch aber auch nicht unbedingt sicherer.

Dateien im Netzwerk versenden per ssh

Hier eine Alternative mit Komprimierung und verschlüsselter Übertragung:

$ gzip -9 < datei.txt | ssh user@111.222.333.444 "zcat > datei.txt"

Je nach Rechenleistungs- und Bandbreiten-Situation kann man auch nur auf einer Seite komprimieren.

Für ganze Verzeichnisse bietet sich eine Kombination mit tar an, aber dann ist man eigentlich schon im Zuständigkeitsbereich von rsync angelangt.

was spricht denn gegen scp datei.txt user@111.222.33.44:datei.txt ? Kompression ist oft vernachlässigbar. wenn es klein sein soll ist rsync meist auch gut. --Trublu 12:59, 9. Dez. 2009 (UTC)
recht hast du, Trublu --Arkay3 13:32, 9. Dez. 2009 (UTC)

Kopieren per dd

Der Befehl dd bietet umfangreiche Anwendungsmöglichkeiten für das Konvertieren und Kopieren von Dateien.

$ dd if=/quell/pfad/ of=/ziel/pfad

Da unter Unix/Linux-Systemen alles als Datei behandelt wird, lassen sich auf diesem Wege sogar ganze Festplatten(-strukturen) kopieren. Beispielsweise kann ein Betriebssystem auf einen anderen Rechner transferiert werden ohne eine Neuinstallation durchzuführen. Selbst der MBR (Master Boot Record) bleibt so unversehrt erhalten. Nachdem die zweite Festplatte (Zielfestplatte) in den Rechner eingebaut wurde, kann man mit dem Befehl #fdisk -l nach den Pfaden suchen, die auf die entsprechenden Hardware-Devices verweisen. Sei /dev/sda1 die Partition, die das zu kopierende System enthält und /dev/sda2 die Ziel-Partition. Dann lautet der Befehl: $ dd if=/dev/sda1 of=/dev/sda2

Eine andere sehr nützliche Anwendung liegt in dem Löschen von Daten. Beim Löschen wird gewöhnlich nur der Speicher freigegeben, so dass kritische Daten evtl. wieder hergestellt werden können (undelete). Möchte man mit Nullen überschreiben, führt man den dd Befehl folgendermaßen aus:

$ dd if=/dev/zero of=/zu/loeschende/datei

Ist unguenstig, damit wird die Festplatte gefüllt. solange /dev/zero Zeichen liefert (also immer) wird kopiert ohne Rücksicht auf die Originalgröße von /zu/loeschende/datei. --Trublu 14:16, 9. Dez. 2009 (UTC)

Links