Como criar aliases e funções de shell no Linux
Crie seus próprios comandos do Linux usando alias e funções do shell Bash. Domine tarefas repetitivas, trunque processos demorados e configure comandos padrão com as opções que você sempre usa e se esforça para lembrar.
Aliases e scripts de shell são técnicas poderosasSistemas operacionais Linux e Unix, que permitem aprimorar sua experiência na linha de comando para ser exatamente o que você deseja. Você pode definir seus próprios comandos adequados às suas necessidades específicas e aliviar a carga de tarefas repetitivas.
Aliases e scripts de shell fazem o mesmo tipo de trabalho. Eles permitem que você defina "& name" um conjunto de funcionalidades do shell Bash que possam ser chamadas pelo nome que você atribuiu a ele. Digitar o nome é mais fácil e conveniente do que ter que digitar todas as etapas ou comandos sempre que você quiser usá-los.
A diferença entre um alias e um script é de complexidade e escala. Os scripts são melhores para armazenar trechos de código mais longos e mais elaborados. Os aliases são perfeitos para manter conjuntos de comandos mais curtos e sucintos.
Aliases predefinidos
Alguns aliases são predefinidos para você. Para ver a lista de aliases definidos em seu sistema, use o comando alias sem parâmetros:
alias
Estes são osaliases definidos na máquina de teste do Ubuntu em que este artigo foi pesquisado. Se eu tivesse definido aliases personalizados, eles também apareceriam nessa lista.
Na parte superior da lista, há um alias de aparência complicada chamado alerta.Nós chegaremos a isso em um momento.Há um monte de aliases diferentes para o comando ls e há um grupo de aliases que fornecem saída de cores para a família grep de comandos. Por exemplo, com esses aliases definidos, sempre que você digita:
grep
O sistema o interpretará como:
grep -color = auto
Isso mostra um ponto importante com aliases. Eles podem ter o mesmo nome que os comandos existentes. Eles podem até conter o comando original dentro de si.
Aqui está a definição do alias grep.
alias grep = 'grep --color = auto'
- O comando alias é usado para definir um alias.
- O nome do alias é dado a seguir. Neste exemplo, é grep.
- O sinal de igual conecta o nome do alias ao corpo do alias. 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 desse alias simplesmente chama o comando grep com a opção --color = auto.
O alerta Alias
Como um resumo rápido,e para que você saiba o que faz, o alias de alerta é usado para informar quando um comando é concluído. Também indica se o comando foi concluído com êxito ou não. Ele fornece um alerta gráfico do sistema na parte superior da tela.
Aqui está um exemplo simples.O comando sleep irá dormir por cinco segundos., O alias de alerta será chamado.O alias verifica a resposta do comando anterior. Extrai o último comando do arquivo de histórico. Determina se o comando foi concluído com êxito ou não. Em seguida, apresenta os resultados em um alerta do sistema.
Se o comando foi concluído conforme o esperado, o ícone no alerta do sistema é uma pequena janela do terminal. Se o comando retornou um código de erro, o ícone no alerta do sistema é um ícone vermelho.
sleep 5;alerta
Após cinco segundos, vemos este alerta do sistema:
O ícone é uma pequena janela do terminal, o que significatudo ocorreu bem. Vamos tentar novamente com um comando que sabemos que falhará:
DoomedToFail;alerta
Nosso alerta do sistema agora tem um ícone de erro.
Definindo um alias trivial
Como vimos, para definir um alias, usamos o comando alias.
Vamos criar um pseudônimo para o comando clear. Nosso apelido será chamado cls e chamará de comando claro.
Nossa definição de apelido é tão trivial que não garante ser envolto em aspas simples. Se o corpo do alias for mais complexo que esse ou se contiver espaços, coloque-o entre aspas simples. Vamos definir o alias, usar ls para colocar alguma saída na janela do terminal e, em seguida, usar nossos novos alias cls para limpar a tela.
alias cls = clear
ls -l
cls
tela é limpa. Sucesso, embora de curta duração.O alias sobreviverá apenas enquanto essa janela do terminal permanecer aberta. Quando a janela é fechada, o alias desaparece.
Então, como tornamos nossos apelidos permanentes?
O arquivo . bashrc e os aliases
Você pode estarperguntando onde os aliases pré-empacotados são definidos. está no “ . bashrc ”na sua pasta pessoal. Este arquivo é lido e os comandos dentro dele são executados sempre que você inicia um shell interativo. Ou seja, quando você abre uma janela do terminal.
Digite o seguinte comando na sua pasta pessoal para ver o conteúdo do “ . bashrc ”arquivo com destaque de sintaxe.
gedit . bashrc
Isso iniciará o editor gedit com o “ . bashrc ”arquivo carregado nele.
As áreas destacadas mostram duas áreas em que os apelidos são definidos.
A rolagem pelo documento revelará outras duas seções relacionadas aos apelidos.:
O primeiro deles é a definição do alias de alerta.A segunda é uma declaração if. Ele se traduz em "“ se o arquivo" . bash_aliases ”existe, leia-o. ”
Se você tiver apenas alguns apelidos que deseja definir, poderá colocá-los no seu “ . bashrc ”Arquivo. Coloque-os abaixo da seção que contém os aliases ls.
Se você deseja criar muitos aliases, ou apenas gosta da ideia de ter seus aliases encapsulados em seu próprio arquivo, é possível defini-los emsuas “ . bash_aliases ”Arquivo. Uma vantagem de criá-los em suas “ . bash_aliases ”arquivo é que você não pode alterar acidentalmente nenhuma das configurações no “ . bashrc ”Arquivo. Outra vantagem é que seus apelidos são facilmente copiados para novos sistemas porque são totalmente divorciados do “ . bashrc ”arquivo.
Armazenando aliases no arquivo . bash_aliases
O “ . bash_aliases ”O arquivo não existirá até você criá-lo. Você pode criar o arquivo com este comando:
toque em . bash_aliases
Vamos editar o arquivo e adicionar alguns aliasespara isso. Este comando abrirá o “ . bash_aliases ”no editor do gedit.
gedit . bash_aliases
Adicionamos três aliases.O primeiro é o alias do nosso cls, que usamos anteriormente.O próximo é chamado h.e é uma maneira abreviada de chamar o comando history.
O terceiro apelido é chamado ftc. Isso significa “ contagem de tipos de arquivo. ”
Esse alias está mais envolvido, portanto, está entre aspas simples. Ele usa uma cadeia de comandos ligados por tubos. Ele produz uma lista classificada das diferentes extensões de arquivo e nomes de diretório, com uma contagem para cada entrada da lista.
RELACIONADO: Como usar Pipes no Linux
Quando salvamos o “ . bash_aliases ”arquivo, podemos esperar que nossos aliases estejam ativos e acessíveis. Esse não é o caso.O arquivo deve ser lido pelo shell Bash antes que as definições de alias estejam ativas. Isso é feito sempre que um shell interativo é aberto.
Também podemos usar o shell Bash embutido. para ler e executar os comandos em um arquivo. Porque o nosso “ . bash_alias ”o arquivo é lido quando o “ . bashrc ”for processado, devemos executar nosso teste chamando "“ . bashrc". Dessa forma, podemos verificar se o “ . bash_alias ”arquivo é chamado de “ . bashrc ”e que nossos apelidos estão vivos e bem.
Os comandos que utilizamos são:
gedit . bash_alias
Para editar o “ . bash_alias ”arquivo.
.. bashrc
Isso lerá e executará os comandos dentro do “ . bashrc ”, que chamarão “ . bash_alias ”.
ftc
Isso chamará o apelido de ftc.
Nosso apelido responde, o que significa que o Bash leu em “ . bashrc ”e “ . bash_aliases ”, e nossos novos aliases agora estão ativos.
Agora você pode prosseguir e adicionar novos aliases ao “ . bash_aliases ”arquivo como eles ocorrem para você. Se você estiver fazendo as coisas mais de uma ou duas vezes, considere criar um alias para isso.
Removendo aliases
Existe um comando para remover aliases para que o BAsh nãoreconhecê-los nem responder a eles. De maneira refrescante, o comando é chamado unalias.
Para usá-lo, forneça o nome do alias que você deseja que o Bash esqueça. Para fazer o Bash esquecer nosso alias de ftc, use unalias dessa forma:
unalias ftc
Você pode usar unalias para remover aliases definidos e qualquer um dos aliases predefinidos.
Para remover todos os aliases do seu sistema, use a opção -a (all):
unalias -a
Bash ’ sa perda de memória não será permanente, no entanto. Na próxima vez que você abrir uma janela do terminal, o “ esquecido ”os pseudônimos estarão de volta. Para realmente eliminá-los, você precisa removê-los do seu “ . bashrc ”e “ . bash_alias ”arquivos.
Se você acha que gostaria de tê-los de volta, não os exclua do seu “ . bashrc ”Arquivo. Em vez disso, comente-os adicionando um hash # ao início de cada linha de alias. Para fazer o seu “ . bash_alias ”arquivo ineficaz, renomeie-o. Se o seu “ . bashrc ”o arquivo não pode vê-lo, ele não será lido. A reversão dessas etapas para restabelecer seus aliases é uma questão trivial.
Funções do shell
Aliases de Lika,As funções do shell bash podem ser definidas no “ . bashrc ”, mas geralmente é melhor colocá-los em seu próprio arquivo de definições.Nós o chamaremos de "flash_functions" # 8221 ;, seguindo a convenção usada para as “ . bash_aliases ”arquivo.
Isso significa que precisamos informar o “ . bashrc ”arquivo para ler em nossas definições. Podemos copiar e alterar o trecho de código que aparece no “ . bash_aliases ”Arquivo. Inicie o gedit e carregue o “ . bashrc ”arquivo com este comando:
gedit . bashrc
Você precisa adicionar a seção destacada mostrada abaixo.
Você pode destacar a seção de alias e pressionar Ctrl + C e, em seguida, mover para onde você gosta da nova seção e pressionar Ctrl + V para colar uma cópia do texto. Então tudo o que você precisa fazer é mudar os dois lugares onde se lê ". bash_aliases" ”para “ . bash_functions. ”
Podemos salvar essas alterações e fechar o gedit.
Agora vamos criar eedite o “ . bash_functions ”e coloque uma definição de função.
toque em . bash_functions
gedit . bash_functions
Isso abrirá o “ . bash_functions ”no gedit.
Vamos adicionar uma função simples chamada. up terá um único parâmetro de linha de comando, que é um dígito. up chamará cd .. esse número de vezes. Portanto, se você usasse o comando
up 2
up, chamaria cd .. duas vezes e subiria dois níveis na árvore de diretórios.
Existem diferentes maneiras de definir uma função. Aqui está um:
função up () {
A função word é opcional. Se você é tradicionalista, use-o, se não puder se incomodar em digitá-lo, deixe-o de fora.
Aqui está toda a nossa função no gedit:
função up () {
Isso marca o início da nossa definição de função e nomeia a função como.
Níveis
= $ 1
Isso cria uma variável chamada levels e a define como o valor do primeiro parâmetro. Este parâmetro será um dígito fornecido pelo usuário quando ele chamar a função.O $ 1 significa o & primeiro parâmetro da linha de comando.
enquanto ["$ levels" -gt "0"];do
Em seguida, inserimos um loop. Isso é traduzido como "enquanto o valor dos níveis é maior que zero, faça o que está contido no corpo do loop". ”
Dentro do corpo do loop, temos dois comandos.São eles:
cd ..
Mova um nível acima na árvore de diretórios.
levels = $ (($ levels -1))
Defina os níveis para um novo valor, que é um a menos que o valor atual.
Em seguida, voltamos ao topo do loop, a comparação entre o valor deníveis e zero é feito mais uma vez. Se os níveis forem maiores que zero, o corpo do loop será executado novamente. Se não for maior que zero, o loop será finalizado e passamos à instrução done, e a função acabou.
Salve essas alterações e feche o gedit.
Nós ’ lerá e executará os comandos no “ . bashrc ”que deve ler e executar os comandos em nosso “ . bash_functions ”arquivo.
.. bashrc
Podemos testar a função movendo-se para algum local na árvore de diretórios e usando-o para voltar para um “ superior ”aponte na árvore de diretórios.
cd ./work/backup/[/PREunette[PREunetteup 2
A função funciona. Subimos dois níveis de diretório mais altos na árvore.
Mantendo o controle com o tipo
À medida que você cria um conjunto de aliases e uma biblioteca de funções, pode se tornar difícilpara lembrar se um comando específico é um alias ou uma função. Você pode usar o comando type para lembrá-lo.O legal aqui é que você também pode ver a definição.
Vamos usar o tipo em nosso alias ftc e em nossa função up.
type ftc
digite
Recebemos um lembrete muito útil de que tipo de comando cada um é, juntamente com suas definições.
Comece a coletar
Aliases e funções podem acelerar tremendamente o uso da linha de comando. Eles podem encurtar as seqüências de comandos e permitem que você use as opções que você sempre usa nos comandos padrão.
Cada vez que você vê uma função interessante ou uma linha útil, pode adaptá-la e personalizá-la, eadicione-o ao seu “ . bash_aliases ”ou “ . bash_functions ”arquivos.
Via: How to Geek
Nenhum comentário