Essa dica é muito útil quando você quer isolar scripts para o seu usuário, e não todos os outros ou o root. Também é muito prática quando usa-se uma máquina compartilhada como é o meu caso no trabalho, dessa forma você não vai precisar ficar executando o script sempre pelo caminho absoluto como por exemplo:
Você está no diretório /root e que executar um script que só você usa, que está em diretórios no seu home, vai precisar especificar o caminho todo como em …
“/home/valcicreide/scripts/gerador_de_nomes.sh”
… fica meio chato ficar digitando isso tudo a cada vez que você quiser rodar o script.
Aí você me diz:
– Ahh Fazzio, coloca o script no /usr/local/bin e tudo está resolvido, vai aparecer até no completion (tecla TAB) !
Tudo bem, é uma saída, mas e se a máquina que você usa é compartilhada e todos executam scripts com o mesmo nome, porém com parâmetros diferentes como usuário e senha, como ficaria?
É daí que tive pela primeira vez a necessidade de maniular o $PATH.
Explicação Expressa: $PATH é uma variável de sistema que contém os endereços dos diretórios onde o shell que você usa vai procurar os programas que você solicita. O ifconfig, por exemplo, fica no diretório /sbin/ifconfig.
P: Mas como eu descubro isso?
R: Utilizando o comando which.
$ which ifconfig
/sbin/ifconfig
Legal né?
Beleza, vamos ao que interessa, finalmente … =D
O mais prático no meu caso seria adicionar o diretório onde eu salvo os scripts ao $PATH.
Para descobrir qual o seu $PATH atual, você usa:
echo $PATH
Vai ter algo parecido com:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Para simplesmente adicionar um diretório ao $PATH basta usar o comando:
PATH=$PATH:/diretorio_novo
Substitua o “/diretorio_novo” pelo caminho do seu diretório de scripts, o meu ficou:
PATH=$PATH:/home/tfazzio/scripts
Simples né, mas ainda tem um detalhe.
Dessa forma, ao sair do terminal essa alteração vai deixar de existir, se você quiser que ela se torne permanente deve adicionar uma linha ao final do arquivo de configuração do seu shell preferido, no meu caso o Bash, o arquivo é o .bashrc que fica no seu home.
export PATH=$PATH:/diretorio_novo
Pronto, agora toda vez que você abrir um terminal, esse diretório vai estar no $PATH, permitindo que você rode seus scripts feliz e contente usando apenas o nome deles e com a comodidade do recurso de auto-completar com o TAB, não é lindo? … =P
Um último detalhe …
Eu nunca vejo em dicas como desafazer as coisas e acho isso muito ruim. Mesmo em livros isso acontece muito e as vezes não é tão lógico o processo de desafazer a alteração.
Para desfazer essa alteração, basta você remover a linha do seu “.bashrc” e rebootar a máquina.
Não! Rebootar é coisa de MUW! (Malditos Usuários de Windows)
Basta você remover a linha e depois executar os comandos abaixo:
Primeiro um “echo $PATH”, para copiar seu PATH original, exceto o diretório que será removido, é claro.
Depois basta um:
PATH=/path_original
No meu caso ficaria:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Pronto, tudo volta como era antes… =)
Bom, era uma dica rápida, mas tudo bem. Quanto mais entendemos o que estamos fazendo e o conceito das coisas, melhor se torna o aprendizado.
No responses yet