Aí entram as variáveis de ambiente em jogo, especialmente a variável PATH. Esta variável é responsável por dizer ao bash onde procurar esses programas. Vamos verificar como o PATH funciona e como visualizar / modificar o PATH.
Variável de ambiente e $ PATH
Na terminologia do shell, o ambiente é uma área que o shell constrói toda vez que inicia uma sessão. Para gerenciar o ambiente, existem variáveis de ambiente que denotam diferentes partes do ambiente. O valor da variável pode ser string, localização do diretório, valor ou outros.
PATH é uma variável de ambiente que rastreia certos diretórios. Por padrão, a variável PATH contém os seguintes locais.
- / usr / bin
- / usr / sbin
- / usr / local / bin
- / usr / local / sbin
- /sou
- / sbin
- / snap / bin (se o Snap estiver instalado)
Quer ver quais diretórios estão registrados no PATH? Abra um terminal e execute o seguinte comando.
$jogou fora $ PATH
Aqui, o sinal $ denota uma variável. o jogou fora comando imprime o valor da variável PATH.
Agora, por que essa variável de ambiente específica é tão importante? É porque o shell e o sistema como um todo o tratam. A variável PATH armazena onde os executáveis podem ser encontrados. Sempre que qualquer comando é executado, o shell procura os diretórios PATH do arquivo executável de destino e o executa.
Por exemplo, vamos testar com o jogou fora comando. Aqui, estou executando um comando echo.
$jogou foraOlá Mundo!
Onde está o arquivo executável de jogou fora ? Execute o próximo comando para descobrir.
$que jogou fora
Como podemos ver, o jogou fora executável está localizado em / usr / bin / echo. Onde fica qual? Vamos descobrir.
$que que
Ele também está localizado em / usr / bin / which. A maioria das ferramentas de comando está localizada no diretório / usr / bin. Aqui, o bash está consultando o PATH para os locais para pesquisar os executáveis de um comando.
Modificando PATH
Antes de modificarmos o valor de PATH, é importante entender sua estrutura. Execute o comando novamente para verificar o valor de PATH.
$jogou fora $ PATH
Observe que cada um dos diretórios é separado por um sinal:.
Adicionando diretório ao PATH
Para adicionar um diretório personalizado ao PATH, usaremos a ajuda do arquivo bashrc. É um script bash especial que carrega o bash toda vez que uma nova sessão bash é iniciada. Observe que o arquivo bashrc é exclusivo para cada usuário no sistema Linux.
Abra o arquivo bashrc em um editor de texto. Se o arquivo bashrc ainda não estiver presente, o editor o criará automaticamente.
$vim~/.bashrc
Aqui, é o bashrc padrão que vem com o Ubuntu. Vá para o último arquivo (se existir) e adicione a seguinte linha.
$exportar CAMINHO='$ PATH: / '
Aqui, o novo valor da variável PATH será a variável antiga junto com o novo diretório que acabamos de adicionar.
Salve o arquivo e diga ao bash para recarregá-lo.
$fonte~/.bashrc
Vamos verificar se o novo caminho foi adicionado com sucesso.
$jogou fora $ PATH
Voila! PATH atualizado com sucesso! Agora, o bash também pesquisará o novo caminho para executáveis. Eu já tenho um script demo.sh no desktop. Vamos ver se o bash pode chamá-lo sem especificar o local exato.
$demo.sh
Sim, o bash pode chamá-lo diretamente sem nenhum problema.
Removendo diretório de PATH
Não há uma maneira direta de adicionar / remover diretórios do PATH. Deixe-me explicar.
O valor de PATH é realmente fixo. Então, que tal o truque do bashrc? Bashrc é um script bash que carrega o bash toda vez que inicia uma sessão. No bashrc, acabamos de declarar que o novo valor de PATH será seu valor padrão e o diretório definido pelo usuário. Agora, toda vez que o bash carrega, ele vê que o bashrc está dizendo para atribuir um novo valor de PATH e é isso que ele faz.
Da mesma forma, se quisermos remover um diretório de PATH, temos que reatribuir um valor diferente de PATH no bashrc para que toda vez que o bash iniciar, ele use o valor modificado.
Vamos dar uma olhada neste exemplo. Desejo remover o diretório ~ / Desktop do PATH.
$jogou fora $ PATH | sed -E 's /: ~ / Desktop $ //'
Se o diretório fosse / home / wrong / dir, o comando teria a seguinte aparência.
$jogou fora $ PATH | sed -E 's /: / home / wrong / dir $ //'Aqui, a parte interessante é a ferramenta sed. Saiba mais sobre sed aqui e aqui . Resumindo, usando o sed, estamos modificando a saída do jogou fora comando. Agora, podemos usar essa saída modificada para alterar o valor de PATH.
Abra o bashrc em um editor de texto e adicione as seguintes linhas. Estou intencionalmente mantendo as linhas anteriores para provar que está funcionando.
$exportar CAMINHO='$ (echo $ PATH | sed -e 's /: ~ / Desktop $ //')'
Como alternativa, você também pode definir manualmente o valor de PATH. É um processo laborioso, mas mais direto e simples.
$exportar CAMINHO=/usr/local/sbin:/usr/local/sou:/usr/sbin:/usr/sou:/sbin:/sou:/usr/jogos:/usr/local/jogos:/foto/sou
Aqui, o valor do comando será atribuído a PATH. Salve o arquivo e recarregue o bashrc.
$fonte~/.bashrc
Vamos verificar o resultado.
$jogou fora $ PATH
O valor PATH é atualizado!
Pensamentos finais
No bash, a variável PATH é importante. Qualquer programa executado através da sessão bash herda a variável, por isso é importante que PATH inclua apenas os diretórios necessários. Adicionar mais diretório apenas adicionará redundância ao sistema.
Para ver todas as variáveis de ambiente do bash, execute este comando. A primeira parte do comando retornará todas as variáveis de ambiente e a segunda parte classificará a saída em ordem crescente.
$env | ordenar
Quer apimentar sua experiência bash? Os apelidos de Bash oferecem uma maneira única de acelerar e apimentar as coisas. Saiba mais sobre aliases de bash .
Aproveitar!