Je veux faire le menu système après la connexion à mon serveur Ubuntu comme cette image:
Pour changer mon adresse IP Ethernet, l'heure locale et d'autres éléments importants pour moi, je ne sais pas comment atteindre ces paramètres?
Je ne sais pas où chaque option du exemple fait référence. Voici un tutoriel de travail - Comment créer un script avec un menu similaire.
Vous devez d’abord installer dialog
. Cette application fournit une méthode d'affichage de plusieurs types différents de boîtes de dialogue à partir de scripts Shell:
Sudo apt install dialog
Ensuite, créez un fichier exécutable, appelons-le smenu
et placez-le dans le répertoire /usr/local/bin/
afin qu'il soit accessible en tant que système de commande Shell:
Sudo touch /usr/local/bin/smenu
Sudo chmod +x /usr/local/bin/smenu
Sudo nano /usr/local/bin/smenu
Le contenu du script devrait ressembler à ceci:
#!/bin/bash
HEIGHT=18
CHOICE_HEIGHT=10
WIDTH=78
BACKTITLE="SYSTEM MENU"
TITLE="[ M A I N - M E N U ]"
MENU="Tasks:"
OPTIONS=(
Network/IP "IP Settings [Sudo nano /etc/hosts ]"
Network/DNS "DNS Settings [Sudo nano /etc/resolv.conf ]"
Network/IFCS "Network Interfaces [Sudo nano /etc/network/interfaces ]"
Timezone "Set Time Zone [Sudo dpkg-reconfigure tzdata ]"
Reboot "Reboot the System [Sudo systemctl reboot ]"
Shutdown "Shutdown the System [Sudo shutdown ]"
Logout/Exit "Logout the Session [logout ]"
Update "Update & Upgrade & autoRemove & autoClean [Sudo apt ...]"
Edit "Edit this script [Sudo nano /usr/local/bin/system-menu]"
Shell "Exit to Shell"
)
CHOICE=$(dialog --clear \
--backtitle "$BACKTITLE" \
--title "$TITLE" \
--menu "$MENU" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${OPTIONS[@]}" \
2>&1 >/dev/tty)
clear
case $CHOICE in
Network/IP)
Sudo nano /etc/hosts
;;
Network/DNS)
Sudo nano /etc/resolv.conf
;;
Network/IFCS)
Sudo nano /etc/network/interfaces
;;
Timezone)
Sudo dpkg-reconfigure tzdata
;;
Reboot)
Sudo systemctl reboot
;;
Shutdown)
Sudo shutdown
;;
Exit)
logout
;;
Update)
Sudo apt update && Sudo apt upgrade && Sudo apt autoremove && Sudo apt autoclean
echo "**"
Sudo uname -a
echo "**"
Sudo lsb_release -a
echo "**"
[ -e /var/run/reboot-required* ] && echo "Reboot is required!" || echo "Reboot is not required."
;;
Edit)
Sudo nano /usr/local/bin/smenu
;;
Shell)
exit
;;
esac
nano
: Shift+Insert pour la pâte; Ctrl+O et Enter pour sauver; Ctrl+X pour la sortie.[...]
n'est qu'un rappel de ce qui sera exécuté.Vous pourrez maintenant accéder au script via la commande smenu
. Le résultat devrait être:
Si vous souhaitez ouvrir ce script après vous être connecté à un terminal, ajoutez la ligne suivante au bas du fichier ~/.bashrc
:
/usr/local/bin/smenu
Au lieu de dialog
, l'outil whiptail
peut être utilisé. Il offre une grande partie des mêmes fonctionnalités (et options) que dialog
et est installé par défaut dans la plupart des distributions Ubuntu. Pour ce faire, utilisez le script ci-dessus et modifiez la ligne 22
de cette manière:
CHOICE=$(whiptail --clear \
Maintenant, le résultat de notre script/commande smenu
devrait ressembler à ceci: