Cómo crear alias y funciones de shell en Linux

Contenidos

Una ventana de terminal en una computadora portátil con Linux

Cree sus propios comandos de Linux usando alias y funciones de shell Bash. Controle las tareas repetitivas, trunque los procesos prolongados y configure los comandos estándar con las alternativas que siempre utiliza y le cuesta recordar.

Alias y los scripts de shell son técnicas poderosas en sistemas operativos Linux y similares a Unix que le posibilitan perfeccionar su experiencia de línea de comandos para que sea exactamente lo que desea. Puede establecer sus propios comandos adaptados a sus necesidades específicas y para aliviar la carga de tareas repetitivas.

Alias ​​y scripts de shell hacer el mismo tipo de trabajo. Le posibilitan establecer (y nombrar) un conjunto de funciones de shell Bash que después se puede llamar por el nombre que le haya dado. Escribir el nombre es más fácil y conveniente que tener que escribir todos los pasos o comandos cada vez que quiera usarlos.

La diferencia entre un alias y un script es de complejidad y escala. Los scripts son mejores para guardar fragmentos de código más largos y elaborados. Los alias son perfectos para mantener conjuntos de comandos más breves y concisos.

Alias ​​predefinidos

Algunos alias están predefinidos para usted. Para ver la lista de alias que están definidos en su sistema, use el comando alias sin parámetros:

alias

Estos son los alias que se definen en la máquina de prueba de Ubuntu en la que se investigó este post. Si hubiera definido algún alias personalizado, estos además aparecerían en esta lista.

En la parte de arriba de la lista, hay un alias de aspecto complicado llamado alert. Llegaremos a eso en un momento. Hay un montón de alias diferentes para ls comando, y hay un grupo de alias que proporcionan salida de color al grep familia de comandos. A modo de ejemplo, con estos alias definidos, siempre que escriba:

grep

El sistema lo interpretará como:

grep --color=auto

Esto muestra un punto importante con los alias. Pueden tener el mismo nombre que los comandos existentes. Inclusive pueden contener el comando original dentro de sí mismos.

Aquí está la definición de grep alias.

alias grep='grep --color=auto'
  • los alias El comando se utiliza para establecer un alias.
  • A continuación se proporciona el nombre del alias. En este ejemplo es grep.
  • El signo igual conecta el nombre del alias al cuerpo del alias. Para todos los alias, excepto los muy simples, el cuerpo del alias se incluye entre comillas simples '.
  • El cuerpo del alias es la sección que se ejecuta cuando se utiliza el alias en la línea de comando.

El cuerpo de este alias simplemente llama al grep comando con el --color=auto opción.

El alias alerta

Como un breve aparte, y para que sepa lo que hace, el alert alias se utiliza para avisarle cuando un comando ha terminado. Además indica si el comando se completó correctamente o no. Proporciona una alerta gráfica del sistema en la parte de arriba de la pantalla.

He aquí un ejemplo sencillo. los sleep El comando dormirá durante cinco segundos. alert entonces se llamará alias. El alias verifica la solución del comando anterior. Extrae el último comando del archivo histórico. Determina si el comando se completó con éxito o no. Después presenta los resultados en una alerta del sistema.

Si el comando se completó como se esperaba, el icono de la alerta del sistema es una pequeña ventana de terminal. Si el comando devolvió un código de error, el icono de la alerta del sistema es un icono de error rojo.

sleep 5; alert

Después de cinco segundos, vemos esta alerta del sistema:

Alerta del sistema para el comando de suspensión

El icono es una pequeña ventana de terminal, lo que significa que todo salió bien. Intentémoslo de nuevo con un comando que sabemos que fallará:

DoomedToFail; alert

Nuestra alerta del sistema ahora tiene un icono de error.

Definición de un alias trivial

Como hemos visto, para establecer un alias, usamos el alias mando.

Vamos a crear un seudónimo para el clear mando. Nuestro alias se llamará cls y llamará al clear mando.

Nuestra definición de alias es tan trivial que no justifica estar entre comillas simples. Si el cuerpo del alias es más complejo que esto, o si contiene espacios, envuélvalo entre comillas simples. Definiremos el alias, use ls para poner algo de salida en la ventana de terminal y después utilizar nuestro nuevo alias cls para limpiar la pantalla.

alias cls=clear
ls -l
cls

Se borra la pantalla. Éxito, aún cuando de corta duración. El alias sobrevivirá solo mientras esta ventana de terminal permanezca abierta. Una vez que se cierra la ventana, el alias desaparecerá.

Entonces, ¿cómo hacemos que nuestros alias sean permanentes?

