hin255 - Fotolia

Überblick über die wichtigsten Linux-Befehle für Server-Administratoren

Für Linux-Admins ist die Kommandozeile eines der wichtigsten Tools zum Server-Management. Mit diesen 14 Linux-Befehlen gelingt der Einstieg.

Linux-Betriebssysteme für Desktop-Umgebungen haben sich in den letzten Jahren in erstaunlich nutzerfreundliche Systeme mit hilfreichen Tools und grafischer Benutzeroberfläche entwickelt. Für Server lässt sich dies allerdings eher weniger behaupten.

Aus diesem Grund müssen Linux-Administratoren umfassende Kenntnis der Linux-Kommandozeile besitzen. Die Liste aller verfügbarer Kommandozeilen-Befehle wäre enorm lang, mit den folgenden wichtigsten Befehlen dürften System-Administratoren aber die häufigsten Szenarien bei der Verwaltung von Linux-Servern abdecken.

Jeder Befehl dient dabei einem anderen Zweck und sollte Administratoren in Fleisch und Blut übergehen. Je mehr man sich mit der Kommandozeile beschäftigt, umso leichter wird einem der Umgang damit auch fallen. Mit den folgenden Befehlen dürfte der Einstieg aber zumindest etwas leichter fallen.

cd

Der cd-Befehl gehört sicherlich zu den Grundlagen der Linux-Administration, da man sich damit innerhalb der Verzeichnisstruktur bewegt. Um zum Beispiel vom Home-Verzeichnis in das Verzeichnis ~/Downloads zu wechseln, würde man den Befehl cd ~/Downloads verwenden. Wenn man sich allerdings bereits im Home-Verzeichnis befindet, würde auch cd Downloads ausreichen.

Der cd-Befehl ist vor allem dann hilfreich, wenn man eine Verzeichnis-Ebene höher gehen will. Wenn man sich beispielsweise im Verzeichnis Downloads befindet und zurück zu ~/ will, kann hierfür einfach der Befehl cd ../ verwendet werden. Durch Hinzufügen mehrerer ../ kann auch mehrere Verzeichnis-Ebenen zurückgegangen werden, wer sich also im Verzeichnis ~/Downloads/A/B/C befindet, der kommt über den Befehl d ../../../ wieder zurück zu ~/Downloads.

cp

cp ist einer der am häufigsten genutzten Linux-Befehle, weil sich hiermit Dateien und Verzeichnisse kopieren lassen. Ein Beispiel könnte etwa so aussehen:

cp [OPTION] source destination

Um also ~/DATEIA in das Verzeichnis ~/Downloads/ zu kopieren, würde man den Befehl cp ~/DATEIA ~/Downloads verwenden. Dabei lässt sich die Datei auch während des Kopiervorgangs umbenennen. Um ~/DATEIA während des Kopierens in ~/DATEIB umzubenennen, wird folgender Befehl verwendet: cp ~/DATEIA ~/Downloads/DATEIB

Ein ebenfalls wichtiger Parameter des cp-Befehls ist die Option –p, mit der sich Dateiattribute wie Modus, Besitzer oder Zeitstempel erhalten lassen. In unserem Beispiel wäre die Nutzung ganz einfach cp –p ~/DATEIA ~/Downloads/DATEIB

crontab

Über den crontab-Befehl können Administratoren geplante Aufgaben aufsetzen. Der grundlegende Befehl sieht so aus:

crontab -u USER file

Es kann aber auch die folgende Syntax verwendet werden:

crontab -u USER [OPTION]

Zusätzlich gibt es verschiedene Optionen für den crontab-Befehl:

-l: Auflistung der crontab-Jobs eines Anwenders

-e: Editieren der crontab-Jobs eines Anwenders

-r: Entfernen der crontab-Jobs eines Anwenders

Wenn beispielsweise die crontab-Jobs des Anwenders jwallen editiert werden sollen, würde man den Befehl crontab -u jlwallen –e verwenden. Anschließend sollten die crontab-Jobs des entsprechenden Anwenders im Standard-Texteditor geöffnet werden.

