5 Recursos do Bash essenciais para profissionais TI

Compartilhe:

estudante usando computador com linux instalado e acima um globo com identificação visual para cada recurso do shell bash

Executar somente comandos linux não é o suficiente para melhorar a produtividade ao usar a linha de comando durante a rotina de trabalho ou estudo.

O shell bash possui recursos para simplificar processos repetitivos, gerenciar sistemas com mais agilidade e até criar scripts para diversas necessidades.

Além disso, o domínio desses recursos não é útil apenas para administradores de sistemas, mas também para profissionais de DevOps que podem se beneficiar diretamente ao incorporar essas práticas no seu fluxo de trabalho.

Neste post, você vai conhecer e aprender a usar 5 funcionalidades do shell bash essenciais que podem elevar o seu nível técnico.

Porque os recursos do Bash são importantes ?

Para quem trabalha com suporte e infraestrutura, os recursos do bash permitem reduzir drasticamente o tempo de execução de tarefas repetitivas.

Já em ambientes de desenvolvimento e DevOps, entender as funcionalidades do shell bash é o alicerce para criar automações robustas, garantindo que o deploy e a integração contínua rodem sem falhas.

A partir da próxima seção, será explorado os seguintes recursos:

  • Comandos sequenciais
  • Funções
  • Aliases
  • Substituição de comandos
  • File globbing

Essas funcionalidades do shell bash, com certeza, vai ajudá-lo(a) a eliminar processos manuais e repetitivos que são suscetíveis a erros.

1. Aliases

Aliases é um dos recursos do bash mais práticos para o dia a dia de um profissional que usa linha de comando do linux.

Ele permite criar apelidos curtos para comandos longos, diminuindo o tempo de digitação e automatizando a execução de comandos complexos.

Para listar aliases utilize o comando interno alias do bash.

Para criar um alias a sintaxe é a seguinte:

O comando a seguir cria um alias que executa o comando “ssh -p 2222 [email protected]” para se conectar ao servidor remoto 10.10.10.213, que recebe conexões na porta 2222:

Com o alias criado, ao digitar server215 e executar, o bash verifica se “server215” corresponde a um alias, se corresponder, vai substitui server215 por ssh -p 2222 [email protected] e executar o comando ssh.

Outro exemplo, será criado uma alias chamado nvidiap para executar o comando “nvidia-smi -q -d POWER“ usado para visualizar informações sobre o consumo de energia de uma placa de vídeo nvídia:

Se precisar remover um dos aliases na sessão atual, execute o comando unlias seguido do nome do alias. Por exemplo, para remover o alias nvidiap, execute:

Para manter os aliases criados em novas sessões do bash você pode salva-los nos arquivos que são lidos e que tem o código executado quando o shell bash é iniciado.

2. File Globbing

O File Globbing é um dos recursos do bash mais fundamentais para a manipulação de arquivos em lote. Ele permite que o shell interprete padrões de caracteres para selecionar grupos de arquivos ou diretórios de uma só vez, sem que você precise digitar o nome de cada um deles.

Para usar esse recurso do shell bash utilizado caracteres especiais, chamados também de caracteres curingas, que expandem a busca no sistema de arquivos:

  • * (Asterisco): Corresponde a qualquer quantidade de caracteres ou nenhum caractere na posição.
  • ? (Ponto de Interrogação): Corresponde a exatamente um único caractere na posição.
  • [] (Colchetes): Corresponde a qualquer um dos caracteres listados dentro dos colchetes ou a um intervalo na posição informada.

Ao executar um comando, o bash examina cada palavra em busca dos caracteres ‘*‘, ‘?‘, e ‘[]‘, se um desses caracteres aparecer e não estiver entre aspas, a palavra será considerada um padrão e substituída por uma lista ordenada de nomes de arquivos ou diretórios que correspondem ao padrão.

Primeiro exemplo, para remover todos os arquivos que terminam com a extensão “.png” em /home/dlncloud/images/, pode-se usar o caractere asterisco para representar nomes de arquivos que serão removidos:

Outro exemplo, copiar para /backup arquivos que estão dentro de /etc e que terminem comconf”:

Precisa expandir nomes de arquivos ou diretórios substituindo um único caractere em uma posição específica ? Então use o caractere “?” (Interrogação):

No exemplo, anterior o comando ls lista todos os arquivos e diretórios dentro de /dev que iniciam com “tty” e que tem somente um caractere após a palavra tty.

Se precisar listar todos os arquivos e diretórios chamados “tty” de “/dev”, mas que tem exatamente dois caracteres em seguida, o comando é:

É possível também usar uma lista de caracteres específicos em uma posição. Por exemplo, para listar arquivos que tem o número 1 ou o número 2 após “file” e antes “.txt”:

Você pode usar também um intervalo de caracteres numéricos ou alfabéticos. Por exemplo, para listar todos os arquivos e diretórios que tem o número 1 ou 2 ou 3 antes de “.txt” e após “file”:

Também é possível excluir uma lista usando o caractere “^” (circunflexo) dentro dos colchetes. Para listar, arquivos e diretório que tenha um número que não seja 1, 2 ou 3 após “file” e antes de “.txt”:

3. Substituição de comandos

Outro recurso do shell bash é a substituição de Comandos, ela pode ser usada para executar um comando e utilizar a saída (output) como argumento para outro comando.

