我发现了这个问题,但它谈论的是带有 GUI 的 Ubuntu 版本。我指的是 Ubuntu Server,所以没有 GUI。我也发现了这个问题,但它看起来不会显示命令的输出,而只会显示静态文本。
Ubuntu Server 登录屏幕如下所示:
Ubuntu 22.04 LTS mycomputer tty1
mycomputer login:
Run Code Online (Sandbox Code Playgroud)
但是,我希望它运行一个命令(作为root我的帐户或在我的帐户下 - 您可以选择),然后我希望它在给出登录提示之前打印命令的输出。
例如,如果我的命令是echo Hello world!,我希望它看起来像这样:
Hello world!
Ubuntu 22.04 LTS mycomputer tty1
mycomputer login:
Run Code Online (Sandbox Code Playgroud)
或者这样也可以:
Ubuntu 22.04 LTS mycomputer tty1
Hello world!
mycomputer login:
Run Code Online (Sandbox Code Playgroud)
虽然在我的示例中,但我的命令的输出可以更改 - 不能保证每次都相同,因此我无法将命令的输出硬编码到文件中(在我的例子中,命令是hostname -i,打印 IP 地址)。
我经常需要检查一台机器的IP,如果我不需要登录来检查它会更容易。为了解决这个问题,假设这是家庭网络上的个人服务器,因此泄露 IP 地址不是问题。
如何在命令行登录屏幕中显示命令的输出?
当 Ubuntu 使用 gnome 时,我能够在/etc/gdm/Init/Default 中使用 zenity 在登录屏幕之前创建一个弹出横幅,如下面的横幅。代码行将是这样的:
if [ -f "/usr/bin/zenity" ]; then /usr/bin/zenity --info --text="`cat /etc/issue`" --no-wrap; else xmessage -file /etc/issue -button ok -geometry 540X480; fi
Run Code Online (Sandbox Code Playgroud)
我如何使用 Unity 完成此任务?
用户须知
这是一个计算机系统和/或它直接连接到本地网络系统。它仅供授权使用。用户(授权或未授权)对隐私没有明确或隐含的期望。
对本系统的任何或所有使用以及本系统上的所有文件都可能被拦截、监控、记录、复制、审计、检查并向授权站点、能源部和执法人员以及其他机构的授权官员披露,国内外。通过使用本系统,用户同意由授权站点或人员自行决定进行此类拦截、监视、记录、复制、审计、检查和披露。
未经授权或不当使用本系统可能会导致行政纪律处分以及民事和刑事处罚。继续使用本系统即表明您了解并同意这些使用条款和条件。
如果您不同意此警告中规定的条件,请立即注销。