Linux переключение между tty

Обновлено: 07.07.2024

В опереционных системах GNU/Linux, текстовый терминал с приглашением входа в UNIX-оболочку обычно обеспечивают первые шесть виртуальных консолей, переключится из X сессии (GUI) на которые можно комбинацией Ctrl + Alt + F1-6.

Использование виртуальных консолей в данной статье описано на примере ОС Debian Linux, но также может быть аналогичным и в иных сборках GNU/Linux (к примеру убунту, торбунту, ёбунту, ябунту, йобунту етс.).

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

Выход из текстового терминала (консоли) осуществляется комбинацией Ctrl + Alt + F7 . tty7 по сути также является виртуальным терминалом, который по умолчанию всегда выделен под графическую среду (Xorg, etc.).

Переключение между виртуальными консолями выполняется комбинацией Alt + LeftArrow или Alt + RightArrow .

Но если мы выполним:

После нажмём Ctrl + Alt + 12 , то это приведет вас к tty12 , который будет иметь экран входа и теперь может использоваться как терминал.

Контролировать число виртуальных терминалов (консолей) можно в файле /etc/inittab , где можно как добавить, так и удалить терминал. Если нужно удалить терминал, тогда просто поставьте символ комментария перед строкой запуска терминала, который нужно отключить, но только не перед первым (1). Сохраняйте как минимум один активный терминал.

Под занавес стоит упомянуть файл /etc/securetty , в котором перечислены терминальные устройства (TTY) с которых суперпользователю root разрешено входить в систему. Содержимое /etc/securetty по-умолчанию:

Если мы хотим напрочь запретить пользователю root локальный вход, тогда просто нужно очистить (не удалить!) файл /etc/securetty :

Если /etc/securetty отсутствует, тогда вход пользователю root разрешён со всех локальных терминалов, если он пуст, то запрещено соответствено включая single-user mode. По-этому, дабы иметь возможность конектиться в "single-user mode" нужно оставить tty1 (vc/1) как минимум (Linux Annoyances for Geeks: Getting the Most Flexible System in the World).

Как упоминалось ранее, работа X-ов припадает на слот tty7 , и это не изменится, даже если Вы уменьшите количество рабочих терминалов.

Раз уж зашла речь о правах входа в систему супер пользователя root, то заодно отредактируем и файл /etc/ssh/sshd_config , где строку " PermitRootLogin yes " изменим на " PermitRootLogin no ", чем запретим пользователю root удалённое подключение с помощью ssh.

/etc/login.defs - ещё один файл, на который возможно стоит обратить внимание.

Для того чтобы повысить выживаемость в консоли Debian Linux рекомендуется ознакомится с материалами по ссылкам ниже.

Рекомендуемый контент

Вы не любите рекламу!? Напрасно!:) На нашем сайте она вовсе ненавязчивая, а потому для нашего сайта можете полностью отключить AdBlock (uBlock/uBlock Origin/NoScript) и прочие блокировщики рекламы! AdBlock/uBlock может препятствовать нормальной работе системы поиска по сайту, отображению рекомендуемого контента и прочих сервисов Google. Рекомендуем полностью отключить блокировщик рекламы и скриптов, а также разрешить фреймы (aka iframe).

Привет
Проблема:
Выхожу из иксов по ctrl+alt+f1.
Открывается TTY.
Я там что-то делаю и автоматом жму Ctrl-Alt-F7.
Если я делаю именно так, то получаю систему, с которой взаимодействовать можно только с помощью ssh. Визуально при этом ничего не меняется:просто все события клавиатуры, судя по всему,перестают обрабатываться.
А если вместо Ctrl-Alt-F7 я нажму просто Alt-F7, то все хорошо.
В чем дело может быть?


Еще одна тема с вопросом без каких-либо сведений и в которой можно писать о чем угодно…


Для начала попробуй последние стабильные gentoo-sources. И да, какой у тебя видеодрайвер?

Я, к сожалению, не представляю как расписать подробней.
Есть ноутбук с встроенным intel'ом в качестве видеокарты.
Есть gentoo с ck-sources.
Если я сделаю Ctrl-Alt-F1 из сессии иксов, то попаду в tty0. Если после этого я сделаю Ctrl-Alt-F7, то изображение на экране зафризиться и дальнейшие мои действия будут игнорироваться.
Если же после этого я сделаю Alt-F7, то я переключусь обратно на иксы.
Если ты(Вы) можешь(те) подсказать, какую еще информацию я могу выложить для анализа данной проблемы, то я буду благодарен.

