Como criar o System Menu (mini painel de controle)

1

Eu quero fazer o menu do sistema após o login no meu servidor Ubuntu como esta imagem:

Para alterar meu endereço IP de Ethernet, a hora local e algumas outras coisas importantes para mim, não sei como posso alcançar essas configurações?

    
por Devigner3D 12.09.2017 / 01:00

1 resposta

1

Não sei onde cada opção do exemplo se refere. Aqui está um tutorial de trabalho - Como criar um script com um menu semelhante.

Primeiro, você precisa instalar o dialog . Este aplicativo fornece um método de exibir vários tipos diferentes de caixas de diálogo de scripts de shell:

sudo apt install dialog

Em seguida, crie o arquivo executável, vamos chamá-lo smenu e colocá-lo no diretório /usr/local/bin/ , assim ele estará acessível como o shell inteiro:

sudo touch /usr/local/bin/smenu
sudo chmod +x /usr/local/bin/smenu
sudo nano /usr/local/bin/smenu

O conteúdo do script deve ficar assim:

#!/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
  • Copie o conteúdo acima e use em nano : Deslocar + Inserir para colar; Ctrl + O e Enter para salvar; Ctrl + X para sair.
  • Todos os comandos usados no script estão disponíveis no Ubuntu 16.04.
  • O conteúdo entre parênteses [...] é apenas um lembrete do que será executado.

Agora, você poderá acessar o script por meio do comando smenu . O resultado deve ser:

Se você quiser abrir este script após o login em um terminal, anexe a próxima linha à parte inferior do arquivo ~/.bashrc :

/usr/local/bin/smenu

Em vez de dialog pode ser usada a ferramenta whiptail , que oferece grande parte da mesma funcionalidade (e opções) como dialog , e é instalada por padrão na maioria das distribuições do Ubuntu. Para este propósito use o script acima e mude a linha 22 desta maneira:

CHOICE=$(whiptail --clear \

Agora, a saída do nosso script / comando smenu deve ficar assim:

    
por pa4080 12.09.2017 / 10:27