01.06.2021 / 28.12.2022

Das Terminal - eine Einführung


Einstieg

Das Terminal ist eine Kommandozentrale, die absolut simpel aufgebaut ist, man sieht nur Textein- oder ausgaben. Allerdings kann man mit diesem Tool praktisch alles im System abfragen oder ändern.
Ich erinere mich gut an meine ersten Begegnungen und an die vielen Momente, in denen ich einfach nicht weiterkam. Daher möchte ich allen Interessierten Mut machen: Habt keine Berührungsängste! Hier gibt's Abhilfe.

Ubuntu Terminal
Ubuntu Terminal

Auch sehr tiefgreifende Dinge lassen sich mithilfe des Terminals ändern. Eine Rückfrage im Sinne von: 'Sind sie sicher, dass Sie das löschen wollen?' erfolgt nicht! Respekt sei also empfohlen. Am besten ist es natürlich immer, sich im Vorfeld schlau zu machen, um sich böse Überraschungen zu ersparen.
Eine Bedienoberfläche mit graphischen Elementen, Schaltflächen oder ähnlichem gibt es nicht. Alles wird als Text-Befehl eingegeben. Das ist etwas gewöhnungsbedürftig, macht die Verarbeitung aber extrem schnell.

Zahlreiche Befehle sind von vorneherein verfügbar, andere können nachträglich installiert werden. Dabei kommen sowohl kleinste Programme zur Befehlsverarbeitung als auch komplexe Applikationen mit graphischer Oberfläche in Frage.

Das Terminal lässt sich wie alle Programme über die Anwendungen öffnen.
STRG + ALT + T ist die Tastenkombination zum Starten des Terminals.
STRG + Umschalttaste + Q schließt das Terminal.

Um einen Befehl zu aktivieren, drückt man einfach die Eingabetaste

Je nach Bildschirm finde ich die Schrift manchmal etwas klein. Um das und weitere Einstellungen zu ändern gelangt man über das Menü (die drei Striche oben rechts) zu den Einstellungen. Hier kann man nun unter Profil Schriftgröße, Farben und Weiteres anpassen und als persönliches Profil speichern

Terminal-Menü
Terminal-Menü

Häufig kopiert man Befehle aus Seiten wie dieser und möchte sie dann ins Terminal einfügen. Das funktioniert zwar mit Rechtsklicks (Trackpad: Zweifinger-Tip), möchte man jedoch Tastenkombinationen verwenden, sind diese innerhalb des Terminals etwas anders:
STRG + Umschalttaste + C zum Kopieren,
STRG + Umschalttaste + V für das Einfügen.

STRG + C beendet in der Regel einen laufenden Prozess innerhalb des Terminals, es sei denn es ist anders angegeben.

Ich beschränke mich hier nur auf eine Auswahl von Befehlen. Eine recht ausführliche, allerdings englischsprachige Auflistung findet sich unter gnu.org.

Grundlegende Befehle

Zu allen gelisteten Befehlen gibt es ergänzende Angaben, auf die ich hier nur punktuell eingehe. So gibt z.B. ls Ordner und Dateien wieder,
ls -a hingegen listet auch versteckte Elemente mit auf.

Für so gut wie alle Befehle gilt, dass die Kombination aus
[Befehl] --help eine Übersicht zu allen Optionen ausgibt.

whoami

whoami
Gibt den Namen des aktuell angemeldeten Nutzers zurück.
whoami

date

date
Gibt das aktuelle Datum und die Uhrzeit zurück.

list

ls
Listet alle Dateien und Ordner in dem Verzeichnis, in dem man sich gerade befindet auf.
Hinweis: Ausgangspunkt, an dem man sich nach dem Öffnen des Terminals 'befindet' ist zunächst immer das eigene home-Verzeichnis (= persönlicher Ordner)

ls -1
listet dieselben Elemente auf, allerdings mit nur einem Element pro Zeile (manchmal übersichtlicher)

ls -a
listet auch versteckte Elemente auf.

change directory

cd
Wechselt in ein anderes Verzeichnis
Hinweis: Ausgangspunkt, an dem man sich nach dem Öffnen des Terminals 'befindet' ist zunächst immer das eigene home-Verzeichnis (= persönlicher Ordner)

Beispiele

cd Dokumente
Wechselt ins Verzeichnis 'Dokumente'

cd ../
Wechselt ins übergeordnete Verzeichnis

