Как разбить файл на части в Linux
В этом руководстве объясняется, как легко разбить файлы на части в Linux по размеру, нескольким файлам, содержимому и другим параметрам. Прочитав эту статью, вы узнаете, как разделить файлы с помощью команд split и csplit, а также как чтобы объединить или соединить части файла обратно.
Как разделить файлы по размеру в Linux:
В качестве первого примера этого руководства я буду использовать ISO-образ Windows размером 5 ГБ с именем WIN10X64.ISO. Чтобы узнать размер файла, который вы хотите разделить, вы можете использовать команду du -h, как показано на снимке экрана ниже.

Как видите, размер файла составляет 5 ГБ. Чтобы разделить его на 5 файлов по 1 ГБ каждый, вы можете использовать команду split с последующим флагом -b. и размер разделенных файлов, который вы хотите. G, определяющий единицу размера для ГБ, можно заменить на M для мегабайт или B для байтов.
split -b 1G WIN10X64PRO.ISO

Как видите, ISO был разделен на 5 файлов с именами xaa, xab, xac, xad и xae.
По умолчанию команда split именует сгенерированные файлы в предыдущем примере, где xaa — первая часть, xab — вторая часть, xac третий и т. д. Как показано в примере ниже, вы можете изменить это и определить имя, оставив имя по умолчанию в качестве расширения.
split -b 1G WIN10X64PRO.ISO Windows.

Как видите, все файлы имеют имена Windows.*, расширение имени, заданное командой split, что позволяет нам узнать порядок файлов.
При использовании команды split вы можете реализовать многословие для команды, чтобы распечатать ход выполнения, как показано на следующем снимке экрана.
split —verbose -b 1G WIN10X64PRO.ISO Windows.

Как видите, вывод прогресса показывает фазу разделения файла. В следующем примере показано, как разбить файлы на единицы МБ. Файл имеет размер 85 МБ.
split —verbose -b 20M virtualbox.deb virtualbox.deb.

Команда разделения включает в себя дополнительные интересные функции, которые не объясняются в этом руководстве. Вы можете получить дополнительную информацию о команде split по адресу https://man7.org/linux/man-pages/man1/split.1.html.
Как разделить файлы по содержимому в Linux с помощью csplit:
В некоторых случаях пользователи могут захотеть разделить файлы на основе их содержимого. В таких ситуациях описанная ранее команда split бесполезна. Альтернативой для этого является команда csplit.
В этом учебном разделе вы узнаете, как разбивать файл каждый раз, когда обнаруживается определенное регулярное выражение. Мы будем использовать книгу, и мы разделим ее на главы.
Как вы можете видеть на изображении ниже, у нас есть 4 главы (они были отредактированы, чтобы вы могли видеть разделение глав). Допустим, вы хотите, чтобы каждая глава находилась в отдельном файле. Для этого мы будем использовать регулярное выражение «Глава».

Я знаю, что в этой книге 4 главы, поэтому нам нужно указать количество разбиений, которые мы хотим предотвратить. В приведенных ниже примерах я объясняю, как выполнить разбиение, не зная количества регулярных выражений или разбиений. Но в этом случае мы знаем, что есть 4 главы; таким образом, нам нужно разделить файл 3 раза.
Запустите csplit, за которым следует файл, который вы хотите разбить, регулярное выражение между косыми чертами и количество разбиений между фигурными скобками, как показано в примере ниже.
csplit linux-console.txt / Chapter / { 3 }

Результат, который мы видим, — это количество байтов для каждой части файла.
Как видите, было создано 5 файлов, также было разделено пустое место перед Главой 1.

Файлы называются так же, как при использовании ранее объясненной команды разделения. Давайте посмотрим, как они были разделены.
Первый файл xx00 пуст, это пустое место перед первым появлением регулярного выражения «Chapter», и файл разделяется.

Вторая часть правильно показывает только первую главу.

Третья часть показывает главу 2.

Четвертая часть показывает третью главу.

И последняя часть показывает главу 4.

Как объяснялось ранее, количество регулярных выражений было указано для предотвращения неправильного результата. По умолчанию, если мы не укажем количество разбиений, csplit обрежет файл только один раз.
В следующем примере показано выполнение предыдущей команды без указания количества разбиений.
csplit linux-console.txt / Chapter /

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

Итак, что делать, если контент слишком длинный, и вы не знаете, сколько регулярных выражений для разбиения у вас есть в контенте? В такой ситуации нам нужно реализовать подстановочный знак.
Подстановочный знак будет создавать множество частей в виде регулярных выражений, найденных в документе, без необходимости их указания.
csplit linux-console.txt / Chapter / { * }

Как видите, файл был правильно разбит.
Команда csplit включает в себя дополнительные интересные функции, которые не объясняются в этом руководстве. Вы можете получить дополнительную информацию о команде split по адресу https://man7.org/linux/man-pages/man1/csplit.1.html.
Как объединить или соединить файлы обратно:
Теперь вы знаете, как разделить файлы по размеру или содержимому. Следующим шагом является объединение или объединение файлов обратно. Простая задача с помощью команды cat.
Как вы можете видеть ниже, если мы прочитаем все части файла, используя cat и подстановочный знак, команда cat упорядочит их в алфавитном порядке их имен.

Как видите, кошки умеют правильно упорядочивать файлы. Объединение или слияние файлов состоит из экспорта этого результата; вы можете сделать это, как показано в примере ниже, где combinedfile — это имя объединенного файла.
cat xx * > combinedfile

Как вы можете видеть на следующем рисунке, файл был правильно объединен.
less combinedfile

