bourne_again_shell

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
bourne_again_shell [2021/06/13 21:01] – creado brubourne_again_shell [2022/06/14 17:21] (actual) – borrado peron
Línea 1: Línea 1:
-====== Bash ====== 
  
-**Bash**, o //Bourne Again Shell//, es un intérprete de comandos basado en el anterior intérprete **Bourne Shell** para el proyecto GNU. 
- 
-Para una breve explicación de cómo se utiliza este intérprete, la mayoría--por no decir toda-- de la explicación en [[aprende_a_usar_la_terminal|"aprende a usar la terminal"]] cumple su función. Si quieres saber cómo cambiar el intérprete por defecto de tu usuario, revisa [[interpretes_de_comandos|"intérpretes de comandos"]]. En este artículo se verá un par de opciones del intérprete para la personalización que te parezca más óptima. 
- 
-===== Archivos de configuración ===== 
- 
-Las opciones de bash se guardan en el archivo ''.bashrc'' en tu directorio home. Si tu usuario, digamos, es ''fulano'', este archivo tiene la ruta completa de ''/home/fulano/.bashrc'', o ''~/.bashrc'' más abreviado. Nótese que este archivo, y los demás, comienzan con un punto para permanecer "ocultos" frente a varios comandos para no estorbar mucho el directorio. 
- 
-Existe otro archivo, y podemos llamarlo en castellano //perfil de arranque//. Es un archivo que se lee y ejecuta cuando se invoca bash al iniciar sesión, es decir, no se ejecuta cuando, ya dentro de texto-plano, ejecutamos una o más instancias nuevas de bash con [[tmux]]. Este archivo puede tener varios nombres, siendo el perfil de arranque del sistema ''/etc/profile'', y para cada usuario, ''~/.bash_profile'', ''~/.bash_login'' o ''~/.profile''. Si existe más de uno de estos archivos, cuando se corre bash en //modo interactivo// (que es como lo corremos normalmente), éste ejecuta el primer archivo que encuentra en este orden. Hasta el momento, texto-plano no tiene un archivo ''/etc/profile'', y se recomienda usar simplemente ''~/.bash_profile''. 
- 
-**//PROTIP: Si no estás seguro de que quieres una opción guardada por defecto, en vez de agregarla a ''.bashrc'', ¡simplemente ejecútalas y revisa qué cambios ocurrieron!//** 
- 
-===== Alias ===== 
- 
-Una de las opciones más útiles que se pueden añadir al archivo ''.bashrc'' son los ''alias''. Es una forma de decirle al intérprete que cuando escribamos y enviemos una palabra (no necesariamente un comando), se ejecute un comando que hayamos especificado. Esto sirve mucho cuando hay comandos complejos que queremos usar varias veces y, en vez de escribirlo entero, usamos una abreviación. 
- 
-Si yo quiero crear un alias para el comando ''echo ¡Los aliases son lo más!'' a la palabra ''aliases'', basta con añadir la siguiente línea a tu archivo ''.bashrc'': 
- 
-<code>alias aliases="echo ¡Los aliases son lo más!"</code> 
- 
-Tenga en cuenta que usé la palabra ''aliases'' y no ''alias'', porque esta última ya está en uso para los comandos de bash. Asegúrate siempre de que los alias que uses no entren en conflicto con otros programas del mismo nombre. Para asegurarte, puedes usar el comando 
- 
-<code>which comando</code> 
- 
-para que te regrese todos los archivos ejecutables con ese nombre. Si el comando no te devuelve ningún archivo, puedes usar esa palabra sin problemas. 
- 
-Si el alias contiene caracteres que no sean números o letras (los espacios no están permitidos), hay que encerrar el nombre del alias con comillas: 
- 
-<code>alias "mi-alias"="ls -lA;cat *.txt|grep texto"</code> 
-o 
-<code>alias "mi-alias=ls -lA;cat *.txt|grep texto"</code> 
- 
-El último alias contiene varios caracteres que representan funciones especiales del intérprete, como el '';'' que separa una orden de la otra, y ejecuta la siguiente cuando la anterior terminó, y el ''|'', que envía el texto recibido a ''stdout'' y lo reenvía al siguiente comando por ''stdin''. Aun así, el alias es perfectamente válido, porque podemos usar alias para cualquier comando complejo que podamos escribir manualmente en bash. 
- 
-===== Variables de entorno y prompt ===== 
- 
-Las variables de entorno también pueden configurarse en ''.bashrc''. Se utiliza la siguiente sintaxis: 
- 
-<code>export variable=valor</code> 
- 
-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 máquina, ''\w'' el directorio en el que se encuentra actualmente y ''\$'' un signo de dólar 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, véase una sección específica del [[https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html|manual de bash]] (en inglés). 
- 
-Hay varias variables de prompt; además de ''PS1'', están ''PS0'', ''PS2'', ''PS3'' y ''PS4'', cada una cubriendo una parte específica del intérprete. Para el texto común que se imprime en la terminal, basta con re-definir la variable ''PS1''. 
- 
-Supongamos que quiero que mi prompt se vea de la siguiente manera: 
- 
-<code>[15:30:12]texto-plano/fulano: </code> 
- 
-puedo añadir la siguiente línea a mi archivo ''.bashrc'': 
- 
-<code>export PS1="[\t]\h/\u: "</code> 
- 
-siendo ''\t'' la hora, en el huso horario del servidor, en formato de 24 horas (''\T'' para 12 horas). El último espacio dentro de la definición va a ser mostrado como tal. 
- 
-===== Opciones de shell ===== 
- 
-Hay opciones específicas de bash que resultan útiles para algunas personas. Se modifican con los comandos ''shopt'' y ''set''. 
- 
-Ingresar el comando ''shopt'' sin ningún argumento devuelve todas las opciones actuales. Si queremos activar alguna, se añade ''shopt -s opción'' a ''.bashrc'', y para desactivarla, ''shopt -u opción''. Para una descripción de todas las opciones (en inglés), se puede consultar [[https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html#The-Shopt-Builtin|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 -opción'' para activar una opción y ''set +opción'' para desactivarla, y analógicamente, 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 de bash que están activadas (no mostrar todas las opciones, como hace ''shopt''), se puede leer la variable ''BASHOPTS'' con el comando ''echo $BASHOPTS'', y mostrará las opciones activadas separadas por dos puntos. 
  • bourne_again_shell.1623618077.txt.gz
  • Última modificación: 2021/06/13 21:01
  • por bru