- Linux console (Русский)
- Contents
- Реализация
- Виртуальные консоли
- Текстовый режим
- Framebuffer консоль
- Горячие клавиши
- Шрифты
- Предпросмотр и временные изменения
- Постоянные изменения
- Core utilities (Русский)
- Contents
- Основные
- Предотвращение потери данных
- Второстепенные
- Альтернативы
- Альтернативы cd
- Альтернативы cp
- Альтернативы ls
- Альтернативы find
- Альтернативы diff
- Альтернативы grep
- Поиск кода
Linux console (Русский)
Linux консоль — консоль, реализованная в ядре Linux, стала первой функциональностью ядра, разработанной в 1991 году. Является способом взаимодействия с пользователем — позволяет ядру и другим процессам отправлять пользователю текстовые данные, а также получать данные, введённые пользователем. Обычно для ввода используется клавиатура, а для вывода – монитор. Linux-консоль поддерживает так называемые виртуальные консоли — консоли, которые отделены логически, но используют те же клавиатуру и дисплей.
Данная статья описывает основы консоли Linux и как настроить отображения шрифтов. Настройка клавиатуры описана в подстранице Конфигурация клавиатуры в консоли.
Contents
Реализация
Консоль, в отличии от сервисов которые взаимодействуют с пользователем напрямую, является частью ядра системы. Это отличает ее от эмуляторов терминала, таких как 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 | Прерывает текущую задачу |
Шрифты
По стандарту, виртуальная консоль использует встроенный в ядро шрифт с набором символов 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/ , подробности смотрите на странице Конфигурация клавиатуры в консоли.
Предпросмотр и временные изменения
Показывает таблицу глифов или символов шрифта.
setfont временно меняет шрифт, если команде передано имя шрифта (находящегося в директории /usr/share/kbd/consolefonts/ ), например:
Название шрифта чувствительно к регистру. Без параметров setfont возвращает консоли стандартный шрифт.
Для смены на маленький шрифт размера 8×8, можете использовать данный шрифт:
Для большого шрифта, можете рассмотреть шрифт terminus-font , он доступен в различных размерах. Например ter-132n .
Постоянные изменения
Переменная FONT в /etc/vconsole.conf используется для применения шрифта при загрузке системы для всех консолей. Смотрите vconsole.conf(5) для деталей.
Для отображения символов Č, ž, đ, š or Ł, ę, ą, ś используйте шрифт lat2-16.psfu.gz :
Вторая часть набора символов ISO/IEC 8859 будет размера 16. Вы можете поменять размер шрифта используя другие значения (например lat2-08 ). Для регионов определяемых спецификацией ISO 8859, смотрите Части ISO 8859
Источник
Core utilities (Русский)
Основные утилиты (core utilities) — набор базовых, фундаментальных инструментов операционной системы GNU/Linux. В статье дан неполный обзор этих утилит, приведены ссылки на документацию и перечислены полезные альтернативы. В основном (но не только) в статье рассматривается набор GNU coreutils. Большинство основных утилит являются традиционными инструментами Unix (см. Heirloom); многие из них были стандартизированы POSIX, но продолжили развиваться, расширяя свою функциональность.
Большинство интерфейсов командной строки задокументировано в man-страницах. Утилиты GNU Project используют для этой цели Info-мануалы, а в некоторых оболочках для справки по встроенным командам предусмотрена команда help . Кроме того, большинство утилит выводит краткую справочную информацию о себе при запуске с флагом —help .
Contents
Основные
Некоторые важные утилиты, с которыми должен быть знаком пользователь Arch Linux. См. также intro(1) .
Пакет | Утилита | Описание | Документация | Альтернативы |
---|---|---|---|---|
встроенные команды | cd | смена каталога | cd(1p) | #Альтернативы cd |
GNU coreutils | ls | вывод содержимого каталога | ls(1) , info | tree , #Альтернативы ls |
cat | вывод содержимого файлов в stdout | cat(1) , info | tac(1) , bat | |
mkdir | создание каталога | mkdir(1) , info | ||
rmdir | удаление пустого каталога | rmdir(1) , info | ||
rm | удаление файлов и каталогов | rm(1) , info | shred | |
cp | копирование файлов и каталогов | cp(1) , info | #Альтернативы cp | |
mv | перемещение файлов и каталогов | mv(1) , info | ||
ln | создание жёстких и символических ссылок | ln(1) , info | ||
chown | изменение владельца и группы файла | chown(1) , info | chgrp(1) | |
chmod | изменение прав доступа к файлу | chmod(1) , info | ||
dd | преобразование и копирование файла | dd(1) , info | ||
df | вывод информации об использовании файловой системой дискового пространства | df(1) , info | ||
GNU tar | tar | архиватор tar | tar(1) , info | архиваторы |
GNU less | less | постраничный просмотр в терминале | less(1) | программы постраничного просмотра |
GNU findutils | find | поиск файлов и каталогов | find(1) , info, GregsWiki | #Альтернативы find |
GNU diffutils | diff | построчное сравнение файлов | diff(1) , info | #Альтернативы diff |
GNU grep | grep | вывод строк, совпадающих с шаблоном | grep(1) , info | #Альтернативы grep |
GNU sed | sed | потоковый редактор | sed(1) , info, one-liners | |
GNU gawk | awk | язык поиска и обработки шаблонов | gawk(1) , info | nawk , mawk AUR |
util-linux | dmesg | вывод содержимого буфера ядра и управление им | dmesg(1) | журнал systemd |
lsblk | вывод информации о блочных устройствах | lsblk(8) | ||
mount | монтирование файловой системы | mount(8) | ||
umount | размонтирование файловой системы | umount(8) | ||
su | замена пользователя | su(1) | sudo, opendoas | |
kill | завершение процесса | kill(1) | pkill(1) , killall(1) | |
procps-ng | pgrep | поиск процесса по имени или атрибутам | pgrep(1) | pidof(1) |
ps | вывод информации о процессах | ps(1) | top(1) , htop | |
free | вывод информации о свободной/используемой памяти | free(1) |
Предотвращение потери данных
rm , mv , cp и перенаправления ввода/вывода в оболочке удаляют или перезаписывают файлы молча, не уведомляя пользователя. С флагом -i команды rm , mv и cp будут запрашивать разрешение перед каждым удалением/перезаписью. Некоторые предпочитают использовать этот флаг по умолчанию, создав соответствующий псевдоним. Тем не менее, такой подход чреват потенциальными проблемами, если в какой-то момент вы будете работать на другой системе или от другого пользователя, в которых подобный псевдоним отсутствует. Лучший способ защитить данные от случайного удаления — регулярно создавать резервные копии.
Второстепенные
Утилиты, которые также могут быть полезны.
Пакет | Утилита | Описание | Документация | Альтернативы |
---|---|---|---|---|
встроенные команды | alias | создание или вывод списка псевдонимов | alias(1p) | |
type | определение типа команды | type(1p) | which(1) | |
time | вывод времени выполнения команды | time(1p) | ||
GNU coreutils | tee | считывание stdin и запись в stdout и файлы | tee(1) , info | |
mktemp | создание временного файла или каталога | mktemp(1) , info | ||
cut | вывод отдельных частей строк | cut(1) , info | ||
tr | замена или удаление символов | tr(1) , info | ||
od | отображение файлов в восьмеричном и других форматах | od(1) , info | hexdump(1) , xxd(1) в vim | |
sort | сортировка строк | sort(1) , info | ||
uniq | поиск или исключение повторяющихся строк | uniq(1) , info | ||
comm | построчное сравнение двух отсортированных файлов | comm(1) , info | ||
head | вывод первых строк файла | head(1) , info | ||
tail | вывод последних строк файла или отслеживание изменений в файле | tail(1) , info | ||
wc | вывод количества строк, слов и байтов | wc(1) , info | ||
GNU binutils | strings | вывод содержащихся в двоичном файле текстовых строк | strings(1) , info | |
GNU glibc | iconv | конвертация кодировок символов | iconv(1) | recode |
file | file | определение типа файла | file(1) |
Пакет moreutils содержит другие полезные инструменты вроде sponge(1) , которые не вошли в GNU coreutils.
Альтернативы
Альтернативные основные утилиты предоставляются следующими пакетами: BusyBox, Heirloom Toolchest, 9base , sbase-git AUR и ubase-git AUR .
Альтернативы cd
- zoxide — Умная команда cd, которая изучает ваши привычки и позволяет перемещаться повсюду буквально несколькими нажатиями клавиш.
https://github.com/ajeetdsouza/zoxide || zoxide
Альтернативы cp
rsync#Как альтернатива cp/mv позволяет продолжить прерванную передачу файла, выводить состояние передачи, пропускать уже существующие файлы и проверять целостность итоговых файлов по контрольным суммам.
Альтернативы ls
- broot — Новый способ просмотра дерева каталогов и перемещения по нему.
https://github.com/Canop/broot || broot
- exa — Замена ls с поддержкой цветности, отображением дерева каталогов, интеграцией с git и другими возможностями.
https://github.com/ogham/exa || exa
- lsd — Современный ls с большим набором цветов и замечательными иконками.
https://github.com/Peltoche/lsd || lsd
Альтернативы find
- fd — Простая, быстрая и удобная альтернатива find. По умолчанию игнорирует скрытые файлы и файлы, указанные в .gitignore .
https://github.com/sharkdp/fd || fd
- fuzzy-find — Fuzzy-завершение имён файлов при поиске.
https://github.com/silentbicycle/ff || ff-gitAUR
- mlocate — Объединение locate и updatedb.
https://pagure.io/mlocate || mlocate
- plocate — Намного более быстрый locate.
https://plocate.sesse.net/ || plocate
Графические программы для поиска файлов перечислены в List of applications/Utilities#File searching.
Альтернативы diff
Некоторые программы предоставляют сравнение по словам, которого нет в diffutils :
- git diff выполняет сравнение по словам с флагом —color-words ; с флагом —no-index работает также и с файлами вне рабочего дерева Git.
- dwdiff — Фронт-енд для diff со сравнением по словам; поддержка цветности.
https://os.ghalkes.nl/dwdiff.html || dwdiff
- GNU wdiff — Реализация GNU diff со сравнением по словам; нет поддержки цветности.
https://www.gnu.org/software/wdiff/ || wdiff
- cwdiff — Обёртка для GNU wdiff с поддержкой цветности.
https://github.com/junghans/cwdiff || cwdiffAUR , cwdiff-gitAUR
- icdiff — diff с поддержкой цветности, написанный на Python. Название расшифровывается как «Improved color diff»; обычный режим работы diff также доступен.
https://github.com/jeffkaufman/icdiff || icdiffAUR , icdiff-gitAUR
Альтернативы grep
- mgrep — grep с многострочным поиском.
https://sourceforge.net/projects/multiline-grep/ || mgrepAUR
- pdfgrep — Инструмент для поиска текста в PDF-файлах.
https://pdfgrep.org/ || pdfgrep
- ripgrep-all — Поиск в текстовых файлах, а также в PDF, E-Book, документах Office, архивах zip и tar.gz.
https://github.com/phiresky/ripgrep-all || ripgrep-allAUR
Поиск кода
Следующие три инструмента предназначены для замены grep при поиске кода. По умолчанию используют рекурсивный поиск, пропускают двоичные файлы и учитывают .gitignore .
Источник