Command Line Interface-Befehle (Debian): Unterschied zwischen den Versionen
Aus MattWiki
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) |
||
Zeile 208: | Zeile 208: | ||
sync | sync | ||
== Energieverwaltung == | |||
$ xset dpms force on # Monitor ausschalten / Standby | $ xset dpms force on # Monitor ausschalten / Standby |
Version vom 31. Juli 2017, 19:20 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) file # Dateiinhalt analysieren cal -y # Textkalender: Monatlich aktuelles Jahr anzeigen cal -B1 -A1 # Textkalender: Aktuellen Monat, einen Monat davor, einen danach anzeigen 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 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
Ressourcen und Statistiken
free # RAM-Speicher Auslastung top # CPU-Nutzung, Uptime, RAM-Verbrauch htop # Top mit Balkendarstellung von Ressourcen
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 cat /etc/os-release # Versionsnummer des Betriebssystemreleases uptime # Onlinezeit des Betriebssystems screenfetch # Bash Screenshot Information Tool
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
Suchen und ersetzen
sed -i 's/jessie/stretch/g' filename # In Filename "jessie" finden und durch "stretch" ersetzen
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 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
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
Packen
tar -zcvf archive-name.tar.gz directory-name
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 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)
Secure Shell / SSH
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
Kopieren via SSH
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
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 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
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? 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 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
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 systemctl start|stop|status xxx # SystemD-Dienst xxx starten/stoppen/status