Retornos de terminal não encontrados para a maioria dos comandos Mac OSX

16

Eu sou realmente novo em sistemas baseados em Mac OSX e UNIX. Como eu queria rodar alguns jogos do Windows no meu Mac Mini, comecei a instalar o Wine e o MacPorts.

Feito isso, digitei sudo port install winee o terminal retornou um erro não encontrado. Tentei outros comandos básicos como saye cleare todos eles retornar o erro não foi encontrado. Eu pesquisei isso no Google e tudo o que entendi até agora é que o PATH pode estar definido incorretamente. Então eu executei este comando: echo $PATHe ele retornou isso:

/ opt / local / bin: / opt / local / sbin: / opt / local / bin: / opt / local / sbin: / opt / local / bin

Alguém pode me dizer como definir esse caminho corretamente? Eu sou um novato no Mac e não tenho ideia de onde .bash_profile ou qualquer um desses arquivos está. Se ajudar, também instalei o Xcode e as ferramentas de linha de comando do Xcode. Estou executando o Mountain Lion.

Jack Copeland
fonte
3
Infelizmente, acho que você precisa de um tutorial sobre Unix, pois, embora possamos responder à pergunta, provavelmente não podemos fornecer antecedentes suficientes para ajudá-lo a entendê-lo. Quanto ao Wine, o mais fácil é tentar o Crossover (custos) ou o Wineskin (gratuito), que não requer uso de terminal
user151019

Respostas:

12

$ PATH deve conter essas pastas: /usr/bin:/usr/sbin:/bin:/sbin.

Tente editar ~/.bash_profile, ~/.profileou ~/.bash_login(com por exemplo /usr/bin/open ~/.bash_profile -a TextEdit) e comentar as linhas que modificam o caminho.

Se isso funcionar, você pode adicionar uma linha como export PATH=/opt/local/bin:/opt/local/sbin:$PATHa ~/.bash_profile.

Lri
fonte
Eu tentei exportar PATH = / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin e funciona, mas quando eu fecho e reabra o terminal, ele volta ao mesmo erro novamente. Eu sou um noob completo e não tenho ideia de onde ~ / .bash_profile ou qualquer um desses arquivos está localizado. Estou assumindo que eles estão escondidos?
Jack Copeland
~/é a pasta inicial ( /Users/username/). Os arquivos que começam com um ponto estão ocultos, mas você pode mostrá-los com, por exemplo ls -la.
Lri 22/02
minha .bash_profile contém todos estes já, mas ainda tenho o mesmo problema com comandos como ng ou mssql quando eu emiti-las a partir do terminal
dbnex14
3

Problema semelhante estava acontecendo comigo, então o que eu fiz foi:

1) digitando export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"no terminal para fazê-lo funcionar temporariamente

2) Editando bash_profile digitando /usr/bin/open ~/.bash_profile -a TextEdit

3) Quando abri meu arquivo bash_profile, percebi que a última linha de exportação parecia muito confusa com alguns símbolos estranhos, então mudei-o inteiramente para export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Sou absolutamente iniciante nisso, mas consegui obter essas etapas lendo peças de soluções de diferentes perguntas sobre SE, por isso espero que possa ajudar outra pessoa.

Paula Hasstenteufel
fonte
2

Parece que você substituiu seu caminho em vez de apenas adicioná-lo.

Certifique-se de que, ao definir seu PATH, inclua "${PATH}"também o caminho existente.

Por padrão, o $ PATH é definido em alguns arquivos. Tecnicamente, você deve adicionar ao seu $ PATH no arquivo .bash_profile no seu diretório pessoal.

Uma sugestão para verificar se existe uma determinada pasta antes de adicioná-las ao seu PATH.

Por exemplo, eu tenho:

if [ -d /usr/local/bin ] ; then
    PATH=/usr/local/bin:"${PATH}"
fi

if [ -d /usr/local/mysql/bin ] ; then
    PATH=/usr/local/mysql/bin:"${PATH}"
fi

if [ -d /opt/local/bin ] ; then
    PATH=/opt/local/bin:"${PATH}"
fi

if [ -d /opt/local/sbin ] ; then
    PATH=/opt/local/sbin:"${PATH}"
fi

if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

(O -d directorycomando verifica se o diretório existe)

sdmeyers
fonte
1

Para mim, entrei nesse problema exato quando tentei adicionar um novo diretório ao PATH usando um comando de exportação incorreto no meu ~/.bash_profile. Ambos os exemplos abaixo.

export PATH=/some/new/path:PATH (incorrect, note missing $)

vs

export PATH=/some/new/path:$PATH (correct)
rd2
fonte
0

Além da correção que ela responde, também gostaria de mencionar uma coisa a ser testada.

Se sua janela atual simplesmente tiver uma variável PATH inválida e seu sistema não estiver mais danificado, você poderá corrigir o caminho facilmente:

echo $PATH
/usr/libexec/path_helper

Compare a saída dos dois comandos acima. Se você deseja retornar a um caminho "seguro", basta copiar e colar a linha que ela path_helperfornece nesse terminal. Em um sistema Mac 10.11 não modificado, você deve ter esta saída da ferramenta auxiliar:

PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;

Se seu caminho precisar ser personalizado, procure também as excelentes respostas nesta pergunta.

bmike
fonte
1
Ou você pode emitir PATH=$(/usr/bin/getconf PATH)para obter um PATH utilizável no shell atual. /usr/localnão existe em um sistema não modificado.
fd0
Excelente @fdo - não sei o que pode atrapalhar o getconf, de modo que pode ser tão bom quanto as coisas codificadas. Também é mais curto que minha correção de "força bruta".
bmike
path_helperconstrói o caminho da PATH atual, o /etc/pathsarquivo e todos os arquivos dentro /etc/paths.d. Também pode ser influenciado por quaisquer configurações do PATH no Windows /etc/launchd.conf. getconfimprime o PATH do sistema codificado no kernel- sysctl user.cs_path.
Fd0 /
0

O ./bash_profile do seu terminal pode ter sido substituído.

Use export PATH=/usr/bin:/bin:/usr/sbin:/sbin/usr/local/binno terminal para reescrever temporariamente as configurações atuais do PATH. Isso deve lhe dar acesso sudoe ao nanoqual você usará nano .bash_profile. Para mim, excluir tudo no arquivo funcionou.

Nugenrules
fonte