- Обратная прокрутка текста в консоли Линукс
- 0. О чем идет речь?
- 1. Как увеличить буфер обратной прокрутки?
- 2. Расширение пределов
- 3. Что отсутствует в логах?
- Как вы прокручиваете вверх / вниз по консоли Linux?
- Горячие клавиши терминала Linux
- Горячие клавиши терминала Linux
- 1. Tab
- 2. Ctrl + R
- 3. Ctrl + C
- 4. Ctrl + Z
- 5. Ctrl + D
- 6. Ctrl + L
- 7. Ctrl+P и Ctrl+N
- 8. Ctrl + A и Ctrl + E
- 10. Ctrl + W
- 11. Ctrl + Y
- 12. Ctrl + B и Ctrl + F
- 13. Ctrl + T
- 14. Ctrl +X затем Ctrl + E
- 15. Alt +.
- 16. Alt + B и Alt + F
- 17. Alt + C, Alt + L и Alt + U
- 18. Ctrl + S и Ctrl + Q
- Сочетания клавиш эмулятора терминала
- 1. Ctrl + Alt + T
- 2. Ctrl + Shift + С и Ctrl + Shift + V
- 3. Ctrl + Shift + F
- 4. Shift + ЛКМ и Shift + ПКМ
- Выводы
Обратная прокрутка текста в консоли Линукс
Оригинал: Linux Console Scrollback
Дата: октябрь 2007
Автор: Anonymous
Свободный перевод: Алексей Дмитриев
Дата перевода 19 ноября 2007
Мы говорим здесь о GNU/Linux текстовой консоли — а не о том, что появляется в окне терминала, или X-window менеджера, или рабочего стола. По этому поводу столько всякой неразберихи, что я вынужден тривиально сказать: — «Если вы, находясь в графическом режиме, нажимаете ‘Alt-Ctrl-F1’ (или ‘F2’и т.д.), то вы попадаете в текстовую консоль».
0. О чем идет речь?
Происходит загрузка компьютера. Вы в текстовой консоли, наблюдаете за быстро проплывающим вниз текстом. Вы хотите просмотреть уже промелькнувший кусок этого текста. Вы нажимаете ‘Shift-PgUp’ или ‘Shift-PgDn’, а если раньше уже изменяли сочетания клавиш по умолчанию (нет-нет, не раскладку клавиатуры в Иксах), то какие-либо другие клавиши. Этими клавишами вы заставляете текст перемещаться вверх-вниз по экрану. В данный момент вы используете буфер обратной прокрутки (назовем его буфер прокрутки для краткости).
Когда начинаешь вовсю пользоваться этим буфером, то очень скоро выясняются две вещи:
Только часть текста, сопровождавшего загрузку, может быть возвращена.
Файл ‘/var/log/messages’ фиксирует гораздо меньше того, что вы хотели увидеть.
Вы начинаете прочесывать Интернет, и вскоре предварительные результаты появляются: публикации по обратной прокрутке в Линуксе весьма древние и прослеживаются до ранних 90х годов. Однако обо всем, что было до ядра версии 2.6.x следует забыть.
В самом деле, следует быть избирательным в том, что читаешь: большинство советов, относящихся к версиям прежде 2.6.x, скорее всего запутают вас и уведут по ложному пути. Поверьте мне — я убил на это дело много времени. Поведение обратной прокрутки определяется в файле ‘vc.c’, противном маленьком файлике в исходниках ядра, причем ‘vc’ обозначает ‘virtual console’ (виртуальная консоль).
Заметьте, что при переключении консолей, буфер прокрутки теряется — таким образом, в текущей консоли доступен полный объем этого буфера. (Здесь особенно много завалов информационного мусора со времен до ядра 2.6.x ).
По умолчанию, размер буфера равен 32K. Этого хватает на 4 нажатия клавиш обратной прокрутки — каждое нажатие прокручивает половину экрана, 25 строчек на экран. Выходит около 50 строк. И больше вы не получите, даже еcли у вас 30 или 50 строк на экран. Нужно сказать, что 50 строк — это малая толика того, что пролетает по экрану за время загрузки. В связи с вышеизложенным, встают два вопроса:
Как увеличить буфер прокрутки?
Почему логи не фиксируют некоторые сообщения, которые вы видели во время загрузки?
1. Как увеличить буфер обратной прокрутки?
Первым решением будет увеличить дефолтный (умолчальный) размер буфера в исходниках ядра и перекомпилировать его. Позвольте предположить, что вы столь же не склонны заниматься этим, как и я, и поискать средство более гибкое.
И такое средство есть, а называется оно ‘framebuffer console’, для краткости ‘fbcon’. Это устройство имеет файл документации ‘fbcon.txt’; если вы устанавливали документацию к ядру, то он у вас есть. Выискивайте его где-то в районе ‘/usr/share’ ветви (я не могу указать точный путь из-за разницы в дистрибутивах). Всегда можно скачать его как одиночный файл здесь .
На этом месте прошу прощения: мы должны сделать небольшое отступление и немного поговорить о видеобуфере (framebuffer).
Видеобуфер — это буфер между дисплеем и видеоадаптером. Его прелесть в том, что им можно манипулировать: он позволяет трюки, которые не прошли бы, будь адаптер связан напрямую с дисплеем.
Один из таких трюков связан с буфером прокрутки; оказывается, вы можете «попросить» видеобуфер выделить больше памяти буферу прокрутки. Достигается это через загрузочные параметры ядра. Сначала вы требуете framebuffer (видеобуфер); Затем запрашиваете больший буфер прокрутки.
Нижеследующий пример касается GRUB, но может быть легко адаптирован к LILO. В файле настройки GRUB — ‘menu.lst’- найдите соответствующую ядру строчку, и затем:
Удалите опцию ‘vga=xxx’, если таковая присутствует.
Добавьте опцию ‘video=vesabf’ или то, что соответствует вашему «железу».
Добавьте опцию ‘fbcon=scrollback:128’.
После этой процедуры, строка параметров ядра должна выглядеть приблизительно так:
‘kernel /vmlinuz root=/dev/sdb5 video=radeonfb fbcon=scrollback:128’.
Спрашивается, зачем удалять опцию ‘vga=xxx’? Из-за возможных конфликтов с видео-опцией. На своем ATI адаптере, я не могу изменить буфер прокрутки, если ‘vga=xxx’ присутствует в списке. Возможно в вашем случае это не так. Если вышеперечисленные опции работают — хорошо; но что, если вы хотите увеличить число строк, или установить более мелкий шрифт на экране? Вы всегда делали это при помощи опции ‘vga=xxx’ — а она-то и исчезла. Не переживайте — то же самое может быть достигнуто изменением параметров fbcon, как описано в файле ‘fbcon.txt’ (но не описано в данной статье). В Ubuntu и Debian есть более удобный способ: ‘dpkg-reconfigure console-setup’. Эту команду стоит использовать также и потому, что она еще и корректирует ‘initrd’ на ваши новые настройки.
2. Расширение пределов
Опция ‘fbcon=scrollback:128’ дает вам возможность перемещения по буферу прокрутки на 12-13 экранов. Это приблизительно 150 строк — вполне неплохо, Но, возможно, еще недостаточно для просмотра всех загрузочных сообщений. Можно ли поставить больше 128, скажем, 256? Предел 128 заложен в ‘vc.c’. Если хотите больше, редактируйте и компилируйте. Для себя я решил, что игра не стоит свеч.
Когда я уже совсем решил, что достиг наивысшего предела — я цитирую из ‘fbcon.txt’:
fbcon=scrollback: [k]
.
The ‘k’ suffix is optional, and will multiply the ‘value’ by 1024.
(Суффикс ‘k’ является опциональным, и умножит значение ‘value’ в 1024 раза).
Я бросился проверять. и, что бы ни думал по этому поводу автор, убедился, что 128 и 128k дают абсолютно одинаковый результат. Предел по умолчанию равен 128KB памяти, вот и весь сказ.
Напоследок заметьте, что применение расширенного буфера прокрутки использует как память графического адаптера, так и буфер в оперативной памяти. Если вы довольствуетесь умолчальными 32KB, вы используете только память видеоадаптера. На практике, однако, я не заметил ни малейшего замедления.
3. Что отсутствует в логах?
В Ubuntu и Debian и других дистрибутивах все системные сообщения сохраняются в файле ‘/var/log/messages’. Это применимо, даже если сервис (daemon) протоколирования не старый ‘syslog’, а ‘syslog-ng’ (‘ng’: «new generation» /новое поколение/).
В обоих случаях, вы можете просмотреть сообщения, набрав ‘dmesg’ в командной строке. Это не помогает: вы ясно видели во время загрузки сообщения, которых нет в выводе команды ‘dmesg’. Как же так?
Это свойство, а не ошибка! Сообщения, протоколируемые в файле, приходят от различных субсистем ОС. Субсистемы, выдающие сообщения в файл протокола, в терминологии syslog обозначаются как ‘facilities’ («средства» или «услуги»), их всего 8 штук. В процессе загрузки работают программы и скрипты, которые могут и не принадлежать ни к одному из 8 «средств». Мы видим их сообщения, пробегающими по экрану, но ничего не будет зафиксировано в лог-файле!
Например вы не увидите сообщений от программ ‘loadkeys’ (openSUSE) или ‘consolechars’ (Ubuntu и Debian), когда происходит загрузка раскладки клавиатуры во время загрузки системы. Другой пример: когда пользуетесь консольным текстовым редактором, вы можете прокручивать дисплей назад (включая цвета), пользуясь при этом буфером прокрутки. Но то, что производит редактор, никогда не попадет ни в один системный протокол. Причина, разумеется, в том, что ни ‘loadkeys’, ни ‘consolechars’, ни редактор, не принадлежат ни к одному из 8 «средств».
Можно ли изменить ситуацию? Конечно — «просто» переделайте и перекомпилируйте те приложения, которые вы хотите протоколировать. Допишите или перепишите загрузочные скрипты. Или заставьте систему фиксировать сообщения извне 8 системных «средств».
Держу пари, что вы не станете этим заниматься. И даже знаю ваш вероятный ответ:
— «Из моих логов ничего не пропадает». Да-да, конечно.
Источник
Как вы прокручиваете вверх / вниз по консоли Linux?
Я признаю это Up / Down даст вам историю команд. Но как вы смотрите на прошлые результаты, прокручивая вверх и вниз?
Я использовал Shift + Page Up / Page Down , Alt + Shift + Up / Down а также Page Up / Page Down но ни один из них, кажется, не работает.
Это Redhat Linux box.
SHIFT + Page Up а также SHIFT + Page Down , Если это не работает, попробуйте это, и тогда это должно:
Перейдите в программу терминала и убедитесь, что
Edit/Profile Preferences/Scrolling/Scrollback/Unlimited
проверено.
Точное расположение этой опции может быть где-то другим, хотя, я вижу, что вы используете Redhat.
Shift + Fn + UP или же DOWN на MacBook позволит вам прокручивать.
Альтернатива: вы можете использовать команду less .
Введите в консоли:
Это позволит вам прокручивать клавиши со стрелками вверх и вниз.
В основном ваш вывод был передан с помощью команды less .
SHIFT + Page Up и SHIFT + Page Down являются правильными ключами для работы на linux (виртуальной) консоли, но консоль vmware не имеет этих настроек терминала. Виртуальная консоль имеет фиксированный размер прокрутки, похоже, она ограничена размером видеопамяти в соответствии с этой виртуальной консолью Linux Документация по поведению прокрутки.
АЛЬТЕРНАТИВА ДЛЯ ЛИНЕЙНОЙ СТРОКИ
Ctrl + Shift + Up Arrow или же Down Arrow
В отличие от Shift + Page Up или же Page Down , который прокручивает всю страницу, это поможет с более плавной построчной прокруткой, что именно то, что я искал.
Другой вариант, который может быть уже установлен в вашей системе, — это использовать экран GNU:
Смотрите man screen для гораздо более полезных опций (несколько окон, . ) .
VM Ubuntu на Mac . Fn + Shift + стрелки вверх/вниз
Кажется, что это не легко возможно: Arch Linux Wiki не перечисляет способов сделать это на консоли (хотя это легко возможно на виртуальном терминале).
Вы можете использовать прокрутка tmux :
Ctrl — b затем [ тогда вы можете использовать обычные навигационные клавиши для прокрутки (например, Up Arrow или же PgDn ). Нажмите q выйти из режима прокрутки.
Или вы можете нажать Ctrl — b PgUp перейти непосредственно в режим копирования и прокрутить одну страницу вверх (именно так, как вам кажется, вы захотите большую часть времени)
Я столкнулся с той же проблемой с рабочей станцией VMWare с гостевым Ubuntu, оказалось, что VmWare не поддерживает прокрутку обратно из представления сервера. Я установил x GUI, а затем запустил xterm. По некоторым причинам он работает так же, но позволяет прокручивать обычные пути. Надеюсь, что это поможет будущим читателям в виртуальных коробках VmWare.
Источник
Горячие клавиши терминала Linux
Терминал — один из самых мощных инструментов Linux. С помощью него можно настроить и сделать практически всё в этой операционной системе. Чтобы сделать работу в терминале ещё более удобной и продуктивной разработчики добавили различные сочетания клавиш.
В этой статье мы собрали самые полезные горячие клавиши терминала Linux, которые могут пригодится вам в работе. Здесь есть комбинации клавиш для навигации по истории команд, коррекции ошибок и управления окном терминала. Все клавиши расположены в случайном порядке.
Горячие клавиши терминала Linux
1. Tab
Без этого сочетания терминалом пользоваться невозможно, и поэтому его знают все. Одно нажатие клавиши Tab автоматически дополняет текущую команду или путь к файлу если возможен только один вариант. Два нажатия по ряд показывают возможные варианты автодополнения. Это делает набор команд и путей к файлам намного быстрее.
2. Ctrl + R
После нажатия Ctrl+R появляется строка поиска в которой вы можете начать вводить имя команды, которую надо выполнить. Система найдёт все команды, которые ранее выполнялись с таким началом и отобразит самую свежую. Вы можете уточнить поиск добавив ещё несколько символов. Для выполнения команды просто нажмите Enter, для редактирования Esc.
3. Ctrl + C
Это сочетание клавиш позволяет прервать работу любой программы, которая выполняется в терминале. После нажатия Ctr + C программе отправляется сигнал SIGINT и если она не обрабатывает его особым образом выполнение программы завершается. Некоторые программы перехватывают сигнал и перед завершением выполняют кое какие действия по сохранению данных и завершению операций, например пакетный менеджер zypper.
4. Ctrl + Z
С помощью Ctrl+Z вы можете перевести текущую программу в фоновый режим. Обычно, если вам надо чтобы программа выполнялась в фоновом режиме просто добавьте символ & после команды. Но если вы забыли это сделать поможет это сочетание клавиш. Чтобы посмотреть задачи, которые сейчас работают в фоне используйте команду jobs, а для возврата задачи в нормальный режим — команду fg.
5. Ctrl + D
Сочетание клавиш Ctrl+D можно считать альтернативой команды exit. Если вы подключены по SSH то сессия будет разорвана. Если вы работаете в терминале напрямую, то окно будет закрыто.
6. Ctrl + L
Альтернатива команды clear. Позволяет очистить вывод терминала. Очень удобно для создания снимков экрана и просто для очистки лишней информации.
7. Ctrl+P и Ctrl+N
Эти сочетания клавиш альтернативы клавишам стрелки вверх и вниз. Первое показывает предыдущую введенную команду, а второе следующую. Так вы можете перемещаться по истории команд. Это не удобнее стрелок, но иногда может быть полезно.
8. Ctrl + A и Ctrl + E
Перемещаться можно не только по истории команд, но и по текущей строке. Эти горячие клавиши — аналоги клавиш Home и End. Первая комбинация перемещает курсор в начало строи, а вторая в конец.
9. Ctrl + U и Ctrl + K
С помощью первого сочетания можно удалить весь текст от начала строки до позиции курсора, а с помощью второго — от позиции курсора и до конца строки. Это может быть полезно если вы ввели неверную команду и не хотите стирать её по одному символу.
10. Ctrl + W
Нажав Ctrl+W вы можете стереть слово перед курсором. Если курсор находится в середине слова, то будут стёрты все символы от курсора до начала слова. Удобнее всего ставить курсор после слова, которое нужно убрать.
11. Ctrl + Y
С помощью Ctrl + Y вы можете вставить текст вырезанный с помощью Ctrl + U, Ctrl + K и Ctrl + W. Текст будет вставлен туда, где находится курсор.
12. Ctrl + B и Ctrl + F
Аналог для клавиш стрелка вправо и стрелка влево. Первое сочетание позволяет перемещаться на один символ вправо, а второе на один символ влево.
13. Ctrl + T
Заменяет символ, находящийся под курсором на предыдущий символ. Или перемещает символ перед курсором к концу строки.
14. Ctrl +X затем Ctrl + E
Открывает текущую команду в текстовом редакторе. Если в переменной EDITOR редактор не задан, то будет использоваться nano. После редактирования и сохранения результата команда будет выполнена. Удобно для написания многострочных скриптов.
15. Alt +.
Аналог команды $!. Позволяет вставить последний аргумент предыдущей команды в позицию курсора. Удобно, если надо выполнить несколько команд с одинаковым аргументом.
16. Alt + B и Alt + F
Эти сочетания позволяют перемещаться по словам, также как их аналоги с Ctrl по символам. Alt + B перемещает курсор на слово влево, а Alt+F на слово вправо.
17. Alt + C, Alt + L и Alt + U
Следующие три сочетания клавиш позволяют играть с регистром символов команды. Первое сочетание — Alt + C делает символ под курсором прописным, а все остальные буквы до конца слова строчными. Alt + L делает все буквы до конца слова строчными, а Alt + U — прописными.
18. Ctrl + S и Ctrl + Q
Если команда выводит информацию слишком быстро, а вам надо прочитать её или скопировать, можно попросить терминал поставить на паузу вывод команды. Для этого нажмите Ctrl +S. Чтобы вернуть всё обратно нажмите Ctrl + Q.
Сочетания клавиш эмулятора терминала
Все сочетания клавиш, перечисленные выше будут работать во всех терминалах и эмуляторах терминала, которые используют командную оболочку Bash или другую популярную оболочку. Но у популярных эмуляторов терминала есть свои горячие клавиши, которые могут вам очень сильно пригодится при работе. Давайте рассмотрим их тоже. В этой статье будут использоваться горячие клавиши из Gnome Terminal, но в других терминалах они похожи.
1. Ctrl + Alt + T
С помощью этого сочетания клавиш можно открыть терминал в большинстве дистрибутивов, основанных на Ubuntu и Debian. Это просто, быстро и удобно.
2. Ctrl + Shift + С и Ctrl + Shift + V
Копирование и вставка — очень важные функции операционной системы. Сочетание клавиш Ctrl + C просто не может работать для копирования, потому что оно используется для завершения команды, поэтому для копирования и вставки была добавлена клавиша Shift.
3. Ctrl + Shift + F
Если вам надо выполнить поиск по выводу в терминале можно воспользоваться сочетанием Ctrl + Shift + F. После нажатия откроется окно ввода, в котором вы можете ввести искомое слово.
4. Shift + ЛКМ и Shift + ПКМ
Здесь ЛКМ и ПКМ — это правая и левая кнопка мышки. Такие программы, как screen и tmux в режиме поддержки работы мышью захватывают контроль мышки и вяжут на неё свои функции. Таким образом обычное копирование и вставка могут стать проблемой. Чтобы этого избежать можно выделять текст сочетанием клавиш Shift + ЛКМ и открывать контекстное меню с помощью Shift + ПКМ.
Выводы
В этой статье мы собрали лучшие сочетания клавиш терминала Linux, которые могут пригодится вам в работе с системой или во время её настройки. А какие горячие клавиши нравятся вам? Какие вы используете? Напишите в комментариях!
Источник