El archivo .bashrc y los alias

Tal vez se pregunte dónde se definen los alias preempaquetados. está en el archivo «.bashrc» en su carpeta de inicio. Este archivo se lee y los comandos que contiene se ejecutan cada vez que inicia un shell interactivo. Dicho de otra forma, cuando abre una ventana de terminal.

Escriba el siguiente comando en su carpeta de inicio para ver el contenido del archivo «.bashrc» con la sintaxis resaltada.

gedit .bashrc

Esto lanzará el gedit editor con el archivo «.bashrc» cargado en él.

gedit con .bashrc cargado en él

Las áreas resaltadas muestran dos áreas donde se definen los alias.

Al desplazarse por el documento, se revelarán otras dos secciones asociadas con los alias:

El primero de ellos es la definición del alert alias. El segundo es un if declaración. Se traduce como, «si el archivo» .bash_aliases «existe, léalo».

Si solo tiene unos pocos alias que desea establecer, puede ponerlos en su archivo “.bashrc”. Colóquelos debajo de la sección que contiene el ls alias.

Si va a crear muchos alias, o simplemente le gusta la idea de tener sus alias encapsulados dentro de su propio archivo, puede definirlos en su archivo “.bash_aliases”. Una ventaja de crearlos en su archivo «.bash_aliases» es que no puede cambiar accidentalmente ninguna de las configuraciones en el archivo «.bashrc». Otra ventaja es que sus alias se copian fácilmente a nuevos sistemas debido a que están totalmente divorciados del archivo “.bashrc”.

Almacenamiento de alias en el archivo .bash_aliases

El archivo «.bash_aliases» no existirá hasta que lo cree. Puede crear el archivo con este comando:

touch .bash_aliases

Editemos el archivo y agreguemos algunos alias. Este comando abrirá el archivo «.bash_aliases» en el gedit editor.

gedit .bash_aliases

Hemos agregado tres alias. El primero es nuestro cls alias que usamos previamente. El siguiente se llama h. y es una forma abreviada de llamar al history mando.

El tercer alias se llama ftc. Esto significa «recuento de tipos de archivo».

Este alias es más complejo, por lo que se incluye entre comillas simples. Utiliza una cadena de comandos unidos entre sí por tuberías. Produce una lista ordenada de las diferentes extensiones de archivo y nombres de directorio, con un recuento para cada entrada de la lista.

RELACIONADO: Cómo utilizar Pipes en Linux

Cuando hayamos guardado el archivo «.bash_aliases», podríamos esperar que nuestros alias estén activos y accesibles. Ese no es el caso. El shell de Bash debe leer el archivo antes de que las definiciones de alias estén activas. Esto se hace siempre que se abre un shell interactivo.

Además podemos utilizar el shell Bash integrado. . para leer y ejecutar los comandos en un archivo. Debido a que nuestro archivo «.bash_alias» se lee cuando se procesa «.bashrc», debemos realizar nuestra prueba llamando a «.bashrc». De aquel modo podemos chequear que el archivo “.bash_alias” se llama desde “.bashrc” y que nuestros alias están vivos y en buen estado.

Los comandos que usamos son:

gedit .bash_alias

Para editar el archivo «.bash_alias».

. .bashrc

Esto leerá y ejecutará los comandos dentro de «.bashrc», que llamará «.bash_alias».

ftc

Esto llamará al ftc alias.

Nuestro alias responde, lo que significa que Bash ha leído tanto en «.bashrc» como en «.bash_aliases», y nuestros nuevos alias ahora están activos.

Ahora puede continuar y agregar nuevos alias al archivo «.bash_aliases» cuando se le ocurran. Si se encuentra haciendo cosas más de una o dos veces, considere crear un alias para esto.

Borrar alias

Hay un comando para eliminar alias para que BAsh no los reconozca ni les responda. Refrescantemente franco, el comando se llama unalias.

Para usarlo, dé el nombre del alias que desea que Bash olvide. Para hacer que Bash olvide nuestro ftc alias, uso unalias como esto:

unalias ftc

Puedes utilizar unalias para quitar los alias que ha definido y cualquiera de los alias predefinidos.

Para quitar todos los alias de su sistema, utilice el -a (todo) opción:

unalias -a

A pesar de esto, la pérdida de memoria de Bash no será permanente. La próxima vez que abra una ventana de terminal, los alias «olvidados» volverán. Para eliminarlos de verdad, debe eliminarlos de sus archivos «.bashrc» y «.bash_alias».

