Como criar aliases e funções de shell no Linux

Conteúdo

Uma janela de terminal em um laptop Linux

Crie seus próprios comandos Linux usando aliases e funções de shell bash. Controle de tarefas repetitivas, truncar processos longos e configurar comandos padrão com alternativas que você sempre usa e tem dificuldade em lembrar.

Pseudônimo e scripts de shell são técnicas poderosas em sistemas operacionais Linux e Unix que permitem aprimorar sua experiência de linha de comando para ser exatamente o que você deseja. Você pode definir seus próprios comandos adaptados às suas necessidades específicas e para aliviar o fardo de tarefas repetitivas.

Alias ​​e scripts de shell faça o mesmo tipo de trabalho. Eles permitem que você estabeleça (e nome) um conjunto de funções de shell bash que podem ser chamadas por qualquer nome que você tenha dado. Digitar o nome é mais fácil e conveniente do que digitar todas as etapas ou comandos toda vez que quiser usá-los.

A diferença entre um alias e um script é de complexidade e escala. Scripts são melhores para salvar trechos de código mais longos e elaborados. Os aliases são perfeitos para manter os conjuntos de comandos mais curtos e concisos.

Aliases predefinidos

Alguns aliases são predefinidos para você. Para ver a lista de aliases que são definidos em seu sistema, usar o comando alias sem parâmetros:

apelido

Esses são os aliases definidos na máquina de teste do Ubuntu em que esta postagem foi investigada. Se eu tivesse definido algum apelido personalizado, estes também apareceriam nesta lista.

No topo da lista, existe um apelido de aparência complicada chamado alert. Chegaremos a isso em um momento. Existem muitos apelidos diferentes para ls comando, e há um grupo de aliases que fornecem saída de cor para o grep família de comando. Como um exemplo, com esses apelidos definidos, sempre que eu escrevo:

grep

O sistema irá interpretá-lo como:

grep --color = auto

Isso mostra um ponto importante com aliases. Eles podem ter o mesmo nome dos comandos existentes. Eles podem até conter o comando original dentro de si.

Aqui está a definição de grep apelido.

alias grep = 'grep --color = auto'
  • a alias O comando é usado para definir um apelido.
  • O nome do alias é fornecido abaixo. Neste exemplo é grep.
  • O sinal de igual conecta o Nome de alias para corpo apelido. Para todos os aliases, exceto os muito simples, o corpo do alias é colocado entre aspas simples '.
  • O corpo do alias é a seção que é executada quando o alias é usado na linha de comando.

O corpo deste alias simplesmente chama o grep comando com o --color=auto opção.

Alerta de alias

Como um breve aparte, e então você sabe o que faz, a alert aliasé usado para notificá-lo quando um comando termina. Também indica se o comando foi concluído com sucesso ou não. Fornece um alerta gráfico do sistema na parte superior da tela.

Aqui está um exemplo simples. a sleep O comando vai dormir por cinco segundos. alert então será chamado de alias. O alias verifica a solução do comando acima. Extraia o último comando do arquivo. Determina se o comando foi concluído com sucesso ou não. Em seguida, apresente os resultados em um alerta do sistema.

Se o comando for concluído conforme o esperado, o ícone de alerta do sistema é uma pequena janela de terminal. Se o comando retornou um código de erro, o ícone de alerta do sistema é um ícone de erro vermelho.

dormir 5; alerta

Depois de cinco segundos, nós vemos este sistema de alerta:

Alerta do sistema para suspender o comando

O ícone é uma pequena janela de terminal, o que significa que tudo correu bem. Vamos tentar novamente com um comando que sabemos que irá falhar:

Condenado ao fracasso; alerta

Nosso alerta de sistema agora tem um ícone de erro.

Definição de um alias trivial

Como nós vimos, para definir um alias, nós usamos o alias comando.

Vamos criar um pseudônimo para ele clear comando. Nosso apelido será chamado cls e vai ligar clear comando.

Nossa definição de apelidos é tão trivial que não justifica estar entre aspas simples. Si el cuerpo del alias es más complejo que esto, o si contiene espacios, envuélvalo entre comillas simples. Definiremos el alias, usar 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. Sucesso, aún cuando de corta duración. El alias sobrevivirá solo mientras esta ventana de terminal permanezca abierta. Assim que a janela for fechada, el alias desaparecerá.

Então, ¿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. Em outras palavras, 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 apelido. El segundo es un if demonstração. 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 apelido.

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

O arquivo “.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” no 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 comando.

El tercer alias se llama ftc. Isso 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: Como usar Pipes no 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_aliasse 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 apelido.

Nuestro alias responde, lo que significa que Bash ha leído tanto en “.bashrc” como em “.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 usá-lo, dé el nombre del alias que desea que Bash olvide. Para hacer que Bash olvide nuestro ftc apelido, usar unalias assim:

unalias ftc

Você pode usar unalias para quitar los alias que ha definido y cualquiera de los alias predefinidos.

Para quitar todos los alias de su sistema, Use o -a (tudo) opção:

unalias -a

Apesar disto, la pérdida de memoria de Bash no será permanente. La próxima vez que abra una ventana de terminal, los aliasolvidadosvolverán. Para eliminarlos de verdad, debe eliminarlos de sus archivos “.bashrc” e “.bash_alias”.

Si cree que alguna vez le gustaría recuperarlos, no los elimine de su archivo “.bashrc”. Em seu lugar, coméntelos agregando un hash # al comienzo de cada alias linha. 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. Nós vamos chamá-lo “.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”. Lançando gedit y cargue el archivo “.bashrc” com 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. Depois de, todo lo que necesita hacer es cambiar los dos lugares donde dice “.bash_aliases” uma “.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_functionsvací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. Então, si usó el comando

up 2

up Llamaría cd .. duas vezes e subiria dois níveis na árvore de diretórios.

Existem diferentes alternativas para definir uma função. Aqui está um:

funcionar() {

Palavra function é opcional. Se você é um tradicionalista, use-o, se você não se incomodar em escrevê-lo, deixe de fora.

Aqui está toda a nossa função em gedit:

A função shell up () Bash e gedit

funcionar() {

Isso marca o início de nossa definição de função, e nomeie a função up.

níveis = $ 1

Isso cria uma variável chamada levels e defina-o com o valor do primeiro parâmetro. Este parâmetro será um dígito fornecido pelo usuário ao chamar a função. a $1 Isso significa “primer parámetro de línea de comando”.

enquanto [ "$níveis" -gt "0" ]; Faz

Então entramos em um loop. Esto se traduce comomientras que el valor de levels é maior que zero, haz lo que está contenido en el cuerpo del bucle “.

Dentro do corpo do loop, temos dois comandos. Filho:

CD ..

Suba um nível na árvore de diretórios.

níveis = $(($níveis - 1))

Colocar levels para um novo valor, que é um a menos que seu valor atual.

Em seguida, voltamos ao topo do ciclo, la comparación entre el valor de levels y se torna a hacer cero. E levels é maior que zero, el cuerpo del bucle se torna a ejecutar. Si no es mayor que cero, el bucle finaliza y pasamos al done demonstração, 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

A função funciona. Nós movemos dois níveis de diretório para cima na árvore.

Fique atento ao cara

Conforme você cria um conjunto de aliases e uma biblioteca de funções, pode ser difícil lembrar se um determinado comando é um alias ou uma função. Você pode usar o type comando para lembrar de você. A coisa boa aqui é que você também pode ver a definição.

Vamos usar type em nosso ftc alias e nosso up Função.

digite ftc
datilografar

Recebemos um lembrete muito útil de que tipo de comando cada um é, junto com suas definições.

Comece a colecionar

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(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!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, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.