Inhaltsverzeichnis
Linux System Information Tools
Linux kennt viele verschiedene Werkzeuge, um nützliche Informationen über das System zu sammeln und überwachen. Diese kennt man aber in der Regel nicht einfach so auswendig. Der Artikel stellt deshalb eine kleine Zusammenfassung über die gängigsten Tools, die auf ziemlich jedem Linux-System standardmässig installiert sein sollten, dar.
Diverse Informationen
Informationen über das aktuell verwendete Betriebssystem liefert der Befehl uname
.
uname -a # Alle Informationen uname -m # Systemarchitektur
Um den Hostname der Maschine anzuzeigen einfach hostname
eingeben.
hostname
Welche Kernelmodule geladen sind steht in der Datei /proc/modules
.
less /proc/modules
CPU Informationen
Informationen über die CPU bekommt man durch das Tool lscpu
.
lscpu
Möchte man lediglich die Anzahl der verfügbaren Prozessorkerne wissen:
nproc
Um die Wortbreite oder Busbreite („ist meine CPU 32- oder 64-bit?“) anzuzeigen:
getconf LONG_BIT
Eine alternative Variante ist durch das Proc-File /etc/cpuinfo
gegeben. Mit cat
wird sein Inhalt in der Konsole angezeigt:
cat /proc/cpuinfo
RAM Informationen
Für Informationen über die Speicherbelegung im Memory zieht man das Tool free
bei:
free -h
Auch über das RAM sind weitere Informationen in einem Proc-File /proc/meminfo
zu finden.
cat /proc/meminfo
Block Devices
Verfügbare Block Devices herausfinden
Unter Linux ist grundsätzlich jedes Speichergeräte (Harddisk, USB-Stick) ein Block Device. Das Tool lsblk
listet auf, welche Block Devices aktuell verfügbar sind. Dies hilft beispielsweise herauszufinden, unter welchem Block Device sich der eben eingesteckte USB-Stick „versteckt“.
lsblk
Speicherplatzbelegung
Um eine Übersicht über den freien Speicherplatz des Systems (das heisst auf sämtlichen Dateisystemen) zu erhalten hilft das Tool disk free
(df
). Für eine gut lesbare Ausgabe inkluse Dateisystem-Typ sorgen die beiden Parameter h
und T
.
df -hT
Soll jedoch bloss die Grösse eines bestimmten Ordners eingesehen werden, ist man mit disk usage
(du
) bedient. Ohne Parameterangaben listet du die Grösse des aktuellen Ordners sowie sämtlicher Unterordner auf. Folgender Befehl gibt die Grösse des gesamten Ordners ~/Downloads
in gut lesbarem Format aus:
du -sh ~/Downloads
Manchmal möchte man wissen, welche Dateien am meisten Platz belegen. Dazu kann man (unter Verwendung von entsprechenden Parametern) die Ausgabe von du
einfach nach sort
umleiten:
du -ach ~/Downloads/ | sort -h # Liste aufsteigend sortieren du -ach ~/Downloads/ | sort -hr # Liste absteigend sortieren
BUS-Geräte
PCI Devices
Sämtliche verfügbare PCI-Geräte lassen sich mit lspci
herausfinden.
lspci
Dies ist allerdings (oft) etwas unübersichtlich. Abhilfe kann da grep schaffen. Durchsucht man die Ausgabe von lspci
mittels grep
beispielsweise nach „VGA“, erhält man Informationen über die Grafikkarte.
lspci | grep VGA
USB Devices
Es gibt auch ein ls-Befehl für USB-Geräte:
lsusb
Systemperformance
top
bietet eine Übersicht, welcher Prozess oder Benutzer welche Systemresourcen belegt (unter Windows allgemein als Task Manager bekannt).
top
Ist man interessiert, wie viel Zeit ein Programm zur Ausführung braucht, kann man dies mit time
messen.
time firefox
Dateien finden
Normale Dateien
In der Kommandozeile sucht man nach Dateien mit find
. Üblicherweise gibt man als Parameter das Verzeichnis, in welchem man suchen möchte, sowie den gesuchten Dateinamen an.
Auf dem Wurzelverzeichnis /
nach der Datei sample.pdf
suchen:
find / -name sample.pdf
Im Ordner ~/Downloads
nach sämtlichen pdf-Dateien suchen:
find ~/Downloads -name "*.pdf"
Ausführbare Dateien
Möchte man den genauen Dateipfad einer ausführbaren Datei ausfindig machen, kann man es mit which
versuchen.
which firefox
Geöffnete Dateien
Manchmal blockieren geöffnete Dateien beispielsweise Unmount- oder Löschvorgänge. Welche Datei von welchem Prozess gerade geöffnet ist, kann mit lsof
oder fuser
ermittelt werden. Dies zeigt alle geöffneten Dateien im Verzeichnis /mnt/usb
an:
lsof /mnt/usb
Same thing but different:
fuser /mnt/usb -u
fuser kann auch anzeigen, welche Prozesse auf ein bestimmtes Block Device zugreifen:
fuser -m /dev/sdb1
Netzwerkinformationen
IP-Adresskonfiguration
Welches Netzwerkinterface besitzt welche Netzwerkkonfiguration?
ip addr
Netzwerkverbindungen
Mit dem Tool netstat können sämtliche Netzwerkverbindungen angesehen werden.
netstat -a # zeigt alle Verbindungen netstat -lp # zeigt abhörende Sockets sowie deren Prozess
ARP- und Routingtables
Befehl zur Ausgabe der Gateways:
netstat -r
Befehl zur Ausgabe der ARP-Tabelle:
arp
Sensoren
Ein verbreitetes Tool zur Sensorauslesung ist lm_sensors, welches aber bei den meisten Distributionen standardmässig nicht mitgeliefert wird. Arch-Benutzer installieren das Paket lm_sensors
, bei Debian heisst das Paket lm-sensors
. Danach kann es mit dem Befehl sensors
benutzt werden.
sensors
Installierte Softwarepakete anzeigen
Arch Linux (pacman)
Auf Arch Linux geht das mit pacman
. Alle installierten Pakete anzeigen:
pacman -Qe
Nach einem spezifischen Paket suchen:
pacman -Qe firefox
Debian / Ubuntu (apt-get / dpkg)
Der Befehl zeigt installierte Pakete (install), aber auch bereits wieder deinstallierte Pakete (deinstall) an:
dpkg --get-selections
Um auch wirklich nur installierte Pakete anzuzeigen hilft uns grep
weiter.
dpkg --get-selections | grep -v deinstall
Natürlich kann auch hier nach einem spezifischen Paket gesucht werden:
dpkg --get-selections firefox # alternativ: dpkg --get-selections firefox | grep -v deinstall
Logging
Das allgemeine Logverzeichnis /var/log
beinhaltet Logdateien von System und Programmen und ist deshalb oft eine nützliche erste Anlaufstelle bei Problemen.
Logfiles kann man mit tail
„live“ mitverfolgen, um immer über die aktuellsten Logs informiert zu bleiben.
tail /var/log/Xorg.0.log -f # Fortlaufend Logmeldungen ausgeben
Die letzten Meldungen des Kernels können direkt mit dmesg angezeigt werden:
dmesg | less
Unter systemd
kann man die Logs mit journalctl
anschauen:
# journalctl -f # Fortlaufend Logmeldungen ausgeben
Benutzerinformationen
Ist man sich nicht sicher, mit welchem User man gerade arbeitet:
whoami
Der Befehl w
zeigt die auf dem System angemeldeten Benutzer an und was diese gerade tun.
w
Um zu sehen, wer sich zuvor auf dem System eingeloggt hat, sowie wann das System heruntergefahren oder neu gestartet wurde, kann der Befehl last
verwendet werden.
last | less