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