cd
(Ohne weitere Angaben) Wechselt ins Home-Verzeichnis des angemeldeten Benutzers.

print working directory

pwd
Zeigt den Pfad des Verzeichnisses, in dem man sich gerade befindet.

find

find
Findet den angegebenen Suchbegriff im aktuellen Verzeichnis.

Beispiele

find (ohne weitere Angaben)
Listet Ordner und Dateien des aktuellen Verzeichnisses auf.

find Musik
Listet alle Ordner und Dateien im Verzeichnis 'Musik' auf.

find Musik -type d
Listet nur Ordner (directories) im Verzeichnis 'Musik' auf.

find Musik -type f
Listet nur Dateien (files) im Verzeichnis 'Musik' auf.

find -iname beispiel.txt
Sucht nach der Datei 'beispiel.txt' im aktuellen Verzeichnis und Unterverzeichnissen.
(Das 'i' in '-iname' gibt vor, dass Groß- und Kleinschreibung ignoriert werden, also auch 'BEISPIEL.TXT' gefunden würde. Will man die exakte Schreibweise finden, verwendet man stattdessen '-name'.)

find Musik -iname lovesong.mp3
Sucht nach 'lovesong.mp3' im Verzeichnis 'Musik' und dessen Unterverzeichnissen.

find /usr/share -iname hardy_wallpaper_uhd.png
Sucht die angegebene Datei im angegebenen (übergeordneten) Verzeichnis.

tree

tree
Zeigt den Verzeichnisbaum (Ordnerstruktur) des Verzeichnisses, in dem man sich gerade befindet.

Beispiele

tree Dokumente
Zeigt einen Verzeichnisbaum für das Unterverzeichnis 'Dokumente' an

tree -d
Zeigt nur Ordner an, keine Dateien

tree -L [Zahl]
Zeigt nur die angegebene Anzahl von Ebenen an

tree -dL 1 Musik
Zeigt nur Ordner der ersten Ebene aus dem Unterverzeichnis 'Musik' an, keine Dateien

copy

cp
Kopiert Dateien oder Ordner von einem Verzeichni in ein anderes.

Beispiele

cp Download/beispiel.txt Dokumente
Kopiert die Datei 'beispiel.txt' aus dem Ordner 'Downloads' in den Ordner 'Dokumente'

cp Dokumente/beispiel.txt Dokumente/beispiel_neu.txt
Erstellt eine Kopie von 'beispiel.txt im Ordner 'Dokumente' und benennt sie 'beispiel_neu.txt'

cp *.txt /home/name/backup
Kopiert alle Dateien, die auf '.txt' enden aus dem aktuellen Verzeichnis in das Verzeichnis '/home/name/backup'

cp * /home/name/backup
Kopiert alle Dateien aus dem aktuellen Verzeichnis in das Verzeichnis '/home/name/backup'

move

mv
Verschiebt Ordner oder Dateien. Im Unterschied zu cp (copy) wird die ursprüngliche Datei nicht beibehalten.

Beispiele

mv Download/beispiel.txt Dokumente
Verschiebt die Datei 'beispiel.txt' aus dem Ordner 'Downloads' in den Ordner 'Dokumente'

mv *.txt /home/name/backup
Verschiebt alle Dateien, die auf '.txt' enden aus dem aktuellen Verzeichnis in das Verzeichnis '/home/name/backup'

mv * /home/name/backup
Verschiebt alle Dateien aus dem aktuellen Verzeichnis in das Verzeichnis '/home/name/backup'

mv Dokumente/beispiel.txt Downloads/example.txt
Verschiebt die Datei 'beispiel.txt' in das Verzeichnis 'Downloads' und benennt sie in 'example.txt' um

mv /home/name/backup /home/name/Sicherung
Benennt das Verzeichnis 'backup' in 'Sicherung' um

remove

rm
Entfernt/löscht Dateien oder Verzeichnisse
Achtung: Es erfolgt keine Nachfrage oder Bestätigung! Der Befehl wird sofort ausgeführt.

Beispiele

rm beispiel.txt
Löscht die Datei 'beispiel.txt' aus dem aktuellen Verzeichnis

rm -i beispiel.txt
Löscht die benannte Datei und fragt vorher zur Bestätigung nach

rm -r Sicherung_Alt
Löscht das Verzeichnis 'Sicherung_Alt' und alle darin enthaltenen Unterverzeichnisse und Dateien. Verzeichnisse können überhaupt nur mit dem Zusatz '-r' gelöscht werden.

