Quando você emite um nome de comando no terminal, o sistema procurará um executável com esse nome em uma lista de diretórios onde deve encontrar tais executáveis. Esta lista é chamada de caminho e no bash shell (e na maioria das outras * nix shells), ela é salva na variável $PATH
. Desde que você parece estar usando o bash, continue a ler.
O $PATH
está configurado em locais diferentes. Primeiro, há o $PATH
do sistema, que está configurado em /etc/profile
. Todo novo usuário herda o $PATH
que está configurado lá. Normalmente, /usr/bin
deve ser adicionado ao sistema $PATH
em /etc/profile
, por exemplo, no meu Debian, eu tenho:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
export PATH
Você então tem os vários arquivos de inicialização bash específicos do usuário. Qual deles é lido depende de como você está lançando o bash, se ele está sendo executado como um shell interativo ou não interativo e se é um shell de login ou não. Veja a resposta muito boa de @Giles aqui nos diferentes arquivos lidos por diferentes invocações de shell.
Para resumir, para adicionar um diretório específico ao usuário $PATH
sem alterar as configurações do sistema, adicione essa linha ao arquivo $HOME/.profile
:
PATH="$PATH:/usr/bin"
~/.profile
é lido por todos os shells, não apenas bash
e é lido uma vez quando você faz login. ~/.bashrc
, por outro lado, é lido toda vez que você abre um terminal para que não esteja onde você deseja para definir seu $PATH
, pois você só precisa defini-lo uma vez e não precisa redefini-lo toda vez que abrir um terminal.