Si cree que alguna vez le gustaría recuperarlos, no los elimine de su archivo “.bashrc”. En su lugar, coméntelos agregando un hash # al comienzo de cada alias línea. Para que su archivo “.bash_alias” no sea efectivo, cámbiele el nombre. Si su archivo “.bashrc” no puede verlo, no lo leerá. Invertir estos pasos para restablecer sus alias es un asunto trivial.

Funciones de Shell

Los alias de Lika, las funciones de shell de Bash se pueden establecer dentro del archivo “.bashrc”, pero a menudo es mejor ponerlas en su propio archivo de definiciones. Lo llamaremos «.bash_functions», siguiendo la convención utilizada para el archivo «.bash_aliases».

Eso significa que debemos decirle al archivo “.bashrc” que lea nuestras definiciones. Podemos copiar y modificar el fragmento de código que se lee en el archivo «.bash_aliases». Lanzamiento gedit y cargue el archivo «.bashrc» con este comando:

gedit .bashrc

Debe agregar la sección resaltada que se muestra a continuación.

Puede resaltar la sección de alias y presionar Ctrl+C y después muévete a donde quieras la nueva sección y presiona Ctrl+V para pegar una copia del texto. Después, todo lo que necesita hacer es cambiar los dos lugares donde dice «.bash_aliases» a «.bash_functions».

Podemos guardar esos cambios y cerrar gedit.

Ahora vamos a crear y editar el archivo “.bash_functions” y poner una definición de función en él.

touch .bash_functions
gedit .bash_functions

Esto abrirá el archivo «.bash_functions» vacío en gedit.

Vamos a agregar una función simple llamada up. up tomará un solo parámetro de línea de comando, que es un dígito. up entonces llamaré cd .. esa cantidad de veces. Entonces, si usó el comando

up 2

up Llamaría cd .. dos veces y subiría dos niveles en el árbol de directorios.

Existen diferentes alternativas para establecer una función. Aquí hay uno:

function up() {

La palabra function es opcional. Si es tradicionalista, utilícelo, si no se molesta en escribirlo, déjelo fuera.

Aquí está toda nuestra función en gedit:

La función de shell up () Bash en gedit

function up() {

Esto marca el comienzo de nuestra definición de función, y nombra la función up.

levels=$1

Esto crea una variable llamada levels y lo establece en el valor del primer parámetro. Este parámetro será un dígito proporcionado por el usuario cuando llame a la función. los $1 significa «primer parámetro de línea de comando».

while [ "$levels" -gt "0" ]; do

Después entramos en un bucle. Esto se traduce como «mientras que el valor de levels es mayor que cero, haz lo que está contenido en el cuerpo del bucle «.

Dentro del cuerpo del bucle, tenemos dos comandos. Son:

cd ..

Sube un nivel en el árbol de directorios.

levels=$(($levels - 1))

Colocar levels a un nuevo valor, que es uno menos que su valor actual.

Después volvemos a la parte de arriba del ciclo, la comparación entre el valor de levels y se torna a hacer cero. Si levels es mayor que cero, el cuerpo del bucle se torna a ejecutar. Si no es mayor que cero, el bucle finaliza y pasamos al done declaración, y la función ha terminado.

Guarde estos cambios y cierre gedit.

Leeremos y ejecutaremos los comandos en «.bashrc» que deberían leer y ejecutar los comandos en nuestro archivo «.bash_functions».

. .bashrc

Podemos probar la función moviéndonos a alguna ubicación en el árbol de directorios y usando up para volver a un punto «superior» en el árbol de directorios.

cd ./work/backup/
up 2

La función funciona. Nos movimos dos niveles de directorio más arriba en el árbol.

Seguir la pista con el tipo

A medida que crea un conjunto de alias y una biblioteca de funciones, puede resultar difícil recordar si un comando en particular es un alias o una función. Puedes utilizar el type mando para recordarte. Lo bueno aquí es que además puedes ver la definición.

Usemos type en nuestro ftc alias y nuestro up función.

type ftc
type up

Obtenemos un recordatorio muy útil de qué tipo de comando es cada uno, junto con sus definiciones.

Empiece a coleccionar

Los alias y las funciones pueden acelerar enormemente el uso de la línea de comandos. Pueden acortar las secuencias de comandos y le posibilitan incorporar las alternativas que siempre utiliza con los comandos estándar.

Cada vez que vea una función ingeniosa o útil, puede adaptarla y personalizarla, y después agregarla a sus archivos “.bash_aliases” o “.bash_functions”.

setTimeout(function(){
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘335401813750447’);
fbq(‘track’, ‘PageView’);
},3000);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.