Заключение:
Как видите, разделить файлы на части в Linux довольно просто, и вам нужно только знать, какой инструмент подходит для вашей задачи. Любому пользователю Linux полезно изучить эти команды и их преимущества, например, при обмене файлами через нестабильное соединение или через каналы, ограничивающие размер файла. Оба инструмента имеют много дополнительных функций, которые не были объяснены в этом руководстве, и вы можете прочитать их справочные страницы.
Я надеюсь, что это руководство, объясняющее, как разбить файл на части в Linux, было полезным. Продолжайте следить за этим сайтом для получения дополнительных советов и руководств по Linux.
Все права защищены. © Linux-Console.net • 2019-2024
Разбивка дисков в Linux для самых маленьких
У многих начинающих пользователей линукс возникают сомнения, как правильно разбить жесткий диск. Постараюсь немного облегчить муки выбора нашим коллегам.
У нас в распоряжении есть — физическая разбивка дисков на разделы(fdisk, gparted), соф-RAID (mdadm), менеджер логических дисков (LVM), ширование dm-crypt (остальным не стоит забивать голову).
Пути разбивки дисков неисповедимы, поэтому мы начнем с самого простого.
1. Физическая разбивка дисков
Это самый простой, надежный и совместимый «дедовский» метод. Он позволяет четко очертить границы разделов и их взаимное положение на диске.
При разбивке диска можно учесть его физические особенности и получить некоторый прирост производительности. Дело в том, что ближе к краю диска скорость чтения может быть в несколько раз выше, чем ближе к центру. Соответственно, если расположить например /boot(128 мб), swap (memory * 2 or 2.5), /(root) то мы получаем хорошую скорость загрузки и работы с разделом подкачки. Если есть несколько дисков, то можно расположить swap в начале каждого. Но парится со swap есть смысл, если вы работаете с большими объемами данных — linux не использует swap без крайней нужды. (проверьте free -m). Отказываться от использования swap крайне не рекомендуется, так как linux хорошая система, но чудес не бывает. Открыв файл на 1ГБ можно заблокировать систему намертво без возможности разблокирования.
Разбивка диска на большое количество разделов оправдана только, если это делается для какой-то особой цели. В других случаях — достаточно обойтись простейшим / (root) и swap.
Очень часто пользователи отделяют /home от / (root) — это не имеет никакого практического смысла в однопользовательских системах. Обычно, / (root), /var, /home разделяют на серверах, чтобы пользователи со злым умыслом не заполнили логи или свою домашнюю директорию. Кстати, смонтировать /home с noexec можно и не делая отдельного раздела (man mount).
Если вы пользуетесь парралельно windows то я рекомендую использовать FAT32 для разделов с музыкой/фильмами, к которым вы хотите иметь доступ в обоих системах (и ни в коем случае не делать /home или домашнюю папку в FAT32!!). NTFS хорошо поддерживается, но недостаточно, чтобы ей пользоваться каждый день (чтобы снять unclean shutdown который не дает смонтировать раздел- нужно грузить windows), ошибки в файловой системе могут вызывать подвисания и потерю данных (привет жадному Биллу).
Запомните: черезмерная разбивка — корень всех бед. Разбивать диски «особым» образом нужно только под КОНКРЕТНУЮ задачу.
2. Логическая разбивка дисков
Не бойтесь LVM — он не такой страшный. С его помощью можно переразбивать диски, расширять партиции, добавлять физические устройства и расширяться на них, делать теневое копирование, бекап аналогичный «time machine» появился еще примерно в 2002 году. Не бойтесь, делайте бекап и пользуйтесь гибкостью LVM.
Для работы LVM, MD, DM обязательно нужен физический раздел /boot который позволит загрузчику(grub, Lilo etc) скачать минимальный образ системы (initrd) с необходимыми драйверами и конфигами для старта основной системы.
С логической разбивкой все сложнее. Вложенность разделов может быть произвольная.
Например как делается полное шифрование в ubuntu: /boot DM-CRYPT[LVM[/(root) swap]] — физический раздел /boot, затем физический раздел с dm-crypt, в котором находится LVM в свою очередь в котором два логических раздела /(root) и swap.
С вложенностью шифрования и raid можно играться как угодно.
Пример из жизни параноика:
/boot DM-CRYPT[ LVM[ /root DM-CRYPT-random[/tmp] DM-CRYPT-random[/home] DM-CRYPT-random[/var/log] DM-CRYPT-random[swap] ]]
При каждой загрузке /tmp /home /var/log и swap инициализируются с рандомным ключом. Конечно это ставит жирный крест на hibernate но при каждой загрузке- система абсолютно чистая от логов и временных файлов. Вполне сгодится для студентов или любителей побродить по порносайтам.
3. Советы по оптимизации
/boot можно сделать в файловой системе ext2 — она быстрей, чем ext3 и этого будет достаточно.
На активно использующемся разделе можно отключить access time — флаг noatime. Так часто делают на веб-серверах для уменьшения нагрузки на жесткий диск.
Как показала многолетняя практика, не стоит надеяться на надежность простого либо навороченного решения. Стоит использовать самое удобное и делать регулярный rsync на внешний носитель. В таком случае отпрадают вопросы на счет восстановления данных, которые при любом решении (особенно при шифровании) сильно усложняют жизнь. Например беды на шированной партиции при наличии Luks могут вывести систему из строя без возможности восстановления данных. Шифрованные данные более подвержены сильным повреждениям, чем нешифрованные.
(советуйте, добавлю)
В linux можно сделать абсолютно все, что угодно и это будет работать. Главное, руководствоваться здравым смыслом и не брезговать читать man вместо довольно часто вредных и устаревших howto.
Итак, резюмируем:
Для десктопов и ноутбуков оптимальный метод разбивки — полное отсутствие разбивки.
Для тех, кто не любит бекапиться, использовать «сложные методы» вроде LVM. Может подойти вариант:
swap (memory * 2), / (остальное)
Для юзеров убунты достаточно выбрать: Использовать все свободное место под LVM, тогда у вас останется много возможностей «на вырост».
Если разбивать /, /home то вы рано или поздно столкнетесь с нехваткой места на одном из разделов.
- разбивка дисков linux
- ubuntu
5 способов разделить окно терминала в Linux
Оригинал: 5 ways to split your Linux terminal
Автор: Seth Kenlon (Red Hat)
Дата публикации: 8 мая 2020 г.
Перевод: В.Костромин
Дата перевода: 15 мая 2020 г.

