Todo comando falha com “comando não encontrado” depois de mudar o .bash_profile?

35

Eu estava atualizando meu .bash_profile e, infelizmente, fiz algumas atualizações e agora estou recebendo:

env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found
-bash: dirname: command not found
-bash: /preexec.sh.lib: No such file or directory
-bash: preexec_install: command not found
-bash: sed: command not found
-bash: git: command not found

Meu bash_profile, na verdade, extrai outros arquivos .sh (os cria), portanto, não sei exatamente qual modificação pode ter causado isso.

Agora, se eu tentar uma lista de arquivos, recebo:

>ls
-bash: ls: command not found
-bash: sed: command not found
-bash: git: command not found

Alguma dica sobre como rastrear a origem do erro e como usar o terminal para itens básicos, como listar arquivos, etc.?

    
por Blankman 12.09.2012 / 04:08

9 respostas

53

Parece-me que, em um ponto ou outro, você está sobrescrevendo a variável de ambiente PATH padrão. O tipo de erro que você tem indica que PATH não contém /bin , em que os comandos acima (incluindo bash ) residem.

Por exemplo, se você fizer

PATH=/home/user/bin

em vez de

PATH="$PATH":/home/user/bin
    
por January 12.09.2012 / 04:34
14

Uma maneira de começar a depurar seu script bash seria iniciar um subshell com a opção -x:

$ bash --login -x

Isso mostrará todos os comandos e seus argumentos, que são executados ao iniciar o shell.

A opção --login é especificada porque .bash_profile é lido por shells de login. Mais informações sobre a depuração de scripts bash podem ser encontradas aqui: link .

Por fim, acho que a sugestão de janeiro funcionará para você, mas esse link vale a pena ser lido para problemas futuros.

    
por K. P. MacGregor 12.09.2012 / 05:23
9

Eu posso ter encontrado o problema. Funcionou para mim e pode funcionar para você ...

Eu estava usando o meu editor para salvar o Windows (LF / CR). Desde que eu uso os dois sistemas, parecia lógico. Quando eu precisei mexer com meu .bash_profile , percebi depois de comentar e experimentar coisas que nada funcionou. Eu mudei meu salva para o formato OS X (CR apenas) e voilà! Não mais "comando não encontrado" no terminal!

Pode ser assim tão fácil!

    
por cyphire 07.01.2014 / 23:14
6

Depois, não pude voltar a correr. ~ / .bash_profile ou qualquer comando usual como whoami, grep, etc. Eu imaginei uma maneira de apenas exportar novamente os caminhos necessários:

export PATH=/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/cpanel/composer/bin:/usr/local/easy/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin

Isso deve funcionar na maioria dos sistemas, embora alguns desses caminhos não estejam presentes em todos os pacotes do Linux. Funcionou para mim.

    
por Ananth 03.10.2016 / 21:06
3

Acho que posso ter encontrado a resposta para o problema se não fosse por você e por outras pessoas que têm um problema semelhante. Minha resposta é que eu não tenho um .bash_profile .

Então, eu estava pesquisando em toda a web e encontrei a solução. Basicamente, abra o terminal, digite touch ~/.bash_profile e pressione Enter . Isso resolveu meus problemas. Espero que faça o mesmo por você

    
por Paul 30.04.2014 / 17:28
2

Eu tenho o mesmo problema que você. Não consigo usar muitos comandos populares ( ls , vi/vim , ..) e não consigo editar /root/.bashrc quando efetuo login com su na raiz.

Finalmente. Eu encontrei a solução para este problema. Apenas faça o login root com o comando:

su -m

Depois disso, você pode usar

vim /root/.bashrc

para editar o PATH.

Boa sorte!

    
por MrReS 08.11.2012 / 08:40
1

Eu tive exatamente o mesmo problema:

Se eu colocar no lxterminal:

set | grep "jerom/bash"
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jerom/bash/

se eu digitei exatamente o mesmo comando em tty2 eu consegui:

set | grep "jerom/bash"
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jerom/bash\r

\ r significa o fim do DOS, então eu abri o arquivo ~/.bashrc e mudei as extremidades das linhas no Krusader para o unix style. E já está funcionando !!! : -)

Os DOS EOLs também causam problemas esporádicos nos scripts bash.

    
por xerostomus 31.03.2014 / 02:27
1

Eu tive o mesmo problema. Você pode ter perdido um $ ao exportar o PATH. Você deve abrir o .bash_profile no TextEdit. Se você não conseguir encontrar o arquivo no diretório, pressione Command + Shift + > para mostrar arquivos ocultos.

Em seguida, faça a correção no PATH e salve.

No diretório no Terminal, digite: source .bash_profile.

Isso deve resolver o problema.

    
por Kensam 06.08.2016 / 05:04
0

Eu peguei o mesmo problema agora mesmo depois que mudei o .bash_profile . E eu quero mudar isso de volta, mas agora eu não posso, porque eu perdi todos os comandos, especialmente o comando nano e o comando vim, então não consigo abrir o .bash_profile com o comando. E o .bash_profile é um arquivo oculto, não consigo abri-lo com o Finder.

Portanto, preciso encontrar uma maneira de abrir o arquivo .bash_profile. Depois de tentar várias maneiras, descobri que posso usar o Atom , porque o Atom pode ler todos os arquivos em uma pasta do projeto, incluindo os arquivos ocultos. Então, basta abrir o Atom, selecionar o File -> Open , escolher a pasta <yourusername> e, em seguida, todos os arquivos ocultos serão exibidos na visualização em árvore do Atom, inclua o .bash_profile !! Depois que eu removi a última modificação e reabri o Terminal, todos os comandos voltaram! :)

    
por backslash112 06.02.2017 / 04:57