A menudo recibo correos electrónicos de los usuarios de cómo convertirse en maestros en la línea de comandos de Linux. Mi respuesta es, y siempre será, dejar de usar el modo GUI. Aprende a hacer cosas de Terminal. Pregunta a cualquier experto de Linux, y siempre dirán – “Modo de línea de comandos es más potente y fácil”. Estoy totalmente de acuerdo con esta declaración. En el caso, de que no sabes hacer una tarea específica de la línea de comando, mete en google tu pregunta y comienza allí. La línea de comandos de Linux no es tan difícil como piensas. Sin embargo, algunos usuarios no están tan interesados en usar el modo CLI, no importa lo difícil que intentes persuadirlos. Siempre prefieren usar el modo GUI solamente. Si eres uno de ellos, conoce a Betty, un asistente virtual de línea de comandos para Linux.
Betty es algo similar al asistente personal Siri de Apple o la función de búsqueda de voz de Google. Es una interfaz amigable para tu línea de comandos que traduce frases de tipo inglés a comandos de Linux. No necesita google para tu pregunta o ni siquiera necesitas referirse a las páginas de manual. Simplemente haz sus preguntas en frases sencillas en inglés, y Betty hará lo que acabas de decir. En este breve tutorial, le mostraré cómo instalar y usar Betty en Linux.
Instalar Betty
Primero, instala los requisitos previos necesarios.
En Arch Linux y derivados:
sudo pacman -S git curl ruby
En Debian y derivados:
sudo apt-get install git curl ruby
En RPM:
sudo yum install git curl ruby
En SUSE, openSUSE:
sudo zypper install git curl ruby
A continuación, clona el repositorio Betty utilizando el siguiente comando:
git clone https://github.com/pickhardt/betty
vi ~/.bashrc
Agrega la siguiente línea al final:
alias betty="/home/sk/betty/main.rb"
Reemplaza /home/sk/betty/ con el suyo propio. Desde que he clonado el repositorio betty en mi directorio HOME, he añadido la ruta anterior.
Por último, actualiza los cambios realizados en su archivo bashrc mediante el siguiente comando:
source ~/.bashrc
El uso de Betty es trivial. Permíteme mostrarle algunos ejemplos prácticos.
Digamos, quieres encontrar su nombre de usuario.
Para ello, escribe:
whoami
Sin embargo, no es necesario ejecutar el comando real. No tienes que memorizar y recordar todos los comandos de Linux. Simplemente pregunta a Betty en frases sencillas en inglés.
Digamos, por ejemplo, para conocer tu nombre de usuario, simplemente escribe:
betty whats my username
El resultado de la muestra sería:
Betty: Running whoami sk
Cool, ¿no? Betty es lo suficientemente inteligente como para entender tu pregunta y ejecutará el comando “whoami” y mostrará el resultado.
Aquí hay más ejemplos.
$ betty whats my kernel version Betty: Running uname -a Linux sk 4.11.9-1-ARCH #1 SMP PREEMPT Wed Jul 5 18:23:08 CEST 2017 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
Si hay más de una forma en que Betty podría responder, ella te pedirá que selecciones la que deseas. Echa un vistazo al siguiente ejemplo. Le he pedido la dirección IP de mi sistema. Me preguntó de nuevo – Ip interna o IP externa. Quería que mostrara mi IP interna, así que entré 1 (número uno). Ejecutó el comando “ifconfig” y mostró la dirección 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
Si Betty no puede entender tu pregunta, mostrará el siguiente mensaje:
Betty: I don't understand. Hopefully someone will make a pull request so that one day I will understand.