Betty – 类似 Siri 的 Linux 命令行虚拟助手

当新手问我如何擅长 Linux 命令行时,我通常会告诉他们尽可能避免使用 GUI 模式。 我建议他们从终端学习如何做事。 问任何 Linux 专家,他们总是会说——“命令行模式更强大、更简单”。 我完全同意这个说法。 如果您不知道如何从命令行执行特定任务,只需搜索您的问题并从那里开始。 Linux 命令行并不像您想象的那么难。 但是,无论您如何说服他们,有些用户对使用 CLI 模式并不感兴趣。 他们总是喜欢只使用 GUI 模式。 如果你是他们中的一员,见面 “贝蒂”,一个用于 Linux 的命令行虚拟助手。

Betty 有点类似于 Apple 的 Siri 个人助理或 Google 语音搜索功能。 它是一个友好的类似英语的命令行界面,可以将类似英语的短语翻译成 Linux 命令。 您不需要搜索您的问题,甚至不需要参考手册页。 只需用简单的英语句子问您的问题,Betty 就会立即照您说的做。 在这个简短的教程中,我将向您展示如何在 Linux 中安装和使用 Betty。

Betty – 类似 Siri 的 Linux 命令行虚拟助手

安装贝蒂

首先,安装必要的先决条件。

在 Arch Linux 及其衍生产品上:

$ sudo pacman -S git curl ruby

在基于 Debian 的系统上:

$ sudo apt-get install git curl ruby

在基于 RPM 的系统上:

$ sudo yum install git curl ruby

在 SUSE 上,openSUSE:

$ sudo zypper install git curl ruby

然后,使用以下命令 git 克隆 Betty 存储库:

$ git clone https://github.com/pickhardt/betty

我在我的 $HOME 目录中克隆了 Betty 存储库。

在中添加 betty 别名 .bashrc 文件。

为此,请编辑 .bashrc 文件:

$ vi ~/.bashrc

‘一世’ 切换到交互模式并在末尾粘贴以下行:

alias betty="/home/sk/betty/main.rb"

然后,按 ESC键 并输入 :wq 保存并退出文件。

或者,您可以使用以下单行命令在 .bashrc 文件中添加 betty 别名。

echo 'alias betty="/home/sk/betty/main.rb"' >> ~/.bashrc

代替 /家/sk/贝蒂/ 与你自己的路径。 由于我已经在我的 HOME 目录中克隆了 betty 存储库,因此我使用了上述路径。

最后,使用以下命令更新 bashrc 文件中所做的更改:

$ source ~/.bashrc

推荐下载免费备忘单:“Linux 命令行备忘单”

贝蒂用法

贝蒂的使用是微不足道的。 请允许我向您展示一些实际的例子。

让我们说,你想找到你的用户名。

为此,您将键入:

$ whoami

但是,您不需要运行实际命令。 您不再需要记忆和记住所有 Linux 命令。 只需用简单的英语短语问贝蒂。

说为 example,要知道您的用户名,只需键入:

$ betty whats my username

示例输出为:

Betty: Running whoami
sk

贝蒂在行动

酷,不是吗? Betty 足够聪明,可以理解您的问题,它会执行命令“whoami”并显示结果。

这里有更多例子。

$ betty whats my kernel version
Betty: Running uname -a
Linux ubuntuserver 4.15.0-30-generic #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ betty what time is it
Betty: Running date +"%r (%T)"
06:59:17 PM (18:59:17)
$ betty what month is it
Betty: Running date +%B
August

如果贝蒂有不止一种回应方式,她会要求您选择您想要的一种。 看看以下 example. 我问过她我系统的 IP 地址。 她问我 – 内部或外部 IP。 我想让她显示我的内部 IP,所以我输入了 1(第一)。 她运行“ifconfig”命令并​​显示 IP 地址。

$ betty whats my ip address
Betty: Okay, I have multiple ways to respond.
Betty: Enter the number of the command you want me to run, or N (no) if you don't want me to run any.
[1] ifconfig
 Gets your internal ip address.
[2] curl -sL https://pannous.net/ip.php
 Gets your external ip address.
1
Betty: Running ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
 inet 127.0.0.1 netmask 255.0.0.0
 inet6 ::1 prefixlen 128 scopeid 0x10<host>
 loop txqueuelen 1000 (Local Loopback)
 RX packets 0 bytes 0 (0.0 B)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 0 bytes 0 (0.0 B)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 192.168.43.192 netmask 255.255.255.0 broadcast 192.168.43.255
 inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20<link>
 ether a0:38:73:10:99:5h txqueuelen 1000 (Ethernet)
 RX packets 102938 bytes 101205525 (96.5 MiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 75264 bytes 12390762 (11.8 MiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

如果 Betty 无法理解您的问题,她将显示以下消息:

Betty: I don't understand. Hopefully someone will make a pull request so that one day I will understand.

有关更多示例,请参阅 Betty GitHub 项目页面。

不要以为 Betty 会做所有复杂的事情,例如部署 Web 服务器。 贝蒂一个人无法完成如此复杂的任务。 您可以使用贝蒂 执行一些简单的命令 只要。 如果您想添加更多功能,请发送拉取请求并在 GitHub 中为项目做出贡献(本指南末尾提供了链接)。

即使 Betty 没有得到积极维护,它仍然可以正常工作。 如果你懒得学习 Linux 命令,Betty 可能是你的完美伴侣。

资源:

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!