Comandos quebrados no debian definindo PATH

0

Eu tenho um grande problema agora, eu tentei definir um PATH para um arquivo python, mas eu fiz errado e aparentemente quebrou todos os comandos no debian.

O que recebo quando digito qualquer comando:

-bash: "command": No such file or directory

Acho que isso pode ter acontecido quando eu digitei "PATH=" sem nada depois do sinal de igual. Como posso redefinir isso?

    
por Edward144 20.08.2017 / 14:10

1 resposta

2

Se você estiver fazendo isso em uma sessão X gráfica (o que é provável), você pode simplesmente fechar a janela do terminal e abrir uma nova. Como a mudança para $ PATH não é promovida para o processo pai, a nova sessão de terminal herdará o valor correto para $ PATH do seu processo pai, e o bash aplicará qualquer personalização adicional da configuração no disco.

Se você não estiver executando em uma sessão X, a solução mais fácil provavelmente será apenas efetuar logout e logon. A menos que você tenha feito alterações em seu bashrc ou arquivos de perfil bash, que redefinirão seu $ PATH para seu valor normal.

Se por alguma razão você estiver com dificuldades para sair, você pode no prompt do bash apertar Ctrl + C para dizer ao shell para ignorar qualquer entrada na corrente linha de comando, seguida por Ctrl + D . O último envia um sinal de fim de arquivo para o shell, o que faz com que ele saia. Se o seu login shell sair, você será levado de volta ao prompt de login e poderá fazer o login novamente.

Se você não estiver executando o X e não puder efetuar logout agora , poderá iniciar um novo shell de login, que configurará sua própria cópia do ambiente, incluindo $ PATH. Isso pode ser útil se você estiver no meio de algo e quiser chegar a um ponto em que você possa sair e continuar. Para fazer isso, você precisa executar o bash com o parâmetro --login (ou -l ). Como o bash não estará em seu $ PATH, você precisa especificar o caminho completo para ele. Felizmente isso é bem fácil, porque praticamente todo sistema moderno que tem o bash instalado o terá em / bin / bash, então sabemos onde procurar.

  • Primeiro, execute exec /bin/bash --login . Isso substituirá seu shell atual por um novo, que terá basicamente o ambiente correto. No entanto, é possível que seus scripts de inicialização bash dependam de itens que não estão disponíveis porque $ PATH está vazio. Se esse for o caso, é muito provável que eles imprimam alguns (ou muitos) erros.
  • Para contornar isso, apenas exec /bin/bash --login novamente . Isso deve estar sendo executado em um ambiente em que $ PATH esteja configurado corretamente, para que os scripts de inicialização do bash possam executar o que precisam. O resultado será uma instância de shell de configuração correta.

Você não precisa para usar exec , mas é útil aqui porque faz com que o seu shell existente seja substituído pelo novo em vez de simplesmente lançando a nova instância como um subprocesso. Se você não usar exec nessa situação, quando sair do shell iniciado mais recentemente, voltará à instância quebrada.

    
por 20.08.2017 / 14:30