Si ajusta el comportamiento de su shell Bash con shopt, puede controlar más de 50 configuraciones. Le mostraremos cómo adaptar su sistema Linux a su gusto.
Tabla de contenido
El shopt incorporado
El shopt integrado es parte de todas las versiones del Bash shell, por lo que no es necesario instalar nada. El número de opciones disponibles en la tienda ha aumentado constantemente a lo largo de los años. Por lo tanto, cuanto más antigua sea la versión de Bash que tenga, más corta será la lista de opciones de compra.
Si algo no parece estar funcionando en su máquina, verifique la entrada de la página de manual para Bash y verifique que la opción esté disponible en su versión de shopt.
Cubrimos todas las opciones de compra a continuación. También describimos cómo usarlo y compartimos algunos ejemplos. Desde allí, puede consultar la página de manual de Bash o Manual de referencia de GNU Bash para ver si alguna de esas opciones suena útil o atractiva.
Algunas opciones de la tienda están habilitadas de forma predeterminada y forman parte del comportamiento predeterminado de Bash. Puede habilitar una opción de compra como un cambio a corto plazo en Bash. Luego volverá al comportamiento predeterminado cuando cierre el shell.
Sin embargo, si desea que un comportamiento modificado esté disponible cada vez que inicie un shell Bash, puede hacer que los cambios sean permanentes.
Las opciones de compra
Hay 53 opciones de compra. Si usa el comando shopt sin opciones, las enumera. Si canalizamos la salida a través del comando wc, contar las líneas, palabras y caracteres para nosotros. Debido a que cada opción de compra está en su propia línea, el número de líneas es el número de opciones.
Escribimos lo siguiente:
shopt | wc
Para ver todas las opciones, podemos canalizar la salida a través del comando de columna para mostrar los nombres de las opciones en columnas, o podríamos canalizarlo a menos.
Escribimos lo siguiente:
shopt | column
Encontrar shopt en el Manual de Linux
La sección que trata sobre shopt y sus opciones se encuentra en la sección Bash del manual de Linux. La sección Bash tiene más de 6.000 líneas. Puede encontrar la descripción de shopt con mucho desplazamiento, o simplemente puede buscarla en el manual.
Para hacerlo, abra el manual en la sección Bash:
man bash
En el manual, presione / para iniciar una búsqueda. Escriba lo siguiente y luego presione Entrar:
assoc_expand_once
El inicio de la sección de shoptoption aparecerá en la ventana man.
Opciones de armado y desarmado
Para configurar y desarmar las opciones de compra, use los siguientes comandos:
-s: Establecer o habilitar.
-u: Desarmado o deshabilitado.
Debido a que algunas opciones están habilitadas de forma predeterminada, también es útil verificar qué opciones están activadas. Puede hacerlo con las opciones -s y -u sin usar un nombre de opción. Esto hace que shopt enumere las opciones que están activadas y desactivadas.
Escriba lo siguiente:
shopt -s
shopt -u | column
Puede utilizar una opción shopt sin los comandos -s o -u para ver el estado activado o desactivado de cada opción.
Por ejemplo, podemos escribir lo siguiente para verificar la configuración de la opción histverify:
shopt histverify
Podemos escribir lo siguiente para activarlo:
shopt -s histverify
Luego, podemos escribir lo siguiente para verificarlo nuevamente:
shopt histverify
La opción histverify cambia la forma en que opera un aspecto del comando de historial. Por lo general, si le pide al historial que repita un comando haciendo referencia a él por número, como! 245, el comando se recupera del historial de comandos y se ejecuta inmediatamente.
Si prefiere revisar un comando para asegurarse de que es el que esperaba y editarlo, si es necesario, escriba lo siguiente para activar la opción shopt histverify:
!245
El comando se recupera y se presenta en la línea de comando. Puede eliminarlo, editarlo o ejecutarlo presionando Enter.
La opción autocd
Con la opción autocd activada, si escribe el nombre de un directorio en la línea de comando y presiona Enter, se tratará como si hubiera escrito cd delante de él.
Escribimos lo siguiente para activar la opción autocd:
shopt -s autocd
Luego, escribimos el nombre de un directorio:
Documents
La opción cdspell
Cuando la opción cdspell está activada, Bash corregirá automáticamente los errores ortográficos simples y los errores tipográficos en los nombres de los directorios.
Escribimos lo siguiente para configurar la opción cdspell:
shopt -s cdspell
Para intentar cambiar a un directorio en minúsculas que debería tener una letra inicial mayúscula, escribimos lo siguiente:
cd documents
Luego, podemos escribir lo siguiente para probar un nombre de directorio con una «t» adicional en su nombre:
cd ../Picttures
Bash cambios en cada directorio, independientemente de los errores ortográficos.
La opción xpg_echo
Cuando la opción xpg_echo está activada, el comando echo obedecerá a los caracteres de escape, como n para nueva línea y t para tabulación horizontal.
Primero, escribimos lo siguiente para asegurarnos de que la opción esté configurada:
shopt -s xpg_echo
Luego incluimos n en una cadena que vamos a pasar a echo:
echo "This is line onenThis is line two"
El carácter de nueva línea de escape fuerza un salto de línea en la salida.
Esto produce el mismo comportamiento que -e (permitir la interpretación de escape) opción de eco, pero xpg_echo permite que sea la acción predeterminada.
La opción dotglob
La opción dotglob debe tratarse con un poco de precaución. Permite que los archivos y directorios que comienzan con un punto (.) Se incluyan en las expansiones de nombres o «globbing». Estos se denominan «archivos de puntos» o «directorios de puntos» y generalmente están ocultos. La opción dotglob ignora el punto al comienzo de sus nombres.
Primero, haremos una búsqueda de archivos o directorios que terminen en «geek» escribiendo lo siguiente:
ls *geek
Se encuentra y se enumera un archivo. Luego, activaremos la opción dotglob escribiendo lo siguiente:
shopt -s dotglob
Emitimos el mismo comando ls para buscar archivos y directorios que terminen en «geek»:
ls *geek
Esta vez se encuentran y se enumeran dos archivos, uno de los cuales es un archivo de puntos. Debe tener cuidado con rm y mv cuando tenga la opción dotglob activada.
La opción nocaseglob
La opción nocaseglob es similar a la opción dotglob, excepto que nocaseglob hace que las diferencias en las letras mayúsculas y minúsculas en los nombres de archivos y directorios se ignoren en las expansiones de nombres.
Escribimos lo siguiente para buscar archivos o directorios que comiencen con «cómo»:
ls how*
Se encuentra y se enumera un archivo. Escribimos lo siguiente para activar la opción nocaseglob:
shopt -s nocaseglob
Luego, repetimos el comando ls:
ls how*
Se encuentran dos archivos, uno de los cuales contiene letras mayúsculas.
Hacer cambios permanentes
Los cambios que hemos realizado solo durarán hasta que cerremos el shell Bash actual. Para que sean permanentes en diferentes sesiones de shell, debemos agregarlos a nuestro archivo «.bashrc».
En su directorio de inicio, escriba el siguiente comando para abrir el archivo «.bashrc» en el editor de texto gráfico Gedit (o cámbielo en consecuencia para usar el editor que prefiera):
gedit .bashrc
El editor gedit se abrirá con el archivo «.bashrc» cargado. Verá que algunas entradas de la tienda ya están incluidas.
También puede agregar sus propias opciones de compra aquí. Cuando los haya agregado, guarde los cambios y cierre el editor. Ahora, cada vez que abra un nuevo shell Bash, sus opciones estarán configuradas para usted.
Opciones hasta donde alcanza la vista
Es cierto que el comando shopt tiene muchas opciones, pero no es necesario que las maneje todas a la vez, si es que alguna vez las tiene. Dado que hay tantos, es probable que haya algunos que no le interesen.
Por ejemplo, hay muchos que obligan a Bash a funcionar de forma compatible con versiones anteriores específicas. Eso podría ser útil para alguien, pero es un caso bastante específico.
Puedes revisar el Bash página man o Manual de referencia de GNU Bash. Decida qué opciones marcarán la diferencia para usted y luego experimente con ellas. Solo tenga cuidado con las opciones que afectan la forma en que se expanden los nombres de archivos y directorios. Pruébelos con un comando benigno, como ls, hasta que se sienta cómodo con ellos.