Bash (abreviatura de “Bourne Again Shell”) es un shell de Unix y un intérprete de lenguajes de comando. “Shell” es un procesador de macros que ejecuta comandos, siendo Bash el más utilizado, empaquetado por defecto para la mayoría de las distribuciones de Linux y sucesor del shell Korn (“ksh”) y el shell C (“csh”). Se […]
Bash (abreviatura de “Bourne Again Shell”) es un shell de Unix y un intérprete de lenguajes de comando. “Shell” es un procesador de macros que ejecuta comandos, siendo Bash el más utilizado, empaquetado por defecto para la mayoría de las distribuciones de Linux y sucesor del shell Korn (“ksh”) y el shell C (“csh”).
Se pueden hacer muchas cosas en el sistema operativo Linux a través de la línea de comandos. Algunos ejemplos son:
- Editar archivos
- Ajustar el volumen del sistema operativo
- Buscar páginas web en Internet
- ¡Automatizar el trabajo que haces todos los días y más!
En este tutorial de bash puedes leer más sobre esta herramienta y comprender cómo usarla en la vida diaria. ¡Compruébalo!
Usando bash desde la línea de comando
Para comenzar a usar Linux en bash en la mayoría de los sistemas operativos Linux y OS X, abre una terminal. Consideramos un ejemplo simple de “¡hola mundo!” para empezar. Abre tu terminal y escribe la siguiente línea (todo después del signo $):
- $ echo “¡Hola, mundo!”
La salida debería ser simplemente, “¡Hola, mundo!”. Como se puede ver, usamos el comando “echo” para imprimir el string “¡Hola, mundo!” en la terminal.
Escribir un script bash
También es posible poner todos los comandos bash linux en un archivo .sh y ejecutarlos desde la línea de comando. Digamos que hay un script bash con el siguiente contenido:
- #!/bin/bash
echo “¡Hola, mundo!”
El script comienza con “#!”, que es una directiva especial que Unix trata de manera diferente. Esto se debe a que es una convención permitir que el shell interactivo sepa el tipo de intérprete que se ejecutará para el siguiente programa. Esta línea le dice a Unix que el archivo debe ser ejecutado por “/bin/bash”.
Esta es la ubicación predeterminada para el shell Bourne en casi todos los sistemas Unix. Agregar “#!bin/bash” como la primera línea de tu script informa al sistema operativo que el shell bash debe ejecutar los siguientes comandos en el script.
El “#!” a menudo denominado como “hash-bang”, “she-bang” o “sha-bang”, solo se activa si el script se lee como un ejecutable. Mientras escribes “./scriptname.extension” hace que busque el intérprete en la primera línea, ejecutar el script con la extensión bash (“scriptname.sh”) hace que esta línea sea ignorada.
Ejemplo 1
Por lo tanto, es posible ejecutar el script de la siguiente manera. Para hacer que el archivo sea ejecutable, debes llamar a este comando bajo sudo chmod u+x “nombre del archivo”:
- $ ./miScriptBash.sh
echo “¡Hola, mundo!”
El script tiene solo dos líneas. El primero indica qué intérprete utilizar para ejecutar el archivo (en este caso, bash). La segunda línea es el comando que queremos usar, “echo”, seguido de lo que queremos imprimir, “¡Hola, mundo!”.
A veces el script no se ejecuta y el comando anterior devuelve el error. Esto se debe a los permisos definidos en el archivo. Para evitar esto, antes de ejecutar el script, haz lo siguiente:
$ chmod u+x miScriptBash.sh
Comando de espera
El comando “wait” es una acción embutida de Linux que espera la finalización de cualquier proceso en ejecución. Se utiliza con un proceso o ID de trabajo determinado.
Si no se proporciona ningún ID o trabajo con el comando, espera a que se completen todos los procesos actuales y devuelve el estado de salida. Para ejecutarlo utiliza:
- $ bash wait_example.sh
Comando Sleep
Cuando deseas pausar la ejecución de cualquier comando durante un período de tiempo específico, puedes utilizar el comando “sleep”, estableciendo el valor del retraso en segundos (s), minutos (m), horas (h) y días (d).
Para hacerlo, crea un archivo llamado “sleep_example.sh” y agrega el siguiente script, que esperará 5 segundos después de la ejecución:
- #!/bin/bash
echo “Espera 5 segundos”
sleep 5
echo “Hecho”
Ahora, ejecuta el archivo con el comando bash Linux.
- $ bash sleep_example.sh
Prueba si el archivo existe
También puedes verificar la existencia del archivo con el comando bash ubuntu usando la opción “-e” o “-f”, como en el siguiente ejemplo. Crea un archivo llamado “file_exist.sh”, cuyo nombre pasará por la línea de comando, y agrega el siguiente código:
- #!/bin/bash
filename = $1
if [ -f” $ filename “ ] ; then
echo “Archivo existe”
else
echo “Archivo no existe”
Aquí, supongamos que el archivo book.txt existe y el book2.txt no existe en la ubicación actual. Ejecuta los siguientes comandos para verificarlos:
- $ ls
$ bash file_exist.sh book.txt
$ bash file_exist.sh book2.txt
Línea de comandos de Linux: Bash Cat
“Cat” es uno de los comandos más utilizados en los sistemas operativos Unix. Se utiliza para leer un archivo de forma secuencial e imprimirlo en una salida estándar. El nombre se deriva de su función para archivos “con-cat-enar” y su sintaxis básica es: cat [options] [files_names].
Las opciones más utilizadas son:
- “-b”: número de líneas de salida que no están en blanco.
- “-n”: numera todas las líneas de salida.
- “-s”: varias líneas en blanco adyacentes.
- “-v”: muestra caracteres no imprimibles, excepto las tabulaciones y el carácter del final de la línea.
Por ejemplo, para imprimir en la terminal el contenido del archivo.txt:
- cat archivo.txt
Concatenar el contenido de los dos archivos y mostrar el resultado en la terminal con:
- cat archivo1.txt archivo2.txt
Línea de comandos de Linux: CD Bash
Para cambiar el directorio a una ruta específica, como “cd projects”, por ejemplo, hay argumentos realmente útiles:
- “.”: se refiere al directorio actual, como “./projects”.
- “..”: se puede usar para cargar una carpeta, usar “cd ..” y se puede combinar para subir varios niveles como “../../”.
- “/”: es la raíz del sistema para llegar a las carpetas esenciales, como “system”, “users”, etc.
- “~”: es el directorio inicial, generalmente el camino “/users/username”. Vuelve a las carpetas a las que hace referencia en relación con este camino, incluyendo al principio del camino, por ejemplo, “~/projects”.
Línea de comandos de Linux: Bash head
“Head” se utiliza para imprimir las primeras diez líneas (por defecto), o cualquier otra cantidad específica, de un archivo o archivos. “Cat” se utiliza para leer un archivo secuencialmente e imprimirlo en una salida estándar, es decir, imprime todo el contenido del archivo completo.
Esto no siempre es necesario, como cuando deseas verificar el contenido de un archivo para ver si es correcto o no está vacío. Por esta razón, el comando “head” permite ver las primeras N líneas de un archivo.
Si se llama más de un archivo, se muestran las primeras diez líneas de cada archivo a menos que se especifique un número de líneas. La opción de mostrar el encabezado del archivo es opcional en la siguiente sintaxis: head [options] [file_name(s)].
Las opciones más utilizadas son:
- “-n N”: imprime las primeras N líneas del archivo(s).
- “-q”: no imprime los encabezados del archivo.
- “-v”: siempre imprime los encabezados del archivo.
Ve ejemplos de uso de este comando:
- “head archivo.txt”: imprime las primeras diez líneas (por defecto) del archivo.txt en la terminal.
- “head -n 7 archivo.txt”: imprime las primeras siete líneas del archivo.txt en la terminal.
- “head -q -n 5 archivo1.txt archivo2.txt”: imprime las primeras cinco líneas del archivo1.txt seguidas de las primeras cinco líneas del archivo2.txt en la terminal.
Línea de comandos de Linux: Bash Is
“Is” es un comando en sistemas operativos similares a Unix para listar el contenido de un directorio, por ejemplo, nombres de carpetas y archivos, por la sintaxis: cat [options] [file_names].
Las opciones más utilizadas son:
- “-a”: todos los archivos y carpetas, incluidos los que están ocultos y comienzan con un “.”.
- “-l”: lista de formato larga.
- “-G”: habilita la salida en color.
Ejemplo:
- Is ejemploHostGator/guías/
Línea de comandos de Linux: Bash man
“Man” es un comando de linux bash que se utiliza para mostrar manuales de referencia del comando que se proporciona en línea. Muestra la página “man” para el comando dado utilizando la sintaxis: man [option] [command].
Las opciones más utilizadas son:
- “-f”: imprime una breve descripción del comando proporcionado.
- “-a”: muestra, en sucesión, todas las páginas del manual de introducción disponibles contenidas en el manual.
Ejemplo:
- man Is
Línea de comandos Linux: Bash mv
Este comando básicamente mueve carpetas y archivos a través de la sintaxis: mv [options] [source] [target]. El primer argumento es el archivo que deseas mover y el segundo es dónde moverlo.
Las opciones más utilizadas son:
- “-f”: para forzar el movimiento y sobrescribir archivos sin verificar con el usuario.
- “-i”: para solicitar confirmación antes de sobrescribir los archivos.
¡Esperamos que este artículo te ayude a entender lo qué es Bash en Linux! Aprovecha la oportunidad para seguir otros contenidos sobre el comando Linux en el Blog de HostGator.
Además, compartimos varios archivos con los temas Tecnología, Marketing y Negocios. ¡Asegúrate de revisarlo y comentar aquí si tienes alguna pregunta sobre qué es bash! Y no lo olvides: ahora es el momento de practicar. ¡Comparte con tus amigos!