Betty — виртуальный помощник командной строки в стиле Siri для Linux
Когда новички спрашивают меня, как хорошо освоить командную строку Linux, я обычно советую им избегать использования режима графического интерфейса, насколько это возможно. Я предлагаю им научиться делать что-то из Терминала. Спросите любого эксперта по Linux, и он всегда ответит: «Режим командной строки более мощный и простой». Я полностью согласен с этим утверждением. Если вы не знаете, как выполнить конкретную задачу из командной строки, просто задайте свой вопрос в Google и начните оттуда. Командная строка Linux не так сложна, как вы думаете. Однако некоторых пользователей режим CLI не особо интересует. Они всегда предпочитают использовать только графический режим. Если вы один из них, познакомьтесь с "Betty", виртуальным помощником командной строки для Linux.
Что такое Бетти?
Betty чем-то похожа на функцию персонального помощника Siri от Apple или голосового поиска Google. Betty — это дружественный английский интерфейс командной строки, который переводит английские фразы в команды Linux.
Вам не нужно искать свой вопрос в Google или даже не нужно ссылаться на справочные страницы. Просто задавайте вопросы простыми английскими предложениями, и Бетти мгновенно сделает то, что вы только что сказали.
В этом кратком руководстве я покажу вам, как установить и использовать Betty в Linux.
Установить Бетти в 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
Я клонировал репозиторий Betty в своем каталоге $HOME.
Добавьте псевдоним Бетти в файл .bashrc.
Для этого отредактируйте файл .bashrc:
vi ~/.bashrc
Нажмите 'i', чтобы переключиться в интерактивный режим, и вставьте в конец следующую строку:
alias betty="/home/sk/betty/main.rb"
Затем нажмите ESC и введите :wq, чтобы сохранить и закрыть файл.
Альтернативно вы можете использовать следующую однострочную команду, чтобы добавить псевдоним Бетти в файл .bashrc.
echo 'alias betty="/home/sk/betty/main.rb"' >> ~/.bashrc
Замените путь /home/sk/betty/ на свой собственный. Поскольку я клонировал репозиторий betty в своем домашнем каталоге, я использовал указанный выше путь.
Наконец, обновите изменения, внесенные в файл bashrc, с помощью следующей команды:
source ~/.bashrc
Рекомендуемая загрузка – Бесплатная шпаргалка: «Шпаргалка по командной строке Linux»
Как использовать виртуальный помощник командной строки Betty в Linux
Использование Betty тривиально. Позвольте мне показать вам несколько практических примеров.
Допустим, вы хотите найти свое имя пользователя.
Для этого введите:
whoami
Однако вам не нужно запускать саму команду. Вам больше не нужно запоминать и запоминать все команды Linux. Просто спросите Бетти простыми английскими фразами.
Скажем, например, чтобы узнать свое имя пользователя, просто введите:
$ betty whats my username
Пример вывода будет:
Betty: Running whoami
sk
Бетти в действии
Круто, не так ли? Бетти достаточно умна, чтобы понять ваш вопрос, она выполнит команду «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
Если Бетти может ответить несколькими способами, она попросит вас выбрать тот, который вам нужен. Посмотрите на следующий пример.
Я спросил Бетти, какой 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 http://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: I don't understand. Hopefully someone will make a pull request so that one day I will understand.
Дополнительные примеры см. на странице проекта Betty на GitHub.
Не думайте, что Бетти будет делать все сложные вещи, например, развертывать веб-сервер. Бетти не может справиться с такими сложными задачами самостоятельно.
Вы можете использовать Betty только для выполнения некоторых простых команд . Если вы хотите добавить больше функций, отправьте запрос на включение и внесите свой вклад в проект на GitHub (ссылка приведена в конце этого руководства).
Несмотря на то, что Бетти не поддерживается активно, она по-прежнему полностью функциональна. Если вам лень изучать команды Linux, Бетти может стать для вас идеальным компаньоном.
Ресурс:
- Репозиторий Бетти на GitHub