No todos los personajes son iguales en Bash. Algunos de ellos realizan funciones especiales, modifican comandos y nos ayudan a manipular datos. Por eso hemos recopilado la siguiente lista con los caracteres especiales de Bash más importantes. Siga leyendo para descubrir cómo usarlos y cómo pueden hacer que su vida diaria de Bash sea más fácil.
Separador de ruta de carpeta (/)
En Bash, la barra diagonal (/
) separa las partes de una ruta, las subcarpetas dentro de las carpetas. Para visitar la carpeta llamada «imágenes» dentro de su carpeta de inicio, deberá usar el comando cd
como:
cd /home/USERNAME/pictures
Todo lo que está después de una barra inclinada en el ejemplo anterior reside dentro de lo que precede a la barra inclinada.
Directorio de inicio (~)
En lugar de escribir el nombre completo de su carpeta de inicio en su terminal Bash, puede usar el carácter de tilde (~
). Por ejemplo, para ir a su carpeta de inicio, use:
También puede incorporarlo en rutas más complejas. Por ejemplo, para editar un archivo llamado «mydata.txt» dentro de la carpeta «Personal» en su directorio de inicio, use:
nano ~/Personal/mydata.txt
Carpeta actual/superior (.)
Puedes usar un solo (.
) o punto doble (..
) para definir si una acción debe realizarse dentro del directorio actual o en el superior, respectivamente. Un solo punto (.) se asigna a la carpeta actual, mientras que un punto doble (..) se asigna a la carpeta que se encuentra arriba.
Digamos que estás en la carpeta “/home/NOMBRE DE USUARIO/imágenes” y quieres ejecutar el script llamado “transform_images.sh” dentro del mismo directorio. En este caso, escriba:
Si, después de ejecutar el script, desea volver a la carpeta superior a la que se encuentra actualmente, escriba:
Eso lo regresaría de la carpeta «/home/USERNAME/pictures» a «/home/USERNAME».
Comentarios y Cancelaciones (#)
El símbolo hash (#
) es más útil al escribir scripts de Bash, ya que le permite agregarles comentarios para futuras referencias. Bash ignora todo lo que sigue a un símbolo hash.
En el siguiente script, la primera línea define que es un script de Bash, la segunda es un comentario que se ignora y la tercera es un comando de copia típico:
#!/bin/bash # This is a comment - you can type anything you want here cp file1.txt /home/USERNAME/scripts/file2.txt
Los hashes son útiles incluso si no está escribiendo un script, ya que le permiten cancelar partes de un comando. Para verlo en acción, pruebe el siguiente comando sencillo:
Luego, intente lo siguiente en su lugar:
Solo verá «I am» devuelto en la segunda versión porque el hash habrá cancelado todo lo que siguió después.
Rangos ([])
Puede definir rangos de caracteres encerrándolos entre corchetes ([]
). Para verlo en acción, supongamos que desea buscar nombres de carpetas que comiencen con D o M. Escriba:
Quizás esté en una carpeta llena de subcarpetas con el nombre de cada año. Para copiar las carpetas de los cinco años anteriores en /home/USERNAME/backup
usar:
cp -r 201[56789] /home/USERNAME/backup
Incluso puede simplificarlos aún más con un guión (-):
cp 201[5-9] /home/USERNAME/backup
Bash iterará de 5 a 9 para incluir los números entre ellos.
Redirección (<>)
Usando paréntesis angulares (<>
), puede redirigir la entrada o salida de un comando. Por ejemplo, el siguiente comando:
redirigirá la salida de ls
y guárdelo en el archivo «list.txt».
Tenga en cuenta que un corchete de ángulo recto doble (>>
) agrega la salida de un comando a un archivo. Si vuelve a ejecutar el mismo comando, agregará su salida al final del contenido existente. A reemplazar su contenido con nuevos resultados, use un solo paréntesis de ángulo recto (>
):
Tuberías (|)
Puede combinar diferentes comandos en un todo más grande para lograr resultados más complejos mediante el uso de tuberías (|
). Son algo similares a la redirección (más sobre sus similitudes y diferencias aquí).
Suponga que tiene un archivo enorme con miles de entradas y desea ubicar su nombre en él. En lugar de buscarlo en un editor de texto, haga lo siguiente:
cat entries.txt | grep 'YourName'
En este caso, la salida de «entries.txt» se canalizará al grep
dominio.
Separador de comandos (;)
Bash le permite ejecutar varios comandos de una vez separándolos con punto y coma (;
). Por ejemplo, para copiar dos carpetas a dos destinos diferentes con un solo comando:
cp folder1 destination1; cp folder2 destination2
El punto y coma separa los dos comandos y le dice a Bash que los ejecute secuencialmente. Tenga en cuenta que puede usar más de dos comandos si lo desea.
comodines
*
Probablemente ya hayas usado el asterisco (
cp /home/USERNAME/folder1/*.jpg /home/USERNAME/folder2/
) en algunos comandos. Coincide con cualquier secuencia de caracteres y permite acciones como copiar todos los archivos JPG de una carpeta a otra:?
El signo de interrogación (
cp /home/USERNAME/201?/*.jpg /home/USERNAME/folder2/
) también es un comodín en Bash pero solo coincide con un solo carácter. Por ejemplo:
El comando anterior copiará todos los archivos jpg en carpetas que comienzan con «201». Dado que el comodín se traduce en cualquier carácter alfanumérico, no solo en números, el comando anterior también copiaría cualquier carpeta que pudiera llamarse «201A» o «201z».
Lanzar en segundo plano (&)&
Puede ejecutar comandos como procesos en segundo plano simplemente agregando el comando con un símbolo de y comercial (
cp /home/USERNAME/Downloads/huge_file.zip /home/USERNAME/backups &
): fg
Lo anterior comenzará a copiar el archivo archivo_enorme.zip e inmediatamente se moverá al fondo, permitiéndole seguir usando la terminal. El comando se cerrará automáticamente cuando se complete. Si desea volver a presentarlo, puede hacerlo escribiendo
seguido de Entrar.
variables ($)$
El signo de dólar (
myname=YOUR_NAME myage=YOUR_AGE echo "I'm $myname and I'm $myage years old"
Variable de eco de caracteres especiales de Bash
Tenga en cuenta que no hay signo de dólar al asignar valores a las variables.
Escapes (\) y Comillas («)\
Si desea utilizar cualquiera de los caracteres especiales tal como están en un comando, deberá escapar de él. Puede hacerlo precediendo el carácter especial con una barra invertida ( \!
). Por ejemplo, si tiene un archivo con un nombre que incluye un signo de exclamación, debe escribir
en cambio, que Bash lo interprete como un signo de exclamación y no como un carácter especial.''
Otra forma sería usar solo (""
) o comillas dobles (
). Al encerrar una cadena entre comillas, cualquier carácter especial que contenga se tratará como el carácter real. También hay una diferencia entre comillas simples y dobles. Las comillas simples evaluarán la cadena adjunta como texto, mientras que las comillas dobles le permiten usar variables ($) dentro de la cadena adjunta.
Terminando
Los anteriores no son los únicos caracteres especiales en Bash, pero son los que consideramos más útiles para nuestras aventuras diarias en la terminal. No olvide consultar estos atajos de teclado para moverse rápidamente en Bash. Háganos saber en la sección de comentarios a continuación si nos hemos perdido algún carácter especial importante.