gentoo-sources попробую, с тем же конфигом за вычетом bfs. takino ★★★★★ ( 30.08.14 21:50:35 )
Последнее исправление: takino 30.08.14 21:53:15 (всего исправлений: 1)

Посмотри для начала keymaps:

takino ★★★★★ ( 30.08.14 21:58:08 )
Последнее исправление: takino 30.08.14 22:02:52 (всего исправлений: 2)


Есть ноутбук с встроенным intel'ом в качестве видеокарты.

Вот смотри к примеру ты задаешь вопрос "У меня болит голова. Что делать?" <-- это ни о чем потому что голова может болеть от чего угодно… Есть следствие но нет причины. Что привело к следствию? Причин может быть сколь угодно много. Дальше другой пример "Позавчера я выпил пол литра спирта залпом. Потом не помню… А вот сегодня у меня болит голова. Что делать?" а вот тут уже есть и причина и следствие. И вот это и есть правильно заданный вопрос на который можно дать ответ.

Научись правильно задавать вопросы.

В данном случае, к сожалению, я не имел понятия, что видеокарта может к этому хоть как-то относиться, до вопроса про видеокарту.
Спасибо, тем не менее, за совет. Учусь. :)


И версий там охренеть от 3.4 до 3.14… Крайне информативно.

Да обе основаны на portage но в данном случае это ровно то же самое что в одной теме в тегах указать к примеру slackware и SuSE. Не ну а хрена оно тоже когда-то было одним дистрибутивом…

И опять же тут может быть что угодно как то:

  • блоб нвидия
  • блоб ати
  • так настроен запускатор иксов
  • так настроены сами иксы
  • так настроен dm/wm

И это только самые очевидные вещи без таких как к примеру tty тупо <отключен/поломан> и в момент перехода в него иксы корячит, ломает и в результате плющит.

У всего в системе есть логи. Если у тебя по твоему что-то не так как оно должно было бы быть по идее сперва начинают с выяснения причин читая логи в поисках ошибок или просто того что укажет на баг. Ты написал ck-sources но не написал его версию. Ты ничего не сказал об оборудовании и о том какие конкретно модули оно использует. Ты не сказал что именно у тебя запускает иксы. Ты не сказал о том что там дальше в иксах… или там ничего кроме чистых иксов? Все это в системе срет тоннами логами в которых есть информация о происходящих процессах. Быть может у тебя просто ядро ууууупппс ловит от перехода в tty из иксов. И такое тоже вполне может быть. Но причины ты не указал в результате следствие известно но это симптом на который нет единичной причины вызывающей его.

Спасибо за подробный и хороший ответ.
С его помощью, я обнаружил, что DM (slim) настроен запускать X.11 на vt08. Почему такая настройка приводит к неоперабельности системы в локальном режиме после нажатия ctrl-alt-f7 (насколько я понимаю, там не запущено ничего) - я не знаю. После перенастройки slim'а на запуск иксов на vt07, проблема исчезла. (и не проявлялась при нажатии ctrl+alt+f8 соответственно).

P.s. в будущем при задавании вопросов я постараюсь следовать твоим советам, хотя и не гарантирую что буду знать, какие причины у какого поведения вообще бывают.

takino ★★★★★ ( 30.08.14 22:40:33 )
Последнее исправление: takino 30.08.14 22:41:21 (всего исправлений: 1)


в будущем при задавании вопросов я постараюсь следовать твоим советам, хотя и не гарантирую что буду знать, какие причины у какого поведения вообще бывают

Сперва вспоминай про больную голову. а потом иди по всей цепочке начиная от ядра и его настроек и используемых модулей заканчивая всем что так или иначе участвует во всей цепочке событий вплоть до самой проблемы. И учти что даже так причину можно и не заметить. Ну и логиии. Без них вообще разговаривать не о чем.

насколько я понимаю, там не запущено ничего

