O que é $PATH
?
Como posso ter comandos / programas que estão disponíveis apenas para mim?
Eu já vi esse caminho ~/bin
mencionado anteriormente, mas para que é usado e como o uso?
environment-variables
Braiam
fonte
fonte
Respostas:
$ PATH é uma variável de ambiente usada para procurar comandos. O ~ é o seu diretório pessoal, então ~ / bin será / home / user / bin; é um diretório normal.
Quando você executa "ls" em um shell, por exemplo, na verdade você executa o programa / bin / ls; a localização exata pode variar dependendo da configuração do sistema. Isso acontece porque / bin está no seu $ PATH.
Para ver o caminho e descobrir onde está localizado qualquer comando específico:
Para ter seu próprio diretório bin privado, você só precisa adicioná-lo ao caminho. Faça isso editando ~ / .profile (um arquivo oculto) para incluir as linhas abaixo. Se as linhas forem comentadas, você precisará apenas descomentá-las; se eles já estiverem lá, está tudo pronto!
Agora você precisa criar seu diretório ~ / bin e, como .profile é executado no login e só adiciona ~ / bin se existir naquele momento, é necessário efetuar login novamente para ver o PATH atualizado.
Vamos testá-lo:
fonte
type
para ver como um comando real será resolvido pelo shell; por exemplo:which echo
etype echo
relatará coisas diferentes,which
retorna '/ bin / echo', mas 'type' retorna que é um shell embutido, o qual o shell preferirá sobre o arquivo em '/ bin'.which
é melhor substituído portype
oucommand
em shells interativos e é completamente inútil em scripts.$HOME
variável variável$PATH
por algum motivo não funciona, ou seja, é preciso usar o~
sinal.Em relação a
~/bin
comandos / programas disponíveis apenas para o usuárioVersões recentes do Ubuntu incluem o
~/bin
diretório no seu$PATH
, mas somente se o~/bin
diretório existir.Se não existir:
Verifique se você
~/.profile
contém a seguinte estrofe (o padrão~/.profile
já existe):Crie o
~/bin
diretório:Reinicie o computador ou force o bash a reler
~/.profile
:fonte
exec -l bash
dica "reiniciar ou ". O que a-l
bandeira faz? Não estou encontrando uma explicação noman exec
.exec -l
executará o bash como um shell de login [ wiki.bash-hackers.org/commands/builtin/exec] . Em suma, força o bash a reler/etc/profile
e~/.profile
. A execuçãoexec bash
apenas relerá~/.bashrc
.