Por que meu terminal bash não reconhece nenhum comando no shell? [fechadas]

2

Após a solicitação de alguns usuários, decidi adicionar todas as etapas e resultados intermediários ao meu post inicial para que os usuários pudessem me orientar melhor em uma solução. Isso é adicionado sob o título Additions abaixo da pergunta. Abaixo de Adições, há uma seção chamada "resolução", onde adicionei etapas extras que tomei para resolver esse problema:

Pergunta:

Hoje, enquanto eu estava tentando continuar executando meus códigos no shell da linha de comando, notei que nenhum dos comandos são realmente reconhecidos pelo shell no Fedora 21 (kernel 4.1.13-100.fc21.i686 em um i686 (tty2)). Eu pensei que se eu reiniciar e reiniciar o sistema, o problema deve resolver. No entanto, para minha surpresa, notei que o sistema não está iniciando após o login. Eu tentei fazer diagnósticos pressionando CTRL + ALT + F2 quando a tela fica preta para ver onde ela realmente pára de funcionar. A última linha que eu vi uma parada completa estava dizendo:

wait for plymouth boot screen to quit

Você se importaria de me informar como consertar esse problema quando, na verdade, nenhum comando for aceito no modo de diagnóstico no shell, dizendo o seguinte?

-bash: <...>: command not found

A única coisa em que consigo pensar é em alguma atualização automática possível que eu não conhecia ou mexia no meu .bashrc (que não consigo mais ver dentro dele usando o seguinte comando:)

sudo gedit ~/.bashrc

Adições:

Eu consegui fazer o login no meu sistema somente depois de entrar no modo de diagnóstico pressionando Ctrl+Alt+F2 logo após reiniciar e entrar na inicialização principal que falha em condições normais.

Fedora release 21 (Twenty One)
Kernel 4.1.13-100.fc21.i686+PAEdebug on an i686 (tty2)

Neste modo, o prompt de login aparece

localhost login:

Depois de digitar meu nome de usuário, ele diz:

Password:

Depois de inserir minha senha, ela diz:

Last login: Wed Mar 30 15:33:54 on tty2

[bbenjamin@localhost ~]$

É aqui que nenhum dos comandos é reconhecido pelo shell, não importa o quê. E a mensagem de erro é geralmente:

-bash: <...>: command not found

em que < ... > é basicamente qualquer comando. A única vez que obtive êxito na obtenção da maioria dos comandos foi percebida pelo shell quando executei o seguinte código (conforme mencionado na resposta):

PATH=/usr/bin:/usr/sbin

Depois disso, pelo menos, eu poderia procurar e ver meus arquivos e pastas e programas (já que a maioria dos comandos está se realizando.)

No entanto, eu ainda preciso logar normalmente para que eu possa fazer uso de todos os gráficos e outros recursos do Fedora, o que é impossível no modo de diagnóstico. Para tornar isso possível, em particular, preciso abrir meu arquivo .bashrc e corrigir seus problemas permanentemente (supondo que eu possa ter acesso à sua versão original de alguma forma). Para fazer isso, preciso executar comandos como

(sudo) gedit ~/.bashrc

No entanto, estou recebendo mensagens de erro como:

Unable to init server: Could not connect: Connection refused

(gedit:1397): Gtk-WARNING **:cannot open display:

ou executando comandos como este:

~/.bash_profile

que produziria uma mensagem de erro:

bash: /home/bbenjamin/.bash_profile: Permission denied.

Agora, aprendendo com a resposta, não devo executar este último comando, pois ele não é executável. E, em vez disso, devo executá-lo no seguinte formato:

source ~/.bashrc

Depois disso, não sei como proceder.

No entanto, não sei porque o comando anterior (sudo) gedit ~/.bashrc também não está funcionando. Lembro-me de que costumava fazer pequenas alterações no arquivo .bashrc, dependendo da minha necessidade. Desta vez não sei como fiz alterações que causaram todos os problemas explicados aqui. Então agora, minha pergunta é se existe um método baseado em linha de comando que eu possa abrir o .bashrc e olhar dentro dele e fazer as mudanças necessárias permanentemente para que meus logins de sistema me levem apropriadamente ao seu modo gráfico normal onde Eu vejo e utilizo todos os recursos do Fedora.

Resolução

Eu aprendi que uma vez que eu estou no modo diagnóstico através do comando Ctrl+Alt+F2 logo após o login mal sucedido, eu posso temporariamente consertar o arquivo confuso .bashrc rodando o comando PATH=/usr/bin:/usr/sbin . Então eu poderia dar uma olhada dentro do meu arquivo .bahsrc através da linha de comando cat .bashrc . Foi só então que vi o conteúdo do arquivo no qual eu tinha vários caminhos adicionados ao arquivo. Como eu mantive um registro dos meus arquivos adicionados na parte inferior dos caminhos anteriores em uma ordem cronológica, eu sabia que o caminho problemático era o último. Agora, para corrigir o problema, eu tive que modificar o arquivo. Isto foi conseguido através da linha de comando nano .bashrc , após o que uma nova página apareceu, na qual eu tive a chance de comentar a linha problemática adicionando # na frente dela. No final, salvei minhas alterações e saí. O último passo que tive que fazer foi reiniciar o sistema com seu novo arquivo .bashrc modificado através da linha de comando telinit 6 , após o qual o registro provou ser bem-sucedido.

    
por Benjamin 30.03.2016 / 22:12

1 resposta

4

Parece que você colocou algo em ~/.bashrc , o que está fazendo com que PATH seja definido de forma que não inclua /usr/bin , que é o local onde a maioria dos programas realmente está. Se você executar isto:

PATH=/usr/bin:/usr/sbin

a maioria dos comandos deve começar a funcionar - e então você pode editar ~/.bashrc e consertar o que estiver redefinindo PATH lá. (E, na verdade - você deseja definir PATH em ~/.bash_profile em vez de ~/.bashrc - consulte Como adicionar corretamente um caminho ao PATH? )

(Note, a propósito, que nenhuma atualização do Fedora iria mexer com isso, já que as atualizações não alteram arquivos em seu diretório pessoal. Às vezes, quando você executa um software atualizado, o software pode atualizar seus próprios arquivos de configuração, mas isso não faz t aplicar a ~ / .bashrc.)

Na sua edição: o editor de texto gedit só funciona no modo gráfico. No modo de texto, você precisará de um editor baseado em texto. O mais fácil é provavelmente nano . Instale-o com

dnf install nano

e, em seguida, use nano se gedit . As funções de edição atuais serão um pouco diferentes, mas são bem simples.

    
por 30.03.2016 / 23:39