Command Line Interface-Befehle (Debian): Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) |
Matt (Diskussion | Beiträge) |
||
(47 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Allgemein == | |||
pwd # Print Working Directory | pwd # Print Working Directory | ||
Zeile 8: | Zeile 8: | ||
ls -l # Verzeichnisinhalt anzeigen, Langversion | ls -l # Verzeichnisinhalt anzeigen, Langversion | ||
ls -a # Alle Dateien anzeigen (auch versteckte) | ls -a # Alle Dateien anzeigen (auch versteckte) | ||
file | tree -L 1 # Treelike list of directory with max depth | ||
cal | file <file> # Dateiinhalt analysieren | ||
export | stat <file> # Status einer Datei anzeigen (Änderungszeit, Zugriffsrechte, etc.) | ||
cal -y # Textkalender: Monatlich aktuelles Jahr anzeigen | |||
cal -B1 -A1 # Textkalender: Aktuellen Monat, einen Monat davor, einen danach anzeigen | |||
export VAR=value # Umgebungsvariable VAR mit Wert value setzen | |||
env # Umgebungsvariablen anzeigen | env # Umgebungsvariablen anzeigen | ||
env | grep -i 'hallo' # In der Ausgabe von env nach eine Zeile suchen, die 'hallo' enthält | env | grep -i 'hallo' # In der Ausgabe von env nach eine Zeile suchen, die 'hallo' enthält | ||
Zeile 17: | Zeile 20: | ||
cd - # Ins vorherige Verzeichnis wechseln | cd - # Ins vorherige Verzeichnis wechseln | ||
== Befehlshistorie == | |||
history # Letzte Befehle ausgeben | history # Letzte Befehle ausgeben | ||
Zeile 26: | Zeile 29: | ||
!?xyz? # Letzten Befehl, der xyz enthielt, ausführen | !?xyz? # Letzten Befehl, der xyz enthielt, ausführen | ||
== | == Viewer und Editoren == | ||
cat xxx # Datei xxx ausgeben | |||
less xxx # Datei im Dateibetrachter Less öffnen | |||
zless file.gz # Datei file.gz mit Dateibetrachter Less öffnen | |||
nano xxx # Datei xxx im Texteditor Nano öffnen | |||
vim xxx # Datei xxx im Texteditor VIM öffnen | |||
emacs xxx # Datei xxx im Texteditor EMACS öffnen | |||
== Datum und Uhrzeit == | |||
date # Datum und Systemzeit anzeigen | date # Datum und Systemzeit anzeigen | ||
watch -n 1 date # Im Intervall von einer Sekunde Datum und Uhrzeit ausgeben | watch -n 1 date # Im Intervall von einer Sekunde Datum und Uhrzeit ausgeben | ||
Zeile 47: | Zeile 43: | ||
hwclock --show --utc # Uhrzeit der Hardware-Uhr in UTC anzeigen | hwclock --show --utc # Uhrzeit der Hardware-Uhr in UTC anzeigen | ||
cat /etc/timezone # Zeitzone anzeigen | cat /etc/timezone # Zeitzone anzeigen | ||
date +%T -s "10:00:00" # Uhrzeit auf 10:00:00 Uhr setzen | date +%T -s "10:00:00" # Uhrzeit auf 10:00:00 Uhr setzen | ||
hwlock -w # Uhrzeit auf aktuelle Systemzeit setzen | hwlock -w # Uhrzeit auf aktuelle Systemzeit setzen | ||
Datumswerte ausgeben: | |||
echo $(date +%Y-%m-%d__%H-%M-%S) # Ausgabe von Datum im Format: 2020-12-31__23-59-59 | |||
== | == Dienstverwaltung == | ||
service --status-all # Status aller Dienste anzeigen | |||
service xxx status # Status von Dienst xxx anzeigen | |||
service xxx start|stop|restart # Dienst xxx starten/stoppen/neustarten | |||
/etc/init.d/xxx start|stop|restart # Dienst xxx starten/stoppen/neustarten | |||
systemctl start|stop|status xxx # SystemD-Dienst xxx starten/stoppen/status | |||
systemctl disable xxx # Dienst xxx deaktivieren - wird beim Reboot nicht mehr automatisch gestartet | |||
systemctl enable xxx # Dienst xxx aktivieren - wird beim Reboot automatisch gestartet | |||
== Shutdown und Reboot == | |||
shutdown -h now | |||
shutdown -r now | |||
Mit dem Parameter <code>now</code> wird sofort neu gestartet. Der Default-Wert ist eine Minute. | |||
== Dateien suchen, finden, bearbeiten == | |||
=== Dateinamen suchen === | |||
grep -i 'hello world' file.txt # In file.txt zeilenweise nach 'Hello World' nicht | grep -i 'hello world' file.txt # In file.txt zeilenweise nach 'Hello World' nicht | ||
# case-sensitiv suchen | # case-sensitiv suchen | ||
Zeile 77: | Zeile 90: | ||
# und diese inkl. aller Unterverzeichnisse löschen | # und diese inkl. aller Unterverzeichnisse löschen | ||
=== Speicherplatz | === Dateilisten ausgeben === | ||
ls -ogRh dir1 # Liste von Dateien von dir1 ausgeben ohne User/Gruppe in menschenlesbarer Form | |||
ls -lh | cut -d" " -f5- # Von der Liste nur alle Spalten ab der 5. Spalte ausgeben (Trennzeichen/Delimiter = " ") | |||
ls -ogRh dir1 > file1.txt # Wie oben, aber Inhalt in Datei file1.txt schreiben (bestehende überschreiben) | |||
ls -ogRh dir1 >> file1.txt # Wie oben, aber Inhalt an Datei file1.txt anhängen | |||
=== Suchen in Dateien === | |||
grep -rnw /path/to/somewhere/ -e "<pattern>" | |||
grep -rni "<pattern>" [directory] | |||
Nach "Search-Text" in allen Dateien unterhalb von / suchen: | |||
find / -type f -exec grep -H '<Search-Text>' {} \; | |||
=== Ersetzen in Dateien === | |||
sed -i 's/jessie/stretch/g' filename # In Filename "jessie" finden und durch "stretch" ersetzen | |||
== Informationen == | |||
=== Ressourcen und Statistiken === | |||
free # RAM-Speicher Auslastung | |||
top # CPU-Nutzung, Uptime, RAM-Verbrauch | |||
htop # Top mit Balkendarstellung von Ressourcen | |||
glance # Umfangreichere Anzeige, als top und htop | |||
slurm # Speicher | |||
w # Angemeldete User / Sitzungen | |||
=== Betriebssystem === | |||
uptime # Onlinezeit des Betriebssystems | |||
uname -a # Kernelversion, Bezeichnung und Hostname | |||
uname -r # Kernelname / Version | |||
cat /proc/version # Kernelversion | |||
cat /etc/issue # Name und Version der Distribution | |||
cat /etc/debian_version # Debian Versionsnummer | |||
cat /etc/os-release # Versionsnummer des Betriebssystemreleases | |||
hostnamectl # Kerlen-Version, Architektur, Systemname | |||
Die Datei <code>/etc/debian_version</code> ist im Paket '''base-files''' enthalten. Daher kann die installierte Debian-Version (und eine möglicherweise zur Verfügung stehende neuere Version) aus der Version des Pakets abgeleitet werden. | |||
Additional programs, which need installation first: | |||
screenfetch # Betriebssystemversion Uptime, Kernelversion, CPU, RAM | |||
neofetch # Betriebssystemversion Uptime, Kernelversion, CPU, RAM | |||
=== Speicherplatz von Festplatte === | |||
df # Freier und belegter Plattenplatz in 1K-Blöcken | df # Freier und belegter Plattenplatz in 1K-Blöcken | ||
Zeile 84: | Zeile 142: | ||
df -T # Dateisystemtyp ausgeben | df -T # Dateisystemtyp ausgeben | ||
=== Speicherplatz | === Speicherplatz von Verzeichnissen === | ||
du # Speicherverbrauch / Größe von Verzeichnissen | du # Speicherverbrauch / Größe von Verzeichnissen | ||
Zeile 94: | Zeile 152: | ||
find <dir> -type f | wc -l # Anzahl Dateien im Verzeichnis <dir> | find <dir> -type f | wc -l # Anzahl Dateien im Verzeichnis <dir> | ||
=== | === CPU === | ||
Damit Intel Turbo Boost in Linux funktioniert, muss es im BIOS aktiviert sein. | |||
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq # Maximale CPU-Taktgeschwindigkeit inkl. Intel Turbo Boost | |||
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq # Minimale CPU-Taktgeschwindigkeit inkl. Intel Turbo Boost | |||
cat /proc/cpuinfo # Infos zur CPU und aller Kerne anzeigen | |||
cat /proc/cpuinfo | grep -i 'cpu mhz' # Aktuelle CPU-Geschwindigkeit und aller Kerne anzeigen | |||
=== Laufwerke === | |||
less /etc/fstab # Gemountete Laufwerke | |||
fsck -N /dev/xxx # ??? | |||
fdisk -l # Gerätenamen rausfinden, z. B. /dev/sdc1 | |||
lsblk # Gerätenamen und Mountpunkte rausfinden | |||
lsblk -l # Gerätenamen rausfinden | |||
# Auflistung von Labels und UUIDs ausgeben: | |||
lsblk -o NAME,TYPE,SIZE,FSTYPE,LABEL,UUID | |||
hdparm -tT /dev/sdx # Laufwerksgeschwindigkeit feststellen | |||
=== | === Journal Logs === | ||
journalctl # Show system protocol | |||
journalctl -f # Show system protocol in real time like tail -f /var/log/syslog | |||
journalctl -b # Show protocol for last startup | |||
journalctl --since=yesterday | |||
journalctl -u <servicename> # Show protocol for given systemd-service, i.e.: | |||
journalctl -u systemd-timesyncd | |||
journalctl --disk-usage | |||
== Packen == | |||
Siehe [[Packen und Entpacken (Linux)]] | |||
== Entpacken == | |||
Siehe [[Packen und Entpacken (Linux)]] | |||
== Integrität prüfen == | |||
MD5 sollte nicht mehr genutzt werden. SHA256 geht auch: | MD5 sollte nicht mehr genutzt werden. SHA256 geht auch: | ||
Zeile 119: | Zeile 193: | ||
cat xxx.sha256 # Prüfusumme aus Datei xxx.sha256 ausgeben | cat xxx.sha256 # Prüfusumme aus Datei xxx.sha256 ausgeben | ||
== Netzwerk == | |||
hostname # Hostname des Computers | hostname # Hostname des Computers | ||
hostname -I # IP-Adresse des Computers | hostname -I # IP-Adresse des Computers | ||
ip addr # * IP-Adressen der Netzwerkadapter auflisten | |||
ifconfig -a # Alle Netzwerkadapter auflisten (auch inaktive) | ifconfig -a # Alle Netzwerkadapter auflisten (auch inaktive) | ||
ifconfig eth1 up|down # Netzwerkadapter ein- oder ausschalten | ifconfig eth1 up|down # Netzwerkadapter ein- oder ausschalten | ||
ifconfig eth1 -multicast # Multicast auf Adapter eth1 deaktivieren | ifconfig eth1 -multicast # Multicast auf Adapter eth1 deaktivieren | ||
ifconfig eth1 multicast # Multicast auf Adapter eth1 aktivieren | ifconfig eth1 multicast # Multicast auf Adapter eth1 aktivieren | ||
netstat -tulpe # Liste der offenen Ports mit Anwendungen und Usern anzeigen | |||
netstat -tulpen # * Liste der offenen Ports mit Anwendungen und Usern anzeigen, Ports und User numerisch anzeigen | |||
netstat -l # Listening Ports anzeigen | netstat -l # Listening Ports anzeigen | ||
netstat -l --inet | netstat -l --inet # Listening Ports anzeigen | ||
netstat -ln --tcp | netstat -ln --tcp # Listening TCP Ports (numeric) anzeigen | ||
netstat -i # Netzwerk Schnittstellentabelle anzeigen | netstat -i # Netzwerk Schnittstellentabelle anzeigen | ||
netstat -g # Multicast Gruppenzugehörigkeiten anzeigen | netstat -g # Multicast Gruppenzugehörigkeiten anzeigen | ||
netstat -a | netstat -a # Alle offenen Ports anzeigen | ||
nmap -v -A <host> # Offene Ports auf <host> anzeigen | netstat -napt # Alle offenen Ports und welche Prozess-IDs und Programmnamen diese nutzen / belegen | ||
nmap -v -A <host> # Offene Ports auf <host> anzeigen (langsam) | |||
slurm # Netzwerk stats | |||
== | == SSH / Secure Shell == | ||
=== Verbindung herstellen === | |||
ssh <server> # Mit <server> verbinden | ssh <server> # Mit <server> verbinden | ||
Zeile 142: | Zeile 223: | ||
# Mit <server> über <port> verbinden, und dabei <remoteport> durch den SSH Tunnel an localhost auf den <localport> umleiten | # Mit <server> über <port> verbinden, und dabei <remoteport> durch den SSH Tunnel an localhost auf den <localport> umleiten | ||
=== | === Dateien via SSH kopieren === | ||
scp user@server:/from/remote/dir/* /to/local/dir | scp user@server:/from/remote/dir/* /to/local/dir | ||
Zeile 151: | Zeile 232: | ||
rsync -rtv --progress -e "ssh -p PORT" user@server:/from/remote/dir/* /to/local/dir/ # Recursive, preserve times, verbose, show progress bar, use PORT for SSH | rsync -rtv --progress -e "ssh -p PORT" user@server:/from/remote/dir/* /to/local/dir/ # Recursive, preserve times, verbose, show progress bar, use PORT for SSH | ||
== Paketmanager und Programminstallation == | |||
apt-get update # Paketlisten aktualisieren | apt-get update # Paketlisten aktualisieren | ||
apt-get upgrade # Installierte Programme aktualisieren → Gefährlich! | apt-get upgrade # Installierte Programme aktualisieren → Gefährlich! | ||
apt-get install xxx # Programm xxx installieren | apt-get install xxx # Programm xxx installieren | ||
apt-get install xxx -t yyy # Programm xxx aus Release yyy installieren (Z. B. aus Backports) | apt-get install xxx -t yyy # Programm xxx aus Release yyy installieren (Z. B. aus Backports) | ||
dpkg -l # Liste installierter Programme anzeigen | |||
dpkg -l xxx # Ein paar Details zum installierten Programm xxx anzeigen | |||
dpkg -i xxx.deb # Paket xxx.deb installieren | dpkg -i xxx.deb # Paket xxx.deb installieren | ||
dpkg -s xxx # Status und mehr Details zum installierten Programm xxx anzeigen | dpkg -s xxx # Status und mehr Details zum installierten Programm xxx anzeigen | ||
dpkg -L xxx # Welche Dateien gehören zum Paket xxx? | dpkg -L xxx # Welche Dateien gehören zum Paket xxx? | ||
dpkg -S xxx # Zu welchem Paket gehört die Datei xxx? | dpkg -S xxx # Zu welchem Paket gehört die Datei xxx? | ||
dpkg -C # Konsistenzprüfungen der Datenbank | |||
dpkg -r xxx # Remove xxx | |||
dpkg -P xxx # Purge xxx (remove configfiles too) | |||
aptitude # Programm zur Paketverwaltung mit CLI-Interface | aptitude # Programm zur Paketverwaltung mit CLI-Interface | ||
aptitude search xxx # Pakete suchen, deren Name dem Suchstring xxx entspricht | aptitude search xxx # Pakete suchen, deren Name dem Suchstring xxx entspricht | ||
aptitude search '~o' # Obsolete Pakete suchen | |||
aptitude -t bprep install xxx # Paket xxx aus Backport-Repository bprep installieren | |||
Upgrade einer Debian-Distribution wird beschrieben in [[Debian-Upgrade]] | |||
=== Welche Unterverzeichnisse nutzt ein Programm? === | === Welche Unterverzeichnisse nutzt ein Programm? === | ||
Zeile 182: | Zeile 256: | ||
whereis xxx | whereis xxx | ||
== USB-Stick mit ISO-Image als Boot-Medium erstellen == | |||
Zuerst Laufwerksnamen herausfinden: | Zuerst Laufwerksnamen herausfinden: | ||
lsblk -o NAME,TYPE,SIZE,FSTYPE,LABEL,UUID | lsblk -o NAME,TYPE,SIZE,FSTYPE,LABEL,UUID # Variante 1 | ||
fdisk -l # Variante 2 | |||
Beispiel für Kopieren eines Debian-Installations-Hybrid-ISO-Images auf einen USB-Stick | Beispiel für Kopieren eines Debian-Installations-Hybrid-ISO-Images auf einen USB-Stick | ||
cp foo.iso /dev/sdX ← WICHTIG: nur das Gerät sdX verwenden, nicht die Partition sdXX | cp foo.iso /dev/sdX ← WICHTIG: nur das Gerät sdX verwenden, nicht die Partition sdXX | ||
Zeile 194: | Zeile 269: | ||
sync | sync | ||
== Kernelbefehle == | |||
rmmod nvidia # Kernelmodul nvidia ohne Reboot entladen | rmmod nvidia # Kernelmodul nvidia ohne Reboot entladen | ||
Zeile 206: | Zeile 275: | ||
dmesg # Auflistung des Kerneloutputs beim Bootvorgang | dmesg # Auflistung des Kerneloutputs beim Bootvorgang | ||
dmesg | grep -i 'test' # Im Kerneloutput nach 'test' suchen | dmesg | grep -i 'test' # Im Kerneloutput nach 'test' suchen | ||
lsmod | grep 'asdf' # Geladene Module ausgeben, Filtern nach 'asdf' | |||
== | == Energieverwaltung == | ||
$ xset dpms force on # Monitor ausschalten / Standby | |||
$ xset dpms force off # Monitor einschalten / Wakeup | |||
$ xset -q # Monitor Status abfragen (?) | |||
== Quellen == | |||
http://linuxcommand.org | |||
[[Category:Linux]] | |||
[[Category:Terminal]] |
Aktuelle Version vom 30. August 2024, 13:41 Uhr
Allgemein
pwd # Print Working Directory cat # Dateiausgabe less # Dateianzeige nano # Einfacher Texteditor ls # Verzeichnisinhalt anzeigen ls -l # Verzeichnisinhalt anzeigen, Langversion ls -a # Alle Dateien anzeigen (auch versteckte) tree -L 1 # Treelike list of directory with max depth file <file> # Dateiinhalt analysieren stat <file> # Status einer Datei anzeigen (Änderungszeit, Zugriffsrechte, etc.) cal -y # Textkalender: Monatlich aktuelles Jahr anzeigen cal -B1 -A1 # Textkalender: Aktuellen Monat, einen Monat davor, einen danach anzeigen export VAR=value # Umgebungsvariable VAR mit Wert value setzen env # Umgebungsvariablen anzeigen env | grep -i 'hallo' # In der Ausgabe von env nach eine Zeile suchen, die 'hallo' enthält watch -n 1 <command> # Programm <command> im Intervall von 1 Sekunde ausführen ln -s foo.txt . # Symbolische Verknüpfung auf foo.txt im lokalen Pfad erstellen cd - # Ins vorherige Verzeichnis wechseln
Befehlshistorie
history # Letzte Befehle ausgeben history -c # Historie löschen !123 # Befehl mit Nummer 123 in Historie ausführen !xyz # Letzten Befehl, der mit xyz begann, ausführen !?xyz # Letzten Befehl, der mit xyz endete, ausführen !?xyz? # Letzten Befehl, der xyz enthielt, ausführen
Viewer und Editoren
cat xxx # Datei xxx ausgeben less xxx # Datei im Dateibetrachter Less öffnen zless file.gz # Datei file.gz mit Dateibetrachter Less öffnen nano xxx # Datei xxx im Texteditor Nano öffnen vim xxx # Datei xxx im Texteditor VIM öffnen emacs xxx # Datei xxx im Texteditor EMACS öffnen
Datum und Uhrzeit
date # Datum und Systemzeit anzeigen watch -n 1 date # Im Intervall von einer Sekunde Datum und Uhrzeit ausgeben hwclock # Uhrzeit der Hardware-Uhr anzeigen hwclock --show --utc # Uhrzeit der Hardware-Uhr in UTC anzeigen cat /etc/timezone # Zeitzone anzeigen date +%T -s "10:00:00" # Uhrzeit auf 10:00:00 Uhr setzen hwlock -w # Uhrzeit auf aktuelle Systemzeit setzen
Datumswerte ausgeben:
echo $(date +%Y-%m-%d__%H-%M-%S) # Ausgabe von Datum im Format: 2020-12-31__23-59-59
Dienstverwaltung
service --status-all # Status aller Dienste anzeigen service xxx status # Status von Dienst xxx anzeigen service xxx start|stop|restart # Dienst xxx starten/stoppen/neustarten /etc/init.d/xxx start|stop|restart # Dienst xxx starten/stoppen/neustarten systemctl start|stop|status xxx # SystemD-Dienst xxx starten/stoppen/status systemctl disable xxx # Dienst xxx deaktivieren - wird beim Reboot nicht mehr automatisch gestartet systemctl enable xxx # Dienst xxx aktivieren - wird beim Reboot automatisch gestartet
Shutdown und Reboot
shutdown -h now shutdown -r now
Mit dem Parameter now
wird sofort neu gestartet. Der Default-Wert ist eine Minute.
Dateien suchen, finden, bearbeiten
Dateinamen suchen
grep -i 'hello world' file.txt # In file.txt zeilenweise nach 'Hello World' nicht # case-sensitiv suchen cat file.txt | grep -i 'hello world' # Gleiches Ergebnis wie in der vorangegangenen Zeile
locate file.foo # Speicherort von Datei file.foo suchen
find | grep -i 'file.txt' # Alle Dateien im und unterhalb vom aktuellen Verzeichnis # suchen, und im Suchergebnis die Zeichnenkette file.txt # nicht case-sensitiv suchen find -name '*filename*' # Nach filename im und unterhalb vom aktuellen Verzeichnis # case-sensitiv suchen find -iname '*filename*' # Nach filename im und unterhalb vom aktuellen Verzeichnis # nicht case-sensitiv suchen find -iname '*filename*' -exec rm {} + # Nach filename im und unterhalb vom aktuellen Verzeichnis # nicht case-sensitiv suchen und mit dem Suchergebnis rm # ausführen
find . -mtime +30 -delete # Dateien im akt. Verzeichnis suchen, die älter als 30 Tage # sind, und löschen find . -maxdepth 1 -mtime +30 -type d -exec rm -r {} + # Verzeichnisse im akt. Verzeichnis suchen, # die älter als 30 Tage sind, # und diese inkl. aller Unterverzeichnisse löschen
Dateilisten ausgeben
ls -ogRh dir1 # Liste von Dateien von dir1 ausgeben ohne User/Gruppe in menschenlesbarer Form ls -lh | cut -d" " -f5- # Von der Liste nur alle Spalten ab der 5. Spalte ausgeben (Trennzeichen/Delimiter = " ") ls -ogRh dir1 > file1.txt # Wie oben, aber Inhalt in Datei file1.txt schreiben (bestehende überschreiben) ls -ogRh dir1 >> file1.txt # Wie oben, aber Inhalt an Datei file1.txt anhängen
Suchen in Dateien
grep -rnw /path/to/somewhere/ -e "<pattern>" grep -rni "<pattern>" [directory]
Nach "Search-Text" in allen Dateien unterhalb von / suchen:
find / -type f -exec grep -H '<Search-Text>' {} \;
Ersetzen in Dateien
sed -i 's/jessie/stretch/g' filename # In Filename "jessie" finden und durch "stretch" ersetzen
Informationen
Ressourcen und Statistiken
free # RAM-Speicher Auslastung top # CPU-Nutzung, Uptime, RAM-Verbrauch htop # Top mit Balkendarstellung von Ressourcen glance # Umfangreichere Anzeige, als top und htop slurm # Speicher w # Angemeldete User / Sitzungen
Betriebssystem
uptime # Onlinezeit des Betriebssystems uname -a # Kernelversion, Bezeichnung und Hostname uname -r # Kernelname / Version cat /proc/version # Kernelversion cat /etc/issue # Name und Version der Distribution cat /etc/debian_version # Debian Versionsnummer cat /etc/os-release # Versionsnummer des Betriebssystemreleases hostnamectl # Kerlen-Version, Architektur, Systemname
Die Datei /etc/debian_version
ist im Paket base-files enthalten. Daher kann die installierte Debian-Version (und eine möglicherweise zur Verfügung stehende neuere Version) aus der Version des Pakets abgeleitet werden.
Additional programs, which need installation first:
screenfetch # Betriebssystemversion Uptime, Kernelversion, CPU, RAM neofetch # Betriebssystemversion Uptime, Kernelversion, CPU, RAM
Speicherplatz von Festplatte
df # Freier und belegter Plattenplatz in 1K-Blöcken df -h # Menschenlesbar in Potenzen von 1024 df -H # Menschenlesbar in Potenzen von 1000 (Entspricht Gnome-Anzeigen) df -T # Dateisystemtyp ausgeben
Speicherplatz von Verzeichnissen
du # Speicherverbrauch / Größe von Verzeichnissen du -h # Größe von Verzeichnissen, Menschenlesbar du -hs # Größe von Verzeichnissen, Menschenlesbar, Summarize (=Ohne Unterverzeichnisse) du -h -d 1 # Größe von Verzeichnissen, Menschenlesbar, Depth = 1 du -hd 1 du --si -d 1 # Wie -h, jedoch mit Potenzen von 1000 statt 1024 find <dir> -type f | wc -l # Anzahl Dateien im Verzeichnis <dir>
CPU
Damit Intel Turbo Boost in Linux funktioniert, muss es im BIOS aktiviert sein.
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq # Maximale CPU-Taktgeschwindigkeit inkl. Intel Turbo Boost cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq # Minimale CPU-Taktgeschwindigkeit inkl. Intel Turbo Boost cat /proc/cpuinfo # Infos zur CPU und aller Kerne anzeigen cat /proc/cpuinfo | grep -i 'cpu mhz' # Aktuelle CPU-Geschwindigkeit und aller Kerne anzeigen
Laufwerke
less /etc/fstab # Gemountete Laufwerke fsck -N /dev/xxx # ??? fdisk -l # Gerätenamen rausfinden, z. B. /dev/sdc1 lsblk # Gerätenamen und Mountpunkte rausfinden lsblk -l # Gerätenamen rausfinden # Auflistung von Labels und UUIDs ausgeben: lsblk -o NAME,TYPE,SIZE,FSTYPE,LABEL,UUID hdparm -tT /dev/sdx # Laufwerksgeschwindigkeit feststellen
Journal Logs
journalctl # Show system protocol journalctl -f # Show system protocol in real time like tail -f /var/log/syslog journalctl -b # Show protocol for last startup journalctl --since=yesterday journalctl -u <servicename> # Show protocol for given systemd-service, i.e.: journalctl -u systemd-timesyncd journalctl --disk-usage
Packen
Siehe Packen und Entpacken (Linux)
Entpacken
Siehe Packen und Entpacken (Linux)
Integrität prüfen
MD5 sollte nicht mehr genutzt werden. SHA256 geht auch:
sha256sum xxx # SHA256 Prüfsumme für Datei xxx erstellen. cat xxx.sha256 # Prüfusumme aus Datei xxx.sha256 ausgeben
Netzwerk
hostname # Hostname des Computers hostname -I # IP-Adresse des Computers ip addr # * IP-Adressen der Netzwerkadapter auflisten ifconfig -a # Alle Netzwerkadapter auflisten (auch inaktive) ifconfig eth1 up|down # Netzwerkadapter ein- oder ausschalten ifconfig eth1 -multicast # Multicast auf Adapter eth1 deaktivieren ifconfig eth1 multicast # Multicast auf Adapter eth1 aktivieren netstat -tulpe # Liste der offenen Ports mit Anwendungen und Usern anzeigen netstat -tulpen # * Liste der offenen Ports mit Anwendungen und Usern anzeigen, Ports und User numerisch anzeigen netstat -l # Listening Ports anzeigen netstat -l --inet # Listening Ports anzeigen netstat -ln --tcp # Listening TCP Ports (numeric) anzeigen netstat -i # Netzwerk Schnittstellentabelle anzeigen netstat -g # Multicast Gruppenzugehörigkeiten anzeigen netstat -a # Alle offenen Ports anzeigen netstat -napt # Alle offenen Ports und welche Prozess-IDs und Programmnamen diese nutzen / belegen nmap -v -A <host> # Offene Ports auf <host> anzeigen (langsam) slurm # Netzwerk stats
SSH / Secure Shell
Verbindung herstellen
ssh <server> # Mit <server> verbinden ssh -p<port> <server> # Mit <server> über <port> verbinden ssh -p<port> -L <localport>:localhost:<remoteport> <server> # Mit <server> über <port> verbinden, und dabei <remoteport> durch den SSH Tunnel an localhost auf den <localport> umleiten
Dateien via SSH kopieren
scp user@server:/from/remote/dir/* /to/local/dir scp -P PORT user@server:/from/remote/dir/* /to/local/dir # Use PORT for SSH rsync -rt user@server:/from/remote/dir/* /to/local/dir/ # Recursive, preserve times rsync -rt --progress user@server:/from/remote/dir/* /to/local/dir/ # Recursive, preserve times, show progress bar rsync -rtv --progress user@server:/from/remote/dir/* /to/local/dir/ # Recursive, preserve times, verbose, show progress bar rsync -rtv --progress -e "ssh -p PORT" user@server:/from/remote/dir/* /to/local/dir/ # Recursive, preserve times, verbose, show progress bar, use PORT for SSH
Paketmanager und Programminstallation
apt-get update # Paketlisten aktualisieren apt-get upgrade # Installierte Programme aktualisieren → Gefährlich! apt-get install xxx # Programm xxx installieren apt-get install xxx -t yyy # Programm xxx aus Release yyy installieren (Z. B. aus Backports) dpkg -l # Liste installierter Programme anzeigen dpkg -l xxx # Ein paar Details zum installierten Programm xxx anzeigen dpkg -i xxx.deb # Paket xxx.deb installieren dpkg -s xxx # Status und mehr Details zum installierten Programm xxx anzeigen dpkg -L xxx # Welche Dateien gehören zum Paket xxx? dpkg -S xxx # Zu welchem Paket gehört die Datei xxx? dpkg -C # Konsistenzprüfungen der Datenbank dpkg -r xxx # Remove xxx dpkg -P xxx # Purge xxx (remove configfiles too) aptitude # Programm zur Paketverwaltung mit CLI-Interface aptitude search xxx # Pakete suchen, deren Name dem Suchstring xxx entspricht aptitude search '~o' # Obsolete Pakete suchen aptitude -t bprep install xxx # Paket xxx aus Backport-Repository bprep installieren
Upgrade einer Debian-Distribution wird beschrieben in Debian-Upgrade
Welche Unterverzeichnisse nutzt ein Programm?
whereis xxx
USB-Stick mit ISO-Image als Boot-Medium erstellen
Zuerst Laufwerksnamen herausfinden:
lsblk -o NAME,TYPE,SIZE,FSTYPE,LABEL,UUID # Variante 1 fdisk -l # Variante 2
Beispiel für Kopieren eines Debian-Installations-Hybrid-ISO-Images auf einen USB-Stick
cp foo.iso /dev/sdX ← WICHTIG: nur das Gerät sdX verwenden, nicht die Partition sdXX sync
Alternative:
dd if=foo.iso of=/dev/sdX bs=4M ← WICHTIG: nur das Gerät sdX verwenden, nicht die Partition sdXX sync
Kernelbefehle
rmmod nvidia # Kernelmodul nvidia ohne Reboot entladen modprobe nouveau # Kernelmodul nouveau laden dmesg # Auflistung des Kerneloutputs beim Bootvorgang dmesg | grep -i 'test' # Im Kerneloutput nach 'test' suchen lsmod | grep 'asdf' # Geladene Module ausgeben, Filtern nach 'asdf'
Energieverwaltung
$ xset dpms force on # Monitor ausschalten / Standby $ xset dpms force off # Monitor einschalten / Wakeup $ xset -q # Monitor Status abfragen (?)