Criando Alias para personalizar comandos no linux

alt text

Em uma coisa que temos que concordar, que o terminal do linux não é para qualquer um.

Imagine ter que digitar no terminal sudo apt install pacote xxxpara quem conhece já o mundo linux isso é a coisa mais simples, mas para quem é um usuário que acabou de sair do Windows, pode parecer isso... alt text

O terminal do Linux existe para facilitar as coisas para o usuário.

Algo muito útil pro nosso dia-a-dia, são os Aliases do sistema. Pequenos “apelidos” que, corretamente configurados, nos ajudam na hora de digitar comandos enormes ou abreviar comandos que geralmente digitamos.

Configurando Aliases

Primeiramente criamos um arquivo no diretório Home, para isso usarei o Vim e se você está lendo isso eu consegui sair dele, mas fique a vontade a utilizar seu editor de texto que preferir.

Com o editor aberto, vamos em salvar como escolhemos o diretório Home e o nome do arquivo como .bash ou .zshrc o ponto na frente do arquivo é muito importante, pois assim ele ficara oculto, então para exibir o arquivo é só apertar Ctrl+h e o sistema exibira todos os arquivos ".ocultos", aperte novamente e os arquivos voltaram a ser ocultos.

Sintaxe

Com o arquivo ainda aberto, podemos criar as nossas aliases, seguindo sempre a sintaxe: alias novocomando=’comando normal do sistema

Ficando algo assim:

alias atualizar=’sudo apt-get upgrade’

Assim criando o apelido atualizar para chamar o comando sudo apt-get upgrade. Após a configuração do aliases, você pode atualizar o sistema com um simples atualizar no terminal.

O apelido dado a um comando fica a critério do próprio usuário. Apenas tenha o cuidado de não dar apelidos que sejam comandos existentes no bash.

Uma dúvida, se a pessoa tentar colocar um alias para algum comando já existe, por exemplo apt update, o sistema retornaria algum erro ou apenas iria sobrescrever?

Não to no Linux no momento para fazer esse teste.

Por padrão o terminal vai dizer que é uma palavra reservada e não pode usar para alias, quando for salvar o arquivo .bash ou afins

Uma outra dica legal é o que conseguimos fazer com funções dentro nos nossos arquivos .zshrc ou .bashrc. Podemos, por exemplo, criar uma função 'php' para utilizar uma imagem do docker permitindo a utilização da CLI do PHP sem a instalação do mesmo diretamente na máquina. Ficaria assim:

php() {
  docker run --rm --interactive --tty \
    --volume $PWD:/app \
    php:7.4 $@
}

Esta função roda a imagem 'php:7.4' do docker no modo interativo (--interactive), permitindo que comandos sejam executados enquanto o container está rodando e alocando uma sessão de terminal com o container (--tty). E com o parâmetro --rm eu defino que o container será destruído após o término da execução do comando.

Eu ainda crio um volume apontando o $PWD, a pasta onde o comando está sendo executado, como '/app' dentro do meu container e passo a expressâo '$@' informando que as outras opções passadas a função serão adicionadas ao comando do docker. Sendo assim, caso eu digite php -S 0.0.0.0:8080 um servidor PHP será iniciado utilizando a versão 7.4 do PHP, especificada pela imagem do docker, na raiz de onde o comando foi executado.

Caso seja a primeira execução a imagem será baixada e logo após o comando será executado.

O exemplo foi um pouco mais complexo mas acredito que serve bem pra exemplificar o poder desse tipo de ferramenta.

lado negativo: hoje não sei quase nenhum comando git por causa disso. :eyes: