Como inicializar o Linux para o modo de linha de comando em vez da GUI?


26

Estou usando o Red Hat Linux de 32 bits na minha VM. Quero inicializá-lo no modo de linha de comando, não no modo GUI. Eu sei que a partir daí eu posso mudar para o modo GUI usando o startxcomando Como faço para voltar ao modo de linha de comando?

Respostas:


23

Atualização: a resposta abaixo agora está obsoleta

Para muitas distribuições agora, o padrão é systemd, em vez de sysvinit. A resposta abaixo foi escrita com o sysvinit em mente. A resposta mais atualizada (e a que você deve usar se tiver o systemd como seu sistema init) é a resposta do golem .

resposta sysvinit (obsoleta na maioria das distribuições atuais):

Você deseja tornar o nível de execução 3 o nível de execução padrão. Em um terminal, mude para root e faça o seguinte:

[user@host]$ su
Password:
[root@host]# cp /etc/inittab /etc/inittab.bak #Make a backup copy of /etc/inittab
[root@host]# sed -i 's/id:5:initdefault:/id:3:initdefault:/' /etc/inittab #Make runlevel 3 your default runlevel

Qualquer coisa após (e incluindo) o segundo #em cada linha é um comentário para você, não é necessário digitá-lo no terminal.

Veja a página da Wikipedia sobre níveis de execução para obter mais informações.

Explicação do sedcomando

  • O sedcomando é um editor de fluxo (daí o nome), você o utiliza para manipular fluxos de dados, geralmente através de expressões regulares .
  • Aqui, estamos dizendo sedpara substituir o padrão id:5:initdefault:pelo padrão id:3:initdefault:do arquivo /etc/inittab, que é o arquivo que controla os níveis de execução. A sintaxe geral para uma sedpesquisa e substituição é s/pattern/replacement_pattern/.
  • A -iopção informa sedpara aplicar as modificações no local. Se isso não estivesse presente, sedteria gerado o arquivo resultante (após a substituição) para o terminal (mais geralmente para a saída padrão).

Atualizar

Para voltar ao modo texto, basta pressionar CTRL+ ALT+ F1. Isso não interromperá sua sessão gráfica, simplesmente retornará ao terminal em que você se conectou. Você pode voltar para a sessão gráfica com CTRL+ ALT+ F7.


Obrigado pela resposta. Além disso, quando alterno para a GUI usando startxcomo posso voltar à linha de comando?
Não se preocupe, criança

11
@ 0xF1 Adicionada uma explicação para o sedcomando.
Joseph R.

11
Eu geralmente desaconselho o uso sedem arquivos de configuração, a menos que você saiba exatamente o que está fazendo. A linha em questão também pode ser um comentário e ainda assim seria alterada. Portanto, a expressão regular deve ser mais precisa, pelo menos exigir que a string id:...esteja no início da linha. Como a página de manual não diz nada sobre como os espaços em branco são tratados, você provavelmente deseja usar s/^ *id:5:initdefault:(que não inclui Tabcaracteres, a propósito).
Peterph

11
Esta resposta não é mais válida, pelo menos no meu SO atual. Dê uma olhada na resposta do @ golem abaixo. Isso funcionou para mim. Estou usando o fedora 27.
Lance

11
@ Lance Muito bom ponto. Obrigado pelo aviso. Atualizei minha resposta para refletir isso.
Joseph R.

25

Atualização para RedHat / CentOS 7 que mudou de sysvinit para systemd.

Para alternar da GUI para a CLI: systemctl isolate multi-user.target

Para alternar da CLI para a GUI: systemctl isolate graphical.target

Para definir o CLI como um padrão de nível de execução ( alvo na terminologia systemd): systemctl set-default multi-user.target. Analogamente para GUI:systemctl set-default graphical.target

* CLI = Interface da Linha de Comandos = Modo da Linha de Comandos



2
Obrigado .. Todo fórum ainda está despejando o conhecimento antigo sobre o / etc / inittab, embora seja obsoleto.
Shashank Vyas

11

Primeiro mude o usuário para o root.

su -
Password:

Digite a senha root.

Use seu editor favorito para modificar esta linha /etc/inittab:

id:5:initdefault:

Altere 5 para 3. Quando você (re) inicializa o computador, ele o leva para a linha de comando e não para a GUI.


Inclua instruções sobre como o OP deve fazer isso como raiz e para qual arquivo. Esta resposta, como está, não é adequada para ajudar alguém que é novo no Linux.
13133 Joseph R.

11
Obrigado por apontar minha supervisão. Eu editei a resposta de acordo.
Timothy Martin

Isso significa que a GUI não está em execução ou está oculta?
Aaron Franke

@AaronFranke Para sistemas Redhat no nível de execução 3, a GUI não está ativada (ou desativada no caso de um sistema que foi alternado do nível de execução 5 para 3 sem reinicialização).
Timothy Martin

3

Além de mudar /etc/inittab, você também pode dizer ao kernel em sua linha de comando para qual nível de execução de destino deve ser passado inituma vez iniciado. Isso é feito simplesmente anexando o nível de execução desejado à linha de comando (deve ser o último argumento que acredito).

Você pode fazer isso como algo único durante a inicialização, desde que o carregador de inicialização permita alterar a linha de comando do kernel, ou você pode duplicar a entrada na configuração do carregador de inicialização e escolher a correta ao inicializar (útil quando você inicializa em vários níveis de execução frequentemente).

Para sistemas que usam systemdo processo, é semelhante, mas significa mais digitação, já que a string mágica anexada à linha de comando do kernel está na forma de systemd.unit=desired.target.

Quanto a startxisso, ele também pode iniciar sessões adicionais, fornecendo a ele um número de exibição X não utilizado (a numeração começa em 0): startx -- :1iniciará o servidor X na exibição: 1, localizando-o na primeira VT não utilizada (geralmente VT8, pois os 6 primeiros são geralmente Linux consoles e 7 é usado pela primeira sessão X em execução). Observe que o servidor X geralmente precisa de privilégios de root; portanto, você deve fazer isso como root(o que não é uma boa ideia) ou o binário deve ser configurado como root (a necessidade disso é normalmente removida usando um gerenciador de exibição).


+1 ótima resposta. Não é muito amigável para iniciantes, no entanto.
Joseph R.

Sim, mudar inittabfaz muito mais sentido, pois geralmente se quer trazer o sistema para o mesmo estado o tempo todo.
Peterph

2

Em uma nota lateral, se você já inicializou no modo gráfico e gostaria de mudar para o modo de texto, basta pressionar Ctrl+ Alt+ F1e voltar ao modo gráfico por Ctrl+ Alt+ F7.

O Linux possui, por padrão, 6 terminais de texto e 1 terminal gráfico. Você pode alternar entre esses terminais pressionando Ctrl+ Alt+ Fn. Substitua npor 1-7. F7levaria você ao modo gráfico apenas se inicializado no nível 5 de execução ou se você iniciou o X usando o startxcomando; caso contrário, apenas mostrará uma tela em branco F7.


mostrar este trabalho no RHEL 7?
usar o seguinte código

1

Mesmo sendo um tópico bastante antigo, pode ser útil. No sistema que usa systemd, / etc / inittab não está mais em uso. O método é bastante simples:

Modo terminal

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Modo Gráfico

ln -sf /lib/systemd/system/graphical.target  /etc/systemd/system/default.target

0

Depois de substituir o nível de execução padrão para id:3:initdefault: nos /etc/inittabusando seu editor de texto preferido (como dito anteriormente), é muito importante verificar se há alguma Plymouth (tela inicial) instalado em seu sistema. Nesse caso, será necessário remover a instalação ou remover a palavra-chave splash de /boot/grub/grub.cfg usando o seu editor de texto preferido (vim, pico ou outros). Para remover o plymouth:

sudo apt-get remove --purge plymouth

Edite seu grub.cfg:

sudo vim /boot/grub/grub.cfg

Por fim, atualize a configuração do grub:

sudo update-initramfs -u

Na próxima inicialização, você terá apenas a tela de login no modo de texto. É isso aí.

Aproveite a caixa do Linux!


-1

A instalação do oracle-linux 7 por padrão requer a opção de instalação mínima. Você deve alterá-lo para instalação com o modo GUI no momento da instalação. Isso resolveu meu problema ao não conseguir usar o modo de usuário gráfico.


Parece que você tem a solicitação do OP de trás para a frente. O OP parece estar lutando para chegar à CLI, não à GUI.
HalosGhost

-1

Eu tentei systemctl, update-rc.d e até mesmo editando a configuração do GRUB, mas nada funcionou. Então eu comentei o gerenciador de exibição padrão em / etc / X11 / default-display-manager, reiniciei e finalmente: o terminal !!!! É simples assim!


-1

Usar

systemctl set-default multi-user.target

e reinicie a VM. A VM entrará no modo CLI.

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.