如何创建系统菜单(迷你控制面板)

如何创建系统菜单(迷你控制面板)

我想在我的 Ubuntu 服务器登录后制作如下图所示的系统菜单:

图像

要更改我的以太网 IP 地址、本地时间和一些对我很重要的东西,我不知道如何才能达到这些设置?

答案1

我不知道每个选项在哪里例子请参阅。这里有一个实用教程 -如何创建具有类似菜单的脚本。

首先你需要安装dialog。此应用程序提供了一种从 shell 脚本显示几种不同类型的对话框的方法:

sudo apt install dialog

然后创建可执行文件,我们称之为smenu,并将其放入目录中/usr/local/bin/,这样它将可以作为系统范围内的 shell 命令访问:

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
  • 复制以上内容并使用nanoShift+Insert粘贴;Ctrl+OEnter保存;Ctrl+X退出。
  • 脚本中使用的所有命令均可在 Ubuntu 16.04 中使用。
  • 括号之间的内容[...]只是对将要执行的内容的提醒。

现在您将能够通过命令访问脚本smenu。结果应该是:

在此处输入图片描述

如果您想在登录终端后打开此脚本,请将下一行附加到文件底部~/.bashrc

/usr/local/bin/smenu

dialog可以使用工具来代替whiptail,它提供与 相同的功能(和选项)dialog,并且默认安装在大多数 Ubuntu 发行版中。为此,请使用上述脚本并按22以下方式更改行:

CHOICE=$(whiptail --clear \

现在我们的脚本/命令的输出smenu应该是这样的:

在此处输入图片描述

相关内容