Cómo usar el archivo .bashrc en Linux

En algún momento, seguramente has sentido que tu experiencia con Linux podría necesitar un poco más de estilo. Tal vez te has encontrado con tareas repetitivas o has deseado una interfaz de línea de comandos más fluida. ¡Pues adivina qué! Tu sistema tiene la clave: el archivo .bashrc, discretamente ubicado en tu directorio personal.

Sumérgete en los aspectos fundamentales del archivo ~/.bashrc en este tutorial para transformar cómo interactúas con tu sistema Linux. Estás en el camino correcto, desde personalizar tu indicador de comando hasta automatizar tareas y configurar accesos directos personalizados.

¡Di adiós a las tareas mundanas y hola a una experiencia con Linux más eficiente y placentera!

Prerrequisitos

Antes de jugar con el archivo ~/.bashrc, asegúrate de tener lo siguiente para seguir adelante:

  • A Linux distribution is installed on your machine – This tutorial uses Ubuntu 20.04 LTS, but any other distribution works.
  • A non-root user with sudo privileges.

¿Qué es el archivo de ejecución de comandos Bash (.bashrc) en Linux?

Imagina el archivo ~/.bashrc en Linux como una caja de juguetes secreta en tu habitación. Esta caja de juguetes te proporciona y configura tus juguetes favoritos justo como te gustan cuando abres la caja.

Pero como ~/.bashrc es un archivo secreto, no aparece cuando ejecutas el comando ls. Bueno, a menos que especifiques que muestre también los ocultos, con el parámetro -la, como se muestra a continuación.

ls -la

A continuación, se muestra el archivo .bashrc junto con otros archivos que también están ocultos.

Listing all files, including hidden ones, in the working directory (home)

Definir Alias Personalizados para Ejecuciones Rápidas de Comandos

A short definition wouldn’t cut into realizing the ~/.bashrc file’s role in customizing your Linux experience. So, how does this file work exactly? When you crack open that ~/.bashrc file, one of the powerful tricks it lets you achieve is defining custom aliases for your favorite commands.

Por ejemplo, en lugar de escribir sudo apt-get update para actualizar el índice de paquetes local del sistema, define un alias en el archivo .bashrc que funcione de la misma manera.

? Nota: Este tutorial utiliza la cuenta root para ejecutar comandos (no recomendado) para ilustrar tareas administrativas, como la configuración del sistema. Pero, por razones de seguridad, asegúrate de estar utilizando un usuario no root con privilegios de sudo al realizar acciones similares en tu sistema.

Para definir alias para comandos, sigue estos pasos:

1. Abre el archivo .bashrc en tu directorio de inicio (~/) a través de tu editor preferido, como nano o vim.

? Si estás usando una cuenta no root, agrega sudo antes de ejecutar comandos que requieran privilegios elevados.

nano ~/.bashrc

2. A continuación, desplázate hasta el final del archivo y define un alias (por ejemplo, update) para tu comando objetivo (por ejemplo, sudo apt-get update), como se muestra a continuación.

alias update='sudo apt-get update'

Guarda los cambios en el archivo y cierra el editor.

Defining an alias in the .bashrc file

3. Una vez guardado, ejecuta el siguiente comando en tu terminal para cargar el archivo ~/.bashrc. Este comando no produce salida en la terminal pero aplica tus cambios.

source ~/.bashrc

4. Ahora, ejecuta el alias update que has definido y confirma que se lleva a cabo el comando correspondiente (sudo apt-get update).

update

La salida a continuación confirma que tu alias update funciona como ejecutar el comando sudo apt-get update pero con menos pulsaciones de teclas.

Testing the newly defined alias (update)

Creación de Funciones para Incrementar la Productividad

Definir un alias tiene limitaciones cuando tienes operaciones complejas que ejecutar repetidamente. Pero no te preocupes; las funciones están aquí para ofrecer una solución donde los alias podrían fallar.

A diferencia de los alias que simplemente sirven como una abreviatura para un único comando, las funciones abarcan una serie compleja de comandos diseñados para realizar operaciones intrincadas.

Para entender cómo funciona una función, realiza lo siguiente:

1. En el archivo ~/.bashrc, añade la siguiente función llamada manage_package (arbitraria).

Cuando se ejecuta, esta función comprueba si un paquete dado está instalado y, en función de esa información, actualiza o instala el paquete.

Recuerda, esta función solo acepta un argumento, que es el nombre del paquete que te interesa.

manage_package() {
  # Comprueba si el paquete está instalado consultando el estado del paquete con dpkg.
  # $1 es el marcador de posición para el primer argumento pasado a la función (el nombre del paquete).
  # La salida se redirige a /dev/null para suprimirla en la terminal.
  # La declaración if verifica el estado de salida del comando dpkg -s.
  # Si el estado es 0 (el paquete está instalado),
  # procede al primer bloque, actualizando el paquete.
  if dpkg -s "$1" &> /dev/null; then
    echo "Package '$1' is already installed. Updating..."
    sudo apt-get update && sudo apt-get install --only-upgrade "$1"
  # Si el paquete no está instalado, imprime un mensaje
  # y ejecuta sudo apt-get install "$1" para instalar el paquete.
  else
    echo "Package '$1' is not installed. Installing..."
    sudo apt-get update && sudo apt-get install "$1"
  fi
}

2. Con la función añadida, guarda los cambios, cierra el editor y luego source el archivo ~/.bashrc para aplicar los cambios.

source ~/.bashrc

3. Una vez fuenteado, llama a la función (manage_package), seguida del nombre-del-paquete que deseas comprobar, actualizar o instalar en tu terminal, como se muestra a continuación.

La elección del paquete en este tutorial es NGINX, pero asegúrate de sustituir nombre-del-paquete por el nombre de paquete que prefieras.