Isso elimina a necessidade de copiar e colar informações manualmente entre processos, acelerando o fluxo de trabalho no terminal. A sintaxe da substituição de comandos é:

ou

Um dos usos práticos é atribuir valor a variáveis, o propósito é executar um comando e a saída é usada como valor da variável.

Vamos supor que precise capturar a data atual no formato dia-mês-ano, a data será usada no nome de um arquivo de backup. No exemplo, será criada a variável HOJE, e o valor será a saída do comando date.

É uma prática que pode ser usada para nomear arquivos de logs e backups por data.

Um segundo exemplo, é usado o comando pgrep para encontrar o PID de um processo pelo nome (nginx) e o PID é passado como argumento para o comando kill.

É muito mais rápido do que procurar o PID manualmente, e uma forma de finalizar todos os processos de um serviço, caso ele apresente mal funcionamento.

E o último exemplo executa uma manipulação de arquivos em lote, primeiro é criado um arquivo chamado lista_apps.txt que tem uma lista de pacotes de software que o apt vai instalar, o conteúdo do arquivo é:

O comando a seguir instala todos os pacotes listados no arquivo lista_apps.txt em uma distribuição linux debian ou ubuntu.

Explicando: Primeiro o shell bash executa o comando cat dentro de “$( )”, e a saída do comando cat é inclusa na linha de comando, em seguida o bash executa o comando apt instalando os pacotes.

Para aprender mais sobre substituição de comandos do bash recomendo a leitura do manual.

4. Comandos sequenciais

Comandos sequenciais (lista de comandos) é um recurso do bash que permite executar múltiplas tarefas em uma única linha de comando.

Na prática, a lista de comandos do shell bash controla o sequenciamento do fluxo de execução, economizando o tempo de esperar um comando terminar para digitar o próximo manualmente.

Essa funcionalidade é vital para quem busca agilidade no terminal, permitindo encadear ações que dependem (ou não) do sucesso da etapa anterior.

O caractere “;” (ponto e virgula) separa os comandos e é usado para execução de comandos em sequência de forma incondicional. O bash executará o segundo comando assim que o primeiro terminar, independentemente de ele ter funcionado ou gerado um erro, e assim por diante.

No exemplo a seguir, primeiro é executado o comando cd e ao fim da sua execução é executado o comando ls e somente depois que o segundo comando terminar o comando pwd.

É possível também fazer a execução condicional com && (AND). Quando “&&” é usado o segundo comando só será executado se o primeiro for concluído com sucesso (código de saída zero).

Por exemplo, você pode executar o comando mkdir para criar uma pasta e somente se a pasta for criada ela é acessada, veja comando:

O uso do “&&” é ideal para processos que dependem de uma etapa anterior.

Também pode-se usar a execução condicional de falha com “||” (OR). A lógica é invertida, o segundo comando só será executado se o primeiro falhar (código de saída diferente de zero).

Por exemplo, tentar “pingar” um servidor, se falhar, exibe uma mensagem:

O “||” (pipe duas vezes) é excelente para tratar erros ou enviar alertas.

O código de um shell script é composto por comandos sequenciais. Por padrão, o interpretador lê o shell script linha por linha, tratando cada quebra de linha como se fosse um “;” (ponto e vírgula).

5. Funções

As funções são blocos de código nomeados que executam tarefas específicas dentro de uma sessão do bash ou de um script.

Elas representam um dos recursos do bash mais avançados, permitindo que você agrupe vários comandos sob um único nome para reutilizá-los sempre que necessário, aceitando inclusive parâmetros dinâmicos.

Em vez de digitar uma sequência complexa de comandos, você invoca a função pelo nome, como se fosse um comando do sistema.

Para criar uma função utilize a seguinte sintaxe:

Ou pode criar assim:

Por exemplo, a seguir é criada uma função chamada list_kernel, ela mostra na tela a quantidade de kernels linux instalados e em seguida exibe os arquivos do kernel que estão dentro de /boot.

Para executar uma função digite o nome dela e pressione ENTER:

Caso os comandos fiquem na mesma linha, inclua sempre o caractere;” (ponto e vírgula) para indicar que o código a seguir está em uma nova linha.

Outro exemplo, criar uma função que verifica se o serviço está rodando (em execução) ou está parado. A função recebe o “$1” (primeiro parâmetro) passado, o parâmetro é o que vêm após o nome da função.

Agora execute a função, para checar se o serviço httpd (se instalado) está em execução:

Embora pareçam similares, os aliases e as funções são diferentes, o alias é ideal para substituições simples de comandos fixos, enquanto as funções são indicadas para executar blocos de códigos que precisam ser repetidos, sendo muito mais poderosas para automação avançada.

Conclusão

Aprender os recursos do bash ensinados é o primeiro passo para ser mais produtivo, principalmente se for um profissional que trabalha com linux usando a interface de linha de comando.

Para iniciantes, a dica é praticar cada uma dessas funcionalidades do shell bash em um ambiente de testes. Comece criando seus próprios aliases e pequenas funções para automatizar o que você mais repete no dia a dia.

Esperamos que este guia ajude você a elevar o nível das suas automações. Se tiver dúvidas deixe seu comentário abaixo, sua partição é importante !

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.