Bash
Bash, o Bourne Again Shell, es un interprete de comandos desarrollado a finales de la decada de 1980s por Brian Fox para el proyecto GNU basado en el anterior interprete Shell de Bourne de los sistemas similares a Unix.
Para una breve explicacion acerca del uso de un interprete de comandos, refierete al tutorial "aprende a usar la terminal".
Atajos de Bash
Muchos de las combinaciones de control de Bash son similares a las de otros interpretes de comandos.
Atajo | Resultado en Bash |
---|---|
Ctrl+A | Va al comienzo de la CLI |
Ctrl+E | Va al final de la CLI |
Ctrl+L | Borra la pantalla |
Ctrl+R | Llama al buscador de historial |
Ctrl+S | Pausa la terminal |
Ctrl+Q | Des-pausa la terminal |
Ctrl+D | Sale del interprete/interrumpe la comunicacion |
Opciones de shell
Bash es uno de los interpretes de comandos mas utilizados, y cuenta con muchas funcionalidades. Las mas utiles son:
Autocompletado
Una opcion generalmente activa en Bash es la funcion de autocompletado, que se activa presionando la tecla Tab. Simplemente escribe el inicio del nombre de un archivo, directorio y comando y presiona Tab, y el interprete intentara deducir el resto.
Historial
Este interprete almacena los comandos ingresados en la sesion, en lo que se denomina "historial". Puedes acceder a este historial de comandos previamente utilizados por medio de las flecha de cursor arriba y flecha de cursor abajo para retroceder o avanzar en el historial.
Puedes utilizar Ctrl+r para realizar una busqueda inversa en el historial de comandos mientras tipeas ("reverse-i-search"). En la medida que tipees cada letra de un comando, el interprete presentara el comando mas reciente que coincida con los caracteres introducidos. Tambien puedes ingresar Ctrl+r repetidamente para ciclar entre todos los comandos que contengan los caracteres previamente introducidos. Podras presionar flecha de cursor izquierda o flecha de cursor derecha para colocar el comando encontrado en la linea de comando del interprete, a fin de editarla o simplemente presionar la tecla Intro para ejecutar dicha orden.
Archivos de configuracion
Las opciones de bash se guardan en tu fichero ~/.bashrc
.
Si lo deseas tambien puedes configurar el archivo
~/.bash_logout
, que solo se ejecuta tras desloguearte de tu
sesion de texto-plano.xyz.
Este archivo, y los demas, comienzan con un punto para permanecer "ocultos" frente a varios comandos para no estorbar mucho el directorio.
Puede existir tambien otro fichero de configuracion denominado
perfil de arranque, que se lee y ejecuta al invocar Bash al
iniciar sesion (es decir, no se ejecuta cuando ejecutas bash de forma
anidada dentro de texto plano o utilizas tmux).
Cada usuario podria tener un ~/.bash_profile
, que se
ejecutara al iniciar texto-plano con tal shell.
Opciones Avanzadas de Bash
Variables de entorno
Las variables de entorno tambien pueden configurarse en
.bashrc
. Se utiliza la siguiente sintaxis:
export variable=valor
Prompt
Una variable muy modificada para cada usuario es PS1
.
Esta variable define el texto que imprime la terminal cuando nos pide un
comando.
Por defecto, la variable PS1
en texto-plano es
\u@\h:\w\$
. Contiene varios caracteres expandibles, siendo
\u
para el usuario, \h
para el host o nombre
de la maquina, \w
el directorio en el que se encuentra
actualmente y \$
un signo de dolar si es un usuario normal,
o una almohadilla (#
) si es un usuario privilegiado. Para
ver una lista completa de los caracteres expandibles de estas variables
de prompt, vease una seccion especifica del manual
de bash (en ingles).
Hay varias variables de prompt; ademas de PS1
, estan
PS0
, PS2
, PS3
y PS4
,
cada una cubriendo una parte especifica del interprete. Para el texto
comun que se imprime en la terminal, basta con re-definir la variable
PS1
.
Suponiendo que deseas que tu prompt se vea de la siguiente manera:
[15:30:12]texto-plano/fulano:
Puedes anadir anadir la siguiente linea a mi archivo
.bashrc
:
export PS1="[\t]\h/\u: "
siendo \t
la hora, en el huso horario del servidor, en
formato de 24 horas (\T
para 12 horas). El ultimo espacio
dentro de la definicion va a ser mostrado como tal.
Alias
Una opcion util que puedes anadir a tu archivo .bashrc
son los alias. Estos te permiten especificar - por ejemplo - un
equivalente abreviado de una orden.
Si deseas crear un alias para el comando
echo ¡Los aliases son lo mas!
a la palabra
aliases
, basta con anadir la siguiente linea a tu archivo
.bashrc
:
alias aliases="echo ¡Los aliases son lo mas!"
Ten en cuenta el uso de la palabra aliases
y no
alias
(pues esta ultima esta reservada para los comandos de
bash). Asegurate siempre de que los alias que uses no entren en
conflicto con otros programas del mismo nombre. Para asegurarte, puedes
usar el comando
which comando
para que te regrese todos los archivos ejecutables con ese nombre. Si el comando no te devuelve ningun archivo, puedes usar esa palabra sin problemas.
Si el alias contiene caracteres que no sean numeros o letras (los espacios no estan permitidos), hay que encerrar el nombre del alias con comillas:
alias "mi-alias"="ls -lA;cat *.txt|grep texto"
o
alias "mi-alias=ls -lA;cat *.txt|grep texto"
El ultimo alias contiene varios caracteres que representan funciones
especiales del interprete, como el ;
que separa una orden
de la otra, y ejecuta la siguiente cuando la anterior termino, y el
|
, que envia el texto recibido a stdout
y lo
reenvia al siguiente comando por stdin
. Aun asi, el alias
es perfectamente valido, porque podemos usar alias para cualquier
comando complejo que podamos escribir manualmente en bash.
Tambien puedes agregar tus alias en un el fichero
~/.config/bash_aliases
, los cuales seran instaurados al
ejecutar bash en modo interactivo.
Opciones especificas de Bash
Hay opciones especificas de Bash que resultan utiles para algunas
personas. Se modifican con los comandos shopt
y
set
.
Ingresar el comando shopt
sin ningun argumento devuelve
todas las opciones actuales. Si queremos
activar alguna, se anade shopt -s opcion
a
.bashrc
, y para desactivarla, shopt -u opcion
.
Para una descripcion de todas las opciones (en ingles), se puede
consultar este
nodo del manual de Bash.
El comando set
sirve para modificar las mismas opciones
de bash, pero con otra sintaxis. Se puede usar set -opcion
para activar una opcion y set +opcion
para desactivarla, y
analogicamente, activar y desactivar varias opciones sucesivamente con
abreviaciones. Por ejemplo, set -nvm
hace que bash lea
comandos pero no los ejecute, imprima los comandos justo antes de
ejecutarlos y active el control de trabajos. Para ver todas las opciones
y abreviaciones de este comando, vease el nodo en el
manual de Bash.
Para ver todas las opciones de bash que estan activadas (no mostrar
todas las opciones, como hace shopt
), se puede leer la
variable BASHOPTS
con el comando
echo $BASHOPTS
, y mostrara las opciones activadas separadas
por dos puntos.
Si no estas seguro de que quieres una opcion guardada por defecto, en vez de agregarla a
.bashrc
, ¡simplemente ejecutalas y revisa que cambios ocurrieron!
Mas informacion
Ver tambien: Tutorial de programacion en Bash
Manual de referencia de GNU Bash, (en ingles):