manage_package package-name

Como puedes ver en la salida, las funciones como esta facilitan la gestión de paquetes al hacer el trabajo pesado por ti. Determinan automáticamente si el paquete que deseas está disponible, para que no tengas que hacerlo tú.

Executing the newly defined function

Personalizar tu terminal de Linux y el indicador de shell (PS1)

Considera tu terminal de Linux como un espacio de trabajo personal. Personalizar tu terminal la transforma en un entorno más atractivo visualmente e informativo.

Cuando embelleces tu terminal de Linux, el cielo es el límite. Puedes decorar tu terminal con un mensaje de bienvenida genial o ajustar tu indicador de shell para darle un toque extra.

Para personalizar tu terminal de Linux, procede de la siguiente manera:

1. Agrega la siguiente línea al final de tu archivo ~/. bashrc. Esta línea imprime un mensaje de saludo cada vez que inicias una sesión de terminal.

echo "Welcome to your terminal, $USER!

2. Luego, modifica la variable de entorno de Cadena de Indicador 1 (PS1) si existe, o agrega la siguiente línea a tu archivo ~/.bashrc. La variable PS1 controla precisamente la cadena de indicador principal, que es el indicador principal que se muestra (es decir, usuario@linux:~#) cuando el shell está listo para aceptar comandos.

Modificar la variable PS1 te permite cambiar la apariencia de tu indicador de shell, incluyendo su color, formato e información mostrada. La siguiente expresión:

  • Hace que el nombre de usuario (\u) y el nombre del host (\h) aparezcan en verde brillante (32m).
  • Hace que el directorio de trabajo actual (\w) aparezca en azul brillante (34m).
  • Restablece los atributos de color al color predeterminado (generalmente blanco) (\[\033[00m\]) para el texto que sigue al indicador de comando. Este restablecimiento asegura que el resto del texto de su terminal permanezca sin cambios.
PS1='\[\033[01;32m\]\u@\h:\[\033[01;34m\]\w\$ \[\033[00m\]'

3. Después, guarda y cierra el archivo, luego source tu archivo ~/.bashrc para aplicar los cambios.

source ~/.bashrc

Nota que a continuación el mensaje de bienvenida aparece inmediatamente después de aplicar, y tu indicador de comando cambia su apariencia según lo definiste.

Applying the shell prompt changes

Lanzando Tus Scripts: ¿Sin Ruta? ¡No hay Problema!

Mejorar tu sistema para reconocer directorios adicionales para comandos ejecutables puede agilizar tu flujo de trabajo. Toma como ejemplo la ejecución de scripts, por ejemplo, ya no tendrás que luchar con rutas largas, solo pura conveniencia.

Para lanzar tus scripts sin memorizar cada ruta, completa los siguientes pasos:

1. Ejecuta el siguiente comando para crear un directorio (mkdir) llamado ~/scripts (arbitrario) dedicado a almacenar tus scripts.

mkdir -p ~/scripts

2. A continuación, abre el archivo ~/.bashrc y agrega la siguiente línea al final, la cual modifica la ruta de búsqueda de comandos del sistema. Esta línea antepone el directorio ~/scripts a tu variable PATH existente.

Este comportamiento garantiza que el shell priorice tus scripts sobre otros ejecutables con nombres idénticos en otras partes del PATH del sistema.

export PATH="$HOME/scripts:$PATH"

3. Guarda y cierra el archivo, luego haz un source para aplicar los cambios sin reiniciar el terminal.

source ~/.bashrc

4. Posteriormente, ejecuta cada comando a continuación para crear un script llamado testscript (arbitrario) en tu directorio ~/scripts.

Estos comandos no tienen salida, pero este script se hace ejecutable (chmod), el cual imprime un mensaje (echo) en el terminal.

# Crea un nuevo script de Bash llamado 'testscript' en el directorio ~/scripts
echo '#!/bin/bash' > ~/scripts/testscript

# Agrega una línea al 'testscript' que imprime "¡El script está corriendo!" al ser ejecutado
echo 'echo "Script is running!"' >> ~/scripts/testscript

# Haz que 'testscript' sea ejecutable cambiando sus permisos
chmod +x ~/scripts/testscript

5. Por último, ejecuta tu script (testscript) llamando su nombre en el terminal.

El sistema ejecuta tu script desde tu directorio dedicado ~/scripts independientemente de tu directorio de trabajo en el terminal.

testscript

La salida a continuación confirma que tu script y la ruta de búsqueda de comandos modificada del sistema funcionan según lo esperado.

Executing the new script to confirm it’s functioning as expected

Conclusión

En el mundo del archivo ~/.bashrc, has viajado a través de los fundamentos de su función y cómo funciona la personalización de alias y funciones de comando. Incluso personalizar el aspecto de tu terminal de Linux ahora está al alcance de la mano.

Además del aspecto, has desbloqueado la conveniencia de ejecutar scripts sin especificar sus rutas completas cada vez, extendiendo la variable de entorno PATH. Estas modificaciones ahorran tiempo y mejoran la interfaz de usuario, haciendo que tu interacción con Linux sea más eficiente y más placentera al mismo tiempo.

Al cerrar este capítulo sobre el archivo ~/.bashrc, recuerda que la verdadera esencia de Linux es su flexibilidad y el control que te ofrece. El viaje continúa, ¿por qué no desear una experiencia personalizada explorando las mejoras de ZSH?

Sumérgete en el océano de temas y complementos que ZSH y frameworks como Oh My Zsh proporcionan. ¡Observa cómo tu terminal se transforma en un espacio de trabajo más productivo y visualmente atractivo!

Source:
https://adamtheautomator.com/bashrc/