Я хочу сделать системное меню после входа в систему на моем сервере Ubuntu, как это изображение:
Чтобы изменить свой IP-адрес Ethernet, местное время и некоторые другие важные для меня вещи , Я не знаю, как я могу достичь этих настроек?
Я не знаю, к чему относится каждый вариант из примера. Вот рабочий учебник - Как создать скрипт с аналогичным меню.
Сначала вам нужно установить 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 . Результат должен быть:
Если вы хотите открыть этот скрипт после входа в терминал, добавьте следующую строку в конец файла ~/.bashrc:
/usr/local/bin/smenu
Вместо dialog можно использовать инструмент whiptail, который предлагает большую часть той же функциональности (и опций) как dialog, и устанавливается по умолчанию в большинстве дистрибутивов Ubuntu. Для этого используйте приведенный выше сценарий и строку изменения 22 следующим образом:
CHOICE=$(whiptail --clear \
Теперь вывод нашего скрипта / команды smenu должен выглядеть так:
Я не знаю, к чему относится каждый вариант из примера. Вот рабочий учебник - Как создать скрипт с аналогичным меню.
Сначала вам нужно установить 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 . Результат должен быть:
Если вы хотите открыть этот скрипт после входа в терминал, добавьте следующую строку в конец файла ~/.bashrc:
/usr/local/bin/smenu
Вместо dialog можно использовать инструмент whiptail, который предлагает большую часть той же функциональности (и опций) как dialog, и устанавливается по умолчанию в большинстве дистрибутивов Ubuntu. Для этого используйте приведенный выше сценарий и строку изменения 22 следующим образом:
CHOICE=$(whiptail --clear \
Теперь вывод нашего скрипта / команды smenu должен выглядеть так: