Como posso redefinir o valor padrão do $ PATH no Ubuntu?


31

Desmarquei acidentalmente todos os diretórios $PATHenquanto tentava adicionar um novo ~/.bashrc. Abri uma nova janela do terminal enquanto estava editando e agora $PATHestá vazia. Estou preocupado se inicializar a partir de outra unidade para descobrir $PATHque não poderei inicializá-la novamente.

Basicamente, qual é o resultado padrão echo $PATH?


1
Comente ou corrija essa linha de exportação e você deve sair.
Pantera

~/.bashrcé o lugar errado para definir variáveis ​​de ambiente. Você deve fazer isso em seu ~/.profilelugar.
Geirha # 16/12

Sim, eu descobri. PATH ainda está bom na outra janela do terminal que estava aberta antes da nova, portanto, apenas conserte a linha de exportação adicionando :$PATHno final a restauração do PATH. E sim em ~/.profileque há código para "set PATH assim que inclui bin privada do usuário se ele existe", isto é$HOME/bin
Cee

Respostas:


35

A resposta para sua pergunta é:

PATH=$(getconf PATH)

e funciona em qualquer sistema compatível com POSIX. A resposta selecionada é a maneira correta de aumentar o caminho sem eliminar o conteúdo existente anterior. Se você usa o bash, considere:

PATH+=:$mynewdir

Eu tive problemas ao usar muitos comandos ( sed: No such file or directorytipo de problema) depois de configurar acidentalmente meu PATH para nada durante um processo de execução muito longo (ou seja, não consegui reiniciar). Eu não poderia usar getconf. Para redefinir meu caminho, eu usei $(export $(cat /etc/environment)":/usr/bin/additional:/usr/bin/paths"). Para os curiosos: /etc/environmenté onde a variável PATH é definida inicialmente em muitos tipos de Linux.
Nick Touro

2
Esse trabalho me surpreenderia. Talvez "exporte" sem o material "$ (...)" circundante, mas será o que estiver lá. Use "source / etc / ..". De qualquer forma, tente "/ usr / bin / getconf" se você não conseguir encontrar "getconf".
Bruce

Prefira sua idéia final usando o caminho completo muito mais do que o meu em retrospectiva! Obrigado pela resposta
Nick Bull

1
Se a variável PATH estiver vazia, PATH=$(getconf PATH)não será útil, mas apenas resultará embash: getconf: No such file or directory
Max N

1
Se PATH estiver vazio, observe o comentário acima: tente "/ usr / bin / getconf". Se isso não funcionar, você precisará saber onde seu sistema esconde seus comandos POSIX e usar esse diretório.
Bruce

17

Você pode encontrá-lo em / etc / environment:

$ /usr/bin/cat /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Então, basta fonte:

$ source /etc/environment 
$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

1
gato não vai funcionar no modo como em sua resposta, já que não existe $ PATH
Josef Klimuk

Você está certo. Acabei de modificar a resposta. Obrigado!
Manuel Jesus Rodriguez

8

A adição de: $ PATH ao final da linha de exportação corrigiu o problema, por exemplo export PATH=<directory to be added>:$PATH

Eu adiciono esta linha ao ~/.bash_rcarquivo em vez do ~/.profilearquivo para que eu possa ver o efeito imediatamente em um novo terminal e por outros motivos com base nas informações aqui: https://superuser.com/questions/176404/linux-bash-not- loading-profile-in-new-session

Para mim, a saída padrão de echo $PATHantes de adicionar o novo diretório é:

/ usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games


3

O caminho padrão é

/home/_username_/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games 

Espero que isso ajude você


Isso difere do meu PATH padrão. Ver abaixo.
Cee
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.