Trilha (Linux Tools): Funções em Bash

Opa, voltando ao ritmo novamente 😅; hoje venho com uma série de artigos sobre Linux, onde irei abordar desde comandos mais simples até (Shell Scripts) mais avançados. Se liga só! 🚀

Hoje, gostaria de mostrar alguns exemplos de funções no Bash do Linux, arquivos que podem ser utilizados e algumas das funções que eu tenho definidas no meu sistema.

  • O que precisamos entender primeiro?

No Linux, o Bash permite trabalhar com funções que são parecidas com os aliases, e podemos nesse caso executar pequenos programas, usando o comando que é usado para criar uma sequência de rotinas, de comandos, loops, if, while, etc.

  • Formas de se usar o comando

1º) Primeira forma de se declarar uma função:

2º) Segunda forma de se declarar uma função:

3º) Terceira forma de se declarar uma função (sem o uso do comando function):

Para listar as funções definidas no Bash pode se usar o comando

Para remover uma função do Bash pode ser usar o comando

  • Entendendo alguns arquivos importantes do Linux

Tudo que a gente fez até agora no Bash só vale para essa sessão, temporário, só vale para essa sessão do Bash. Se eu reiniciar essa máquina, ou abrir outra sessão não vai funcionar.

Para que as funções fiquem permanentes no nosso sistema, temos que trabalhar com alguns arquivos, veja esse anexo abaixo:

Arquivos que aplicam configurações para todos usuários.

Entendendo o conceito de login e sessão (toda vez que eu faço o procedimento de login, eu abro um novo terminal, mas nem toda vez que eu abro uma nova sessão, um novo bash, eu não tô fazendo o procedimento de login).

$/etc/profile (utilizado quando se faz o procedimento de login, quando o usuário loga na interface gráfica)

  • é aqui que se inclui um alias para todos usuários, uma função que seja carregada no momento do login.
  • como exemplo, foi definida uma variavel chamada ETCPROFILE=valor2 no /etc/profile.

$/etc/bash.bashrc (aplicado quando se abre um novo terminal, uma sessão do shell) bashrc (novo bash, novo shell).

  • existem várias definições nesse arquivo.
  • declarando a variável BASHRCTESTE=valor2
  • digitando dentro do terminal, $bash ele abre outro shell, digitando $echo $BASHRCTESTE, ele mostra o valor, porque ele abriu outro shell, nova aba tbm serve.

Arquivos que aplicam configurações para um usuário específico, para um usuário individual.

  • existem alguns arquivos no /home de cada usuário para que ele mesmo faça as alterações.
  • “semelhante ao /etc/profile (novo login)”

$~/.bash_profile/
$~/.bash_login/
$~/.profile (definições pessoais que serão aplicadas em todo novo login) — posso adicionar um alias, uma função, uma variável.

  • sempre será nessa ordem, caso não tenha o 1º arquivo, ele segue para o 2º, caso não tenha ele vai para o último (~/.profile)
  • definindo um alias no arquivo /home/.profile alias tt=”date; uptime”

O /home do usuário também tem outros arquivos importantes.

  • $ ~/.bash_logout (o que tem nesse arquivo será executado toda vez que o usuário fizer logout).
  • $ /etc/inputrc (definir comandos no terminal, definir o tipo de edição que o terminal aceita, vim, emacs).
  • $ /etc/skel (diretório no /etc todos os arquivos e diretórios que estão dentro do /etc/skel, vão ser fazer parte da base de novos usuários que serão criados no sistema, os arquivos vão ser colocados no /home do usuário que eu criar).
  • Se eu quiser adicionar uma configuração específica eu posso por no diretório /etc/skel, que ele vai criar para todos os usuários do sistema.
  • Exemplos de funções no Bash

Conforme mencionado, fiquei de mostrar uma função que faz o update no sistema, é bem simples, existem outras formas de se fazer.

Basicamente, essa função vai mostrar os updates, pausa por 2 segundos (sleep 2), e depois fica esperando eu enviar o yes (y), para aplicar as atualizações. Essa função adicionei no /etc/bash.bashrc (para todos os usuários do sistema que abrirem um shell novo) e no ~/.bashrc.

Outro exemplo de função, seria:

Na função acima, podemos ver que ela verifica no diretório do usuário, o que é diretório, é bem simples, existem mais formas de se melhorar isso, trazendo mais resultados, por exemplo, (Quantos tem? Quantos GB tem em cada diretório? Quantos arquivos tem?; etc).

Agora que você sabe os arquivos que podem ser utilizados para manter as configurações permanentes no Bash, use muito funções, aliases, isso vai deixar seu sistema automatizado.

Isso é tudo pessoal, bem simples! Fiquem a vontade para sugerir melhorias, e se você não curtiu, comente também! #VAIIII

Agradecimentos ao professor de Linux Ricardo Prudenciato! 🚀

Senior Linux Administrator at IBM

Senior Linux Administrator at IBM