Как загрузить Linux в режим командной строки вместо графического интерфейса?


26

Я использую 32-битную Red Hat Linux в своей виртуальной машине. Я хочу загрузить его в режиме командной строки, а не в режиме графического интерфейса. Я знаю, что оттуда я могу переключиться в режим графического интерфейса с помощью startxкоманды. Как мне вернуться в режим командной строки?

Ответы:


23

Обновление: ответ ниже устарел

Для многих дистрибутивов по умолчанию системный, а не системный. Ответ ниже был написан с sysvinit в виду. Более актуальный ответ (и тот, который вы должны использовать, если у вас есть systemd в качестве системы инициализации) - это ответ голема .

Ответ sysvinit (устарел на большинстве современных дистрибутивов):

Вы хотите сделать уровень запуска 3 вашим уровнем запуска по умолчанию. Из терминала переключитесь на root и сделайте следующее:

[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

Все, что после (и включая) второй #в каждой строке, является комментарием для вас, вам не нужно вводить его в терминал.

См. Страницу Wikipedia по уровням выполнения для получения дополнительной информации.

Объяснение sedкоманды

  • Команда sedявляется редактором потоков (отсюда и название), вы используете ее для управления потоками данных, обычно с помощью регулярных выражений .
  • Здесь мы говорим sedзаменить шаблон id:5:initdefault:на шаблон id:3:initdefault:в файле /etc/inittab, который является файлом, управляющим вашими уровнями выполнения. Общий синтаксис для sedпоиска и замены является s/pattern/replacement_pattern/.
  • -iОпция указывает sedприменить изменения на месте. Если бы этого не sedбыло, файл выводился бы (после замены) на терминал (в более общем случае на стандартный вывод).

Обновить

Чтобы вернуться в текстовый режим, просто нажмите CTRL+ ALT+ F1. Это не остановит ваш графический сеанс, а просто переключит вас обратно на терминал, в котором вы вошли. Вы можете вернуться к графическому сеансу с помощью CTRL+ ALT+ F7.


Спасибо за ответ. Кроме того, когда я переключаюсь в графический интерфейс, используя startxкак я могу переключиться обратно в командную строку?
Не беспокойся, дитя,

1
@ 0xF1 Добавлено объяснение sedкоманды.
Джозеф Р.

1
Я бы вообще не советовал использовать sedфайлы конфигурации, если вы точно не знаете, что делаете. Эта строка может быть также комментарием, но все же будет изменена. Следовательно, регулярное выражение должно быть более точным, по крайней мере, требуется, чтобы строка id:...находилась в начале строки. Поскольку на странице руководства ничего не говорится о том, как обрабатываются пробелы, вы, вероятно, захотите использовать s/^ *id:5:initdefault:( Tabкстати, не включая символы).
Петер

1
Этот ответ больше не действителен, по крайней мере, в моей текущей ОС. Посмотрите на ответ @ golem ниже. Это сработало для меня. Я использую Fedora 27.
Ланс

1
@ Ланс Очень хорошая мысль. Спасибо за уведомление. Я обновил свой ответ, чтобы отразить это.
Джозеф Р.

25

Обновление для RedHat / CentOS 7, которое переключилось с sysvinit на systemd.

Чтобы переключиться с GUI на CLI: systemctl isolate multi-user.target

Чтобы переключиться с CLI на GUI: systemctl isolate graphical.target

Для того, чтобы установить CLI по умолчанию уровень запуска ( цели в Systemd терминологии): systemctl set-default multi-user.target. Аналогично для GUI:systemctl set-default graphical.target

* CLI = интерфейс командной строки = режим командной строки



2
Спасибо. Каждый форум по-прежнему сбрасывает старые знания о / etc / inittab, хотя и устарел.
Шашанк Вьяс

11

Сначала переключите пользователя на root.

su -
Password:

Введите пароль пользователя root.

Используйте ваш любимый редактор, чтобы изменить эту строку в /etc/inittab:

id:5:initdefault:

Измените 5 на 3. Когда вы (пере) загрузите компьютер, вы попадете в командную строку, а не в графический интерфейс.


Пожалуйста, включите инструкции о том, как OP должен делать это как root и в какой файл. Этот ответ в его нынешнем виде не подходит для тех, кто плохо знаком с Linux.
Джозеф Р.

1
Спасибо, что указали на мой недосмотр. Я отредактировал ответ соответственно.
Тимоти Мартин

Означает ли это, что графический интерфейс не запущен или он скрыт?
Аарон Франке

@AaronFranke Для систем Redhat на уровне выполнения 3 графический интерфейс не включен (или отключен в случае, если система была переключена с уровня запуска 5 на 3 без перезагрузки).
Тимоти Мартин

3

Помимо изменения /etc/inittab, вы также можете указать ядру в его командной строке, какой целевой уровень запуска должен быть передан initпосле запуска. Это делается простым добавлением желаемого уровня выполнения в командную строку (это должен быть последний аргумент, который я считаю).

Вы можете сделать это либо как разовую вещь во время загрузки, при условии, что ваш загрузчик позволяет вам изменить командную строку ядра, либо вы можете дублировать запись в конфигурации загрузчика и выбрать правильную при загрузке (полезно, когда вы загружаетесь в различные уровень запуска часто).

Для систем использование systemdпроцесса аналогично, но означает больше ввода, поскольку магическая строка, добавляемая к командной строке ядра, имеет вид systemd.unit=desired.target.

Что касается startx, он также может начать дополнительные сеансы, присвоив ему неиспользуемый номер X-дисплея (нумерация начинается с 0): startx -- :1запустит X-сервер на дисплее: 1, найдя его на первом неиспользуемом VT (часто на VT8, поскольку первые 6 обычно на Linux консоли и 7 используется первым запущенным сеансом X). Обратите внимание, что X-серверу обычно требуются права суперпользователя, поэтому вы должны либо сделать это как root(что не очень хорошая идея), либо двоичный файл должен быть установлен как root root (необходимость в этом обычно устраняется с помощью диспетчера отображения).


+1 Отличный ответ. Не очень дружелюбный новичок, все же.
Джозеф Р.

Да, изменение inittabимеет гораздо больший смысл, так как обычно хочется постоянно приводить систему в одно и то же состояние.
Петер

2

Кстати, если вы уже загрузились в графическом режиме и хотели бы перейти в текстовый режим, вы можете просто нажать Ctrl+ Alt+ F1и снова вернуться в графический режим с помощью Ctrl+ Alt+ F7.

В Linux по умолчанию установлено 6 текстовых терминалов и 1 графический терминал. Вы можете переключаться между этими терминалами, нажимая Ctrl+ Alt+ Fn. Заменить nна 1-7. F7переведет вас в графический режим, только если он загрузится до уровня запуска 5 или вы запустили X с помощью startxкоманды; в противном случае он просто покажет пустой экран F7.


показать эту работу в RHEL 7?
javapowered

1

Даже будучи довольно старой темой, может быть полезным. На системе не используя systemd, / и т.д. / inittab больше не используется. Метод довольно прост:

Терминальный режим

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

Графический режим

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

0

После замены уровня запуска по умолчанию id:3:initdefault:в /etc/inittabлюбом текстовой редакторе (как ранее сказано), что очень важно проверить , если есть какая - то Плимут (заставка) , установленное в вашей системе. В этом случае вам нужно будет удалить его установку или просто удалить ключевое слово splash из /boot/grub/grub.cfg, используя предпочитаемый вами текстовый редактор (vim, pico или другие). Чтобы удалить Плимут:

sudo apt-get remove --purge plymouth

Отредактируйте ваш grub.cfg:

sudo vim /boot/grub/grub.cfg

Наконец, обновите конфигурацию grub:

sudo update-initramfs -u

В следующей загрузке у вас будет просто экран входа в текстовом режиме. Вот и все.

Наслаждайтесь Linux box!


-1

Установка oracle-linux 7 по умолчанию требует минимального варианта установки. Вы должны изменить его на установку с режимом GUI во время установки. Это решило мою проблему с невозможностью использовать графический режим пользователя.


Кажется, у вас есть запрос OP в обратном направлении. Похоже, OP пытается добраться до CLI, а не GUI.
HalosGhost

-1

Я пробовал systemctl, update-rc.d и даже редактировал конфигурацию GRUB, но ничего не получалось. Затем я закомментировал менеджер дисплея по умолчанию в / etc / X11 / default-display-manager, перезагрузил компьютер и наконец: терминал !!!! Это так просто!


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.