Ein Menü für Terminalbefehle

  kwt   Lesezeit: 4 Minuten  🗪 5 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

blackcrack
Geschrieben von blackcrack am 26. Dezember 2024 um 07:43

under der große bruder von dialog ist Xdialog und stellt somit dann ein Oberflächenprogramm dar, wenn man dann im script noch eine funtion zur überprüfung von laufendem X oder wayland (was das selbe ist, also eine grafische Platform ) einbauen und da dann eine weiche ob dialog oder Xdialog ausgeführt werden soll, nur daß eben dialog nichtmehr gemeintaint wird.. der orginal programmierer iss so wie ich weis nichtmehr dabei.. aber lieben, lieben tuh ich dialog und xdialog alle mal, weil einfach ein hammer tool.

liebe Grüße Blacky

The_Raven
Geschrieben von The_Raven am 26. Dezember 2024 um 11:01

Ich verwende jeweils das tool "OliveTin" (https://www.olivetin.app/). Damit kann man Scripte via Webgui starten. Benutze es vor allem zum Steuern meiner Raspi (z.b. Relais für Heimautomatisierung). Meiner Meinung nach ein echter Geheimtipp 😉 Mit etwas Kreativität kann man damit fast alles realisieren (auch als Hobby-Admin wie ich der nicht code kann). Von Zeitschaltuhren über Wildkameras bis Gui für die Waschmaschine habe ich damit schon fast alles realisiert 😂

Rolf
Geschrieben von Rolf am 26. Dezember 2024 um 16:53

Gegebenenfalls muss "dialog" mit "sudo apt install dialog" (+1,2 MB) noch installiert werden, bei mir (Ubuntu 24.04) hat es gefehlt.