Hier lassen sich die Jobs wie gewünscht verändert und anschließend wird die Datei wieder gespeichert. Über den Befehl crontab -u jlwallen -l können die jetzt geänderten Jobs wieder aufgelistet werden.

grep

Der grep-Befehl zeigt alle Zeilen an, die einem bestimmten Muster entsprechen, was in vielen verschiedenen Situationen äußerst hilfreich sein kann. Der grundlegende Befehl würde so aussehen:

grep [OPTIONS] PATTERN [FILE]

Über den grep-Befehl können Linux-Admins spezifische Zeilen aufspüren, also beispielsweise den String wlan0 in einem langen Konfigurationsskript wireless. Händisch danach zu suchen könnte mitunter enorm viel Zeit in Anspruch nehmen, mit dem grep-Befehl ließe sich dies so bewerkstelligen:

grep -n wlan0 wireless

Mit dem Parameter –n zeigt grep auch die genaue Zeile an, in der das gesuchte Muster gefunden wurde. Zusätzlich lässt sich auch der Parameter –E verwenden, mit dem grep das Muster als regulären Ausdruck betrachtet.

iptables

Netzwerke können noch so gut mit der besten Hardware geschützt sein, aber Linux-Administratoren sollten trotzdem ein fundiertes Verständnis von einem der mächtigsten Security-Tools im Data Center haben: iptables.

Dabei handelt es sich um einen enorm komplexen Linux-Befehl, dessen effiziente Anwendung einiges an Einarbeitungszeit erfordert. Die grundlegende Struktur sieht aber wie folgt aus:

iptables [-t table] [OPTION] chain rule-specification

Um den iptables-Befehl wirklich zu verstehen, sollte man sich einen tieferen Einblick in die damit zusammenhängenden Ketten, Regeln und Tabellen verschaffen. Am Anfang kann hierbei der Befehl man iptables stehen.

kill

Der kill-Befehl ermöglicht es einem Linux-Administrator, ein Signal an einen Prozess zu senden. Um den kill-Befehl nutzen zu können, muss zuvor die Prozess-ID (PID) sowie das gewünschte Signal bekannt sein, das gesendet werden soll. Die Syntax wäre dann folgende:

kill [OPTIONS] <PID>

Für eine Übersicht möglicher Signale kann der Befehl kill –l verwendet werden. Am häufigsten wird dabei wohl der Befehl kill -9 PID zum Einsatz kommen, wobei PID wieder für den zu beendenden Prozess steht und -9 das Signal SIGKILL spezifiziert, was den Prozess herunterfährt. Wenn man zwar die PID nicht kennt, aber den Namen des Prozesses, dann gibt es auch die Möglichkeit den Befehl killall zu verwenden, beispielsweise killall -9 firefox, um alle Firefox-Prozesse zu beenden.

lsof

Über den Befehl lsof lässt sich eine Liste aller offenen Dateien erstellen. Es mag zwar einige andere Linux-Befehle hierfür geben, aber lsof zeigt einfach alles an, was Linux-Admins brauchen. Ein Problem damit könnte aber sein, dass lsof ohne Parameter viel zu viele Informationen anzeigen wird. Begrenzen lässt sich dies zum Beispiel durch einen Nutzernamen:

lsof -u jlwallen

Eine weitere Möglichkeit zum Eingrenzen der lsof-Ergebnisliste besteht darin, sich zum Beispiel nur offene Dateien eines bestimmten Ports anzeigen zu lassen:

lsof -i TCP:22

lsmod

Um sich den Status von Modulen des Linux-Kernels anzeigen zu lassen, wird der lsmod-Befehl verwendet. Im Endeffekt listet lsmod die Inhalte aus /proc/modules in einem von Menschen lesbaren Format auf. Erfahrene Linux-Admins können mit dieser Information so manches Problem lösen, wenn sie sehen, welche Module derzeit im Kernel geladen sind.

Kein Netzwerk? Vielleicht ist ja einfach das Modul für das Netzwerk-Interface ausgefallen. Über lsmod lässt sich leicht feststellen, ob das Modul noch im Kernel geladen ist. Falls nicht, kann es einfach über den insmod-Befehl geladen werden.

