¿Cómo crear alias y funciones de shell en Linux?

venga después del último comando también:



nombre_función () {comando1; command2; }

Los alias de Lika, las funciones de shell de Bash se pueden definir 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 necesitamos 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'. Ejecute gedit y cargue el archivo '.bashrc' con este comando:



gedit .bashrc

archivo .bashrc gedit



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



Puede resaltar la sección de alias y presionar Ctrl + C y luego ir a donde desea la nueva sección y presionar Ctrl + V para pegar una copia del texto. Luego, todo lo que necesita hacer es cambiar los dos lugares donde dice '.bash_aliases' a '.bash_functions'.

Añadiendo bash_functions en el archivo .bashrc

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.

toque .bash_functions gedit .bash_functions

Crear y editar .bash_functions

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

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

hasta 2

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

Hay diferentes formas de definir una función. Aquí hay uno:

funcionar arriba () {

La función de palabra es opcional. Si es tradicionalista, utilícelo; si no se molesta en escribirlo, déjelo fuera.

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

Editando archivo .bash_functions

funcionar arriba () {

Esto marca el comienzo de nuestra definición de función y nombra la función hacia arriba.

niveles = $ 1

Esto crea una variable llamada niveles 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. El $ 1 significa 'primer parámetro de línea de comando'.

while ['$ niveles' -gt '0']; hacer

Luego ingresamos a un bucle que luego se traducirá como 'cuando el' valor 'De' niveles 'Es positivo o 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 del directorio.

niveles = $ (($ niveles - 1))

Establezca los niveles en un nuevo valor, que es uno menos que su valor actual.

Luego volvemos a la parte superior del ciclo, la comparación entre el valor de los niveles y cero se realiza una vez más. Si 'niveles' es más de cero, el cuerpo del bucle se ejecuta nuevamente. Si no es positivo o mayor que cero, el ciclo finaliza, pasamos a la instrucción done y la función termina.

Salvar estos cambios y cierran gedit .

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

. .bashrc

Llamar ..bashrc

Podemos probar la función moviéndonos a alguna ubicación en el árbol de directorios y usando up para regresar a un punto “más alto” en el árbol de directorios.

cd ./work/backup/ up 2

Funciona

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

Seguimiento con 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. Puede utilizar el ' tipo' comando para recordarte. Lo bueno aquí es que también puedes ver la definición.

Usemos el tipo en nuestro FTC alias y nuestra función up.

tipo ftc tipo up

Uso de tipo

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 permiten incorporar las opciones que siempre usa con los comandos estándar. Cada vez que vea una función ingeniosa o útil, puede adaptarla y personalizarla, y luego agregarla a sus archivos “.bash_aliases” o “.bash_functions”. El uso extensivo de estos puede ayudar a que su tiempo en el caparazón sea más agradable y menos complejo.

Recuerde tener cuidado con la redefinición de los comandos existentes con un comportamiento potencialmente destructivo. Incluso hacer lo contrario y asignar un alias a un comando a una variante más segura (siempre pidiendo confirmación antes de eliminar de forma recursiva, por ejemplo) puede volver a morderlo la primera vez que esté en un sistema sin él una vez que haya llegado a confiar en él. . Para encontrar candidatos para los que pueda ser útil crear alias, puede ser una buena idea buscar en su historial los comandos más utilizados.

12 minutos de lectura