Command Line Interface-Befehle (Debian): Unterschied zwischen den Versionen

Aus MattWiki
 
(60 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Allgemein ===
== 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                   # Dateiinhalt analysieren
  tree -L 1              # Treelike list of directory with max depth
  cal                   # Textkalender
file <file>            # Dateiinhalt analysieren
  export                 # Umgebungsvariable setzen
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 ===
== 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


=== Ressourcen und Statistiken ===
== Viewer und Editoren ==
 
  cat xxx                # Datei xxx ausgeben
  free                  # RAM-Speicher Auslastung
  less xxx              # Datei im Dateibetrachter Less öffnen
  top                    # CPU-Nutzung, Uptime, RAM-Verbrauch
  zless file.gz          # Datei file.gz mit Dateibetrachter Less öffnen
  uptime                # Onlinezeit des Betriebssystems
  nano xxx               # Datei xxx im Texteditor Nano öffnen
 
  vim xxx                # Datei xxx im Texteditor VIM öffnen
=== Betriebssysteminformationen ===
  emacs xxx              # Datei xxx im Texteditor EMACS öffnen
 
  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
 
=== Datum und Uhrzeit ===


== 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
<br>
  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


=== Suchen und Finden ===
== 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 / Festplatte ===
=== 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 / Verzeichnisse ===
=== Speicherplatz von Verzeichnissen ===


  du                          # Speicherverbrauch / Größe von Verzeichnissen
  du                          # Speicherverbrauch / Größe von Verzeichnissen
Zeile 91: Zeile 149:
  du -h -d 1                  # Größe von Verzeichnissen, Menschenlesbar, Depth = 1
  du -h -d 1                  # Größe von Verzeichnissen, Menschenlesbar, Depth = 1
  du -hd 1
  du -hd 1
  find /dir -type f | wc -l   # Anzahl Dateien im Verzeichnis dir
du --si -d 1                # Wie -h, jedoch mit Potenzen von 1000 statt 1024
  find <dir> -type f | wc -l # Anzahl Dateien im Verzeichnis <dir>


=== Dateilisten ===
=== CPU ===
Damit Intel Turbo Boost in Linux funktioniert, muss es im BIOS aktiviert sein.


  ls -ogRh dir1                # Liste von Dateien von dir1 ausgeben ohne User/Gruppe in menschenlesbarer Form
  cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq      # Maximale CPU-Taktgeschwindigkeit inkl. Intel Turbo Boost
  ls -lh | cut -d" " -f5-     # Von der Liste nur alle Spalten ab der 5. Spalte ausgeben (Trennzeichen/Delimiter = " ")
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq      # Minimale CPU-Taktgeschwindigkeit inkl. Intel Turbo Boost
  ls -ogRh dir1 > file1.txt  # Wie oben, aber Inhalt in Datei file1.txt schreiben (bestehende überschreiben)
cat /proc/cpuinfo                                              # Infos zur CPU und aller Kerne anzeigen
  ls -ogRh dir1 >> file1.txt  # Wie oben, aber Inhalt an Datei file1.txt anhängen
  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 ==


=== Entpacken ===
Siehe [[Packen und Entpacken (Linux)]]


tar xfv foo.tar.gz
== Entpacken ==
tar -xjf foo.tar.bz2
Siehe [[Packen und Entpacken (Linux)]]
tar -xvJf foo.tar.xy
tar -xvJf foo.tar.xz
bunzip2 foo.tar.bz2


=== Integrität prüfen ===
== Integrität prüfen ==


MD5 sollte nicht mehr genutzt werden. SHA256 geht auch:
MD5 sollte nicht mehr genutzt werden. SHA256 geht auch:
Zeile 114: Zeile 193:
  cat xxx.sha256        # Prüfusumme aus Datei xxx.sha256 ausgeben
  cat xxx.sha256        # Prüfusumme aus Datei xxx.sha256 ausgeben


=== Netzwerk ===
== 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 --inet   # Listening Ports anzeigen
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 -l                # Verbundene Sockets 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 ==


=== Secure Shell / SSH ===
=== Verbindung herstellen ===


  ssh <server>              # Mit <server> verbinden
  ssh <server>              # Mit <server> verbinden
Zeile 133: 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


=== Shutdown und Reboot (Sofort) ===
=== Dateien via SSH kopieren ===
 
shutdown -h now
shutdown -r now
 
=== Viewer und Editoren ===


  cat xxx                # Datei xxx ausgeben
  scp user@server:/from/remote/dir/* /to/local/dir
  less xxx              # Datei im Dateibetrachter Less öffnen
scp -P PORT user@server:/from/remote/dir/* /to/local/dir  # Use PORT for SSH
  nano xxx              # Datei xxx im Texteditor Nano öffnen
  rsync -rt user@server:/from/remote/dir/* /to/local/dir/    # Recursive, preserve times
  vim xxx                # Datei xxx im Texteditor VIM öffnen
  rsync -rt --progress user@server:/from/remote/dir/* /to/local/dir/    # Recursive, preserve times, show progress bar
  emacs xxx              # Datei xxx im Texteditor EMACS öffnen
  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 ===
== Paketmanager und Programminstallation ==
 
  apt-get update                   # Paketlisten aktualisieren
  apt-get update         # Paketlisten aktualisieren
  apt-get upgrade                 # Installierte Programme aktualisieren &rarr; Gefährlich!
  apt-get upgrade       # Installierte Programme aktualisieren &rarr; 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)
  dpkg -i xxx.deb        # Paket xxx.deb installieren
dpkg -l                          # Liste installierter Programme anzeigen
  dpkg -l xxx           # Ein paar Details zum installierten Programm xxx anzeigen
  dpkg -l xxx                     # Ein paar Details zum installierten Programm xxx anzeigen
  dpkg -s xxx           # Status und mehr Details zum installierten Programm xxx anzeigen
dpkg -i xxx.deb                  # Paket xxx.deb installieren
  dpkg -L xxx           # Welche Dateien gehören zum Paket xxx?
  dpkg -s xxx                     # Status und mehr Details zum installierten Programm xxx anzeigen
  aptitude               # Programm zur Paketverwaltung mit CLI-Interface
  dpkg -L xxx                     # Welche Dateien gehören zum Paket xxx?
  aptitude search xxx   # Pakete suchen, deren Name dem Suchstring xxx entspricht
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? ===
=== Welche Unterverzeichnisse nutzt ein Programm? ===


  whereis xxx
  whereis xxx
<br>
=== USB-Stick FAT32 formatieren ===
(Setzt mkfs.vfat voraus, welches im Paket dosfstools vorhanden ist)
apt-get install dosfstools
mkfs.vfat -F 32 /dev/<laufwerk>  # Gerätename mit fdisk -l rausfinden
xxx Dieser Eintrag ist nicht vollständig


=== USB-Stick als ISO-Image-Boot-Medium ===
== 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  &larr; WICHTIG: nur das Gerät sdX verwenden, nicht die Partition sdXX
  cp foo.iso /dev/sdX  &larr; WICHTIG: nur das Gerät sdX verwenden, nicht die Partition sdXX
Zeile 182: Zeile 269:
  sync
  sync


=== Energieverwaltung ===
== Kernelbefehle ==
 
$ xset dpms force on            # Monitor ausschalten / Standby
$ xset dpms force off          # Monitor einschalten / Wakeup
$ xset -q                      # Monitor Status abfragen (?)
 
=== Kernelbefehle ===


  rmmod nvidia                    # Kernelmodul nvidia ohne Reboot entladen
  rmmod nvidia                    # Kernelmodul nvidia ohne Reboot entladen
Zeile 194: 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'


=== CPU Informationen ===
== Energieverwaltung ==
 
  $ xset dpms force on            # Monitor ausschalten / Standby
Damit Intel Turbo Boost in Linux funktioniert, muss es im BIOS aktiviert sein.
  $ xset dpms force off          # Monitor einschalten / Wakeup
 
  $ xset -q                      # Monitor Status abfragen (?)
  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


=== Laufwerksinformationen ===


less /etc/fstab        # Gemountete Laufwerke
== Quellen ==
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


=== Dienstverwaltung ===
http://linuxcommand.org
 
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


[[Category:Debian]]
[[Category:Linux]]
[[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 (?)


Quellen

http://linuxcommand.org