Command Line Interface-Befehle (Debian)

Aus MattWiki

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)
file                   # Dateiinhalt analysieren
cal                    # Textkalender
export                 # Umgebungsvariable 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
history                # Letzte Befehle ausgeben
!123                   # Befehl mit Nummer 123 in Historie ausführen
!xyz                   # Letzten Befehl, der xyz enthielt, ausführen
cd -                   # Ins vorherige Verzeichnis wechseln


Ressourcen und Statistiken

free                   # RAM-Speicher Auslastung
top                    # CPU-Nutzung, Uptime, RAM-Verbrauch
uptime                 # Onlinezeit des Betriebssystems


Betriebssysteminformationen

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

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

Suchen und Finden

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


Speicherplatz / 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 / Verzeichnisse

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


Dateilisten

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

Entpacken

tar xfv foo.tar.gz 
tar -xjf foo.tar.bz2
tar -xvJf foo.tar.xy
tar -xvJf foo.tar.xz
bunzip2 foo.tar.bz2

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
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 -i                # Netzwerk Schnittstellentabelle anzeigen
netstat -g                # Multicast Gruppenzugehörigkeiten anzeigen
netstat -l                # Verbundene Sockets anzeigen

Shutdown und Reboot (Sofort)

shutdown -h now
shutdown -r now

Viewer und Editoren

cat xxx                # Datei xxx ausgeben
less xxx               # Datei im 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

Paketmanager und Programminstallation

apt-get update         # Paketlisten aktualisieren
apt-get upgrade        # Installierte Programme aktualisieren → Gefährlich!
apt-get install xxx    # Programm xxx installieren
dpkg -i xxx.deb        # Paket xxx.deb installieren
dpkg -l xxx            # Ein paar 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?
aptitude               # Programm zur Paketverwaltung mit CLI-Interface
aptitude search xxx    # Pakete suchen, deren Name dem Suchstring xxx entspricht

Welche Unterverzeichnisse nutzt ein Programm?

whereis xxx

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

Zuerst Laufwerksnamen herausfinden:

lsblk -o NAME,TYPE,SIZE,FSTYPE,LABEL,UUID

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

Energieverwaltung

$ 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
modprobe nouveau                # Kernelmodul nouveau laden
dmesg                           # Auflistung des Kerneloutputs beim Bootvorgang
dmesg | grep -i 'test'          # Im Kerneloutput nach 'test' suchen


CPU Informationen

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


Laufwerksinformationen

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


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