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.