Linux предлагает множество способов разделить ваш терминал, чтобы вы могли работать в многозадачном режиме.
Есть ли что-нибудь более привлекательное, чем тепло мерцающий терминал Linux?
Конечно есть: два тепло мерцающих терминала Linux. И даже так: чем больше терминалов, тем лучше.
Много лет назад терминалы были физическими устройствами, но в наше время они просто эмулируются какими-то приложениями на вашем компьютере. Если вы предпочитаете терминал в качестве интерфейса для работы с компьютером, вы, вероятно, знаете, что одного терминала обычно недостаточно. Вам неизбежно приходится открывать новый терминал или новую вкладку, чтобы вы могли работать в нем, пока ваш первый занят компиляцией, или конвертацией, или другой обработкой данных.
Если вы системный администратор, то вам понадобится как минимум четыре открытых окна, когда вы работаете в нескольких системах одновременно.
Терминальные приложения с вкладками уже давно существуют в Linux и завоевали популярность, так как эта особенность современного терминала востребована. И все же, иногда необходимость переключаться между вкладками отвлекает или просто неудобно прыгать то туда, то сюда.
Единственная альтернатива состоит в том, чтобы поделить экран так, чтобы два или больше терминальных окон отображались одновременно в одном окне приложения. И в Linux есть много инструментов, которые помогут вам сделать это.
Оболочки, терминалы, консоли
Прежде чем вы начнете делить экран на кусочки, вы должны понять разницу между терминалом, оболочкой и «консолью». Чтобы представить себе полную картину, прочитайте предыдущую заметку в моем блоге (или ее перевод).
- Оболочка — это самый низкий уровень взаимодействия пользователя с компьютером. Оболочка предоставляет пользователю строку ввода-вывода с приглашением ввести команду. Оболочка всегда работает где-то под вашим рабочим столом POSIX, даже если вы ее не видите (потому что именно этот экземпляр оболочки запускает вашу пользовательскую сессию).
- Терминал — это приложение с загруженной в него оболочкой, работающее на графическом сервере (например, X11 или Wayland). Терминал работает только тогда, когда у вас запущено окно терминала. Терминал — это «дверь» для доступа к вашей оболочке.
- Термин «консоль» или «виртуальная консоль» обычно используется для оболочки, запущенной вне вашего графического окружения. Вы можете перейти к виртуальной консоли, нажав комбинацию клавиш Alt-Ctrl-F2 (обычно доступны комбинации с клавишами от F1 до F7, где F1 или F7 представляют ваш рабочий стол, в зависимости от вашего дистрибутива).
Некоторые приложения позволяют вам разделить вашу оболочку или консоль, в то время как другие позволяют разделить ваш терминал.
tmux

tmux — это, пожалуй, самый гибкий и удобный для разделения экрана терминальный мультиплексор, ориентированный на клавиатуру. С его помощью вы можете разместить одну консоль над другой, а затем переключаться между ними. Вы также можете разделить каждый экземпляр консоли по горизонтали пополам (или на три, четыре части и т.д.),
Всё управление консолями производится с клавиатуры, что означает, что вам никогда не придется отрывать руку от клавиш в поисках мыши, но для этого вы должны освоить некоторые новые комбинации клавиш.
Если вы используете tmux в первую очередь для разделения экрана, то единственные команды, которые вам действительно нужны, это:
- Ctrl-B % для разделения экрана по вертикали (одна оболочка слева, одна — справа)
- Ctrl-B» для разбиения по горизонтали (одна оболочка вверху, другая — ниже)
- Ctrl-B O для активации другой оболочки
- Ctrl-B ? для получения помощи
- Ctrl-B d для отключения от Tmux, оставив его работать в фоновом режиме (используйте команду tmux attach для повторного входа)
У tmux много преимуществ, в том числе возможность запуска сеанса tmux на одном компьютере, а затем удаленное присоединение к тому же сеансу с другого компьютера.
Например, если tmux запущен на Pi, я могу постоянно оставаться залогиненным в IRC — я запускаю tmux на Pi, а затем захожу с любого компьютера, на котором я оказался. Когда я выхожу из системы, tmux продолжает работать, терпеливо ожидая, когда я подключусь к сеансу с другого компьютера.
GNU Screen

Так же, как tmux, GNU Screen является мультиплексором оболочки. Вы можете отсоединиться и снова подключиться к запущенному сеансу, а также разделить экран по горизонтали и вертикали.
Screen немного более неуклюж, по сравнению с tmux. По умолчанию для клавиатурных команд в нем используется комбинация клавиш Ctrl-A с еще какой-то клавишей, но Ctrl-A уже используется в оболочке Bash для того, чтобы перейти в начало строки. Поэтому, если у вас запущен Screen, вы вынуждены нажимать Ctrl-A дважды, чтобы перейти в начало строки. Лично я переопределил эту комбинацию на Ctrl-J с помощью следующей строки в файле $HOME/.screenrc:
escape ^jJ
Функция разделения экрана в Screen работает хорошо, но в ней отсутствуют некоторые приятные мелочи, которые есть в tmux. Например, когда вы разделяете свою окно оболочки, новая оболочка не запускается на вновь созданной панели. Вы должны перейти в новое пространство с помощью Ctrl-A Tab (или Ctrl-J, если вы переопределите комбинацию клавиш, как я) и вызвать новый экземпляр оболочки вручную с помощью Ctrl-A C.
В отличие от tmux, созданная панель не исчезает, когда вы выходите из оболочки, что является конструктивной особенностью, которая в некоторых случаях весьма полезна, но иногда может вызывать раздражение, поскольку вынуждает вас управлять разделением вручную.
Тем не менее, Screen — это надежное и гибкое приложение, которое вы можете использовать, если обнаружите, что tmux почему-либо недоступен для вас.
Вот основные команды разделения панели, использующие сочетания клавиш по умолчанию:
- Ctrl-A | для разделения по вертикали (одна оболочка слева, одна оболочка справа)
- Ctrl-A S для разделения по горизонтали (одна оболочка вверху, вторая ниже)
- Ctrl-A Tab активация оболочки в другой панели
- Ctrl-A ? вызов подсказки
- Ctrl-A d выход из Screen, оставив его работать в фоновом режиме (для повторного входа используйте команду screen -r)
Konsole

Konsole — это программа эмуляции терминала, поставляемая в комплекте с рабочим столом KDE Plasma. Как и сам KDE, Konsole славится тем, что обладает широкими возможностями настройки.
Среди его многочисленных функций — возможности разделения окон, аналогичные имеющимся как в tmux, так и в GNU Screen. Поскольку Konsole — это графический терминал, вы можете управлять его функцией разделения экрана с помощью мыши, а не клавиатуры.
Функция разделения экрана находится в меню View Konsole. Вы можете разбить окно как по вертикали, так и по горизонтали. Чтобы активировать панель, достаточно щелкнуть по ней мышкой. Каждая панель представляет собой уникальный терминал, поэтому она может иметь собственную тему и вкладки.
В отличие от tmux и GNU Screen, вы не можете выйти из Konsole, оставив его работать в фоновом режиме, чтобы потом подключиться к нему снова. Как и большинство графических приложений, вы можете использовать Konsole только находясь перед ним физически, и теряете доступ к нему, когда находитесь где-то далеко (если вы не используете программное обеспечение удаленного рабочего стола).
Emacs

Emacs, конечно, не является терминальным мультиплексором, но его интерфейс поддерживает разделение и изменение размера окон, и он имеет встроенный терминал.
Если вы так или иначе работаете в Emacs ежедневно, то возможность разделить окно между разными по существу приложениями означает, что вам никогда не придется отказываться от своих привычек и конфорта работы в вашем любимом текстовом редакторе. Более того, поскольку модуль eshell в Emacs реализован на eLISP, вы можете взаимодействовать с ним, используя те же команды, которые вы используете в самом Emacs, что упрощает копирование и вставку длинных путей к файлам или вывод команд.
Если вы используете Emacs в графическом окне, вы можете выполнить некоторые действия с помощью мыши. Это быстрее чем использовать сочетания клавиш, причем некоторые из этих действий более или менее необходимы. Например, вы можете изменить то, какая панель является активной, щелкнув по ней, и вы можете изменить размеры панелей вашего разделенного экрана с помощью мыши.
Но все же приведем некоторые важные клавиатурные команды:
- Ctrl-X 3 для разделения панели по вертикали (одна оболочка слева, вторая справа)
- Ctrl-X 2 для разделения по горизонтали (одна оболочка вверху, вторая ниже)
- Ctrl-X O активация оболочки в другой панели (вы можете сделать это и с помощью мыши)
- Ctrl-X 0 (это ноль) закрыть текущую панель
Как и в случае с tmux и GNU Screen, вы можете отключаться от Emacs и снова входить в него до тех пор, пока запущен emacs-client.
Window manager

Если вас удивляет то, что текстовый редактор Emacs может разделить экран и загрузить терминал, представьте, что ваш рабочий стол может делать то же самое. Некоторые рабочие столы, например, Ratpoison, Herbsluftwm, i3, Awesome даже KDE Plasma, если задействовать специальные настройки, могут запускать каждое приложение в отдельном окне, размещая эти окна одно рядом с другим на вашем экране.
Окна в этом случае не «плавают» над вашим рабочим столом, а располагаются каждое в определенной позиции, позволяя вам лекго переключаться от одного из них к другому. Вы можете открыть любое количество терминалов в этих окнах, эмулируя терминальный мультиплексор. Фактически, вы даже можете загрузить терминальный мультиплексор в мультиплексор вашего рабочего стола.
И ничто не мешает вам загрузить Emacs с разделенными буферами внутрь одного из окон. Никто не знает, что произойдет, если вы продолжите в том же духе, и большинство пользователей Linux соглашаются, что лучше не узнавать.
В отличие от tmux и GNU Screen, вы не можете отключать и повторно подключать свой рабочий стол, если не используете программное обеспечение удаленного рабочего стола.
Другие варианты
Хотите верьте, хотите нет, но здесь перечислены не все варианты разделения экрана в Linux. Существуют и другие эмуляторы терминала, в первую очередь среди них можно назвать Tilix и Terminator, которые тоже позволяют разбить экран на части, и приложения со встроенными терминальными компонентами. Вы можете поделиться своим мнением о наиболее удобных способах разделения вашего рабочего пространства в комментариях к этой статье (имеется в виду, конечно, оригинальная статья).
Об авторе

Seth Kenlon независимый мультимедиа-дизайнер, сторонник свободной культуры и специалист по UNIX. Он работал в кино и компьютерной индустрии, часто одновременно. Он является одним из разработчиков проекта по созданию мультимедиа на базе Slackware http://slackermedia.info
Linux console (Русский)
Состояние перевода: На этой странице представлен перевод статьи Linux console. Дата последней синхронизации: 3 августа 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
- Конфигурация клавиатуры в консоли
- Screen capture#Virtual console
- Color output in console
- getty
Linux консоль — консоль, реализованная в ядре Linux, стала первой функциональностью ядра, разработанной в 1991 году. Является способом взаимодействия с пользователем — позволяет ядру и другим процессам отправлять пользователю текстовые данные, а также получать данные, введённые пользователем. Обычно для ввода используется клавиатура, а для вывода – монитор. Linux-консоль поддерживает так называемые виртуальные консоли — консоли, которые отделены логически, но используют те же клавиатуру и дисплей.
Данная статья описывает основы консоли Linux и как настроить отображения шрифтов. Настройка клавиатуры описана в подстранице Конфигурация клавиатуры в консоли.
Реализация
Консоль, в отличии от сервисов которые взаимодействуют с пользователем напрямую, является частью ядра системы. Это отличает ее от эмуляторов терминала, таких как xterm (Русский), которые реализованы на уровне пользовательского пространства и являются обычными приложениями. Консоль оставалась компонентом ядра Linux, но имела заметные изменения, такие как графический вывод (framebuffer) и поддержка Юникода.
Не смотря на все усовершенствования консоли, она до сих пор имеет полную обратную совместимость с прежним оборудованием, ограниченным в своих возможностях по сравнению с графическими эмуляторами терминала.
Виртуальные консоли
Консоль в представлении пользователя это набор виртуальных консолей. Они создают впечатление параллельной работы нескольких терминалов: в каждую из виртуальных консолей могут быть залогинены разные пользователи. Они могут работать в своих оболочках и иметь собственные настройки шрифтов. Каждая консоль использует устройство /dev/ttyX и вы можете переключится между ними сочетанием клавиш Alt+FX , где X номер виртуальной консоли начиная с 1. Устройство /dev/console автоматически привязывается к активной виртуальной консоли.
Текстовый режим
Изначально Linux был создан как ядро для управления оборудованием ПК, консоль была разработана по стандартам IBM CGA/EGA/VGA, которые поддерживали на тот момент все ПК. Графические возможности, предоставляемые этим стандартом предоставляли простое отображение 80*25 сетки символов с поддержкой 16 цветов. Этот устаревший режим был похож на принцип работы текстовых терминалов, таких как VT100. Все еще существует возможность загрузиться в текстовом режиме, если оборудование поддерживает его, но большинство современных дистрибутивов (в том числе Arch Linux) используют framebuffer консоль.
Framebuffer консоль
Так как Linux был портирован на различные архитектуры, которые не использовали VGA-совместимых графических адаптеров и не поддерживали текстовый режим, требовалась другая реализация. Framebuffer консоль была разработана для предоставления стандартной консоли среди всех доступных платформ и представляла собой VGA-подобный интерфейс независимый от используемого графического оборудования. Таким образом, консоль Linux — это не эмулятор терминала, а сам по себе терминал. Она использует тип терминала linux и в значительной мере совместима с VT100.
Горячие клавиши
| Горячие клавиши | Описание |
|---|---|
| Ctrl+Alt+Del | Перезапускает систему (указанно символической ссылкой /usr/lib/systemd/system/ctrl-alt-del.target ) |
| Alt+F1 , F2 , F3 , . | Переключает на n-ую виртуальную консоль |
| Alt+ ← | Переключает на предыдущую виртуальную консоль |
| Alt+ → | Переключает на следующую виртуальную консоль |
| Scroll Lock | Когда Scroll Lock активен, ввод и вывод заблокированы |
| Ctrl+c | Закрывает текущую задачу |
| Ctrl+d | Вставляет EOF |
| Ctrl+z | Прерывает текущую задачу |
Шрифты
Примечание: Эта секция написана для Linux консоли. Для альтернативных реализаций, поддерживающих большее количество функций (Полная поддержка шрифтов Юникод, современных графических адаптеров и т.д.) смотрите KMSCON или похожие проекты.
По стандарту, виртуальная консоль использует встроенный в ядро шрифт с набором символов CP437 [1] , но это можно изменить.
Linux консоль по умолчанию использует кодирование UTF-8, но из-за особенностей VGA-совместимого framebuffer, консольный шрифт ограничен стандартными 256 или 512 глифами. Если в шрифте более чем 256 глифов, то количество цветов уменьшается с 16 до 8. Для корректного отображения нужного символа требуется специальная карта трансляции, называемая unimap. В настоящее время большинство консольных шрифтов имеют встроенную unimap, но исторически она загружалась отдельно.
Пакет kbd предоставляет инструменты для смены шрифта и его отображения в виртуальной консоли. Доступные шрифты находятся в директории /usr/share/kbd/consolefonts/ . Шрифты с расширением .psfu или .psfu.gz имеют встроенную карту трансляций Юникод.
Списки раскладок, являющиеся связью между нажатой клавишей и символом используемым системой, находятся в директории /usr/share/kbd/keymaps/ , подробности смотрите на странице Конфигурация клавиатуры в консоли.
Примечание: Замена шрифта может вызвать проблемы в программах, которые рассчитаны на стандартный шрифт, например, использующие линейную графику.
Предпросмотр и временные изменения
$ showconsolefont
Показывает таблицу глифов или символов шрифта.
setfont временно меняет шрифт, если команде передано имя шрифта (находящегося в директории /usr/share/kbd/consolefonts/ ), например:
$ setfont lat2-16 -m 8859-2
Согласно ISO 8859 для кириллических раскладок используем кодировку 8859-5. Например, кириллический шрифт terminus:
$ setfont ter-v32b -m 8859-5
Название шрифта чувствительно к регистру. Без параметров setfont возвращает консоли стандартный шрифт.
Для смены на маленький шрифт размера 8×8, можете использовать данный шрифт:
$ setfont -h8 /usr/share/kbd/consolefonts/drdos8x8.psfu.gz
Для большого шрифта, можете рассмотреть шрифт terminus-font , он доступен в различных размерах. Например ter-132n .
Совет: Все команды смены шрифта могут быть набраны «в слепую».
Примечание: setfont влияет только на активную консоль, в других консолях изменений не будет.
Постоянные изменения
Переменная FONT в /etc/vconsole.conf используется для применения шрифта при загрузке системы для всех консолей. Смотрите vconsole.conf(5) для деталей.
Для отображения символов Č, ž, đ, š or Ł, ę, ą, ś используйте шрифт lat2-16.psfu.gz :
/etc/vconsole.conf
. FONT=lat2-16 FONT_MAP=8859-2
Вторая часть набора символов ISO/IEC 8859 будет размера 16. Вы можете поменять размер шрифта используя другие значения (например lat2-08 ). Для регионов определяемых спецификацией ISO 8859, смотрите Части ISO 8859
Для использования шрифта в пользовательском пространстве при загрузке системы используйте хук consolefont в /etc/mkinitcpio.conf . Смотрите mkinitcpio (Русский)#HOOKS для подробностей.
Если шрифт не применяется после загрузки системы, или изменения временные, то скорее всего шрифт сбрасывается когда графический драйвер инициализируется и консоль меняется на framebuffer. Как решение, загружайте графический драйвер раньше, для примера смотрите Kernel mode setting (Русский)#Ранний запуск KMS, [2] или другими способами сделайте загрузку framebuffer перед применением /etc/vconsole.conf .