Falls du aus der Windows-Welt in die Linux-Umgebung wechselst, mag die Verwendung der Kommandozeile zunächst einschüchternd wirken. Tatsächlich ist sie jedoch einfach zu nutzen. Alles, was du benötigst, um mit der Kommandozeile umzugehen, sind einige grundlegende Befehle.
Obwohl die meisten Linux-Distributionen benutzerfreundliche grafische Benutzeroberflächen bieten, kann es äußerst nützlich sein zu wissen, wie man die Kommandozeile verwendet. Sie verleiht dir mehr Kontrolle über dein System und ermöglicht den Zugriff auf Funktionen, die in der grafischen Oberfläche nicht verfügbar sind.
In diesem Beitrag werden einige der häufigsten Linux-Befehle vorgestellt, die täglich von Linux-Systemadministratoren genutzt werden.
Informationen zu Befehlen erhalten
Es ist normalerweise nicht notwendig, Befehlsoptionen auswendig zu lernen, da dies Zeitverschwendung sein kann. Die meisten Befehle verfügen über eine --help
-Option, die eine kurze Beschreibung des Befehls und dessen Verwendung anzeigt und den Befehl danach beendet:
Befehl_name --help
Der man
-Befehl
Fast alle Linux-Befehle werden mit sogenannten „man-Seiten“ geliefert. Eine Man-Page oder Handbuchseite ist eine Dokumentationsform, die erklärt, was der Befehl tut, wie er verwendet wird und welche Argumente er akzeptiert.
Der man
-Befehl wird genutzt, um die Man-Page eines bestimmten Befehls anzuzeigen:
man Befehl_name
Um beispielsweise die Handbuchseite des cd
-Befehls zu öffnen, gibst du ein:
man cd
Um in den Man-Pages zu navigieren, verwende die Pfeil-, Bild-hoch- und Bild-runter-Tasten. Du kannst auch die Eingabetaste drücken, um zeilenweise zu scrollen, die Leertaste, um zur nächsten Seite zu gelangen, und die „b“-Taste, um zur vorherigen Seite zurückzukehren. Zum Verlassen der Manpage drückst du „q“.
In Linux befinden sich alle Dateien und Verzeichnisse unter dem Stammverzeichnis, welches das oberste Verzeichnis im Verzeichnisbaum ist und durch einen einzelnen führenden Schrägstrich /
gekennzeichnet ist.
Beim Navigieren im Dateisystem kannst du entweder den absoluten Pfad (beginnend mit /
) oder den relativen Pfad (beginnend im aktuellen Verzeichnis) verwenden.
Aktuelles Arbeitsverzeichnis (pwd
-Befehl)
Das aktuelle Arbeitsverzeichnis ist das Verzeichnis, in dem du dich gerade befindest und in dem du arbeitest. Jedes Mal, wenn du mit der Eingabeaufforderung interagierst, befindest du dich in einem bestimmten Verzeichnis. Um herauszufinden, in welchem Verzeichnis du gerade arbeitest, verwende den pwd
-Befehl:
pwd
Dieser Befehl zeigt den Pfad deines aktuellen Arbeitsverzeichnisses an:
/home/dein_benutzername
Verzeichnis wechseln (cd
-Befehl)
Der cd
-Befehl (change directory) wird verwendet, um das aktuelle Arbeitsverzeichnis in Linux und anderen Unix-ähnlichen Betriebssystemen zu ändern.
Wenn du den Befehl ohne Argumente verwendest, bringt dich cd
in dein Heimatverzeichnis zurück:
cd
Um in ein bestimmtes Verzeichnis zu wechseln, verwende entweder den relativen oder den absoluten Pfad zum Verzeichnis:
cd Verzeichnisname
Zum Beispiel, wenn das Verzeichnis „Downloads“ im aktuellen Verzeichnis existiert, kannst du mit dem Befehl:
cd Downloads
dorthin wechseln. Du kannst auch den absoluten Pfad verwenden:
cd /home/dein_benutzername/Downloads
Die Verwendung von zwei aufeinanderfolgenden Punkten (..
) steht für das übergeordnete Verzeichnis, also das Verzeichnis direkt über dem aktuellen Verzeichnis. Wenn du dich zum Beispiel im Verzeichnis /usr/local/share
befindest und in das Verzeichnis /usr/local
wechseln möchtest (eine Ebene höher als das aktuelle Verzeichnis), gibst du ein:
cd ../
Um zwei Ebenen nach oben zu gelangen:
cd ../../
Um zum vorherigen Arbeitsverzeichnis zurückzukehren, verwende den Befehl cd -
:
cd -
Falls ein Verzeichnis in seinem Namen Leerzeichen enthält, solltest du den Pfad entweder in Anführungszeichen setzen oder den Backslash (\
) verwenden, um die Leerzeichen zu kennzeichnen:
cd "Verzeichnisname mit Leerzeichen"
Arbeiten mit Dateien und Verzeichnissen
Verzeichnisinhalte auflisten (ls
-Befehl)
Der ls
-Befehl listet Informationen über Dateien und Verzeichnisse in einem bestimmten Verzeichnis auf.
Wenn du ls
ohne
Optionen und Argumente verwendest, zeigt es dir eine alphabetisch geordnete Liste der Dateinamen im aktuellen Verzeichnis an:
ls
Um Dateien in einem bestimmten Verzeichnis aufzulisten, gibst du den Pfad zu diesem Verzeichnis als Argument an:
ls /usr
Standardmäßig zeigt der ls
-Befehl nur die Namen von Dateien und Verzeichnissen an. Verwende die Option -l
, um die Dateien im langen Listenformat anzuzeigen:
ls -l /etc/hosts
Die Ausgabe enthält Informationen wie den Dateityp, die Berechtigungen, die Anzahl der Hardlinks, den Besitzer, die Gruppe, die Größe, das Datum und den Dateinamen:
-rw-r--r-- 1 root root 337 Oct 4 11:31 /etc/hosts
Standardmäßig werden versteckte Dateien (Dateien, die mit einem Punkt .
beginnen) nicht angezeigt. Um alle Dateien, einschließlich versteckter Dateien, anzuzeigen, verwende die Option -a
:
ls -a ~/
Anzeigen von Dateiinhalten (cat
-Befehl)
Der cat
-Befehl gibt den Inhalt einer oder mehrerer Dateien aus und kann Dateien miteinander verknüpfen, indem er den Inhalt einer Datei am Ende einer anderen Datei anhängt.
Um den Inhalt einer Datei auf dem Bildschirm anzuzeigen, gib einfach den Dateinamen als Argument an cat
:
cat /etc/hosts
Erstellen von Dateien (touch
-Befehl)
Der touch
-Befehl dient dazu, Zeitstempel von bestehenden Dateien und Verzeichnissen zu aktualisieren und leere Dateien zu erstellen.
Um eine neue Datei zu erstellen, gib einfach den Dateinamen als Argument an:
touch Datei.txt
Falls die Datei bereits existiert, wird der touch
-Befehl die Zeitstempel für den letzten Zugriff und die letzte Änderung auf den aktuellen Zeitpunkt setzen.
Erstellen von Verzeichnissen (mkdir
-Befehl)
In Linux kannst du neue Verzeichnisse (auch Ordner genannt) mit dem mkdir
-Befehl erstellen.
Um ein Verzeichnis zu erstellen, gib den Verzeichnisnamen als Argument an:
mkdir /tmp/neues_verzeichnis
Der mkdir
-Befehl akzeptiert auch mehrere Verzeichnisnamen als Argumente.
Wenn du ein Verzeichnis ohne vollständigen Pfad erstellst, wird es im aktuellen Arbeitsverzeichnis erstellt.
Um übergeordnete Verzeichnisse zu erstellen, verwende die Option -p
:
mkdir -p Projekte/kommandozeile.org/src/assets/images
Diese Anweisung erstellt die gesamte Verzeichnisstruktur. Der mkdir
-Befehl mit der Option -p
erstellt das Verzeichnis nur, wenn es noch nicht existiert.
Erstellen von symbolischen Links (ln
-Befehl)
Ein symbolischer Link (Symlink) ist eine spezielle Datei, die auf eine andere Datei oder ein anderes Verzeichnis verweist.
Um einen symbolischen Link zu einer bestimmten Datei zu erstellen, verwende den ln
-Befehl mit der Option -s
und gib den Dateinamen als erstes Argument und den Namen des symbolischen Links als zweites Argument an:
ln -s Quelldatei Symbolischer_Link
Wenn du nur eine Datei als Argument angibst, erstellt ln
einen Link im aktuellen Arbeitsverzeichnis mit dem gleichen Namen wie die Datei, auf die er zeigt.
Löschen von Dateien und Verzeichnissen (rm
-Befehl)
Um Dateien und Verzeichnisse zu löschen, verwende den rm
-Befehl.
Standardmäßig löscht rm
keine Verzeichnisse, es fragt dich auch nicht nach Bestätigung, wenn du Dateien löschst.
Um eine Datei oder einen Symlink zu löschen, gib den Dateinamen als Argument an:
rm Datei.txt
Der rm
-Befehl kann ein oder mehrere Dateinamen oder Verzeichnisse als Argumente akzeptieren.
Die Option -i
zwingt rm
, den Benutzer vor dem Löschen jeder Datei zu fragen:
rm -i Datei.txt
Die Verwendung der Option -d
erlaubt es dir, leere Verzeichnisse zu löschen:
rm -d Verzeichnisname
Um nicht leere Verzeichnisse und alle darin enthaltenen Dateien rekursiv zu löschen, verwende die Option -r
(rekursiv):
rm -rf Verzeichnisname
Die Option -f
zwingt rm
, ohne Nachfrage zu löschen und ignoriert nicht existierende Dateien oder Argumente.
Kopieren von Dateien und Verzeichnissen (cp
-Befehl)
Der cp
-Befehl ermöglicht das Kopieren von Dateien und Verzeichnissen.
Um eine Datei in das aktuelle Arbeitsverzeichnis zu kopieren, gib die Quelldatei als erstes Argument und die Ziel-Datei als zweites Argument an:
cp Quelldatei Ziel-Datei
Um eine Datei in ein anderes Verzeichnis zu kopieren, gib den absoluten oder relativen Pfad zum Zielverzeichnis an. Wenn du nur den Verzeichnisnamen angibst, hat die kopierte Datei denselben Namen wie die Originaldatei:
cp datei.txt /backup
Wenn die Zieldatei bereits existiert, wird sie standardmäßig überschrieben.
Um ein Verzeichnis mit all seinen Dateien und Unterverzeichnissen zu kopieren, verwende die Option -R
oder -r
:
cp -R Bilder /opt/backup
Verschieben und Umbenennen von Dateien und Verzeichnissen (mv
-Befehl)
Der mv
-Befehl (kurz für move) ermöglicht das Umbenennen und Verschieben von Dateien und Verzeichnissen von einem Ort zum anderen.
Um eine Datei beispielsweise in ein Verzeichnis zu verschieben, führe folgenden Befehl aus:
mv Datei.txt /tmp
Um eine Datei umzubenennen, gib den neuen Namen als Ziel an:
mv Datei.txt Neue_Datei.txt
Die Syntax zum Verschieben von Verzeichnissen ist die gleiche wie bei Dateien.
Um mehrere Dateien und Verzeichnisse gleichzeitig zu verschieben, gib das Zielverzeichnis als letztes Argument an:
mv Datei1.txt Datei2.txt /tmp
Installieren und Entfernen von Paketen
Ein Paketmanager ist ein Tool, mit dem du distro-spezifische Softwarepakete installieren, aktualisieren, entfernen und verwalten kannst. Die verschiedenen Linux-Distributionen verwenden unterschiedliche Paketmanager und Paketformate. Nur Root-Benutzer oder Benutzer mit Sudo-Rechten können Pakete installieren und entfernen.
Ubuntu und Debian (apt
-Befehl)
Advanced Package Tool (APT) ist ein Paketverwaltungssystem, das in Debian-basierten Distributionen verwendet wird. Die beiden am häufigsten verwendeten Befehle sind apt
und apt-get
. Um ein neues Paket zu installieren, aktualisierst du zuerst den APT-Paketindex:
apt update
Der APT-Index ist eine Datenbank, die Informationen über verfügbare Pakete aus den aktivierten Repositories deines Systems enthält. Um installierte Pakete auf ihre neuesten Versionen zu aktualisieren, verwende:
apt upgrade
Die Installation von Paketen ist einfach:
apt install Paketname
Um ein installiertes Paket zu entfernen, verwendest du:
apt remove Paketname
CentOS und Fedora (dnf
-Befehl)
RPM ist ein leistungsstarkes Paketmanagementsystem, das in Red Hat Linux und seinen Derivaten wie CentOS und Fedora verwendet wird. Um ein neues Paket auf Red Hat-basierten Distributionen zu installieren, kannst du den yum
– oder dnf
-Befehl verwenden:
dnf install Paketname
Ab CentOS 8 hat dnf
yum
als Standard-Paketmanager ersetzt. dnf
ist abwärtskompatibel mit yum
. Um installierte Pakete zu aktualisieren, verwende:
dnf update
Die Entfernung von Paketen erfolgt einfach durch:
dnf remove Paketname
Dateibesitz und Berechtigungen
In Linux wird der Zugriff auf Dateien durch Dateiberechtigungen, Attribute und Eigentumsverhältnisse gesteuert. Dies stellt sicher, dass nur autorisierte Benutzer und Prozesse auf Dateien und Verzeichnisse zugreifen können. Jede Datei ist einem Eigentümer und einer Gruppe zugeordnet und hat Zugriffsrechte für drei verschiedene Benutzerklassen: den Dateibesitzer, die Gruppenmitglieder und alle anderen. Diese Zugriffsrechte umfassen Lesen, Schreiben und Ausführen.
Um den Dateibesitzer und die Berechtigungen einer Datei anzuzeigen, verwende den Befehl ls -l
.
Ändern von Berechtigungen (chmod
-Befehl>)
Der chmod
-Befehl ermöglicht die Änderung der Dateiberechtigungen in symbolischer oder numerischer Form. Im numerischen Modus entspricht jeder Berechtigungstyp einem Zahlenwert: Lesen (4), Schreiben (2) und Ausführen (1). Du kannst die Summe dieser Werte verwenden, um die Berechtigungen festzulegen. Zum Beispiel:
chmod 644 Dateiname
Die Verwendung der Option -R
ermöglicht die rekursive Änderung von Berechtigungen für Dateien und Verzeichnisse innerhalb eines Verzeichnisses:
chmod -R 755 Verzeichnisname
Ändern der Eigentümerschaft (chown
-Befehl>)
Der chown
-Befehl ermöglicht das Ändern des Dateibesitzers und der Gruppe einer Datei. Du kannst den Benutzernamen des neuen Besitzers und/oder den Gruppennamen als Argumente verwenden. Zum Beispiel:
chown Benutzername:Gruppenname Dateiname
Die Option -R
ermöglicht die rekursive Änderung von Eigentümerschaft für Dateien und Verzeichnisse:
chown -R Benutzername:Gruppenname Verzeichnisname
Erhöhen von Berechtigungen (sudo
-Befehl>)
Der sudo
-Befehl ermöglicht das Ausführen von Befehlen als ein anderer Benutzer, standardmäßig als Root. Dies ist hilfreich, um administrative Aufgaben auszuführen, ohne als Root angemeldet zu sein. Um sudo
zu verwenden, füge es einfach vor den auszuführenden Befehl hinzu:
sudo Befehl
Benutzer und Gruppen verwalten
Linux ist ein Mehrbenutzersystem, bei dem mehrere Benutzer gleichzeitig auf dasselbe System zugreifen können. Gruppen werden verwendet, um Benutzerkonten zu organisieren und zu verwalten, und definieren Berechtigungen für Ressourcen, die von Gruppenmitgliedern gemeinsam genutzt werden.
Erstellen von Benutzern (useradd
und passwd
-Befehle)
Um neue Benutzerkonten zu erstellen, verwende den useradd
-Befehl, gefolgt vom Benutzernamen:
useradd neuerBenutzer
Verwende dann den passwd
-Befehl, um dem neuen Benutzer ein Passwort zuzuweisen:
passwd neuerBenutzer
Entfernen von Benutzern (userdel
-Befehl)
Um ein Benutzerkonto zu löschen, verwende den
userdel
-Befehl mit dem Benutzernamen als Argument:
userdel Benutzername
Du kannst auch die Option -r
verwenden, um das Heimatverzeichnis und den Mailspool des Benutzers zu löschen:
userdel -r Benutzername
Verwalten von Gruppen (groupadd
und groupdel
-Befehle)
Um eine neue Gruppe zu erstellen, verwende den groupadd
-Befehl mit dem Gruppennamen als Argument:
groupadd MeineGruppe
Um eine Gruppe zu entfernen, verwende den groupdel
-Befehl mit dem Gruppennamen als Argument:
groupdel MeineGruppe
Hinzufügen von Benutzern zu Gruppen (usermod
-Befehl)
Um einen vorhandenen Benutzer zu einer Gruppe hinzuzufügen, verwende den usermod
-Befehl mit der Option -G
und dem Gruppennamen:
usermod -a -G Gruppenname Benutzername
Abschluss
Wir haben einige der am häufigsten verwendeten Linux-Befehle behandelt. Obwohl die meisten Aufgaben auch über eine grafische Benutzeroberfläche erledigt werden können, ermöglicht die Kommandozeile eine effiziente und produktive Arbeit, insbesondere für Entwicklungs- und Systemaufgaben. Du kannst die Links zu den einzelnen Befehlen anklicken, um weitere Informationen zu deren Optionen und Verwendung zu erhalten. Bei Fragen oder Feedback stehe ich gerne zur Verfügung.