Dieser Blog-Artikel kuratiert gängige Standardbefehle unter Ubuntu Server 24.04 LTS bzw. Ubuntu Server 22.04 LTS.
Einleitung
Linux-Serversysteme werden vor allem über die Kommandozeile bedient. Nach dem erfolgreichen Anmelden per SSH blinkt einem fröhlich der Eingabe-Cursor an und wartet darauf, dass Du einen passenden Befehl eingibst. Für Linux-Anfänger ist es oft schwer sich zurechtzufinden. Aber auch die vermeindlichen Profis haben nicht immer alle Befehle und deren Konfigurationsparameter im Kopf.
Dieser Blog-Artikel macht es sich zur Aufgabe, eine Liste gängiger Standardbefehle unter Ubuntu zu kuratieren, ohne Anspruch auf Vollständigkeit. Bitte beachte, dass die meisten Befehle nur exemplarisch vorgestellt werden können. Manche von ihnen besitzen unglaublich viele Parameter, daher ist stets auch der Verweis auf die passende Einzeldokumentation des Befehls hinterlegt.
Allgemeines
Fangen wir zunächst mit einigen grundlegenden Befehlen an.
whoami
Der Befehl whoami gibt den Namen des Benutzers aus, mit dem Du Dich angemeldet hast.
Beispiel: Wer bin ich?
~$ whoami
frank
man
Der Befehl man ist das lokale Anzeigeprogramm für das Referenzhandbuch von Ubuntu (den sogenannten manual pages, kurz manpages).
Beispiel: Manpages für whoami
~$ man whoami
WHOAMI(1) User Commands WHOAMI(1)
NAME
whoami - print effective userid
SYNOPSIS
whoami [OPTION]...
DESCRIPTION
Print the user name associated with the current effective user ID. Same as id -un.
--help display this help and exit
--version
output version information and exit
AUTHOR
Written by Richard Mlynarik.
REPORTING BUGS
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
COPYRIGHT
Copyright © 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or
later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WAR
RANTY, to the extent permitted by law.
SEE ALSO
Full documentation <https://www.gnu.org/software/coreutils/whoami>
or available locally via: info '(coreutils) whoami invocation'
GNU coreutils 9.4 April 2024 WHOAMI(1)
whatis
Der Befehl whatis gibt die Kurzbeschreibung eines Befehls aus. Voraussetzung ist, dass dieser Befehl in den Manpages verzeichnet ist.
Beispiel: Kurzbeschreibung für whoami
~$ whatis whoami
whoami (1) - print effective userid
whereis
Der Befehl whereis gibt für einen Befehl dessen Binärpfad, den Quellcodepfad (soweit vorhanden) und den Pfad zur lokalen Manpages-Datei aus.
Beispiel: Wo befindet sich whoami
?
~$ whereis whoami
whoami: /usr/bin/whoami /usr/share/man/man1/whoami.1.gz
history
Der Befehl history listet die letzten Befehle auf, die Du in der Kommandozeile eingetippt hast.
Beispiel: Meine letzten Befehle
~$ history
1 whoiam
2 man whoami
3 whatis whoami
4 whereis whoami
clear
Der Befehl clear löscht die aktuelle Anzeige der Kommandozeile. Ganz praktisch, wenn zuvor sensible Daten sichtbar waren.
Beispiel:
~$ clear
exit
Der Befehl exit schließt Deine aktuelle Ubuntu-Session. Du musst Dich in der Regel danach wieder neu anmelden (z.B. per SSH).
Beispiel:
~$ exit
reboot
Der Befehl reboot startet Deinen Ubuntu-Server neu. Du musst Dich danach wieder neu anmelden (z.B. per SSH).
Beispiel:
~$ sudo reboot
Paketverwaltung
Eine typische Ubuntu-Server-Installation umfasst zunächst einmal nur die notwendigsten Dienste und Werkzeuge. Es ist Deine Aufgabe als Administrator neue Software zu installieren, zu aktualisieren oder zu entfernen. Dafür stellt Ubuntu einen Paketmanager namens APT (Advanced Package Tool) zur Verfügung. Der zentrale Befehl lautet apt. Im Folgenden werden die wichtigsten Optionen kurz vorgestellt.
apt update
Der Aufruf von apt update
lädt die aktuellen Paketinformationen aller konfigurierten Quellen herunter. Diese Informationen dienen als Grundlage für andere Befehle (z.B. um Paket-Upgrades durchzuführen).
Beispiel: Paketinformationen aktualisieren
~$ sudo apt update
Hit:1 http://de.archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:3 http://de.archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:4 http://de.archive.ubuntu.com/ubuntu noble-backports InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
5 packages can be upgraded. Run 'apt list --upgradable' to see them.
apt install
Der Aufruf von apt install
installiert ein neues Softwarepaket.
Beispiel: Installation des Texteditors nano
~$ sudo apt install nano
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
hunspell
The following NEW packages will be installed:
nano
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 281 kB of archives.
After this operation, 856 kB of additional disk space will be used.
Get:1 http://de.archive.ubuntu.com/ubuntu noble/main amd64 nano amd64 7.2-2build1 [281 kB]
Fetched 281 kB in 0s (1,535 kB/s)
Selecting previously unselected package nano.
(Reading database ... 121426 files and directories currently installed.)
Preparing to unpack .../nano_7.2-2build1_amd64.deb ...
Unpacking nano (7.2-2build1) ...
Setting up nano (7.2-2build1) ...
update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in auto mode
update-alternatives: using /bin/nano to provide /usr/bin/pico (pico) in auto mode
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for install-info (7.1-3build2) ...
apt remove
Der Aufruf von apt remove
entfernt ein bereits installiertes Softwarepaket.
Beispiel: Deinstallation des Texteditors nano
~$ sudo apt remove nano
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
nano
0 upgraded, 0 newly installed, 1 to remove and 5 not upgraded.
After this operation, 856 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 121498 files and directories currently installed.)
Removing nano (7.2-2build1) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode
Processing triggers for install-info (7.1-3build2) ...
Processing triggers for man-db (2.12.0-4build2) ...
apt autoremove
Der Aufruf von apt autoremove
entfernt alle nicht mehr benötigten Softwarepaket, die als Abhängigkeit installiert wurden.
Beispiel: Deinstallation aller zur Zeit nicht mehr benötigten Abhängigkeiten
~$ sudo apt autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
apt upgrade
Der Aufruf von apt upgrade
überprüft, ob eine neuere Version eines Softwarepaket vorliegt. Ist dies der Fall, wird diese installiert.
Beispiel 1: Aktualisierung des Texteditors nano
~$ sudo apt upgrade nano
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
nano is already the newest version (7.2-2build1).
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Beispiel 2: Aktualisierung aller Softwarepakete
~$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
apt list
Der Aufruf von apt list
gibt Informationen über ein installiertes Softwarepaket aus.
Beispiel 1: Ist der Texteditor nano installiert?
~$ sudo apt list nano
Listing... Done
nano/noble,now 7.2-2build1 amd64 [installed,automatic]
Beispiel 2: Liste alle installierten Softwarepakete auf.
~$ sudo apt list --installed
Listing... Done
adduser/noble,now 3.137ubuntu1 all [installed,automatic]
amd64-microcode/noble,now 3.20231019.1ubuntu2 amd64 [installed,automatic]
apparmor/noble-updates,now 4.0.1really4.0.1-0ubuntu0.24.04.3 amd64 [installed,automatic]
...
Beispiel 3: Liste alle aktualisierbaren Softwarepakete auf. Diesen Befehl ruft man in der Regel nach einem sudo apt update
auf.
~$ sudo apt list --upgradeable
Listing... Done
python3-distupgrade/noble-updates 1:24.04.23 all [upgradable from: 1:24.04.22]
systemd-hwe-hwdb/noble-updates 255.1.4 all [upgradable from: 255.1.3]
ubuntu-pro-client-l10n/noble-updates 34~24.04 amd64 [upgradable from: 31.2.3]
ubuntu-pro-client/noble-updates 34~24.04 amd64 [upgradable from: 31.2.3]
ubuntu-release-upgrader-core/noble-updates 1:24.04.23 all [upgradable from: 1:24.04.22]
apt oder apt-get?
Manchmal siehst Du statt apt
Aufrufe mit apt-get
. Beide Befehle ähneln sich, sind aber nicht gleich. Der apt
-Befehl ist eine Weiterentwicklung von apt-get. Er gilt als benutzerfreundlicher und integriert auch den Befehl apt-cache.
Anmerkung
Der apt
-Befehl hat natürlich noch sehr viel mehr Optionen. Es können Befehle miteinander kombiniert werden, einige können auf alle installierte Softwarepakete angewandt werden, etc. Es existieren unheimlich viele Tutorials zu apt
, dieses hier gefällt mir ganz gut: Using APT to Manage Packages in Debian and Ubuntu.
Benutzer und Gruppen
Jeder Benutzer von Ubuntu besitzt eine Identität im System, d.h. jeder Benutzer bekommt ein eigenes Benutzerkonto. Benutzer werden zudem in Gruppen organisiert. Bei den folgenden Befehle dreht sich alles um Benutzer und Gruppen.
who
Der Befehl who listet alle am System angemeldeten Benutzer auf.
Beispiel: Wer ist gerade angemeldet?
~$ who
frank pts/0 2024-06-27 09:23 (172.19.114.176)
id
Der Befehl id gibt für einen Benutzer die eindeutige UID (User ID), die GID (Group ID) seiner Hauptgruppe sowie GIDs zusätzlicher Gruppen, sofern zugehörig, aus.
Beispiel 1: Informationen über mich
~$ id
uid=1000(frank) gid=1000(frank) groups=1000(frank),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd)
Beispiel 2: Informationen über den Benutzer root
~$ id root
uid=0(root) gid=0(root) groups=0(root)
getent passwd
Der Befehl getent passwd listet alle oder auch nur bestimmte Benutzer auf:
Beispiel 1: Alle Benutzer
~$ getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...
Beispiel 2: Ein bestimmter Benutzer
~$ getent passwd frank
frank:x:1000:1000:Frank Stueber:/home/frank:/bin/bash
getent group
Der Befehl getent group listet alle oder auch nur bestimmte Gruppen auf:
Beispiel 1: Alle Gruppen
~$ getent group
root:x:0:
daemon:x:1:
bin:x:2:
...
Beispiel 2: Eine bestimmte Gruppe
~$ getent group frank
frank:x:1000:
adduser
Der Befehl adduser erstellt einen neuen Benutzer im System.
Beispiel: Neuen Benutzer matthias
anlegen
~$ sudo adduser matthias
Adding user `matthias' ...
Adding new group `matthias' (1001) ...
Adding new user `matthias' (1001) with group `matthias' ...
Creating home directory `/home/matthias' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for matthias
Enter the new value, or press ENTER for the default
Full Name []: Matthias Stueber
Room Number []: 200
Work Phone []: 030-1234567
Home Phone []: 030-7654321
Other []:
Is the information correct? [Y/n] y
addgroup
Der Befehl addgroup erstellt eine neue Gruppe im System.
Beispiel: Neue Gruppe marketing
anlegen
~$ sudo addgroup marketing
Adding group `marketing' (GID 1003) ...
Done.
usermod
Der Befehl usermod erlaubt das Ändern eines Benutzerkontos.
Beispiel 1: Den Benutzer matthias
der Gruppe marketing
hinzufügen.
~$ sudo usermod -aG marketing matthias
Wird ein Benutzer einer weiteren Gruppe zugeordnet, muss dieser sich erst ab- und wieder neu anmelden, bevor die neue Gruppenzugehörigkeit aktiv wird.
Beispiel 2: Den Benutzernamen von matthias
in mattia
ändern.
~$ sudo usermod -l mattia matthias
Es wird lediglich der Benutzername umbenannt, das Home-Verzeichnis z.B. nicht.
chfn
Der Befehl chfn erlaubt das Ändern von Benutzereigenschaften (z.B. den Anzeigename).
Beispiel 1: Meine Basiseigenschaften ändern.
~$ chfn
Password:
Changing the user information for frank
Enter the new value, or press ENTER for the default
Full Name: Frank Stueber
Room Number []: 100
Work Phone []: 030-1234567
Home Phone []: 030-7654321
Beim Aufruf von chfn
ohne weiter Parameter wirst Du immer erst nach Deinem Kennwort gefragt.
Beispiel 2: Meinen Anzeigename ändern.
~$ sudo chfn -f "Francois Stueber"
passwd
Der Befehl passwd erlaubt das Ändern von Benutzerkennwörtern.
Beispiel: Mein eigenes Kennwort ändern.
~$ passwd
Changing password for frank.
Current password:
New password:
Retype new password:
passwd: password updated successfully
Beim Aufruf von passwd
muss man sich zunächst mit dem aktuellen Kennwort authentifizieren. Erst danach kann man ein neues Kennwort vergeben.
deluser
Der Befehl deluser löscht einen Benutzer aus einer Gruppe oder dem System.
Beispiel 1: Den Benutzer matthias
löschen
~$ sudo deluser matthias
Beispiel 2: Den Benutzer matthias
inklusive seines Home-Verzeichnisses löschen.
~$ sudo deluser --remove-home matthias
Beispiel 3: Den Benutzer matthias
aus der Gruppe marketing
entfernen, ihn selbst aber nicht löschen.
~$ sudo deluser matthias marketing
delgroup
Der Befehl delgroup löscht eine Gruppe aus dem System.
Beispiel: Die Gruppe marketing
löschen
~$ sudo delgroup marketing
Removing group `marketing' ...
Done.
su
Der Befehl su erlaubt es, Befehle unter einer anderen Benutzerkennung auszuführen.
Beispiel: Wechsel zum Benutzer matthias
~$ su matthias
Password:
Mit Hilfe von exit
gelangst Du wieder in Deine vorherige Sitzung zurück.
Systeminformationen
Weiter geht es mit dem Abfragen von Systeminformationen.
lsb_release
Der Befehl lsb_release liefert Informationen über die installierte Linux-Distribution zurück.
Beispiel 1: Zeige alle verfügbaren Informationen an.
~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
Die erste Ausgabezeile No LSB modules are available.
bedarf einer Erklärung. Die Linux Standard Base (LSB) war der Versuch mehrerer Linux-Distributionen, Standards zu entwickeln, um die Kompatibilität zwischen den verschiedenen Linux-Distributionen zu erhöhen. In diesem Kontext wurden eine Reihe von Bibliotheken und Werkzeuge standardisiert und sind unter dem Label LSB Modules zusammengefasst. Spätestens seit 2015 ist die ganze Initiative eingeschlafen und wird nicht mehr aktiv weiter verfolgt. Geblieben ist vor allem der Befehl lsb_release
. Unter Ubuntu sind standardmäßig keine LSB-Module installiert, daher die zitierte Ausgabezeile.
uname
Der Befehl uname liefert weitere Systeminformationen (u.a. Linux-Kernel-Name und -Version sowie den Hostnamen) zurück.
Beispiel:
~$ uname -a
Linux gagarin24 6.8.0-41-generic #41-Ubuntu SMP Fri Aug 2 20:41:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
date
Der Befehl date zeigt das aktuelle Systemdatum sowie die aktuelle Systemzeit an.
Beispiel:
~$ date
Di 21. Jun 11:12:51 CEST 2024
uptime
Der Befehl uptime zeigt an, wie lange Dein Ubuntu-Server seit dem letzten Neustart aktiv ist.
Beispiel:
~$ uptime
09:32:25 up 18:02, 1 user, load average: 0,00, 0,01, 0,05
free
Der Befehl free gibt den genutzten und noch verfügbaren Hauptspeicher aus.
Beispiel:
~$ free -h
total used free shared buff/cache available
Mem: 3.8Gi 338Mi 2.9Gi 1.0Mi 616Mi 3.2Gi
Swap: 0B 0B 0B
df
Der Befehl df gibt den genutzten und noch verfügbaren Speicher im Dateisystem aus.
Beispiel:
~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 390M 1.6M 388M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 9.8G 2.9G 6.4G 31% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 1.8G 125M 1.5G 8% /boot
tmpfs 390M 4.0K 390M 1% /run/user/1000
getconf
Der Befehl getconf liefert eine lange Liste an Informationen zur aktuellen Systemkonfiguration zurück.
Beispiel:
~$ getconf -a
LINK_MAX 32000
_POSIX_LINK_MAX 32000
MAX_CANON 255
_POSIX_MAX_CANON 255
MAX_INPUT 255
_POSIX_MAX_INPUT 255
...
procfs
Das process information pseudo-filesystem (kurz procfs) ist kein Befehl, sondern ein Pseudo-Dateisystem, das als Interface zum Auslesen von Linux-Kernel-Informationen dient. Hier findest Du jede noch so obskure Systeminformation. Die Informationen verteilen sich auf eine Vielzahl von Dateien, die Du beispielsweise mit dem cat
-Befehl auslesen kannst. Eine ausführliche Dokumentation findest Du in den Manpages unter proc. Es folgen ein paar Beispiele.
Beispiel 1: Umfangreiche Informationen zur CPU
~$ cat /proc/cpuinfo
Beispiel 2: Umfangreiche Informationen zum Hauptspeicher
~$ cat /proc/meminfo
Beispiel 3: Die höchste Prozess-Identifikationsnummer (PID), die vergeben werden kann
~$ cat /proc/sys/kernel/pid_max
lshw
Der Befehl lshw gibt detaillierte Informationen zur Hardware-Konfiguration aus.
Beispiel 1: Die Standardausgabe, die in der Regel ziemlich lang ist.
~$ sudo lshw
gagarin24
description: Computer
product: VMware Virtual Platform
vendor: VMware, Inc.
...
Beispiel 2: Eine etwas kompaktere Zusammenfassung anzeigen.
~$ sudo lshw -short
H/W path Device Class Description
=========================================================
system VMware Virtual Platform
/0 bus 440BX Desktop Reference Platform
/0/0 memory 86KiB BIOS
/0/1 processor 12th Gen Intel(R) Core(TM) i7-12800H
...
Dateioperationen
Jetzt schauen wir uns typische Operationen auf Dateisystemebene an. Bitte beachte, dass unter Linux bei Datei- und Verzeichnisnamen zwischen Groß- und Kleinschreibung unterschieden wird. Die Datei example.txt ist nicht dieselbe Datei wie Example.txt.
pwd
Der Befehl pwd gibt den Pfad des aktuellen Arbeitsverzeichnisses aus.
Beispiel:
~$ pwd
/home/frank
cd
Der Befehl cd wechselt das aktuelle Arbeitsverzeichnis.
Beispiel 1: Wechsle in das Verzeichnis home
.
~$ cd /home
/home$
Beispiel 2: Wechsle eine Ebene höher.
/home$ cd ..
/$
Beispiel 3: Wechsle zurück in das vorherige Verzeichnis.
~$ cd -
/home
/home$
Beispiel 4: Wechsle in Dein persönliches Home-Verzeichnis.
/home$ cd
~$
ls
Der Befehl ls listet den Inhalt des aktuellen Arbeitsverzeichnisses auf.
Beispiel 1: Inhalt von /home
auflisten
/home$ ls
frank
Beispiel 2: Wer es detaillierter haben möchte…
/home$ ls -l
drwxr-xr-x 5 frank frank 4096 Jun 17 17:14
dir
Der Befehl dir macht im Prinzip das Gleiche wie ls
, ist aber kein Alias (also lediglich ein anderer Name für das gleiche Werkzeug). Die Gründe für die Existenz von dir
und die Unterschiede zu ls
sind in diesem Forumsbeitrag ausführlich erklärt.
Beispiel: Inhalt von /home auflisten
/home$ dir
frank
stat
Der Befehl stat gibt detaillierte Informationen zu einer vorhandenen Datei oder einem vorhandenen Verzeichnis aus.
Beispiel: Dateistatus für example.txt
anzeigen
~$ stat example.txt
File: example.txt
Size: 18 Blocks: 8 IO Block: 4096 regular file
Device: a410b661h/2752558689d Inode: 263240 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/frank) Gid: ( 1000/frank)
Access: 2022-06-21 13:17:40.777464098 +0200
Modify: 2022-06-21 13:17:46.569538081 +0200
Change: 2022-06-21 13:17:46.569538081 +0200
Birth: -
du
Der Befehl du gibt den Speicherplatz einer Datei oder eines Verzeichnis aus.
Beispiel 1: Speicherplatz (in lesbarer Form) eines Verzeichnisses
~$ du -sh
56G downloads
Beispiel 2: Speicherplatz (in lesbarer Form) eines Verzeichnisses sowie aller Unterverzeichnisse
~$ du -h
5G downloads/audios/new
13G downloads/audios/old
18G downloads/audios
12G downloads/videos
30G downloads
Beispiel 3: Speicherplatz (in Bytes) einer einzelnen Datei
~$ du example.txt
15316 example.txt
touch
Der Befehl touch ändert die Zeitstempel von Dateien und Verzeichnissen. Es können nur der Zeitpunkt des letzten Zugriffs (access time) und der Zeitpunkt der letzten inhaltlichen Änderung (modification time) geändert werden.
Beispiel: Zeitstempel der Datei example.txt
ändern
~$ touch -t 202206211200 example.txt
Hier werden beide Zeitpunkte zusammen auf den 21.06.2022 12:00 gesetzt. Existiert die Datei example.txt
noch nicht, wird sie automatisch erstellt. Um die Änderung zu überprüfen, kannst Du wieder den stat-Befehl verwenden.
cp
Der Befehl cp kopiert Dateien oder Verzeichnisse.
Beispiel 1: Datei example.txt
als example.copy.txt
kopieren
~$ cp example.txt example.copy.txt
Beispiel 2: Datei example.txt
ins Verzeichnis Beispiele
kopieren
~$ cp example.txt Beispiele
Beispiel 3: Verzeichnis Beispiele
inklusive Inhalt als Verzeichnis Beispiele.Copy
kopieren
~$ cp -r Beispiele Beispiele.Copy
Beispiel 4: Verzeichnisinhalt Beispiele
ins Verzeichnis Beispiele.Copy
kopieren
~$ cp -a Beispiele/. Beispiele.Copy
mv
Der Befehl mv verschiebt Dateien oder Verzeichnisse bzw. benennt sie um.
Beispiel 1: Datei example.txt
umbenennen in beispiel.txt
~$ mv example.txt beispiel.txt
Beispiel 2: Datei example.txt
ins Verzeichnis Beispiele
verschieben
~$ mv example.txt Beispiele
rm
Der Befehl rm löscht Dateien und Verzeichnisse.
Beispiel 1: Die Datei example.txt
löschen.
~$ rm example.txt
Beispiel 2: Das Verzeichnis Beispiele
samt Inhalt rekursiv löschen.
~$ rm -r Beispiele
Beispiel 3: Nur den Inhalt von Verzeichnis Beispiele
rekursiv löschen.
~$ rm -r Beispiele/*
shred
Der Befehl shred überschreibt den Inhalt einer Datei mit zufällig generierten Zeichen, um sie unkenntlich zu machen.
Beispiel 1: Die Datei example.txt
unkenntlich machen.
~$ shred example.txt
Beispiel 2: Die Datei example.txt
unkenntlich machen und anschließend löschen.
~$ shred -u example.txt
mkdir
Der Befehl mkdir erstellt neue Verzeichnisse.
Beispiel 1: Neues Verzeichnis Beispiele
erstellen
~$ mkdir Beispiele
Beispiel 2: Neues Verzeichnis Texte
inklusive Unterverzeichnis Beispiele
erstellen
~$ mkdir -p Texte/Beispiele
rmdir
Der Befehl rmdir löscht leere Verzeichnisse.
Beispiel: Das Verzeichnis Beispiele
löschen
~$ rmdir Beispiele
namei
Der Befehl namei folgt einem Pfadnamen bis zum Endpunkt.
Beispiel 1: Dem Verzeichnis /home/frank
folgen
~$ namei /home/frank
f: /home/frank
d /
d home
d frank
Beispiel 2: Dem Verzeichnis /home/frank
folgen und dabei Informationen über Eigentümer und Zugriffsrechte ausgeben
~$ namei -om /home/frank
f: /home/frank
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x frank frank frank
Dateiinhalte
Wir bleiben beim Thema Dateien. Wir wollen jetzt mit Dateiinhalten arbeiten.
cat
Der Befehl cat leitet den Inhalt von Dateien um (z.B. auf den Bildschirm oder in eine andere Datei).
Beispiel 1: Dateiinhalt ausgeben
~$ cat example.txt
Hallo Ubuntu!
Hier wird der Inhalt der Textdatei example.txt
ausgegeben. Dieser lautet “Hallo Ubuntu!”
Beispiel 2: Dateiinhalte verknüpfen
~$ cat example1.txt example1.txt > result.txt
Hier wird der Inhalt der Textdatei example1.txt
mit dem Inhalt der Textdatei example1.txt
verknüpft und in eine neue Textdatei mit Namen result.txt
geschrieben.
Beispiel 3: Neue Datei erstellen
~$ cat > new.txt
Hier wird der eine neue leere Datei new.txt
erstellt, die auf Deine Eingabe wartet. Wenn Du jetzt anfängst zu Tippen, wird der Text in diese neue Datei geschrieben. Mit Strg + D speicherst Du die Datei und schließt den Vorgang ab.
more
Der Befehl more ist ein Hilfswerkzeug, das lange Dateiinhalte (z.B. große Log-Dateien) seitenweise anzeigt.
Beispiel: Anzeige einer großen Log-Datei
~$ sudo more /var/log/syslog
Jun 22 11:37:00 gagarin24 systemd-modules-load[522]: Inserted module 'msr'
Jun 22 11:37:00 gagarin24 systemd-modules-load[522]: Inserted module 'ipmi_devintf'
Jun 22 11:37:00 gagarin24 lvm[513]: 1 logical volume(s) in volume group "ubuntu-vg" monitored
Jun 22 11:37:00 gagarin24 systemd[1]: Starting Flush Journal to Persistent Storage...
Jun 22 11:37:00 gagarin24 systemd[1]: Finished Create Static Device Nodes in /dev.
Jun 22 11:37:00 gagarin24 multipathd[540]: --------start up--------
--More--(1%)
Hier wird die zentrale Log-Datei /var/log/syslog
angezeigt. Es wird dir zunächst die erste Seite der Logeinträge angezeigt. Eine Seite umfasst alle Einträge, die zusammen auf den Bildschirm passen. Das sind hier gerade mal ein Prozent des Gesamtinhalts. Mit der Eingabetaste kannst Du Zeile für Zeile weiter runterscrollen. Mit der Leerzeichentaste kannst Du Seite für Seite weiter runterscrollen. Mit Q kannst Du die Anzeige verlassen.
less
Der Befehl less ist die flexiblere Variante von more
.
Beispiel: Anzeige einer großen Log-Datei
~$ sudo less /var/log/syslog
Jun 22 11:37:00 gagarin24 systemd-modules-load[522]: Inserted module 'msr'
Jun 22 11:37:00 gagarin24 systemd-modules-load[522]: Inserted module 'ipmi_devintf'
Jun 22 11:37:00 gagarin24 lvm[513]: 1 logical volume(s) in volume group "ubuntu-vg" monitored
Jun 22 11:37:00 gagarin24 systemd[1]: Starting Flush Journal to Persistent Storage...
Jun 22 11:37:00 gagarin24 systemd[1]: Finished Create Static Device Nodes in /dev.
Jun 22 11:37:00 gagarin24 multipathd[540]: --------start up--------
/var/log/syslog
Hier wird wieder die zentrale Log-Datei /var/log/syslog
angezeigt. Allerdings kannst Du jetzt mit den Pfeiltasten und mit Bild↓ und Bild↑ bidirektional durch die Log-Einträge navigieren. Mit Q kannst Du den Anzeigemodus verlassen.
head
Der Befehl head gibt den ersten Teil einer Textdatei aus.
Beispiel 1: Anzeige der ersten zwei Zeilen
~$ sudo head -n 2 /var/log/syslog
Jun 22 11:37:00 gagarin24 systemd-modules-load[522]: Inserted module 'msr'
Jun 22 11:37:00 gagarin24 systemd-modules-load[522]: Inserted module 'ipmi_devintf'
Beispiel 2: Anzeige der ersten 16 Zeichen
~$ sudo head -c 16 /var/log/syslog
Jun 22 11:37:00
tail
Der Befehl tail ist das Gegenstück zu head
und gibt den letzten Teil einer Textdatei aus.
Beispiel 1: Anzeige der letzten zwei Zeilen
~$ sudo tail -n 2 /var/log/syslog
Jun 29 08:39:34 gagarin24 systemd[1]: Started Time & Date Service.
Jun 29 08:40:04 gagarin24 systemd[1]: systemd-timedated.service: Deactivated successfully.
Beispiel 2: Anzeige der letzten 26 Zeichen
~$ sudo tail -c 26 /var/log/syslog
Deactivated successfully.
grep
Der Befehl grep extrahiert Inhalte von Textdateien durch Vergleich von Suchmustern.
Beispiel: Anzeige aller Zeilen mit “Finished Rotate log files”
~$ sudo grep "Finished Rotate log files" /var/log/syslog
Jun 27 09:10:09 gagarin24 systemd[1]: Finished Rotate log files.
Jun 28 09:09:07 gagarin24 systemd[1]: Finished Rotate log files.
Jun 29 08:12:28 gagarin24 systemd[1]: Finished Rotate log files.
Der Befehl grep
ist ziemlich mächtig. Du kannst auch reguläre Ausdrücke zur Suche einsetzen.
Texteditoren
Bisher haben wir uns nur Inhalte von Dateien anzeigen lassen. Jetzt wollen selber Textdateien (z.B. Konfigurationsdateien) anlegen oder bestehende ändern. Dazu benötigen wir einen Texteditor.
Vim
Der Texteditor Vim (das Vim steht für Vi IMproved, also einer verbesserten Version eines älteren Texteditors namens Vi) ist standardmäßig bei Ubuntu Server dabei.
Gestartet wird er wie folgt:
~$ vim example.txt
Wer grafische Texteditoren gewöhnt ist, wird bei Vim erst einmal komisch aus der Wäsche schauen, da dessen Bedienung alles andere als intuitiv ist. Ich verweise hier auf die kompakte Einführung Vim 101: A Beginner’s Guide to Vim.
GNU nano
Der Texteditor nano sieht ähnlich spartanisch wie VIM aus, ist aber wesentlich intuitiver zu bedienen. Er ist leider nicht in allen Fällen unter Ubuntu Server vorinstalliert. Das lässt sich aber bei Bedarf ganz einfach per apt
-Befehl nachholen:
~$ sudo apt install nano
Gestartet wird er wie folgt:
~$ nano example.txt
Es folgt eine kurze Übersicht zu den wichtigsten Tastaturkürzeln.
Tastaturkombination | Aktion |
---|---|
Pfeiltaste | Im Text navigieren |
Pos1 | An Anfang der aktuellen Textzeile springen |
Ende | Ans Ende der aktuellen Textzeile springen |
Bild↑ | Ein Seite nach oben springen |
Bild↓ | Ein Seite nach unten springen |
Umschalt + Pfeiltaste | Text markieren |
Strg + K | Markierten Text bzw. die aktuelle Textzeile ausschneiden |
Alt + 6 | Markierten Text bzw. die aktuelle Textzeile kopieren |
Strg + U | Ausgeschnittenen oder kopierten Text an aktueller Position einfügen |
Alt + U | Undo |
Alt + E | Redo |
Strg + S | Aktuellen Textinhalt speichern |
Strg + X | nano verlassen |
Willst Du nano verlassen, wirst Du bei nicht gespeicherten Änderungen “Save modified buffer?” gefragt. In diesem Fall hast Du folgende Möglichkeiten:
Tastaturkombination | Aktion |
---|---|
Y | Änderungen speichern und nano schließen |
N | Änderungen verwerfen und nano schließen |
Strg + C | Vorgang abbrechen und zu nano zurückkehren |
Es gibt natürlich noch viel mehr zu nano zu erzählen, all das findest Du u.a. in der nano-Dokumentation.
Prozessverwaltung
Auf einem Ubuntu Server laufen zu jederzeit eine Vielzahl aktiver Prozesse. Diese verbrauchen Ressourcen (CPU-Zeit, Speicher, Dateien etc.) und bleiben manchmal auch hängen. Jeder Prozess ist durch seine Prozess-Identifikationsnummer (PID) eindeutig adressierbar.
top
Der Befehl top zeigt alle laufenden Ubuntu-Prozesse an. Die Anzeige aktualisiert sich dabei stetig. Mit Strg + C beendest Du die Anzeige wieder.
Beispiel:
~$ top
top - 19:42:59 up 2 min, 2 users, load average: 0.48, 0.37, 0.15
Tasks: 246 total, 1 running, 245 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3889.8 total, 3304.7 free, 293.2 used, 291.9 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 3363.2 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27 root 20 0 0 0 0 I 0.3 0.0 0:00.52 kworker/0:2-events
1035 root 20 0 0 0 0 I 0.3 0.0 0:00.11 kworker/1:4-events
1275 frank 20 0 10612 4244 3376 R 0.3 0.1 0:00.05 top
1 root 20 0 100772 11524 8272 S 0.0 0.3 0:12.19 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.10 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns
6 root 20 0 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0-events
7 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri
8 root 20 0 0 0 0 I 0.0 0.0 0:00.01 kworker/0:1-cgroup_destroy
9 root 20 0 0 0 0 I 0.0 0.0 0:00.00 kworker/u256:0-events_unbound
10 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_rude_
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_trace
13 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
14 root 20 0 0 0 0 I 0.0 0.0 0:00.13 rcu_sched
15 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
16 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/0
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
...
Mit Umschalt + F kannst Du auswählen, welche Spalten Du angezeigt bekommen möchtest und nach welcher Spalte sortiert werden soll.
ps
Der Befehl ps macht einen Snapshot (zu Deutsch: Schnappschuss) von laufenden Ubuntu-Prozessen und zeigt diesen an.
Beispiel 1: Alle durch mich erzeugten Prozesse auflisten.
~$ ps
PID TTY TIME CMD
1266 pts/0 00:00:00 bash
1692 pts/0 00:00:00 ps
Beispiel 2: Alle Prozesse im System hierarchisch auflisten.
~$ ps -ejH
PID PGID SID TTY TIME CMD
2 0 0 ? 00:00:00 kthreadd
3 0 0 ? 00:00:00 rcu_gp
4 0 0 ? 00:00:00 rcu_par_gp
5 0 0 ? 00:00:00 netns
7 0 0 ? 00:00:00 kworker/0:0H-events_highpri
10 0 0 ? 00:00:00 mm_percpu_wq
...
kill
Der Befehl kill sendet ein Beendigungssignal an einen oder mehrere laufende Prozesse.
Beispiel 1: Dem Prozess mit der PID 891
ein Signal (SIGTERM) zur Beendigung senden.
~$ sudo kill 891
Beispiel 2: Den Prozess mit der PID 891
auf die harte Tour beenden (SIGKILL).
~$ sudo kill -9 891
Beispiel 3: Die Liste aller Beendigungssignale anzeigen.
~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
Netzwerkbefehle
Ein Ubuntu Server ist in der Regel immer Teil eines Netzwerks. Die folgenden Befehle gehören zum Standard-Repertoire eines jeden Netzwerkadministrators.
hostname
Der Befehl hostname gibt den Hostnamen Deines Ubuntu Server zurück bzw. konfiguriert ihn neu. Der Hostname ist die eindeutige Bezeichnung des Servers im Netzwerk.
Beispiel 1: Eigenen Hostnamen abfragen
~$ hostname
gagarin24
Beispiel 2: Eigenen Hostnamen neu setzen
~$ sudo hostname armstrong24
ping
Der Befehl ping sendet eine ICMP Echo-Anfrage (ICMP ECHO_REQUEST) an ein Gerät im Netzwerk. Damit kann die Erreichbarkeit eines Gerätes getestet werden.
Beispiel: Echo-Anfrage an google.de
~$ ping google.de
PING google.de (216.58.212.163) 56(84) bytes of data.
64 bytes from ams15s22-in-f3.1e100.net (216.58.212.163): icmp_seq=1 ttl=117 time=14.7 ms
64 bytes from ams15s22-in-f163.1e100.net (216.58.212.163): icmp_seq=2 ttl=117 time=14.5 ms
64 bytes from ams15s22-in-f3.1e100.net (216.58.212.163): icmp_seq=3 ttl=117 time=14.6 ms
^C
--- google.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 14.545/14.613/14.662/0.049 ms
Der ping
-Befehl hat eine Besonderheit. Er endet nicht von selbst, sondern muss per Strg + C aktiv unterbrochen werden. In der Zwischenzeit werden immer wieder Echo-Abfragen an das Zielgerät (in unserem Fall der Google-Server) gesendet. Erst nach Abbruch werden die Daten aller Echo-Anfragen analysiert und als Statistik ausgegeben (siehe die letzten beiden Zeilen in der Ausgabe).
nslookup
Der Befehl nslookup erlaubt es, DNS-Lookups durchzuführen. Ein DNS-Lookup ist das Abfragen eines oder mehrerer DNS-Einträge bei einem DNS-Server. Es gibt unterschiedliche Typen von DNS-Einträgen, die sogenannten DNS Record Types.
Beispiel: Alle verfügbaren DNS-Einträge für google.de
~$ nslookup -type=any google.de
Server: 85.214.7.22
Address: 85.214.7.22#53
Non-authoritative answer:
google.de mail exchanger = 0 smtp.google.com.
google.de nameserver = ns3.google.com.
google.de nameserver = ns2.google.com.
google.de nameserver = ns4.google.com.
google.de nameserver = ns1.google.com.
Name: google.de
Address: 2a00:1450:400e:810::2003
Name: google.de
Address: 142.251.36.35
Authoritative answers can be found from:
dig
Der Befehl dig ist eine neuere Alternative zu nslookup
Beispiel: Alle verfügbaren DNS-Einträge für google.de
~$ dig google.de any
; <<>> DiG 9.16.1-Ubuntu <<>> google.de any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37292
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: d37aae5e75b3c5d51209ac8062bb0891175cb2360439512d (good)
;; QUESTION SECTION:
;google.de. IN ANY
;; ANSWER SECTION:
google.de. 155 IN MX 0 smtp.google.com.
google.de. 11959 IN NS ns3.google.com.
google.de. 11959 IN NS ns1.google.com.
google.de. 11959 IN NS ns2.google.com.
google.de. 11959 IN NS ns4.google.com.
google.de. 230 IN AAAA 2a00:1450:400e:810::2003
google.de. 200 IN A 142.251.36.35
;; Query time: 0 msec
;; SERVER: 85.214.7.22#53(85.214.7.22)
;; WHEN: Di Jun 28 15:56:33 CEST 2022
;; MSG SIZE rcvd: 213
whois
Der Befehl whois erlaubt die Abfrage darüber, wer einen bestimmten Internet-Domänennamen registriert hat. Grundlage ist das WHOIS Protocol (RFC 3912).
Beispiel 1: google.com
~$ whois google.com
Domain Name: GOOGLE.COM
Registry Domain ID: 2138514_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.markmonitor.com
Registrar URL: http://www.markmonitor.com
Updated Date: 2019-09-09T15:39:04Z
Creation Date: 1997-09-15T04:00:00Z
Registry Expiry Date: 2028-09-14T04:00:00Z
Registrar: MarkMonitor Inc.
Registrar IANA ID: 292
Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
Registrar Abuse Contact Phone: +1.2086851750
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
Name Server: NS1.GOOGLE.COM
Name Server: NS2.GOOGLE.COM
Name Server: NS3.GOOGLE.COM
Name Server: NS4.GOOGLE.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
...
Beispiel 2: google.de
~$ whois google.de
% Restricted rights.
%
% Terms and Conditions of Use
%
% The above data may only be used within the scope of technical or
% administrative necessities of Internet operation or to remedy legal
% problems.
% The use for other purposes, in particular for advertising, is not permitted.
%
% The DENIC whois service on port 43 doesn't disclose any information concerning
% the domain holder, general request and abuse contact.
% This information can be obtained through use of our web-based whois service
% available at the DENIC website:
% http://www.denic.de/en/domains/whois-service/web-whois.html
%
%
Domain: google.de
Nserver: ns1.google.com
Nserver: ns2.google.com
Nserver: ns3.google.com
Nserver: ns4.google.com
Status: connect
Changed: 2018-03-12T21:44:25+01:00
Die Unterschiede zwischen Beispiel 1 und 2 sind signifikant. Während die Abfrage nach google.com
viele Details preisgibt, resultiert die Abfrage nach google.de
in einer recht spartanischen Ausgabe. Aufgrund der europäischen Datenschutz-Grundverordnung (DSGVO) wird die Menge der im Whois angezeigten Informationen zu europäischen Domänen stark eingeschränkt.
ip
Der Befehl ip gibt Informationen zur Netzwerkinfrastrultur zurück. Der ip
-Befehl ist mit sehr vielen Optionen ausgestattet und kann nicht nur Informationen ermitteln sondern auch aktiv in die Netzwerkonfiguration eingreifen. Das folgende ip Command Cheat Sheet (Spickzettel) von Red Hat gibt einen guten Überblick.
Beispiel: Die IP-Adressen aller Netzwerkschnittstellen anzeigen
~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2f:1f:87 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.178.41/24 metric 100 brd 192.168.178.255 scope global dynamic ens33
valid_lft 863712sec preferred_lft 863712sec
inet6 fe80::20c:29ff:fe2f:1f87/64 scope link
valid_lft forever preferred_lft forever
finger
Der Befehl finger liefert Informationen zu Benutzern.
Beispiel 1: Informationen über mich
~$ finger
Login Name Tty Idle Login Time Office Office Phone
frank Frank Stueber pts/0 Jun 27 15:09 (172.19.114.176)
Beispiel 2: Informationen über root
~$ finger -s root
Login Name Tty Idle Login Time Office Office Phone
root root * * No logins
netstat
Der Befehl netstat liefert Informationen zu Netzwerkverbindungen zurück.
Beispiel 1: Ausgabe aller TCP-Sockets
~$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 44 gagarin24:ssh Frank:57473 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
Beispiel 2: Ausgabe der nur aktiv verbundenen TCP-Sockets
~$ netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 36 gagarin24:ssh Frank:57473 ESTABLISHED
ss
Der Befehl ss ist eine neuere Alternative zu netstat
.
Beispiel 1: Ausgabe aller TCP-Sockets
~$ ss -at
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 127.0.0.53%lo:domain 0.0.0.0:*
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
ESTAB 0 36 192.168.178.41:ssh 192.168.178.28:57473
LISTEN 0 128 [::]:ssh [::]:*
Beispiel 2: Ausgabe der nur aktiv verbundenen TCP-Sockets
~$ ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 36 192.168.178.41:ssh 192.168.178.28:57473
traceroute
Der Befehl traceroute ermittelt, über welche Router und Internetknoten Datenpakete bis zum abgefragten Rechner gelangen.
Beispiel: Nachverfolgung für google.de
~$ traceroute google.de
traceroute to google.de (142.251.36.35), 30 hops max, 60 byte packets
1 10.169.30.173 (10.169.30.173) 0.042 ms 0.022 ms 0.021 ms
2 425.ae4.core-b1.as6724.net (85.214.0.112) 0.291 ms 0.258 ms 0.240 ms
3 110.ae14.bb-rt1-2.h20.r22.rs.ber.de.as6724.net (85.214.2.90) 11.749 ms 11.717 ms 11.691 ms
4 ae-1-88.bb-a.ak.ber.de.oneandone.net (212.227.112.110) 0.452 ms ae-17-88.bb-b.fr7.fra.de.net.ionos.com (212.227.112.122) 10.610 ms ae-0-88.bb-a.ak.ber.de.oneandone.net (212.227.112.104) 0.384 ms
5 ae-13-0.bb-a.nkf.ams.nl.net.ionos.com (212.227.120.227) 16.915 ms 16.906 ms 16.983 ms
6 * * *
7 108.170.252.83 (108.170.252.83) 13.292 ms 13.305 ms 108.170.251.145 (108.170.251.145) 10.935 ms
8 142.251.66.239 (142.251.66.239) 13.046 ms 142.251.66.241 (142.251.66.241) 13.148 ms 142.251.66.239 (142.251.66.239) 13.118 ms
9 ams17s12-in-f3.1e100.net (142.251.36.35) 11.038 ms 11.070 ms 108.170.234.10 (108.170.234.10) 14.375 ms
nmap
Der Befehl nmap ermöglicht das Erkunden von Netzwerken und das Durchführen von Sicherheitsprüfungen.
Beispiel: Scan für google.de
~$ nmap google.de
Starting Nmap 7.80 ( https://nmap.org ) at 2022-06-28 16:35 CEST
Nmap scan report for google.de (142.251.36.35)
Host is up (0.012s latency).
Other addresses for google.de (not scanned): 2a00:1450:400e:810::2003
rDNS record for 142.251.36.35: ams17s12-in-f3.1e100.net
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 4.90 seconds
Artikelhistorie
- 29.06.2022
- Erstveröffentlichung
- 31.08.2022
- Abschnitt “Identitätsverwaltung” in “Benutzer und Gruppen” umbenannt und erweitert
- 20.09.2024
- Update auf Ubuntu Server 24.04 LTS
- Den Befehl
du
hinzugefügt - Den Befehl
neofetch
entfernt, da dieses Tool nicht mehr weiterentwickelt wird. - Einige kleinere Korrekturen