bash

Diferencias

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

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
bash [2023/02/27 16:36] peronbash [2024/01/30 17:48] (actual) – [Variables de entorno] peron
Línea 5: Línea 5:
 >Para una breve explicación acerca del uso de un intérprete de comandos, refiérete al tutorial  [[aprende_a_usar_la_terminal|"aprende a usar la terminal"]].  >Para una breve explicación acerca del uso de un intérprete de comandos, refiérete al tutorial  [[aprende_a_usar_la_terminal|"aprende a usar la terminal"]]. 
  
 +====Atajos de Bash====
 +Muchos de las combinaciones de control de Bash son similares a las de otros intérpretes 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 intérprete/interrumpe la comunicación |
 ==== Opciones de shell ==== ==== Opciones de shell ====
 Bash es uno de los [[intérpretes de comandos]] más utilizados, y cuenta con muchas funcionalidades. Las más útiles son: Bash es uno de los [[intérpretes de comandos]] más utilizados, y cuenta con muchas funcionalidades. Las más útiles son:
Línea 21: Línea 29:
 ==== Archivos de configuración ==== ==== Archivos de configuración ====
  
-Las opciones de bash se guardan en el archivo ''.[[bashrc]]'' en tu directorio ''/home/usuario''. Si tu usuario, digamos, es ''fulana'', este archivo tiene la ruta completa de ''/home/fulana/.bashrc'', o en forma abreviada, ''~/.bashrc''. 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.+Las opciones de bash se guardan en tu fichero ''~/.[[bashrc]]''
  
-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ónes decir, no se ejecuta cuando, ya dentro de texto-plano, ejecutamos una más instancias nuevas de Vash 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''.+>Este archivo, y los demás, comienzan con un punto para permanecer "ocultos" frente a varios comandos para no estorbar mucho el directorio. 
 + 
 +Puede existir también otro fichero de configuración denominado //perfil de arranque//que se lee y ejecuta al invocar Bash al iniciar sesión (es decir, no se ejecuta cuando ejecutas bash de forma anidada dentro de texto plano o utilizas [[tmux]])Cada usuario podría tener un ''~/.bash_profile'', que se ejecutará al iniciar texto-plano con tal shell.
  
-**//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!//** 
  
  
 ==== Opciones Avanzadas de Bash ==== ==== Opciones Avanzadas de Bash ====
- 
-=== Alias === 
- 
-Una opción útil que puedes añadir a tu archivo ''.bashrc'' son los ''alias''. El alias te permite especificar - por ejemplo - un equivalente abreviado de una orden. 
- 
-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á reservada 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. 
  
  
Línea 76: Línea 63:
  
 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. 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.
 +
 +=== Alias ===
 +
 +Una opción útil que puedes añadir 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 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>
 +
 +Ten en cuenta el uso de la palabra ''aliases'' y no ''alias'' (pues esta última está reservada 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.
 +
 +También puedes agregar tus //alias// en un el fichero ''~/.config/[[bash_aliases]]'', los cuales serán instaurados al ejecutar bash en modo interactivo.
  
 ==== Opciones específicas de Bash ==== ==== Opciones específicas de Bash ====
Línea 87: Línea 98:
 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. 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.
  
 +
 +> 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!
 ==== Más información ==== ==== Más información ====
  
-  +__**Ver también**__:  [[Tutorial de programación en Bash]]
  
-  * Manual de referencia de GNU Bash, en inglés[[https://www.gnu.org/software/bash/manual/html_node/index.html|separado por nodos]], o [[https://www.gnu.org/software/bash/manual/bash.html|en una página entera]]. +Manual de referencia de GNU Bash, (en inglés):  
-  * [[Tutorial de programación en Bash]]+  * [[https://www.gnu.org/software/bash/manual/html_node/index.html|separado por nodos]] 
 +  * [[https://www.gnu.org/software/bash/manual/bash.html|En una página web entera]].
  • bash.1677515793.txt.gz
  • Última modificación: 2023/02/27 16:36
  • por peron