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:
Comandos | Descripción |
cat fich1 […fichN] | Muestra un archivo |
cd [dir] | Cambia de directorio |
chmod permisos fich | Cambia los permisos de un archivo |
chown usuario:grupo fich | Cambia el dueño un archivo |
cp fich1…fichN dir | Copia archivos |
diff [-e]arch1 arch2 | Encuentra diferencia entre archivos |
du [-sabr] fich | Reporta el tamaño del directorio |
file arch | Muestra el tipo de un archivo |
find dir test acción | Encuentra archivos |
grep [-cilnv] expr archivos | Busca patrones en archivos |
head -count fich | Muestra el inicio de un archivo |
mkdir dir | Crea un directorio. |
mv fich1 …fichN dir | Mueve un archivo a un directorio |
mv fich1 fich2 | Renombra un archivo |
less / more fich(s) | Visualiza página a página un archivo |
ln [-s] fich acceso | Crea un acceso directo a un archivo |
ls | Lista el contenido del directorio |
pwd | Muestra la ruta del directorio actual |
rm fich | Borra un fichero |
rm -r dir | Borra todo un directorio |
rmdir dir | Borra un directorio vacío |
tail -count fich | Muestra 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 string | Escribe mensaje en la salida estándar |
finger usuario | Muestra información general sobre un usuario en la red |
id | Número id de un usuario |
kill [-señal] PID | Mata un proceso |
man comando | Ayuda del comando especificado |
passwd | Cambia la contraseña |
ps [axiu] | Muestra información sobre los procesos que se están ejecutando en el sistema |
who / rwho | Muestra información de los usuarios conectados al sistema |
while true; do ls -ltr; date; sleep 60; done | Muestra 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?