Weitere Artikel zu Linux-Befehlen:

Service-Management mit systemd und System.

Zwei unbekannte, aber nützliche Linux-Befehle.

Fünf Performance-Befehle für Linux-Admins.

mount

Der mount-Befehl hilft nicht nur beim Mounten von Dateisystemen auf Linux-Servern, sondern listet auch auf, welche Dateisystem wo gemounted sind. Dieser Befehl kann ein wahrer Lebensretter sein, wenn ein verloren gegangenes Laufwerk gesucht oder dem System ein neues zur Verfügung gestellt werden soll.

Wird der mount-Befehl ohne weitere Parameter ausgeführt, dann werden einfach sämtliche gemounteten Dateisysteme der Maschine sowie der entsprechende Mountpoint ausgegeben. Um ein Laufwerk zur Verfügung zu stellen dient schließlich der folgende Befehl:

mount -t TYPE DEVICE DIRECTORY

Hierbei bezeichnet TYPE das Dateisystem (beispielsweise ext4 oder NTFS), während DEVICE der Name des physischen Gerätes ist und DIRECTORY spezifiziert, wo das Laufwerk gemounted werden soll.

ps

Über den ps-Befehl können alle laufenden Prozesse eines Linux-Systems angezeigt werden. Dabei gibt es viele verschiedene Möglichkeiten, diesen Befehl auszuführen, einer der einfachsten ist aber die Auflistung jedes Prozesses, der als Root-User ausgeführt wird:

ps -U root -u root u

Die Ausgabe enthält den Nutzernamen, die PID sowie die CPU-Auslastung und Startzeit eines jeden Prozesses.

ssh

Für einen sicheren Zugriff auf den Server, oder auf einen anderen Server von der aktuellen Maschine aus, auf der man gerade arbeitet, kann die Secure Shell (SSH) genutzt werden. Die Befehlssyntax hierfür sieht folgendermaßen aus:

ssh -l USER -v ADDRESS_OF_DESTINATION

Dabei bezeichnet USER den Benutzernamen für die Anmeldung und ADDRESS_OF_DESTINATION die IP-Adresse oder URL des Servers, auf dem man sich anmelden möchte. Dabei gibt es noch weitaus mehr Möglichkeiten für den ssh-Befehl, die sich über man ssh anzeigen lassen.

service

Die beste Möglichkeit, einen Linux-Dienst zu starten oder stoppen, ist der service-Befehl:

service script command [OPTIONS]

Um beispielsweise den Netzwerk-Dienst neu zu starten, würde man folgenden Befehl verwenden:

service networking restart

tail

Jeder Linux-Administrator wird irgendwann Log-Dateien untersuchen müssen. Wer zum Beispiel einen Fehler mit Apache sucht und die Log-Datei in Echtzeit betrachten will, der könnte folgenden tail-Befehl verwenden:

tail -f /var/log/apache2/error.log

Innerhalb des Befehlszeilenfensters wird Linux dann sämtliche Fehler-Logs anzeigen, sobald sie aufgezeichnet werden. Damit ist tail ein ungeheuer hilfreiches Tool zum Linux-Troubleshooting.

w

Der w-Befehl zeigt Linux-Admins, welche Nutzer auf welchem Server angemeldet sind und was sie dort machen. Wird der w-Befehl ohne weitere Angaben ausgeführt, dann erhält man Informationen zu allen angemeldeten Nutzern. Es können aber auch nur bestimmte Nutzer ausgewählt werden, beispielsweise über w jlwallen, womit nur Informationen über den Nutzer jlwallen aufgeführt werden.

Diese 14 Linux-Befehle decken sicherlich einige der häufigsten Anwendungsfälle für Server-Admins ab, und doch gibt es natürlich noch weitaus mehr Kommandozeilen-Befehle für Linux. Für den Anfang sollten diese 14 Kommandozeilen-Befehle für Linux aber mehr als ausreichen.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Erfahren Sie mehr über Serverbetriebssysteme