Мой сеанс xorg находится на tty1, и если я хочу выполнить команду из tty (потому что я не могу сделать это из сеанса xorg по некоторым причинам), я , например, нажимаю Ctrl + Alt + и набираю F2 команду. Но я не могу запускать графические приложения с любого tty, кроме первого, так как в нем нет сеанса xorg. Тогда мне интересно, как я могу переключиться на tty1, где запущена сессия xorg и вернуться к сессии?

как я могу переключиться на tty1, где запущен сеанс xorg и вернуться к сеансу?

Потому что X работает на tty1, но не на tty2. Tty - это «виртуальный терминал», то есть предполагается, что он представляет собой реальный физический экран и клавиатуру и т. Д. Терминалы включены одновременно, но поскольку у вас достаточно оборудования для взаимодействия с одним одновременно, это то, что вы получаете ,

Фактически вы можете запустить несколько сеансов X на разных ttys и переключаться между ними. Вам нужен действительный

/.Xclients первый. Если нет, для иллюстрации:

Сначала проверьте, что mwm существует, попробовав это из командной строки. Пока это не говорит "команда не найдена", вы хороши. Теперь от tty2 попробуй startx .

Если менеджер дисплеев не выполняет что-то тоталитарное, вы должны получить простое черное окно с большим X курсором мыши. Левое нажатие должно дать грубое меню, из которого вы теперь можете выйти. но перед этим Ctrl Alt F1 вы попадете на другой сеанс X на tty1 (и F2 вернет вас и т. д.).

Что делать, если я хочу сделать это с терминала ssh? Делать startx это невозможно с ssh-терминала, не так ли? Мне нужно, чтобы терминал ssh находился в одном сеансе с существующим / запущенным tty.

Вы можете переключить tty, как вы описали, нажав:

  • Ctrl + Alt + F1 : (tty1 x здесь на Ubuntu 18.04+)
  • Ctrl + Alt + F2 : (tty2)
  • Ctrl + Alt + F3 : (tty3)
  • Ctrl + Alt + F4 : (tty4)
  • Ctrl + Alt + F5 : (tty5)
  • Ctrl + Alt + F6 : (tty6)
  • Ctrl + Alt + F7 : (tty7 x здесь при использовании Ubuntu 14/16)

Вы также можете использовать Alt + Left/Right

В качестве альтернативы вы можете использовать chvt команду - например, sudo chvt 1 чтобы переключиться на TTY1 и sudo chvt 7 снова переключиться на сеанс X. Смотрите здесь для более подробной информации.

Все новички Linux уже, наверное, слышали про терминал, или как его еще называют командную строку. Ведь присутствие и сложность терминала - это один из основных аргументов оппонентов Linux. Возможно, вы уже сталкивались с командной строкой в Windows на практике и уже знаете что это такое.

Действительно, в операционной системе Linux есть терминал, где вы можете выполнять нужные вам команды, чтобы очень эффективно управлять своей системой. Но это вовсе не обязательно, многим вполне достаточно графического интерфейса. Сейчас использование терминала отошло на второй план, но он остается основным средством для доступа к удаленным серверам и инструментом для профессионалов.

Терминал Linux намного интереснее, чем командная строка Windows и в этой статье будет подробно рассмотрена работа в терминале Linux для начинающих, а также что такое терминал Linux и собственно, что он из себя представляет.

Что такое терминал Linux?

Применение терминала началось очень давно. Еще до того как была создана DOS и не существовало никакого графического интерфейса. В далеких восьмидесятых годах операционная система Unix только начинала развиваться. Пользователям нужно каким-то образом взаимодействовать с системой и самый простой способ - это использование команд. Вы вводите команду, система вам возвращает ответ.

С тех пор, такой способ ввода использовался во многих системах, в том числе DOS и OS/2 от Apple, пока не был придуман графический интерфейс. Затем текстовый режим терминала был успешно вытеснен, но его до сих пор продолжают использовать там, где это нужно.

Выше, под терминалом мы понимали то место, где можно вводить команды и получать на них ответ от компьютера. Это может быть текстовый режим Linux или же открытое в графическом режиме окно терминала. В Linux часто встречаются слова: консоль, терминал, командная строка, командная оболочка, tty, эмулятор терминала. Все они относятся к терминалу, но означают немного разные вещи. Перед тем как перейти дальше давайте разберемся с терминами, чтобы называть все своими именами.

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

