Neste artigo daremos continuidade ao tutorial de comandos do terminal. Veremos o é que o comando “sudo”, o que são e como funcionam os gerenciadores de pacotes (Package Managers), o que são e como criar e executar arquivos .sh (Shell Script). Este artigo é indicado para iniciantes no Linux.
Faça do terminal Linux seu amigo!
Se você é um usuário iniciante provavelmente está usando Ubuntu ou Linux Mint e os primeiros comandos deve ter aprendido são os clássicos “sudo apt-get update”, “sudo apt-get upgrade” e “sudo apt-get install ”, você já sabe o que eles fazem, mas você sabe o significado de cada um deles?
Vamos analisa-los um a um para melhor entende-los. Mas, para começar vamos falar sobre o sudo.
sudo
O comando “sudo“ foi criado na década de oitenta por Bob Coggeshall e Cliff Spencer, sudo significa “Super User Do” ou “Super Usuário Faça”.
Ele serve para executar comandos como super usuário (usuário root) ou como qualquer outro usuário sem a necessidade de logar como ROOT. No Linux, bem como no Unix, apenas o usuário root pode modificar qualquer coisa no sistema.
Para instalar programas no Linux, por exemplo, seria necessário abrir o terminal e logar como root com o comando “su”, porem em distribuições como o Ubuntu o usuário root não está habilitado, então apenas o comando “su” não vai funcionar, você terá que usar o comando “sudo su” ou “sudo -i” para faze-lo.
sudo su
Mas, você também pode usar o:
sudo -i
Lembrando que enquanto você estiver digitando a sua senha não aparecerá nada, então digite a sua senha normalmente que o sistema fará o login.
Aprendendo um pouco mais sobre o sudo
Você deve ter notado que no lugar de onde deveria aparecer o nome do seu usuário apareceu “root” e no lugar de “$” apareceu “#”. O “cifrão” aqui representa o seu usuário comum e o “jogo da velha” representa o usuário root.
Tome muito cuidado agora, pois o sistema obedece ao usuário root literalmente, então todo o cuidado é pouco, só faça algo no sistema se você tiver certeza de que sabe o que está fazendo.
Agora você não precisa mais digitar “sudo” para usar o “apt-get”. Com o usuário root tudo é possível, você tem domínio total sobre seu sistema e pode fazer qualquer coisa com ele. Mas agora vamos fazer logoff digitando o comando “exit”.
Agora voltamos ao cifrão de nosso usuário comum.
Muitas vezes digitamos um comando que requer autorização de super usuário, mas esquecemos de digitar “sudo” antes do comando. Quando isso acontece não é necessário digitar todo o comando novamente, basta digitar “sudo !!” que o comando anterior é reexecutado como root.
Conhecendo os gerenciadores de pacotes mais usados
Os package managers (Gerenciadores de pacotes) são os instaladores/desinstaladores do Linux, eles variam dependendo de cada família de distribuição Linux. Por exemplo, o Debian deu origem a várias outras distribuições como o Ubuntu, o Linux Mint, o Zorin OS, o Elementary OS, etc, já o Red Hat deu origem ao Fedora, ao finado CentOS, ao Oracle Linux, etc. Normalmente essas distribuições herdam o mesmo package manager de seus antecessores, mas isso não é uma regra.
Abaixo darei um exemplo de quais distribuições usam quais gerenciadores de pacotes.
Dpkg
Usado originalmente pelo Debian e agora por outros sistemas como o Ubuntu, usa o formato .deb e foi o primeiro a ter uma ferramenta de resolução de dependências amplamente conhecido como APT (apt-get ou aptitude).
RPM
Criado pela Red Hat e utilizada por uma série de outras distribuições Linux. RPM é o formato de empacotamento Linux Standard Base e possui ferramentas adicionais, incluindo o urpmi usado pelo Mandriva, o Zypper (YaST) usado pelo OpenSUSE e YUM, que é usado pelo Red Hat, DNF no Fedora.
slackpkg
Usado por Slackware Linux e seus derivados, há algumas ferramentas de nível superior que usam o mesmo formato de embalagem tgz, incluindo slapt-get, zendo, netpkg e swaret.
pacman
Usado pelo Arch Linux e Manjaro.
emerge
Usado pelo Gentoo.
Conhecendo o Dpkg, o mais popular
Cada package manager tem uma lista de endereços de repositórios onde ficam armazenados os todos os pacotes disponíveis. No caso de distribuições baseadas em Debian essa lista se localiza em “/etc/apt/sources.list”, ao digitar o comando “sudo apt-get update” o APT faz uma leitura desses repositórios e ao digitar “sudo apt-get upgrade” ele irá comparar as versões dos pacotes instalado no seu sistema com as versões dos pacotes nos repositórios.
Porém, caso haja pacotes a serem atualizados o APT vai resolver as dependências e baixar os pacotes, ai o dpkg entra em ação instalando, atualizando ou removendo pacotes.
Shell Scripts
Os Shell Scripts são arquivos executáveis de extensão .sh que contem comandos de terminal para realizar tarefas específicas como configurações de sistema com criação de outros arquivos e diretórios, regras de firewall e instalação de programas. Comandos como cd, touch, mkdir e outros são utilizados nos Shell Scripts.
Agora vamos criar um Shell Script para atualizar o sistema, no caso ainda utilizando o APT. Abra o terminal e como o comando “touch” crie um arquivo chamado “atualizar.sh”.
sudo touch atualizar.sh
Após termos criado nosso arquivo com extensão “.sh” vamos usar um editor de texto do shell chamado nano, para isso basta chamar o “nano” e depois o nome do arquivo a ser editado.
nano atualizar.sh
Esse é o nano, é um editor de texto comum como o gedit, mas só pode ser usado no terminal. Com o nano vamos digitar as seguintes instruções:
#!/bin/bash
sudo apt-get update
sudo apt-get upgrade
O primeiro comando “#!/bin/bash” indicará ao sistema que se trata de um arquivo executável e os outros comandos deveram ser executados em sequência. Para salvar o documento pressione Ctrl+o e para sair do nano pressione Ctrl+x.
Quando criamos um aquivo no Linux, por padrão, esse arquivo possui apenas permissão de leitura e escrita, por isso não podemos executa-lo assim que o criamos, vamos dar-lhe a permissão de execução com o comando “chmod”, caso você não esteja familiarizado com esse comando você pode ver outro tutorial clicando aqui.
chmod u+x atualizar.sh
Agora já podemos executa-lo, para executar um arquivo .sh no Linux basta digitar “ ./ “ antes do nome do arquivo.
./atualizar.sh
Ao executa-lo a senha de super usuário foi pedida, isso porque o sudo já foi chamado dentro do script, apenas digite a sua senha de usuário root e espere o sistema atualizar ou pressiona para Ctrl+c interromper o processo.
O Ctrl+c o pode ser utilizado para interromper qualquer processo no terminal, mas ao atualizar o sistema NUNCA interrompa o dpkg, isso pode quebrar o seu sistema.