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

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

Вы хотите, чтобы уровень запуска выполнялся 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 

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

Дополнительную информацию см. На странице Википедии на уровне запуска.

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

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

Обновить

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

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

 su - Password: 

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

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

 id:5:initdefault: 

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

Обновление для 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 = Интерфейс командной строки = режим командной строки

Помимо изменения /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 (необходимость в этом обычно удаляется с помощью диспетчера отображения).

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

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

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

 sudo apt-get remove --purge plymouth 

Измените свой grub.cfg:

 sudo vim /boot/grub/grub.cfg 

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

 sudo update-initramfs -u 

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

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

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

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

Может быть, это довольно старая нить. В системе, использующей systemd , / etc / 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 

использование

 systemctl set-default multi-user.target 

и перезагрузите виртуальную машину. VM войдет в режим CLI.