Banner Terminal

Terminal-Software

In diesem Kapitel möchte ich nützliche Programme sowie Tipps für die Arbeit mit dem Terminal vorstellen. Zunächst aber eine kurze Einführung, wie man unter Linux im Terminal Programme installiert.

Die Anweisung sudo ist in allen Linux-Distributionen gleich und bedeutet, dass zur Bearbeitung von Programmen (Installation, Deinstallation und Update) Admin-Rechte nötig sind. Das Passwort wird in der Folge automatisch abgefragt. Leider haben wir verschiedene Distributionen und müssen daher entsprechende Unterschiede zeigen.

Linux-SystemInstallationDeinstalltionUpdates
Basis Debian (Debian, Ubuntu, LinuxMint...) sudo apt install <PN> sudo apt remove <PN> sudo apt update <PN>
RetHat sudo dnf install <PN> sudo dnf remove <PN> sudo dnf update <PN>
Open Suse sudo zypper install <PN> sudo zypper remove <PN> sudo zypper update <PN>
Archlinux sudo pacman -S <PN> sudo pacman -R <PN> sudo pacman -S <PN>

 <PN> = Programmname, eingeben ohne die Klammern <>.

Wie man aber sieht, sind alle Anweisungen und deren Struktur sehr ähnlich. Diese Anweisungen sind nötig, um die nachfolgend beschriebenen Programme zu installieren oder ggf. wieder zu löschen.

Programme

Der MC Midnight-Commander ist ein Dateimanager für die Konsole bzw. das Terminal. Die Installation erfolgt im Terminal mit der Anweisung:

sudo pacman -S mc

sudo apt install mc (siehe Tabelle ganz oben)

Nach der Installation kann der MC mit

mc

gestartet werden. Falls der MC mit Rootrechten benötigt wird, geschieht dies mit:

sudo mc

Ich gebe aber zu bedenken. Ein Dateimanager mit Rootrechten ist gefährlich. Wenn man nicht ganz genau weiß was man tut, kann man sich damit den Rchner abschießen.

Midnight Commander

Will man nach der Installation des MC noch Farb-Themes ändern, muss die Konfigurationsdatei ~/.config/mc/ini angepasst werden. Dummerweise überschreibt aber MC diese Änderung immer automatisch mit den Default-Daten. Also muss zuerst eine Einstellung vorgenommen werden:

Midnight Commander Optionen

Unter Optionen --> Konfiguration --> Einstellungen die markierte Einstellungen autom. speichern deaktivieren.

Midnight Commander Automatisch speichern deaktivieren

Jetzt kann man Änderungen in der Datei ~/.config/mc/ini speichern. Nach dem Neustart von MC werden die Änderungen übernommen und Einstellungen autom. speichern ist wieder aktiv!

Hilfreiche Webseiten:

Die Weiterentwicklung bzw. Softwarepflege des Programms Neofetch wurde eingestellt. An seine Stelle tritt das Programm Fastfetch.

Fastfetch zeigt Informationen zu Ihrem System neben einem Image, Ihrem Betriebssystemlogo oder einer ASCII-Datei Ihrer Wahl an.

Anzeige fastfetch

Die Installation erfolgt mit:

sudo pacman -S fastfetch

sudo apt install fastfetch (siehe Tabelle ganz oben)

Falls gewünscht, kann man beim Start des Terminals für einen Autostart von Fastfetch sorgen. Dazu öffnet man die Datei ~/.bshrc mit einem Editor und trägt dort in der letzten Zeile (hier 381) folgendes ein:

autostart fastfetch

Die Konfiguration erfolgt in einer speziellen Datei:

~/.config/fastfetch/config.jsonc

Die zugehörigen Eintragungen zur Anpassung findet man unter:

Wie Windows hat auch ArchLinux mit XFCE4-Desktop einen eigenen Taskmanager. Im Hauptmenü (Whisker-Menü) ist er unter der Rubrik System zu finden. Dessen Funktionsumfang ist aber recht beschränkt. Alternativen sind HTOP und BTOP.

Beide können über den Standard-Software-Manager (PAMAC) installiert werden. Die Installation im Terminal erfolgt mit:

sudo pacman -S htop oder
sudo pacman -S btop

Es macht keinen Sinn, beide zu installieren. Man sollte sich für einen entscheiden.

HTOP

Ich habe hier einige Links zusammengestellt die die Funktionen des HTOP erklären. Viele dieser Anleitungen beziehen sich auf Rechner mit Ubuntu-basierten Betriebssystemen. Die reinen Funktionen von HTOP sind aber überall gleich.

BTOP++

Ich habe hier einige Links zusammengestellt die die Funktionen des BTOP++ erklären. Viele dieser Anleitungen beziehen sich auf Rechnern mit Ubuntu-basierten Betriebssystemen. Die reinen Funktionen von BTOP++ sind aber überall gleich.

In den meisten Linux-Distributionen ist der Editor NANO standardmäßig enthalten. Falls nicht, kann er über den Standard-Software-Manager (PAMAC) installiert werden. Alternativ erfolgt die Installation im Terminal mit:

sudo pacman -S nano

Es handelt sich um einen kleinen, leicht zu bedinenenden Texteditor. Eine recht gute deutsche Anleitung habe ich auf YouTube gefunden.

Terminal-Tipps

Unter Windows werden die installierten Programme im Verzeichnis C:\Programme gespeichert. Die Datei mit der Endung .exe startet das Programm. Unter Linux werden installierte Programme in der Regel im Verzeichnis \usr\bin gespeichert. Diese Regel wird aber keineswegs immer eingehalten. Technisch gesehen spielt es bei Linux nämlich keine Rolle wo das Programm gespeichert ist.

Gibt man in Linux einen Programmnamen ins Terminal ein, wird das Programm gestartet. Das ist aber leider nicht immer so. Ein Programm, das nicht im Standardpfad abgelegt ist, kann nur mit der Angabe des vollständigen Pfades angesprochen werden. Aber wo ist das Programm gespeichert? Linux stellt dafür eine spezielle Anweisung zur Verfügung (Beispiel: Arduino):
which arduino

Ausgabe des Terminals:
/usr/local/bin/arduino

Eine weitere Anweisung ist:
whereis arduino

Ausgabe des Terminals:
arduino: /usr/local/bin/arduino

Oft liest man irgendwo etwas darüber, was ein bestimmtes Programm kann und würde es gerne auf dem eigenen Rechner installieren. Aber, gibt es das Programm überhaupt für meine Linux-Distro?

Auf diese Frage gibt es eine Antwort mit:

pacman -Ss {Programmname}
apt search {Programmname} (siehe auch die Tabelle ganz oben)

Werden weitere Details zum Programm gesucht, findet man sie mit:

pacman -Si {Programmname}
apr show {Programmname} (siehe auch die Tabelle ganz oben)

Hilfreicher Link dazu:

https://itsfoss.com/apt-search-command/

Sowohl in Windows als auch in Linux gibt es Umgebungsvariablen. Unter Linux findet man globale und Shell-Variablen. Die globalen Umgebungsvariablen stehen systemweit zur Verfügung, die Shell-Variablen nur lokal in der aktuellen Shell.

Ausgabe der globalen Umgebungsvariablen

Mit diesen einfachen Anweisungen werden sie alle angezeigt:

env oder mit printenv

Ausgabe des Terminals:

Um die Ausgabe zu filtern nutzt man z. B. für die Ausgabe der Umgebungsvariablen HOME:
env | grep HOME

Ausgabe des Terminals:
XDG_CONFIG_HOME=/home/[user]/.config
HOME=/home/[user]
XDG_CACHE_HOME=/home/[user]/.cache

Einfacher geht es mit der Anweisung:
printenv HOME

Ausgabe des Terminals:
/home/[user]

Und eine letzte Möglichkeit:
echo $HOME

Ausgabe des Terminals:
/home/[user]

Ausgabe der Shellvariablen

Shellvariablen lassen sich mit folgender Anweisung anzeigen:
set

Die Ausgabe ist sehr umfangreich und umfasst alle Umgebungs- und Shell-Variablen. Deshalb ist es klug die Anweisung in Verbindung mit less anzuwenden, also in seitenweiser Ansicht.
set | less

Auch der Filter grep kann verwendet weren. Zum Beispiel: die Ausgabe auf den Wert der Shell-Variablen PS1 beschränken:
set | grep PS1

Ausgabe des Terminals:
PS1='[\u@\h \W]\$ '

Eine Alternative wäre die Anweisung:
echo $PS1

Ausgabe des Terminals:
[\u@\h \W]\$

Links:

Die Anweisung find ist hier sehr ausführlich beschrieben, daher lohnt es nicht, das alles zu wiederholen.

find hat den Nachteil, dass der Suchort (Festplatte, Verzeichnis usw.) vollständig durchsucht wird. Das geschieht jedesmal, wenn man die Anweisung aufruft. Das kann z. B. bei Fotos nervig werden, da der Suchvorgang recht lange dauern kann.

An dieser Stelle tritt locate als Hilfe auf. locate durchsucht den Suchort nicht jedesmal, wenn er aufgerufen wird. Statt dessen baut er eine Datenbank auf, in die er den Inhalt des Suchortes einträgt. Fortan ruft er nun die Datenbank ab. Das geht sehr viel schneller als bei find.

Will man also locate verwenden, z. B. wenn man 20 Bilder suchen will, muss man vorher einmal die Anweisung updatedb ausführen. Der Suchort wird nun einmal durchsucht. Auch das kann einige Zeit dauern, aber eben nur ein Mal. Jede weitere Suchanfrage mit locate liefert sofort Ergebnisse.

Benutzung

Die Anweisung wird wie folgt benutzt:

locate {Suchbegriff}

Soll die Groß- und Kleinschreibung unbeachtet bleiben:

locate -i {Suchbegriff}

Verzeichnisse ausschließen

Sollen bestimmte Verzeichnisse wie tmp, backup usw. bei der Suche ausgeschlossen werden, kann man das mit dieser Anweisung erreichen:

PRUNEPATHS="{Verzeichnisnamen}"

Sollen mehrere Verzeichnisse gesperrt sein, werden diese durch ein Leerzeichen getrennt hintereinander aufgeführt.

Links:

Zunächst die übliche Laufwerksanalyse in Linux:

df -h

Ausgabe des Terminals:

Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
dev              12G       0   12G    0% /dev
run              12G    9,5M   12G    1% /run
efivarfs        320K     60K  256K   19% /sys/firmware/efi/efivars
/dev/nvme0n1p2  449G    279G  148G   66% /
tmpfs            12G     15M   12G    1% /dev/shm
tmpfs           1,0M       0  1,0M    0% /run/credentials/systemd-udev-load-credentials.service
tmpfs           1,0M       0  1,0M    0% /run/credentials/systemd-journald.service
tmpfs           1,0M       0  1,0M    0% /run/credentials/systemd-tmpfiles-setup-dev-early.service
tmpfs           1,0M       0  1,0M    0% /run/credentials/systemd-sysctl.service
tmpfs           1,0M       0  1,0M    0% /run/credentials/systemd-tmpfiles-setup-dev.service
tmpfs           1,0M       0  1,0M    0% /run/credentials/systemd-vconsole-setup.service
tmpfs            12G     23M   12G    1% /tmp
/dev/nvme0n1p1  300M    300K  300M    1% /boot/efi
/dev/sdb1       1,9T    975G  807G   55% /home/Daten
tmpfs           1,0M       0  1,0M    0% /run/credentials/systemd-tmpfiles-setup.service
tmpfs           2,4G    188K  2,4G    1% /run/user/1000
			

 

duf

Ausgabe des Terminals:

╭────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 3 local devices                                                                                │
├─────────────┬────────┬────────┬────────┬───────────────────────────────┬──────┬────────────────┤
│ MOUNTED ON  │   SIZE │   USED │  AVAIL │              USE%             │ TYPE │ FILESYSTEM     │
├─────────────┼────────┼────────┼────────┼───────────────────────────────┼──────┼────────────────┤
│ /           │ 448.4G │ 278.1G │ 147.5G │ [############........]  62.0% │ ext4 │ /dev/nvme0n1p2 │
│ /boot/efi   │ 299.4M │ 300.0K │ 299.1M │ [....................]   0.1% │ vfat │ /dev/nvme0n1p1 │
│ /home/Daten │   1.8T │ 974.4G │ 806.9G │ [##########..........]  51.9% │ ext4 │ /dev/sdb1      │
╰─────────────┴────────┴────────┴────────┴───────────────────────────────┴──────┴────────────────╯
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 13 special devices                                                                                           │
├───────────────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────────┬────────────┤
│ MOUNTED ON                │   SIZE │   USED │  AVAIL │              USE%             │ TYPE     │ FILESYSTEM │
├───────────────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────────┼────────────┤
│ /dev                      │  11.6G │     0B │  11.6G │                               │ devtmpfs │ dev        │
│ /dev/shm                  │  11.6G │  14.4M │  11.6G │ [....................]   0.1% │ tmpfs    │ tmpfs      │
│ /run                      │  11.6G │   9.5M │  11.6G │ [....................]   0.1% │ tmpfs    │ run        │
│ /run/credentials/systemd- │   1.0M │     0B │   1.0M │                               │ tmpfs    │ tmpfs      │
│ journald.service          │        │        │        │                               │          │            │
│ /run/credentials/systemd- │   1.0M │     0B │   1.0M │                               │ tmpfs    │ tmpfs      │
│ sysctl.service            │        │        │        │                               │          │            │
│ /run/credentials/systemd- │   1.0M │     0B │   1.0M │                               │ tmpfs    │ tmpfs      │
│ tmpfiles-setup-dev-early. │        │        │        │                               │          │            │
│ service                   │        │        │        │                               │          │            │
│ /run/credentials/systemd- │   1.0M │     0B │   1.0M │                               │ tmpfs    │ tmpfs      │
│ tmpfiles-setup-dev.servic │        │        │        │                               │          │            │
│ e                         │        │        │        │                               │          │            │
│ /run/credentials/systemd- │   1.0M │     0B │   1.0M │                               │ tmpfs    │ tmpfs      │
│ tmpfiles-setup.service    │        │        │        │                               │          │            │
│ /run/credentials/systemd- │   1.0M │     0B │   1.0M │                               │ tmpfs    │ tmpfs      │
│ udev-load-credentials.ser │        │        │        │                               │          │            │
│ vice                      │        │        │        │                               │          │            │
│ /run/credentials/systemd- │   1.0M │     0B │   1.0M │                               │ tmpfs    │ tmpfs      │
│ vconsole-setup.service    │        │        │        │                               │          │            │
│ /run/user/1000            │   2.3G │ 188.0K │   2.3G │ [....................]   0.0% │ tmpfs    │ tmpfs      │
│ /sys/firmware/efi/efivars │ 320.0K │  59.4K │ 255.6K │ [###.................]  18.6% │ efivarfs │ efivarfs   │
│ /tmp                      │  11.6G │  22.0M │  11.6G │ [....................]   0.2% │ tmpfs    │ tmpfs      │
╰───────────────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────────┴────────────╯
			

 

 

Quellen der Grafiken und Bilder:

Pixabay
Vecteezy
FREEP!K