Change Mode

chmod
Ändert die Zugriffsrechte auf eine Datei/ein Verzeichnis.

chmod +r [Pfad/Dateiname]
Erteilt Leserechte für die Datei. Das + bewirkt das Hinzufügen der Rechte, ein - würde die entsprechenden Rechte entziehen.

chmod +w [Pfad/Dateiname]
Erteilt Schreibrechte für die Datei.

chmod +x [Pfad/Dateiname]
Macht die Datei ausführbar.

make directory

mkdir
Erstellt ein neues Verzeichnis

Beispiel

mkdir /home/name/Dokumente/Sicherung_neu
Erstellt ein Verzeichnis namens 'Sicherung_neu' im Ordner 'Dokumente'.

inxi

inxi
Gibt Informationen zur verwendeten Hardware zurück.
Hinweis: Auf Groß- und Kleinschreibung achten!

inxi
(Ohne weitere Angaben) Eine Zusammenfassung der wichtigsten Informationen

inxi -C
Informationen zur CPU

inxi -m
Informationen zum Arbeitsspeicher

inxi -D
Informationen zu den Laufwerken/Festplatten

inxi -B
Informationen zum Akku/Batterie

inxi -G
Informationen zur Graphikkarte

inxi -A
Informationen zu Audioausgabe/Soundkarte

inxi -F
Lange Liste zu zahlreichen Komponenten

list hardware

lshw
Liefert sehr ausführliche Informationen zu allen aktiven Hardwarekomponenten.

lshw -short
Liefert etwas verkürzte Informationen zu allen aktiven Hardwarekomponenten.

lscpu
Liefert Informationen zur Prozessorarchitektur.

lspci
Liefert Informationen zu den aktiven PCI-Steckkarten und den daran angeschlossenen Komponenten.

lsusb
Liefert Informationen zu den aktiven USB-Anschlüssen.

lsusb -t
Liefert Informationen zu den aktiven USB-Anschlüssen und stellt diese als Baumverzeichnis dar.

uname

uname
Liefert Informationen über das verwendete Betriebssytem

uname -a
Gibt eine ausführlichere, aber dennoch kurze Zusammenfassung der wichtigsten Informationen zurück.

xinput

xinput
Liefert Informationen über die angeschlossenen Eingabegeräte und kann diese konfigurieren.

xinput
(Ohne weitere Angaben) Gibt eine Übersicht über die angeschlossenen Eingabegeräte zurück wobei jedes Gerät eine eigene ID erhält.

xinput disable [id]
Deaktiviert das Gerät mit der angegebenen ID.

xinput enable [id]
(Re-) Aktiviert das Gerät mit der angegebenen ID.

disk free

df
Liefert Informationen zum freien (und zum verwendeten) Speicherplatz der eingehängten Laufwerke.

df -h
Gibt die Informationen in einem besser lesbaren Format (GB, MB etc.) wieder

df [PARTITION]
Liefert Informationen zum Speicherplatz der angegebenen Partition.

Beispiel
df -h /dev/sda1
Liefert Informationen zum Speicherplatz auf der Partition sda1 in einem besser lesbaren Format.

clear

clear
Bereinigt das Fenster und startet neu in der ersten Zeile.

history

history
Listet und numeriert die zuletzt eingegebenen Befehle.

history -c
Löscht die Historie.

System

sudo

sudo
Ermöglicht das Ausführen von Befehlen, die Root-Rechte voraussetzen. Viele Eingaben, die potentiell einen Eingriff in relevante Bereiche des Systems ermöglichen werden hiermit geschützt. Zur Verwendung ist die Passworteingabe des Administrators notwendig.
(In der Regel ist derjenige Nutzer, der das System installiert hat Administrator)

Syntax

sudo [Befehl]

Advanced packkage tool

apt
Debian-basierte Systeme nutzen diesen Befehl zur Paketverwaltung, also zum Hinzufügen, Aktualisieren und Entfernen von Software.
apt wird immer im Zusammenhang mit weiteren, ergänzenden Angaben genutzt. Zur Ausführung sind Root-Rechte notwendig, es muss also sudo vorangestellt und das Passwort eingegeben werden.

sudo apt update
Liest die neusesten Paketlisten ein. Sollte dringend vor jeder Installaion ausgeführt werden, da man sonst evtl. veraltete Versionen zur Verfügung gestellt bekommt.
Mit sudo apt update [Paketname] beschränkt man das Einlesen auf das angegebene Paket.

sudo apt upgrade
Aktualisiert alle Programme und Systemanwendungen, die über die apt-Bibliothek installiert wurden.

sudo apt full-upgrade
Aktualisiert alle Programme und Systemanwendungen, die über die apt-Bibliothek installiert wurden und installiert zusätzlich neue Abhängigkeiten, falls verfügbar.

sudo apt install [Applikationsname]
z.B. sudo apt install firefox
Installiert die angegebene Anwendung inklusive notwendiger Abhängigkeiten.

sudo apt remove [Applikationsname]
Entfernt die angegebene Anwendung inklusive notwendiger Abhängigkeiten.

sudo apt purge [Applikationsname]
Entfernt die angegebene Anwendung inklusive notwendiger Abhängigkeiten und aller dazugehöriger Konfigurationsdateien z.B. so etwas wie persönliche Programmeinstellungen.

sudo apt autoremove
Entfernt nicht (mehr) benötigte Pakete.

reboot

reboot
Fährt das System herunter und startet es neu.

reboot -p
Fährt das System herunter (ohne Neustart).

Programme

nano

nano
Öffnet eine Datei zur Bearbeitung direkt im Terminal.

nano [Pfad/Dateiname] Öffnet die angegebene Datei.

Navigation im Text mit den Pfeiltasten.
STRG + O zum Speichern und
STRG + X zum Beenden

gedit

gedit
Öffnet einen Texteditor, der genutzt werden kann, um Systemdateien anzuzeigen oder zu bearbeiten.
Für schreibgeschützte Dateien muss hierbei sudo vorangestellt werden.

sudo gedit [Pfad/Dateiname]
Öffnet eine Datei, so dass sie direkt im Editor bearbeitet werden kann.

neofetch

neofetch
Mit neofetch lassen sich die wichtigsten Daten des Systems anzeigen. Da gleichzeitig auch eine Graphik (ascii art) mit dem Symbol des Betriebssystems angezeigt wird, ist es sehr beliebt und weit verbreitet. Wer mag kann es sich auch selbst konfigurueren. Infos dazu erhält man mit
neofetch --help
neofetch
     neofetch mit dem Ubuntu-Logo

htop

htop
Zeigt ebenfalls Daten zur Hardwareauslastung, jedoch in Echtzeit, es wird fortlaufend aktualisiert. So kann man sehr gut beobachten welcher Prozess welchen Einflusss auf die Ressourcen hat.
htop

rclone

rclone
Mit dieser Anwendung kann man Cloud-Speicher synchronisieren und in das System einbinden. So erscheint dann beispielsweise der MS OneDrive als Ordner unter 'Persönliche Ordner' und kann wie jedes andere Verzeichnis genutzt werden (eine stehende Internetverbindung vorausgesetzt). Die Einrichtung ist einmalig etwas aufwendig.
sudo apt install rclone installiert die Anwendung
rclone config startet die Einrichtung
Nun folgt ein interaktiver Dialog, der hier ganz gut dokumentiert ist. (englisch)

conky

conky
Mit Conky kann man sich dynamische Hintergründe für die Arbeitsfläche erstellen, die Datum und Uhrzeit oder auch Informationen zur CPU-Auslastung etc. anzeigen. Es gibt eine (etwas altbackene) Standardeinstellung, aber man findet im Netz zahlreiche Vorlagen, die man nutzen oder selbst bearbeiten kann.
Zunächst muss das Paket eingelesen werden:
sudo add-apt-repository ppa:linuxmint-tr/araclar
sudo apt update um die Bibliothek zu aktualisieren.
sudo apt install conky-all startet die Installation.
Möchte man nach der Installation die Konfiguration anpassen, muss die Datei /etc/conky/conky.conf in den persönlichen Ordner kopiert und in '.conkyrc' umbenannt werden. Diese neue Datei bearbeitet man nun nach seinen Vorstellungen oder ersetzt sie durch eine Vorlage.

pwgen

pwgen
Mit diesem kleinen Programm lassen sich im Handumdrehen Passwörter generieren.
sudo apt install pwgen für die Installation
pwgen 10 5 erstellt 5 Passwörter mit einer Länge von jeweils 10 Ziffern. Weitere Optionen findet man unter
pwgen --help