Консоль - это физическое оборудование для управления сервером. Когда к серверу нет доступа из сети, для управления им можно использовать только консоль.

Эмулятор терминала - это графическая программа, которая предоставляет вам доступ к tty или pts терминалу. Например, Gnome Terminal, Konsole, Terminix, Xterm и многие другие.

Командная оболочка - устройство tty занимается только передачей и приемом данных, но все эти данные должен еще кто-то обрабатывать, выполнять команды, интерпретировать их синтаксис. Командных оболочек достаточно много, это bash, sh, zsh, ksh и другие, но чаще всего применяется Bash.

Ну и командная строка - это то место куда вы будете вводить свои команды, приглашение терминала для ввода.

Теперь, когда мы разобрались что такое терминал Linux и знаем все основные принципы, перейдем к практике работы с ним.

Как открыть терминал Linux?

Есть несколько способов получить доступ к терминалу. Ваша система инициализации по умолчанию создает 12 виртуальных терминалов. В одном из них - обычно седьмом, запущена ваша графическая оболочка, но все другие могут быть свободно использованы. Для переключения между терминалами можно использовать сочетания Ctrl+Alt+F1-F12. Для авторизации нужно будет ввести логин и пароль.

Это текстовые терминалы без графического интерфейса, в них может быть не совсем удобно работать, но, зато такие терминалы будут полезны, если графический интерфейс не работает.

Второй способ позволяет открыть виртуальный терминал прямо в графическом интерфейсе с помощью эмулятора терминала. Эмулятор терминала linux работает с файлами в каталоге /dev/pts/* и еще называется псевдотерминалом, потому что не использует tty.

В Ubuntu вы можете запустить терминал linux нажав сочетание клавиш Ctrl+Alt+T:

terminal

Также его можно найти в меню приложений Dash:

terminal1

Как видите, открыть командную строку в linux очень просто.

Выполнение команд в терминале

Рассмотрим более подробно терминал Linux для начинающих. Как я уже говорил, терминал и файлы устройств tty отвечают только за передачу данных. За обработку команд отвечает командная оболочка, которой и передаются полученные от пользователя данные.

Вы можете набрать что-либо и убедиться, что это работает:

terminal2

Чтобы выполнить команду достаточно написать ее и нажать Enter.

terminal3

Более того, командная оболочка Bash поддерживает автодополнение, поэтому вы можете написать половину команды, нажать TAB и если на такие символы начинается только одна команда, то она будет автоматически дополнена, если же нет, то вы можете нажать два раза TAB, чтобы посмотреть возможные варианты.

terminal4

Точно такая же схема работает для путей к файлам и параметров команд:

terminal5

terminal6

В Windows вы о таком и мечтать не могли. Чтобы выполнить команду можно указать имя ее исполняемого файла или полный путь к нему, относительно корневой или любой другой папки. Важно заметить, что командная оболочка Linux, в отличие от Windows, чувствительна к регистру, а поэтому будьте внимательны при вводе команд и их параметров.

terminal7

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

Экземпляр запущенной команды называется процесс. Когда в терминале Linux выполняется одна команда нам нужно подождать ее завершения, чтобы выполнить следующую.

Команды могут выполняться без параметров, что мы видели выше, или же с параметрами, которые позволяют указать данные, с которыми будет работать программа, также есть опции, с помощью которых можно настроить поведение. Большинство стандартных утилит придерживаются такого синтаксиса:

$ команда опции параметр1 параметр2.

Опции часто необязательны и уточняют тот или иной аспект работы программы. Они записываются в форме черточка и символ или двойная черточка и слово. Например -o или --output. Приведем пример для команды ls. Без опций и параметров:

terminal8

С параметром, указывающим какую папку посмотреть:

terminal9

С опцией -l, вывести в виде списка:

terminal10

В с опцией и параметром:

terminal10

Можно комбинировать две опции:

terminal11

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

Выводы

В этой статье была рассмотрена работа в терминале linux для начинающих. Командная строка Linux может показаться сначала очень сложной, но это совсем не так, она намного проще в использовании чем в Windows и позволяет управлять системой более эффективно. Надеюсь, эта статья пролила немного света на эту очень большую тему.

Читайте также: