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

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

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

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

2 ответа

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

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

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

example

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

/usr/local/bin/smenu

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

CHOICE=$(whiptail --clear \

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

1
ответ дан 18 July 2018 в 07:01

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

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

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

example

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

/usr/local/bin/smenu

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

CHOICE=$(whiptail --clear \

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

1
ответ дан 24 July 2018 в 18:43
  • 1
    whiptail предлагает большую часть той же функциональности (и параметров), что и dialog, и устанавливается по умолчанию. (Я проверил быстрый тест, и вы можете просто заменить dialog на whiptail в этом скрипте, не используются неподдерживаемые опции.) – muru 12 September 2017 в 12:15
  • 2
    @muru, спасибо за это. Я обновил ответ. Я обнаружил, что на моем домашнем Ubuntu Desktop 16.04 whiptail фактически был установлен по умолчанию, но на моем VPS с Ubuntu Server 16.04 (который размещен на SolusVM / OpenVZ) этого не было, поэтому я запустил sudo apt install whiptail. – pa4080 12 September 2017 в 15:46
  • 3
    Хм, это странно. whiptail является зависимостью от ubuntu-minimal, но не от ubuntu-standard или ubuntu-server. Странно. – muru 12 September 2017 в 15:53
  • 4
    спасибо, ребята, так много, я попробую на следующей неделе, и я отвечу спасибо за вашу поддержку. – Devigner3D 13 September 2017 в 01:07
  • 5
    Привет, @ Devigner3D, вам это удалось? – pa4080 14 November 2017 в 23:00

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

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