Ein Menü für Terminalbefehle

  kwt   Lesezeit: 4 Minuten  🗪 2 Kommentare Auf Mastodon ansehen

Ein Menü für Terminalbefehle: Für Menschen mit Terminalphobie oder bequeme Admins.

ein menü für terminalbefehle

Ho, ho, ho - der beliebteste Teil des Jahres ist gekommen … Familien-Admin-Zeit.

Wenn man jetzt im Terminal loslegt und jemand schaut einem über die Schulter, ist ja super, das will ich auch haben. Nur dumm, wenn dann die Konsole Teufelszeug ist, mit dem man sich nicht befassen will, und dieses kryptische Zeug kann sich ohnehin niemand merken. Um nicht jedes Mal wegen jeder Kleinigkeit selbst ranzumüssen, habe ich ein kurzes Bash Script (tools.sh) geschrieben:

#!/bin/bash

menu() {
    echo "[1] sysinfo"
    echo "[2] taskinfo (exit mit [STR] + [c])"
    echo "[3] update"
    echo "[4] disk info (exit mit [STR] + [c])"
    echo "[5] disk scan"

    echo "[x] for exit"
}
menu
read -p "wähle weise!:" ANTWORT
while [ "$ANTWORT" != 'x' ]
do
    if [ "$ANTWORT" == "1" ]
        then
        inxi -F
    elif [ "$ANTWORT" == "2" ]
        then
        btop
    elif [ "$ANTWORT" == "3" ]
        then
        sudo apt autoremove -y && sudo apt autoclean -y && sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y && sudo apt autopurge -y
    elif [ "$ANTWORT" == "4" ]
        then
        cd /
        ncdu
    elif [ "$ANTWORT" == "5" ]
        then
        sudo fdisk -l
        read -p "partition wählen: " part
        sudo badblocks -v $part
    else
        echo "denk noch einmal über deine Eingabe nach!"
    fi
    menu
    read -p "wähle weise!:" ANTWORT
done

Wie gehabt ist es mit chmod 744 tools.sh lauffähig und wird dann in das Klicki-Menü eingebunden. (Bei mir im System finden derartige Skripte etc. im ~/.local/bin/ ein Zuhause.) Entweder über den, je nach Distro, meist vorhandenen Menü Editor oder mittels einer tools.desktop Datei in ~/.local/share/applications/

[Desktop Entry]
Version=1.1
Type=Application Name=terminal-tools
Comment=cli tools 
Icon=deepin-repair-tools 
Exec=/home/user/.local/bin/tools.sh 
Terminal=true 
Actions= 
Categories=System;

Und im Vertrauen, die oberste Bürgenpflicht des Admins sei die Faulheit, das Script macht sich mit entsprechenden Befehlen auch gut auf dem eigenen Server.

Für ganz hartnäckige Maus-Festkleber und "muss doch besser aussehen" könnte ein Ansatz mit Dialog darstellen:

#!/bin/bash

menu() {
echo "funktion"
ANTWORT=`dialog --menu "Funktion wählen" 0 0 0\
 "1" "sysinfo" "2" "taskinfo" "3" "list" "" "exit"  3>&1 1>&2 2>&3`
dialog --clear
#dialog --yesno "echt jetzt???: $ANTWORT" 0 0
#dialog --clear
#clear
}
menu
while [ "$ANTWORT" != '' ]
do
    if [ "$ANTWORT" == "1" ]
        then
        echo "sysinfo"
        inxi -F
        read -p "anykey for exit" trash
    elif [ "$ANTWORT" == "2" ]
        then
        echo "taskinfo."
        top
    elif [ "$ANTWORT" == "3" ]
        then
        echo "list"
        ls -la
        read -p "anykey for exit" trash
    else
        echo "WTF???"
    fi
    menu
done

Es ist nicht mein Geschmack und wenn jemand damit arbeiten will, sollte Folgendes Pflichtlektüre sein:

https://wiki.ubuntuusers.de/Dialog/ https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_007_007.htm#RxxKap00700704004E781F018172

Nur noch kurz angemerkt, das Terminal hat bei dieser „Betriebsart“ die Angewohnheit nach Verrichtung seiner Pflicht, die Informationen auszublenden. Mit read -p "anykey for exit" trash im Script wird es bis zum Betätigen der berühmt-berüchtigten [ANY-KEY] Taste unterbunden. Die verwendeten Befehle sind nur als Anschauungsmaterial zu verstehen, die müssen individuell den Bedürfnissen angepasst werden.

Quellen:

https://wiki.ubuntuusers.de/Dialog/

https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_007_007.htm#RxxKap00700704004E781F018172

https://de.wikipedia.org/wiki/Kommandozeile

Tags

CLI-Tools, bash, Bash-Shell, Konsole

standreas
Geschrieben von standreas am 25. Dezember 2024 um 09:51

Errinert mich was an Qterminal, dort gibt's ein "Buchzeichen" Panel das man links einblenden kann.

https://github.com/lxqt/qterminal/blob/master/qterminal_bookmarks_example.xml

Stefan
Geschrieben von Stefan am 25. Dezember 2024 um 11:08

So was mache ich auch unter FreeBSD ... ich bastel mir nur meine Scripte mit Tcl/Tk für den Desktop und Tcl oder sh für den Server ... ich kann mir die Befehle und vor allem die ganzen Optionen auch nicht alle merken ... bin ja auch nur Family Admin und kein IT-Profi.

Schöne Weihnachten! Stefan