Domina la terminal Bash comprendiendo los caracteres especiales que potencian tus comandos. ¡Conviértete en un experto al desentrañar estas herramientas clave!
Si deseas dominar la terminal Bash en Linux, macOS o cualquier otro sistema similar a UNIX, los caracteres especiales (como ~, *, |, y >) son fundamentales. Te ayudaremos a desentrañar estas crípticas secuencias de comandos de Linux y a convertirte en un héroe de los jeroglíficos.
¿Qué son los caracteres especiales?
Hay un conjunto de caracteres que la terminal Bash trata de dos maneras diferentes. Cuando los escribes en la terminal, actúan como instrucciones o comandos y le indican a la terminal que realice una función específica. Piensa en ellos como comandos de un solo carácter.
A veces, solo quieres imprimir un carácter y no necesitas que actúe como un símbolo mágico. Hay una forma de usar un carácter para que se represente a sí mismo en lugar de su función especial.
Te mostraremos qué caracteres son "especiales" o "meta-" y cómo puedes usarlos funcional y literalmente.
~ Directorio de inicio
La tilde (~) es una forma abreviada de tu directorio de inicio. Significa que no tienes que escribir la ruta completa a tu directorio de inicio en los comandos. Dondequiera que estés en el sistema de archivos, puedes usar este comando para ir a tu directorio de inicio:
cd ~
También puedes usar este comando con rutas relativas. Por ejemplo, si estás en algún lugar en el sistema de archivos que no está bajo tu carpeta de inicio y deseas cambiar al directorio archive en tu directorio work, usa la tilde para hacerlo:
cd ~/work/archive
. Directorio actual
Un punto (.) representa el directorio actual. Lo verás en las listas de directorios si usas la opción -a (todos) con ls.
ls -a
También puedes usar el punto en los comandos para representar la ruta a tu directorio actual. Por ejemplo, si quieres ejecutar un script desde el directorio actual, lo llamarías así:
./script.sh
Esto le indica a Bash que busque el archivo script.sh en el directorio actual. De esta manera, no buscará en los directorios en tu ruta por un ejecutable o script coincidente.
.. Directorio padre
El doble punto o "doble punto" (..) representa el directorio padre del actual. Puedes usar esto para subir un nivel en el árbol de directorios.
cd ..
También puedes usar este comando con rutas relativas; por ejemplo, si deseas subir un nivel en el árbol de directorios y luego entrar en otro directorio a ese nivel.
También puedes usar esta técnica para moverte rápidamente a un directorio en el mismo nivel en el árbol de directorios que tu directorio actual. Saltas un nivel y luego bajas a un directorio diferente.
cd ../gc_help
/ Separador de ruta de directorio
Puedes usar una barra hacia adelante (/)—a menudo llamada simplemente una barra—para separar los directorios en una ruta de acceso.
ls ~/work/archive
Una barra hacia adelante representa la ruta de directorio más corta posible. Dado que todo en el árbol de directorios de Linux comienza en el directorio raíz, puedes usar este comando para moverte rápidamente al directorio raíz:
cd /
Más a menudo, usas el símbolo de número o hashtag (#) para indicarle a la terminal que lo que sigue es un comentario y no debe actuar sobre él. Puedes usarlo en scripts de shell y—menos útil—en la línea de comandos.
# Esto será ignorado por la terminal Bash
No se ignora verdaderamente, sin embargo, porque se añade a tu historial de comandos.
También puedes usar el hashtag para recortar una variable de cadena y eliminar algo de texto del principio. Este comando crea una variable de cadena llamada this_string.
En este ejemplo, asignamos el texto "¡Dave Geek!" a la variable.
this_string="¡Dave Geek!"
Este comando usa echo para imprimir las palabras "Cómo-Hacer" en la ventana de terminal. Recupera el valor almacenado en la variable de cadena mediante una expansión de parámetros. Debido a que añadimos el hashtag y el texto "Dave", recorta esa parte de la cadena antes de que se pase a echo.
echo Cómo-Hacer ${this_string#Dave}Esto no cambia el valor almacenado en la variable de cadena; solo afecta lo que se envía a echo. Podemos usar echo para imprimir el valor de la variable de cadena una vez más y verificar esto:
echo $this_string
¿Comodín de caracter único en Bash?
La terminal Bash soporta tres comodines, uno de los cuales es el signo de interrogación (?). Se utilizan los comodines para reemplazar caracteres en plantillas de nombres de archivo. Un nombre de archivo que contiene un comodín forma una plantilla que coincide con un rango de nombres de archivos, en lugar de solo uno.
El comodín de signo de interrogación representa exactamente un carácter. Considera la siguiente plantilla de nombre de archivo:
ls badge?.txt
Esto se traduce como "listar cualquier archivo cuyo nombre comience con 'badge' y sea seguido por cualquier carácter único antes de la extensión del archivo".
Coincide con los siguientes archivos. Nota que algunos tienen números y otros tienen letras después de la parte "badge" del nombre del archivo. El comodín de signo de interrogación coincidirá tanto con letras como con números.
Sin embargo, esa plantilla de nombre de archivo no coincide con "badge.txt", ya que el nombre del archivo no tiene un solo carácter entre "badge" y la extensión del archivo. El comodín de signo de interrogación debe coincidir con un carácter correspondiente en el nombre del archivo.
También puedes usar el signo de interrogación para encontrar todos los archivos que tengan un número específico de caracteres en los nombres de archivo. Esto lista todos los archivos de texto que contienen exactamente cinco caracteres en el nombre del archivo:
ls ?????.txt
Comodín de secuencia de caracteres en Bash
Puedes usar el comodín asterisco (*) para representar cualquier secuencia de caracteres, incluyendo ninguna. Considera la siguiente plantilla de nombre de archivo:
ls badge*
Esto coincide con todo lo siguiente:
Coincide con "badge.txt" porque el comodín representa cualquier secuencia de caracteres o ningún carácter.
Este comando coincide con todos los archivos llamados "source", sin importar la extensión del archivo.
ls source.*
Comodín de conjunto de caracteres
Como se mencionó anteriormente, utilizas el signo de interrogación para representar cualquier carácter único y el asterisco para representar cualquier secuencia de caracteres (incluyendo ninguno).
Puedes formar un comodín con los corchetes cuadrados ( [] ) y los caracteres que contienen. El carácter relevante en el nombre del archivo debe coincidir al menos con uno de los caracteres en el conjunto de caracteres del comodín.
En este ejemplo, el comando se traduce como: "cualquier archivo con una extensión '.png', un nombre de archivo que comienza con 'pipes_0' y en el que el siguiente carácter es 2, 4 o 6."
ls badge_0[246].txt
Puedes usar más de un conjunto de corchetes por plantilla de nombre de archivo:
ls badge_[01][789].txt
También puedes incluir rangos en el conjunto de caracteres. El siguiente comando selecciona archivos con los números 21 a 25, y 31 a 35 en el nombre del archivo.
ls badge_[23][1-5].txt
Separador de comandos en la terminal
Puedes escribir tantos comandos como desees en la línea de comandos, siempre que los separes con un punto y coma (;). Lo haremos en el siguiente ejemplo:
ls > count.txt; wc -l count.txt; rm count.txt
Nota que el segundo comando se ejecuta incluso si el primero falla, el tercero se ejecuta incluso si el segundo falla, y así sucesivamente.
Si deseas detener la secuencia de ejecución si un comando falla, usa un doble ampersand (&&) en lugar de un punto y coma:
cd ./doesntexist && cp ~/Documents/reports/* .
Si deseas encontrar artículos similares a 15 caracteres especiales que necesitas conocer para Bash, te sugerimos revisar la categoría Linux.

Deja una respuesta