# Terminal Befehle ## Übersicht
BefehlBeispielBeschreibung
cat`cat /etc/fstab`Ausgabe von Text- und Konfigurationsdateien
chmod`chmod -R 777 ~/Dokumente`ändert die Berechtigungen einer Datei oder Ordner
`chmod +x dateinahme`macht eine Datei ausführbar
touch`touch file1.md` erstellt eine leere Datei
cp`cp mein.pdf ~/Schreibtisch`kopieren
mv`mv datei.txt datei.old`Benennt eine Datei um
`mv /mnt/transfer/text.txt /ort/text.txt`Datei verschieben
rm`rm /home/sepp/*.jpg`löscht alle jpg dateien in Sepp (löschen)
du`du /home/sepp/bilder`ermittelt den Speicherplatz eines Ordners
mkdir`mkdir /home/sepp/dokumente`Erstellt einen Ordner
rmdir`rmdir /media/data/bilder`löscht Ordner
find`find / -name logs` `find / -name logs 2>/dev/null` Findet Dateien mit dem namen Logs Durch die Erweiterung werden Fehlermeldungen die in Ausgabe 2 ausgegeben werden an /dev/null geschickt. Somit werden Fehlermeldungen nicht mehr angezeigt
find . -user dan Sucht alle Dateien die dem User dan gehören
`find . -executable -type f` Findet Dateien, die ausführbar sind
locate`locate logs` Ähnlich wie find
grep`grep 500 access.log` Um innerhalb von dateien zu suchen. In dem Beispiel werden in access.log die Einträge mit 500 angezeigt
`grep -R password` Suche im aktuellen Ordner mit allen unterordnern
less`less log.txt` Damit können Dateien durchsucht werden Wenn man in Less &404 eingibt werden nur Zeilen mit dme inhalt 404 angezeigt. Benenden mit !
man`man grep` Hilfe zu Befehlen
tree`tree /home`Alternative zu ls
rsync`rsync -au /home/sepp/ /media/USB/Backup``kopiert, aktualisiert ("-u"), spiegelt ("--delete") verzeichnise rekursiv ("-a") im lokalen Dateisystem und Netzwerk (ähnlich wie robocopy)`
`rsync -a -r --delete /home/sepp /mnt/paperless_backup`
`rsync -au --delete --dry-run /home/sepp/ /media/sepp/USB/Backup`-dry-run dient als Simulation und vorabtest
tar`tar -czf 2022_02_12 /home/sepp/``komprimiert Ordner und Dateien. -c steht für create, -z für platzsparende gzip-Komprimierung, -f sorgt für rekursiven Umfang. Der Name des Archivs folgt nach den Schaltern, am Ende der Pfad der Quelldateien.`
`tar -xf 2022-02-12`schalter -x entpackt Tar-Archive
*System*
hostname liefert Servername oder Computername des Systems
shutdown / reboot`reboot now`Fährt das system herunter oder Starte neu
`shutdown 22:00`Herunterfahren zu einem bestimmten Zeitpunkt
which`which poweroff`ermittelt den Systempfad eines Programms
whereis`whereis python3`liefert auch noch weitere zu Pfade zu Bibliotheken oder Manpages
serviceservice --status-allinformiert über aktive und inaktive systemdienste und bietet deren Steuerung an.
service docker statusFür den Dienst bestimmte Aktionen (auch stop, restart)
systemd-analyze Es protokolliert detailliert den Bootprozess und kann die Ursache von Bootverzögerungen entlarven.
`python3 -m http.server 4444` `Python Server zum bereitstellen von dateien im aktuellen Ornder`
passwd Passwort ändern
lsblk Festplatten anzeigen lassen
ls zeigt den Inhalt des aktuellen Verzeichnisses an
ls -a zeigt alle Inhalte an, auch die versteckten (beginnen mit einem Punkt)
ls -l zeigt den Inhalt des Verzeichnisses im Detail mit Zusatzinformationen an
ls -la kombiniert die Optionen -l und -a
ls bin zeigt das Unterverzeichnis bin oder eine Datei namens bin im aktuellen Verzeichnis an
pwd zeigt das aktuelle Verzeichnis an
cd /etc wechselt in das Verzeichnis /etc
cd ../bin wechselt eine ebene höher und von dort in das Unterverzeichnis bin
cd - wechselt in das vorhergehende Verzeichnis
cd wechselt in das Homeverzeichnis des aktuellen Benutzers
mkdir bin erstellt ein Unterverzeichnis bin
nano [HelloWorld.py](http://helloworld.py/) ruft den Editor nano mit der angegebenen Datei auf (wird ggf. erstellt)
cat [HelloWorld.py](http://helloworld.py/) zeigt die (Text-)Datei [HelloWorld.py](http://helloworld.py/) an
mv [HelloWorld.py](http://helloworld.py/) [helloworld.py](http://helloworld.py/) benennt die Datei von [HelloWorld.py](http://helloworld.py/) in [helloworld.py](http://helloworld.py/) um
mv [helloworld.py](http://helloworld.py/) ../ verschiebt die angegebene Datei in das übergeordnete Verzeichnis
cp [helloworld.py](http://helloworld.py/) bin/HelloWorld.py kopiert die angegebene Datei an die angegebene Stelle
rm [helloworld.py](http://helloworld.py/) löscht die angegebene Datei
which python zeigt den Pfad zum angegebenen Programm
python3 [HelloWorld.py](http://helloworld.py/) ruft [HelloWorld.py](http://helloworld.py/) mit dem Python3-Interpreter auf
chmod +x [HelloWorld.py](http://helloworld.py/) ergänzt das Ausführen-Recht für alle Benutzer für die angegebene Datei
echo $PATH zeigt den Inhalt der Variablen PATH an
PATH='/root/bin':$PATH fügt der Variablen PATH vorn /root/bin an
apt-get install kate installiert das Paket kate
### Dateisystem
PfadBezeichnung
/binEnthält Programm des Betriebssystems
/homeNutzerverzeichnisse
/optAnwendungen von Drittanwendern (apt…)
/usrEnhält Anwendungen die vom Admin auf dem System gebaut wurden und Programmbibliotheken
/etcEnhält anwendungszugehörige Dateien zum Konfigurieren
/varEnthält häufig veränderte Dateien (Logs/Temp)
/devSeht für Devices.
/mnt
### Geräte Mounten lsblk > Zeigt an welche Festplatten es gibt mkdir usbstick > Erstellt einen Ordner in dem die dateien angezeigt werden sollen sudo mount /dev/sdb1 usbstick > Mounted den USB-Stick in den Ordner usbstick # Find ``` ## Dateien suchen ### Dateien mit einem bestimmten Namen find /pfad/zum/ordner -tpye f -iname "*string*.*" ### Dateien mit bestimmten Namen die Zuletzt bearbeitert wurden find /pfad/zum/ornder -type f -iname "*string*.*" -exec ls -lt {} + **Nur die letzten 10** find /pfad/zum/ordner -type f -iname "*suchstring*.*" -exec ls -lt {} + | head -10 ### Inhalt durchsuchen find /pfad/zum/ordner -type f -exec grep -l "dein_inhalt" {} + ``` Dateien Suchen ``` find /home/dapelza/Nextcloud -type f -name „*.ods“ -exec stat -c „%y %n“ {} + | sort -r | head -n 10 ``` ## Texteditor nano
**Befehl****Beschreibung**
Crtl + XVerlassen
Crtl + 6Marieren
ALT + 6Kopieren
Crtl + UEinfügen
Crtl + KAusschneiden
Alt + URückgängig
Alt + EWiederholen
Crtl + WSuchen
Esc + BZum umschalten (Toogle)
Crtl + \\Suchen + Ersetzen
Crtl + GHilfe
Crtl + RWeitere Datei öffnen (vorher mit Esc - F) Dann würd eine neue Datei geöffnet. Mit Crtl + T Browser öffnen
Alt + < oder >Zwischen den geöffneten Dateien wechseln
Esc - X Hilfe ein und ausschalten
Esc - C Zeilennummer anschauen lassen
Esc - PKontrollmarker anzeigen lassen
Esc - O Stellt den Tabulator um
Esc - YSyntaxhighlighting
Crtl + TAusführen
Nano mit der Konfigurationsdatei anpassen nano /etc/nanorc z. B. Zeilennummern anzeigen lassen set linenumbers ## Texteditor vi
Befehl Kommentar
`vi` `vi file1.md` Startet den vi Editor (sofern installiert)
`i` startet den Insert Mode
`esc` Insertmode wird beendet
`:wq` Datei schreiben und beenden
## Bash konfigurieren ## System ### Informationen anzeigen ``` `cat/etc/*_ver* /ect/*-rel*` ``` ## Terminal-Interna
BefehlBeschreibung
bind Tastenbelegung im Terminal. *Beispiel* `bind '"\C_L":kill-whole-line' "\\C" = Strg, "\\e" = Alt, "\\n" = Enter` `Bind-Befehle können Sie interaktiv ausprobieren. Sie gelten bis zum Schließen des Terminals. Für permanente Gültigkeit benötigen Sie einen Eintrag in der „\~/.bashrc“.`
**Dauerhaftes einbinden** `~/.bash_aliases` bearbeiten | Befehle und tastenkombinatinen hinterlegen | `alias checkupdates='sudo apt-get update && sudo apt-get upgrade -y'`
file **Beschreibung:** ermittelt den Dateityp und die genauen inhaltlichen Dateieigenschaften
htop **Beschreibung:** Taskmanager für den Terminal
**Festplatte**
hdparm -c /dev/sda Festplatte überprüfen
hdparm -Y /dev/sda Festplatte geht in den StandbyModus
ls -la /dev/disk/by-id/ zeigt alle Festplatten mit der ID an.
nano /etc/hdparm.conf
## Weitere Dienste ### Datenträger Klonen ```shell sudo dd if=/dev/sda of=/dev/sdb # if = Quelle of = Ziel # Mit Status: sudo dd if=/dev/sda of=/dev/sdb stauts=progress ``` ### Datenträger formatieren ``` # Datenträger anzeigen sudo fdisk -I # Formatieren in ext4 mkfs.ext4/dev/sdb1 # Damit wir der Datenträger sdb1 in ext4 formatiert. mkfs steht für make filesystem ``` Formatieren mit GParted ``` # GParted installieren apt install parted # F unmount /dev/sdb1 ``` ### Linux in deutsch **Systemsprache umstellen** `sudo dpkg-reconfigure locales` **Tastatur Layout umstellen** `sudo dpkg-reconfigure keyboard-configuration` ### Paketdienst installieren $ sudo apt update && sudo apt install snapd Installiert Snap ### Programme mit Snap installieren sudo snap install onionshare ### Metadaten aus Dateien (PDF) entfernen ``` > exiftool -all:all= datei-print.pdf Warning: [minor] ExifTool PDF edits are reversible. Deleted tags may be recovered! 1 image files update > qpdf --linearize datei-print.pdf datei-clean.pdf > rm datei-print.pdf ``` Mit dem Befehl kann man die Daten überprüfen: `exiftool -all:all datei-clean.pdf` ### Administrator `sudo -s` ### SSH auf Container aktivieren Datei: `/etc/ssh/sshd_config` Authentication: `PermitRootLogin yes `