Die Kommandozeile ist dein Freund #6

27.08.2014 Bild

In der guten alten Zeit haben wir nur in der Kommandozeile herumgehackt (Hello C64, hello DOS...). Dann sind wir zu Affen verkommen und haben nur mehr Dinge mit der Maus herum geschoben. In dieser Serie werden wir einem Virtuosen der Kommandozeile über die Schulter blicken und dürfen uns dabei das eine oder andere Schmankerl abschauen.

 

Hier in der Serie können nie alle möglichen Optionen der Befehle erklärt werden. Praktischerweise haben (fast) alle Befehle manual pages, die mit man abgefragt werden können. Für ls z.B. mit:

man ls

Zum Beenden q eingeben, Cursor-Tasten zum scrollen. Das Ergebnis kann aber genauso umgeleitet werden wie in

man ls | fgrep time


Auch bei Netzwerk Operationen kann die Kommandozeile sehr nützlich sein. ping sendet Ping Pakete an einen angebenen Host und gibt die dafür gebrauchte Zeit zwischen Request und Response an.

ping example.com

Abgebrochen wird mit Ctrl+C. Ist der Host gerade nicht erreichbar, kann auch ping -a verwendet werden - es wird dann bei jedem erfolgreichen Ping ein Ton ausgegeben. Man kann so gemütlich eine Pause einlegen, wenn gerade Internet oder Zielserver nicht erreichbar sind, und weiß aber gleich, wann die Arbeit weiter gehen kann:

ping -a example.com


Um die ganze Route an Hops zu einem bestimmten Ziel abzufragen (wo steht der Server oder ab wo ist er nicht mehr erreichbar) wird traceroute verwendet:

traceroute example.com


Mit whois kann der Inhaber einer Domain abgefragt werden:

whois example.at


dig macht einen DNS request für den Hostnamen, normalerweise für den A Record, es können aber auch andere, wie MX, AAAA, NS, ... angegeben werden:

dig dynamogold.at
dig MX dynamogold.at
dig AAAA dynamogold.at
dig NS dynamogold.at

Um direkt einen bestimmten Nameserver abzufragen wird dieser mit @ angegeben, z.B. für neue DNS Einträge, die noch nicht verbreitet worden sind:

dig @8.8.8.8 example.com

In Kombination mit $(befehl), mit dem die Ausgabe eines Befehls als Parameter eines anderen verwendet werden kann, kann also leicht der direkt zuständige Nameserver abgefragt werden - löst der Host lokal anders auf ist der DNS Cache dazwischen noch nicht aktuell:

dig @$(dig +short NS dynamogold.at | head -1) dynamogold.at

Das verwendete dig +short ergibt eine kurze Antwort ohne den erklärenden Kommentaren:

dig +short example.com

 

Ähnlich wie dig aber für IP Adressen vielleicht ein wenig praktischer oder leichter zu merken ist host:

host 8.8.8.8

gibt den PTR Record zur IP aus.

Wieder kombiniert mit $(befehl) kann dig und host zusammen auch verwendet werden um den PTR record zur IP von einem A Record zu finden:

host $(dig +short dynamogold.at)

 

Mehr Befehle für deinen neuen Freund findest du hier:

Die Kommandozeile ist dein Freund #1

Die Kommandozeile ist dein Freund #2

Die Kommandozeile ist dein Freund #3

Die Kommandozeile ist dein Freund #4

Die Kommandozeile ist dein Freund #5