Command Line Interface-Befehle (Debian): Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) |
||
(111 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Allgemein == | |||
pwd # Print Working Directory | pwd # Print Working Directory | ||
cat # Dateiausgabe | cat # Dateiausgabe | ||
Zeile 7: | 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 | ||
date # Datum und Systemzeit | 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 <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 | |||
# case-sensitiv suchen | |||
cat file.txt | grep -i 'hello world' # Gleiches Ergebnis wie in der vorangegangenen Zeile | |||
<br> | |||
locate file.foo # Speicherort von Datei file.foo suchen | |||
<br> | |||
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 | |||
<br> | |||
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 | free # RAM-Speicher Auslastung | ||
top # CPU-Nutzung, Uptime, RAM-Verbrauch | top # CPU-Nutzung, Uptime, RAM-Verbrauch | ||
uname -a | htop # Top mit Balkendarstellung von Ressourcen | ||
cat /etc/debian_version# Debian Versionsnummer | glance # Umfangreichere Anzeige, als top und htop | ||
cat /etc/ | 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 -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 | 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 | Beispiel für Kopieren eines Debian-Installations-Hybrid-ISO-Images auf einen USB-Stick | ||
cp foo.iso /dev/sdX | cp foo.iso /dev/sdX ← WICHTIG: nur das Gerät sdX verwenden, nicht die Partition sdXX | ||
sync | sync | ||
Alternative: | Alternative: | ||
dd if=foo.iso of=/dev/ | dd if=foo.iso of=/dev/sdX bs=4M ← WICHTIG: nur das Gerät sdX verwenden, nicht die Partition sdXX | ||
sync | sync | ||
[[Category: | == 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 (?) | |||
== 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 (?)