IntelDig

Introducción al Bash de Linux

Trabajar en Linux nunca ha sido simple o fácil, en todo momento nos encontramos con nuevos desafíos que ayudan a mejorar aún más nuestro conocimiento en este sistema operativo.

Sin embargo, no es motivo para sentir miedo y alejarnos sin siquiera intentarlo. El problema es que generalmente las líneas de comando pueden resultar bastante intimidantes para los nuevos usuarios.

Pero queremos invitarte a plantarle cara al CLI. Es la interfaz de línea de comandos y al hablar de CLI hablamos de Bash. En este artículo te daremos una introducción al Bash de Linux sin que tengas que profundizar mucho en la funcionalidad de Bash.

Significa que solo tocaremos puntos simples y concretos que los usuarios experimentados ya seguramente conocen. En esta introducción al Bash de Linux les daremos, por tanto, una visión completamente general.

¿Qué es el Shell?

Antes de comenzar a darte una introducción al Bash de Linux es importante que conozcas los que es un Shell en Linux, o a que nos referimos cuando hablamos de Shell.

Shell el término usado para llamar a los intérpretes de comandos. Por medio de las instrucciones que da el intérprete, el usuario se puede comunicar con el núcleo y ejecutar distintas órdenes, así como también usar herramientas que le permiten controlar el funcionamiento del ordenador.

Los distintos comandos que nos dan estos intérpretes se usan como guiones si los escribimos en ficheros ejecutables y a estos ficheros los llamamos Shell-scripts. Cada vez que un usuario requiere ejecutar varios comandos escribe en un fichero de texto (que previamente estará marcado como ejecutable) todas las operaciones que desea realizar.

Posteriormente el intérprete traducirá todo ese fichero y las realizará.

Un Shell no es precisamente un lenguaje de programación a pesar de que ciertamente estos scripts los programamos allí. Ahora bien, ya podemos pasar a la introducción al Bash de Linux.

Introducción al Bash de Linux

Teniendo claro lo que es el Shell en Linux no toca ahora saber los que significa Bash.

¿Qué es Bash?

Simple, Bash es otro Shell. Este nuevo Shell está basado en el Shell Bourne original creado en los años 70 y lo emula de muchas maneras. Además, agrega también una gran cantidad de características y puede ser ejecutado en muchísimos más sistemas operativos a diferencia del Shell original.

Por tanto, si estás usando alguna de estas distribuciones de Linux como openSUSE, Ubuntu, Fedora, Slackware, Mandriva, cada vez que estés en una consola o tengas un terminal abierto estarás trabajando con Bash.

Ahora bien, dijimos que Bash emula al Shell y sabemos que un Shell es una interfaz de usuario y un intérprete de comandos. Por tanto eso mismo hace el Bash. Es decir, que ejecuta scripts de forma no interactiva.

Aquí los mismos comandos que utilizas en la línea de comandos se pueden juntar y ejecutarse como un programa.

Ciertamente, cabe destacar que Bash no es el único Shell que existe, simplemente es el más popular entre la principales distribuciones de Linux. Bash está disponible para casi cualquier sistema operativo y se puede instalar fácilmente.

Comandos

En esta introducción al Bash de Linux comenzaremos por ejecutar algunos comandos en el Shell. Primeramente, esto será lo que verás si estar conectado como usuario regular.

usuario @ fluffy: ~ $

La mayoría de las distribuciones de Linux configuran el valor predeterminado para mostrar símbolo de $ si has iniciado sesión como usuario normal y el símbolo de # si has iniciado sesión como root. Te mostraremos los comandos básicos que usarás.

Por cierto, es importante que recuerdes que no existe algo como “deshacer” en Bash, así que ten cuidado. Sin embargo, puedes decirle a Bash que intente evitar al menos un error común: “sobrescribir archivos”. Esto lo harás usando el comando set de la siguiente manera.

set -o noclobber

Este “noclobber” le dice a Bash que no debe sobrescribir los archivos existentes. Cuando no se establece noclobber y usas un comando como el que verá a continuación sobrescribirá el archivo de destino:

file cp1 file2

Por lo tanto, si “file2” existe, se sobrescribirá sin comentarios. Ahora bien, si eres muy cauteloso y configuras la opción noclobber terminarás viendo algo como esto:
bash: file2: no se puede sobrescribir el archivo existente

Si no hubiese un “file2”, Bash lo escribiría. Pero como existe un archivo con ese nombre, se niega a sobrescribirlo. Sin embargo, si realmente quieres sobrescribirlo, puedes agregar la opción -f (forzar) a cp:

cp -f file1 file2

Establecer “noclobber” es una buena opción mientras te estás acostumbrando al shell.
A continuación en esta introducción al Bash de Linux te mostramos una lista de los comandos básicos que sin duda usarás:

ComandosDescripción
cat fich1 […fichN]Muestra un archivo
cd [dir]Cambia de directorio
chmod permisos fichCambia los permisos de un archivo
chown usuario:grupo fichCambia el dueño un archivo
cp fich1…fichN dirCopia archivos
diff [-e]arch1 arch2Encuentra diferencia entre archivos
du [-sabr] fichReporta el tamaño del directorio
file archMuestra el tipo de un archivo
find dir test acciónEncuentra archivos
grep [-cilnv] expr archivosBusca patrones en archivos
head -count fichMuestra el inicio de un archivo
mkdir dirCrea un directorio.
mv fich1 …fichN dirMueve un archivo a un directorio
mv fich1 fich2Renombra un archivo
less / more fich(s)Visualiza página a página un archivo
ln [-s] fich accesoCrea un acceso directo a un archivo
lsLista el contenido del directorio
pwdMuestra la ruta del directorio actual
rm fichBorra un fichero
rm -r dirBorra todo un directorio
rmdir dirBorra un directorio vacío
tail -count fichMuestra el final de un archivo
at [-lr] hora [fecha]Ejecuta un comando más tarde
cal [[mes] año]Muestra un calendario del mes/año
date [mmddhhmm] [+form]Muestra la hora y la fecha
echo stringEscribe mensaje en la salida estándar
finger usuarioMuestra información general sobre un usuario en la red
idNúmero id de un usuario
kill [-señal] PIDMata un proceso
man comandoAyuda del comando especificado
passwdCambia la contraseña
ps [axiu]Muestra información sobre los procesos que se están ejecutando en el sistema
who / rwhoMuestra información de los usuarios conectados al sistema
while true; do ls -ltr; date; sleep 60; doneMuestra los últimos archivos en lista cada 60 segundos

 

Configuración

Bash tiene varios archivos de configuración que lee cuando se inicia, dependiendo de cómo se inicie. Si comienza como Shell de inicio de sesión, Bash leerá lo siguiente:

/etc/profile
~/.bash_profile
~/.bash_login
~/.profile

Si Bash se está iniciando como un Shell sin inicio de sesión, por ejemplo, cuando abre un emulador de terminal como consola o GNOME Terminal, verá los siguientes archivos:

/etc/bash.bashrc
~/.bashrc

Veamos un simple archivo de configuración de bash:

# Configurar tu editor favorito aquí
export EDITOR=/usr/bin/vim

# Configurar aliases
if [ -f ~/.bash_aliases ]; then 
    . ~/.bash_aliases
fi

¿Preparado para probar Bash?