Как создать Системное меню (мини-панель управления)

Я хочу сделать системное меню после входа в систему в моем сервере Ubuntu как это изображение:

image

Для изменения моего IP-адреса Ethernet, местное время и некоторый другой материал, важный для меня, я не знаю, как я могу достигнуть этого настройки?

1
задан 12 September 2017 в 12:17

1 ответ

Я не знаю, где каждая опция от примера относится к. Вот рабочее учебное руководство - Как создать сценарий с подобным меню.

Сначала необходимо установить dialog. Это приложение предоставляет метод отображения нескольких различных типов диалоговых окон из сценариев оболочки:

sudo apt install dialog

Затем создайте исполняемый файл, давайте назовем его smenu, и поместите его в каталог /usr/local/bin/, таким образом это будет доступно как широкая система команд оболочки:

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

Содержание сценария должно быть похожим на это:

#!/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 для вставки; Ctrl+O и Вводят, сохраняют; Ctrl+X для выхода.
  • Все команды, используемые в рамках сценария, доступны в Ubuntu 16.04.
  • Содержание между скобками [...] просто напоминание того, что будет выполняться.

Теперь Вы сможете получить доступ к сценарию через команду smenu. Результат должен быть:

enter image description here

Если Вы хотите открыть этот сценарий после входа в систему в терминал, добавьте следующую строку к нижней части файла ~/.bashrc:

/usr/local/bin/smenu

Вместо dialog может использоваться инструмент whiptail, это предлагает большую часть той же функциональности (и опции) как dialog, и установлен по умолчанию в большинстве дистрибутивов Ubuntu. С этой целью используйте вышеупомянутый сценарий и строку изменения 22 таким образом:

CHOICE=$(whiptail --clear \

Теперь вывод нашего сценария/команды smenu должен быть похожим на это:

enter image description here

1
ответ дан 7 December 2019 в 15:30

Другие вопросы по тегам:

Похожие вопросы: