Como redefinir o Bash no Mac OSX, o .bash_profile está corrompido e o bash não funciona mais


17

Estou em um MacBook Pro, executando a versão mais recente do Mountain Lion.

Eu realmente preciso de ajuda, eu consegui danificar meu .bash_profile (eu acho) para que toda vez que abro o terminal recebo o erro listado abaixo.

-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier
-bash: export: `/Users/rob/Applications/sbt/bin:': not a valid identifier
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

Não sei o que aconteceu, não tenho sudo, cd ou nenhum comando normal. A única maneira de obter acesso a qualquer um dos diretórios principais é através do comando go to folder no finder e tentar encontrar o arquivo sem sucesso.

Para completar, acho que criei um arquivo que pode estar causando o problema. Queria editar o arquivo .bash_profile e digitei

sudo nano ./bash_profile

Isso abre um novo arquivo no nano, que eu acho que foi salvo. Depois disso, abri o .bash_profile real para adicionar o caminho para o node.js.

Se eu conseguir acessar o .bash_profile, acho que consigo recuperá-lo, mas não consigo encontrá-lo, devo reinstalar o bash? Se sim, como eu faria isso em um mac, tentei usar

brew install bash

para o qual eu chego

-bash: brew: command not found

A primeira coisa que eu tentaria é mudar para um shell diferente para poder resolver o problema: veja aqui como fazer isso support.apple.com/kb/TA27005 . Isso deve permitir que você modifique / remova o arquivo incorreto e altere o shell novamente para bash.
— Gjallar

Obrigado, tentei reinstalar o bash, mas a única coisa que mudou -bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifierfoi o desaparecimento. A única coisa com a qual estou lutando é que a primeira linha pode ser armazenada. Procurei no meu .bash_profile, .profile e .bashrc, mas nada.
— Strangeone

Ok, então eu adicionei /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/binao meu .bash_profile e parece ter corrigido o bash, mas ainda recebo esse erro -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifierAlguma idéia?
— Strangeone

Você pode tentar o seguinte: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:$PATH" # Make sure to use double quotes not single quotesE em uma nova linha export PATH.
— Gjallar

Obrigado, isso parece ter funcionado. Por favor, posso apenas perguntar por que você pensou que iria funcionar?
— Strangeone

Respostas:


12

Basta colocar todos os meus comentários juntos para obter uma resposta:

A primeira coisa que você deve fazer é alterar o shell, desta forma, você pode definir um shell que não carregará os scripts init do bash ( .bashrc, .bash_profile) - como fazer isso no aplicativo de terminal do Mac OS X pode ser visto aqui: Suporte da Apple

Agora você deve poder abrir um terminal novamente e usar seu editor de linha de comando favorito para abrir o .bash_profilearquivo (por exemplo, nanoou vi):

Neste arquivo, você deve redefinir sua PATHvariável que é usada pelo terminal para encontrar os programas que ele pode executar.

Isso pode ser feito com as duas linhas a seguir:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" # Make sure to use double quotes not single quotes And on a new line 
export PATH

Isso primeiro definirá os diretórios que você deseja ter no PATH e exportará esse PATH para disponibilizá-lo a todos os programas iniciados nesse shell (via exportação).


21

⇧⌘ mostra arquivos ocultos nas caixas de diálogo de arquivo. Você pode tentar abrir ~ / .bash_profile com o TextEdit e deixá-lo em branco temporariamente.


+1 para o teclado útil atalho Eu não sabia que :)
— Michel

nota:. .bash_profile é em você diretório home (Users / [nome de usuário] / bash_profile
— Amos

obrigado @Lri, salvou o meu dia!
— Vicky_Vignesh

4

Eu estava executando o mesmo problema e encontrei uma solução mais simples:

/usr/bin/nano .bash_profile

exclua toda a sua bagunça e salve o arquivo


Melhor resposta. Fácil e garantido para trabalhar.
— Nikk wong 17/03/19

3

Sei que esse é um tópico antigo, mas só queria deixar aqui minha solução, na esperança de que outra pessoa tenha o mesmo problema.

Quando executei o terminal no MacOS, estava tudo bem com meu próprio usuário, mas quando alterado para sudo, não funcionou (comando não encontrado).

Acabei corrigindo com:

nano ~/.bashrc

Acabou de remover o caminho que estava causando o erro. Reiniciei o terminal e tudo está funcionando bem agora.


0

Descobri recentemente que os arquivos no estilo DOS causam problemas para os dois scripts .bash * no OS-X. Eu tenho que usar as terminações de arquivos do DOS para algum código compartilhado com os usuários do Windows; portanto, se eu editar .bash_profile enquanto estiver no repositório git, recebo muitas mensagens de erro ao executar o script (no login). O utilitário dos2unix o corrigiu.


-1

Além da exibição de arquivos ocultos mencionada anteriormente e do uso de um editor de texto, também há uma maneira mais fácil de abrir um novo shell sem alterar o shell padrão. Você pode clicar com o botão Alt do aplicativo Terminal e escolher "Novo comando ...". Em seguida, digite "sh" na caixa de diálogo e execute-o. Isso abriria um shell não bash e você poderia editar o arquivo lá. No futuro, seria uma boa ideia manter um shell aberto ou testar a execução do novo .bash_profile antes de sair.

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.