Как выйти из мануала

Как выйти из команды MAN

Команда «man» — это сокращение от «manual», и с ее помощью вы можете вызвать подробную справочную страницу и информацию практически о любой другой доступной команде или утилите командной строки, в том числе с помощью расширенного поиска справочных документов для поиска связанных справочных страниц. Хотя страницы руководства часто используются и на них ссылаются, многие пользователи не знают, как правильно выйти из нашего выйти из команды man. Это может звучать немного глупо или для новичков, но даже давние пользователи unix могут не знать, как выйти из человека (не говоря уже о выходе из VIM, если на то пошло — и то и другое встречается чаще, чем вы думаете).

Нам часто задают этот вопрос, и не беспокойтесь; Выход из команды man чрезвычайно прост и универсален, что означает, что вы можете выйти из команды man таким же образом в любой ОС Unix, которая включает эту функцию, будь то Mac OS, Mac OS X, linux, BSD или другие.

Уловка для выхода из человека Команда: q

Просто нажмите клавишу «q», чтобы выйти из страницы руководства. Да, это так просто, простое нажатие «q» приведет к правильному выходу из команды man.

Это должно быть легко запомнить пользователям Mac, потому что сочетание клавиш Command + Q закрывает приложение, поэтому оно уже довольно похоже — просто отпустите клавишу Command и нажмите только «Q», и вы выйдете из любой открытой страницы руководства.

Если вы хотите попробовать это самостоятельно, запустите приложение «Терминал», а затем откройте любую справочную страницу, набрав «man (команда)», например «man ipconfig» (вы можете быстро запустить справочные страницы через меню «Справка терминала» с помощью или щелкните команду правой кнопкой мыши и запустите ее оттуда).

Конечно, чего не следует делать, так это нажатия кнопок: обычная тема для многих пользователей командной строки состоит в том, чтобы смешать Control + C, Control + Z или Control + X, чтобы попытаться приостановить или выйти из MAN, я видел это много раз (и возраст назад, когда впервые исследовал командную строку, я сделал то же самое), но все, что нужно сделать, это приостановить man, который затем должен быть завершен отдельно. Это неправильный подход, и на самом деле это сложнее, чем просто нажимать «q» — так что, если у вас есть такая привычка, постарайтесь не забыть просто нажимать «q» вместо этого, это намного проще.

Знаете ли вы какие-либо другие приемы или простые способы запомнить закрытие страниц руководства или лучше работать с командой man? Дайте нам знать об этом в комментариях.

How to get out of man command ?

I pressed man ls command in mac and it is lot letting me enter other commands.

As I am learning Linux , so please do not downvote me

asked Sep 3, 2016 at 19:56

Amarjit Dhillon's user avatar

Amarjit DhillonAmarjit Dhillon

2,6523 gold badges23 silver badges61 bronze badges

4

1 Answer

Press q (like «quit»). To get more info about buttons, press h (like «help»).

answered Sep 3, 2016 at 20:01

Georg P.'s user avatar

Georg P.Georg P.

2,7052 gold badges25 silver badges51 bronze badges

1

  • 2023

Маша и Медведь (Masha and The Bear) — Подкидыш (23 Серия)

Маша и Медведь (Masha and The Bear) — Подкидыш (23 Серия)

Оглавление:

  • Хитрость для выхода из команды Человек: q

Команда «man» — это сокращение от руководства, и с ее помощью вы можете вызвать подробную страницу руководства и информацию о почти любой другой утилите командной строки или командной строке, которая доступна, включая использование расширенного поиска документа man для поиска связанных страниц руководства. В то время как справочные страницы часто используются и на них ссылаются, многие пользователи не знают, как правильно выйти из команды выхода из команды man . Это может показаться немного глупым или новичком, но даже давние пользователи Unix могут не знать, как выйти из-под контроля (не говоря уже о выходе из VIM в этом отношении — и то, и другое чаще, чем вы думаете).

Мы часто задаем этот вопрос и не беспокоимся; Выход из команды man чрезвычайно прост и универсален, что означает, что вы можете выйти из man одинаково в любой операционной системе Unix, которая включает эту функцию, будь то Mac OS, Mac OS X, Linux, BSD или другие.

Хитрость для выхода из команды Человек: q

Просто нажмите клавишу «q», чтобы выйти из справочной страницы. Да, это так просто, просто нажав «q», вы выйдете из команды man правильно

Это должно быть легко для пользователей Mac, чтобы помнить, потому что комбинация клавиш Command + Q закрывает приложение, так что это уже довольно похоже — просто отпустите клавишу Command и нажмите «Q» в одиночку, и вы выйдете из любой открытой страницы руководства.

Если вы хотите попробовать это сами, запустите приложение «Терминал», а затем откройте любую справочную страницу, набрав «man (команда)», например «man ipconfig» (вы можете быстро запустить справочные страницы через меню справки терминала с помощью или щелкните правой кнопкой мыши команду и запустите ее оттуда).

Конечно, что не нужно делать, это пуговицу кнопок: общая тема для многих пользователей командной строки, чтобы помешать Control + C, Control + Z или Control + X, чтобы попытаться приостановить или выйти из MAN, я видел это много раз (и в возрасте назад, когда впервые изучал командную строку, сделал то же самое и сам), но все, что нужно будет сделать, это приостановить команду man, что затем должно быть прекращено отдельно. Это неправильный подход, и на самом деле это сложнее, чем просто нажать «q» — так что, если у вас есть такая привычка, попробуйте не забыть просто нажать «q», это намного проще.

Знаете ли вы о каких-либо других хитростях или простых способах запоминания выходов из справочных страниц или для лучшей работы с командой man? Дайте нам знать об этом в комментариях.

Вопрос:

Я ввел man ls. Это показывает экран с руководством для ls. Я хочу закрыть это руководство и вернуться к предыдущему экрану. Как мне это сделать? Страница man для ls не позволяет мне это делать. Он продолжает показывать “(END)” или некоторое сообщение, когда я пытаюсь ввести команду unix.

Я новичок, поэтому, пожалуйста, не уменьшайте меня.

Лучший ответ:

Команда man использует ваш пейджер по умолчанию, который указан $MANPAGER, если он установлен, или $PAGER. Если ни один из них не установлен, он по умолчанию использует что-то разумное, возможно, либо more, либо less. (Как ни странно, я не вижу этого в man-странице для команды man, которую вы можете просмотреть, набрав man man – после того, как вы вернетесь в приглашение командной оболочки.)

Большинство пейджеров можно выйти, набрав q – это будет полезной вещью для других программ, которые вызывают ваш пейджер, или когда вы используете свой пейджер непосредственно для просмотра файла (less some-file.txt).

Когда я запускаю команду man в моей системе, в нижней строке отображается:

Manual page ls(1) line 1 (press h for help or q to quit)

в обратном видео. Вы это видите? (Вы можете или не можете, в зависимости от ваших настроек.)

Если ваш пейджер less, вы можете получить дополнительную информацию, набрав h для справки – или, набрав man less.

Ответ №1

Вы можете нажать клавишу q, чтобы выйти из справочных страниц.


FYI:

По моему опыту, man обычно использует less для отображения информации. Чтобы получить полезный список сочетаний клавиш (навигация, выход) для less (и для man), вы можете ввести:

less --help

Вот краткая выдержка:

                   SUMMARY OF LESS COMMANDS

Commands marked with * may be preceded by a number, N.
Notes in parentheses indicate the behavior if N is given.

h  H                 Display this help.
q  :q  Q  :Q  ZZ     Exit.
---------------------------------------------------------------------------

MOVING

e  ^E  j  ^N  CR  *  Forward  one line   (or N lines).
y  ^Y  k  ^K  ^P  *  Backward one line   (or N lines).
f  ^F  ^V  SPACE  *  Forward  one window (or N lines).
b  ^B  ESC-v      *  Backward one window (or N lines).
z                 *  Forward  one window (and set window to N).
w                 *  Backward one window (and set window to N).
ESC-SPACE         *  Forward  one window, but don't stop at end-of-file.
d  ^D             *  Forward  one half-window (and set half-window to N).
u  ^U             *  Backward one half-window (and set half-window to N).
ESC-)  RightArrow *  Left  one half screen width (or N positions).
ESC-(  LeftArrow  *  Right one half screen width (or N positions).
F                    Forward forever; like "tail -f".
r  ^R  ^L            Repaint screen.
R                    Repaint screen, discarding buffered input.
---------------------------------------------------
Default "window" is the screen height.
Default "half-window" is half of the screen height.

Ответ №2

Просто введите q и введите это, чтобы вы вышли из любой страницы man

Ответ №3

Вы можете просто ввести q и нажать Enter
Здесь q – это бросить курить.

0 / 0 / 0

Регистрация: 22.07.2019

Сообщений: 32

1

29.07.2019, 10:18. Показов 5031. Ответов 10


Студворк — интернет-сервис помощи студентам

Ввела man list, у меня остановиолсь на строке END , энтер, esc не помогают , приходится перезагруживать виртуалку

Миниатюры

Как выйти из man?
 



0



Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32528 / 21006 / 8123

Регистрация: 22.10.2011

Сообщений: 36,272

Записей в блоге: 7

29.07.2019, 12:55

2

«q» нажать надо.



1



0 / 0 / 0

Регистрация: 22.07.2019

Сообщений: 32

31.07.2019, 15:28

 [ТС]

3

странно что это неочевидное действие опущено (никакой подсказок)



0



Почетный модератор

7390 / 2636 / 281

Регистрация: 29.07.2006

Сообщений: 13,696

31.07.2019, 17:53

4

Это стандартная клавиша для выхода из многих консольных «страничных» и не только программ. q — это сокращение от quit. Для пользователей консоли это действие уже стало очевидным. Для вас теперь тоже.

Цитата
Сообщение от Инга Ротман
Посмотреть сообщение

приходится перезагруживать виртуалку

Обычно, так из вима выходят. А вот чтобы из мана — первый раз вижу



1



0 / 0 / 0

Регистрация: 22.07.2019

Сообщений: 32

01.08.2019, 15:31

 [ТС]

5

странно что это неочевидное действие опущено (никакой подсказок)

Цитата
Сообщение от Vourhey
Посмотреть сообщение

Для вас теперь тоже

ага

Добавлено через 26 секунд

Цитата
Сообщение от Vourhey
Посмотреть сообщение

А вот чтобы из мана — первый раз вижу

Добавлено через 2 минуты
Vourhey, а ты пользуешься FreeBSD ? Посовету й desktop для виртуалки ( плюсы / минусы ) ? Не xkcf



0



Почетный модератор

7390 / 2636 / 281

Регистрация: 29.07.2006

Сообщений: 13,696

01.08.2019, 17:22

6

Цитата
Сообщение от Инга Ротман
Посмотреть сообщение

Vourhey, а ты пользуешься FreeBSD ? Посовету й desktop для виртуалки ( плюсы / минусы ) ? Не xkcf

Извини, не смогу, линуксом пользуюсь на железе. А на виртуалке винда



1



Эксперт Java

4432 / 2667 / 480

Регистрация: 28.04.2012

Сообщений: 8,505

02.08.2019, 21:59

7

Цитата
Сообщение от Vourhey
Посмотреть сообщение

Извини, не смогу, линуксом пользуюсь на железе. А на виртуалке винда

Как будто выбор DE как-то зависит от того, запущена ОСь на виртуалке или голом железе… =)

Инга Ротман, тебе зачем BSD, если ты даже не знаешь как из less/more выйти?

Цитата
Сообщение от Инга Ротман
Посмотреть сообщение

Посоветуй desktop. Не xkcf

Если более простой — LXDE, например. Если более «навороченный»… Вариантов много. Ну, начни с KDE.



1



Vourhey

02.08.2019, 22:44

Не по теме:

Цитата
Сообщение от korvin_
Посмотреть сообщение

Как будто выбор DE как-то зависит от того, запущена ОСь на виртуалке или голом железе… =)

Кому как. Для меня зависит :)



0



0 / 0 / 0

Регистрация: 22.07.2019

Сообщений: 32

05.08.2019, 09:16

 [ТС]

9

Ну… я просила плюсы / минусы.

Цитата
Сообщение от korvin_
Посмотреть сообщение

Как будто выбор DE как-то зависит от того, запущена ОСь на виртуалке или голом железе… =)
Инга Ротман, тебе зачем BSD, если ты даже не знаешь как из less/more выйти?
Цитата Сообщение от Инга Ротман Посмотреть сообщение
Посоветуй desktop. Не xkcf
Если более простой — LXDE, например. Если более «навороченный»… Вариантов много. Ну, начни с KDE.

Просто балуюсь



0



131 / 146 / 19

Регистрация: 19.02.2017

Сообщений: 619

05.08.2019, 09:33

10

Цитата
Сообщение от Инга Ротман
Посмотреть сообщение

странно что это неочевидное действие опущено (никакой подсказок)

У меня в manjaro есть подсказка. Возможно вы невнимательно смотрели.

Добавлено через 1 минуту

Цитата
Сообщение от Инга Ротман
Посмотреть сообщение

Посовету й desktop для виртуалки ( плюсы / минусы ) ?

Почему именно FreeBSD?

Добавлено через 1 минуту

Цитата
Сообщение от Инга Ротман
Посмотреть сообщение

Просто балуюсь

Смело. Я как то хотел испробовать дистрибутивы из семейства BSD, да не решился. Линукса вроде хватает.



0



0 / 0 / 0

Регистрация: 22.07.2019

Сообщений: 32

05.08.2019, 09:42

 [ТС]

11

Edzard, Да просто…
вон gnome установила , полет нормальный , но не понравился , решила кеды попробовать , а тут такая беда

Добавлено через 1 минуту
А NetBSD меня так напужал , что я даже образ с его дистрибутивом в PowerISO открывать боюсь
удалила нафиг)



0



q, типа quit, xenia :) разработчики старались вложить смысл в шорткаты и параметры командной строки по первым буквам, помните об этом!

  • Ссылка

Ответ на:

комментарий
от Led 31.01.11 05:09:12 MSK

Ответ на:

комментарий
от adriano32 31.01.11 05:13:46 MSK

> Задумался, какой смысл вложен в выход из less по ZZ…

Это из vi/vim. Подозреваю, от zap

anonymous

(31.01.11 05:21:59 MSK)

  • Ссылка

man man

а ты же генту хотела вроде?

luke ★★★★★

(31.01.11 11:00:10 MSK)

  • Ссылка

q

приходится перезагружать бокс

ну хоть не ресетом :)

xroff

(31.01.11 14:59:12 MSK)

  • Ссылка

В зависимости от того, какой у Вас PAGER. Если less, как сказали выше, нажмите q

dumal ★★

(02.02.11 00:20:08 MSK)

  • Ссылка

На будущее — man kill; man pkill.

  • Ссылка

Если ты не можешь выйти из мана, то как пишешь на форуме?

anonymous

(02.02.11 00:35:25 MSK)

  • Ссылка

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

jobs, fg, bg – управление фоновыми процессами

Что бы запустить задачу в фоновом режиме надо в конце команды добавить знак &, либо запустить её в обычном режиме, после чего нажать комбинацию ctrl+Z, отправив ей сигнал TSTR. Что бы продолжить её выполнение в фоновом режиме используется команда bg (background).

Отобразить список текущих фоновых задач можно командой jobs.

Что бы вывести задачу из фонового режима – используется команда fg (foreground), которой можно либо передать номер задачи в качестве аргумента.

Например:

$ tar cpf somefile.tar somefolder 2>/dev/null                               #  запускаем tar 
^Z                                                                          # нажимаем Ctrl+Z
[1]+  Stopped                 tar cpf somefile.tar somefolder 2>/dev/null
$ jobs                                                                      # Смотрим список задач
[1]+  Stopped                 tar cpf somefile.tar somefolder 2>/dev/null
$ bg 1                                                                      # Продолжаем выполнение первой задачи в фоне
[1]+ tar cpf somefile.tar somefolder 2>/dev/null
$ fg 1                                                                      # Выводим задачу на передний план

Время на прочтение
14 мин

Количество просмотров 74K

Эта статья посвящена наиболее часто используемым комбинациям клавиш при работе в командной строке Linux (в основном в командном интерпретаторе bash).

Она точно будет полезна начинающим своё знакомство с Linux и, уверен, пригодится тем, кто уже имеет опыт (не всегда годы практики учат работать быстрее).

Никогда не развивал навыка быстрой печати, но знание не одного десятка hotkey’ев, перечисленных в этом материале, позволяет набирать команды со скоростью мысли.

Я попытался продемонстрировать многие примеры при помощи анимированных gif’ок – иногда несколько кадров больше скажут, чем несколько абзацев текста.


Материал был обкатан на вебинаре, и оттуда взяты все примеры (под каждым примером указано время, когда об этом рассказывалось в видео). Видео больше часа и без монтажных склеек, в статье же вынесены все главные моменты и попытка дать более точные определения.

Общие слова и замечания

Большинство продемонстрированных клавиш стандартны для «командной строки Linux», но часть из этих комбинаций специфичны для bash (поэтому и пометил это в заголовке). На текущий момент BASH – наиболее распространенный командный интерпретатор, используемый по умолчанию в большинстве Linux-дистрибутивов. В других командных интерпретаторах или, проще говоря, shell’ах (рекомендую попробовать zsh и fish) могут быть небольшие отличия в работе. Также часть комбинаций прописана в «настройках по умолчанию» (например, в файле /etc/inputrc или в /etc/bashrc), которые тоже могут различаться в разных дистрибутивах. И бывает, что некоторые клавиши могут быть настроены и перехватываться графической оболочкой, в которой запущен командный интерпретатор.

Если вдруг что-то из указанного мной в этой статье у вас не сработало, пишите в комментариях «название — версию shell и название — версию дистрибутива».

Часть демонстрируемых клавиш относятся к «настройкам терминала». А часть – клавиши из командного интерпретатора BASH, и их можно посмотреть, почитав мануал по bash’у (огромный текст – пользуйтесь поиском):

man bash

[00:10:40]

[00:10:40]

^^^ На приведенном фрагменте из мануала: Запись «(C-r)» означает Ctrl-r, а «M->» означает Alt->.

«M» — это «Meta-клавиша»

Из истории: «М» — это «Metа-клавиша», сейчас вместо неё используется клавиша Alt, либо клавишаEsc. Я чаще в её качестве буду использовать клавишу Alt.

Замечание: Если у кого-то настроено переключение раскладки по комбинации Alt-Shift, то учитывайте, что в комбинациях, перечисленных далее и содержащих Alt-Shift, вам надо будет использовать скорее клавишу Esc-Shift (или поменять комбинацию для переключения раскладки клавиатуры, у меня, например, раскладка переключается по CapsLock).

[00:11:18]

[00:11:18]

^^^ Здесь показано на примере использования комбинаций для перемещения по «словам» командной строки: Alt-b(или, что то же самое, Esc-b) и Alt-f(или, что то же самое, Esc-f)

Для демонстраций нажатых клавиш использую утилиту «screenkey».

Upd: При этом стоит упомянуть, что по умолчанию bash использует emacs-режим редактирования командной строки и поэтому многие комбинации клавиш пришли из редактора emacs. Для знающих редактор vi, могу порекомендовать переключить (добавив «set -o vi» в ~/.bashrc) bash в vi-режим редактирования и пользоваться привычными комбинациями из vi.

Терминал

Итак, начнем с клавиш из настроек терминала. Их можно посмотреть, выполнив команду:
stty -a

А перенастроить, например, так:
stty intr НоваяКлавиша

Ctrl-c – сигнал SIGINT

Первые две комбинации клавиш достаточно важные, и часто «недавно перешедшие с Windows на Linux» НЕправильно их используют: продолжая, как в DOS, для завершения команд использовать комбинацию «Ctrl-z», что неверно. В Linux же для того, чтобы попросить (команде посылается сигнал SIGINT) приложение прервать свою работу, используется Ctrl-c.

[00:14:24]

[00:14:24]

Ctrl-z – сигнал SIGTSTP

А комбинация Ctrl-z используется, чтобы попросить (команде посылается сигнал SIGTSTP) приложение остановить свою работу (не завершая) – «поставить на паузу». Ну, а «разбудить» его можно командой «fg» (или «bg»).

[00:14:36]

[00:14:36]

Ctrl-d – EOF(окончание ввода данных)

Далее разберем комбинацию Ctrl-d. В выводе «stty -a» эта комбинация значится как «EOF», что означает «окончание ввода данных». Для примера покажу, как можно создать текстовый файл с определенным текстом без использования текстового редактора:

[00:15:51]

[00:15:51]

^^^ Здесь видно, что любой набираемый текст перенаправляется в файл /tmp/File.txt, и нет никакой фразы (типа «Горшочек, не вари»), которую бы команда cat восприняла как «окончание ввода» – точнее, для этого как раз и надо нажать Ctrl-d.

Также пользуюсь комбинаций Ctrl-d для того, чтобы выйти из консоли (например, после того как переключился командой su под другого пользователя или зайдя по ssh на другую машину) – вместо набора команды «exit» или «logout»:

[00:17:44]

[00:17:44]

^^^ В правом терминале отображаю историю команд.

…(а внимательный зритель догадается, какой «супер-секретный» пароль у root’а на стенде)

Ctrl-v – ввод следующего символа

Комбинация Ctrl-v позволяет вставить в командную строку следующий за ней символ, не воспринимая его как спецсимвол. (Параметр lnext в выводе «stty -a»)

[00:19:19]

[00:19:19]

^^^ Здесь для примера показываю, как в скрипте выводить строку текста с использованием табуляции (знаю, что можно использовать t в команде echo: echo -e "tTEXT", но не у всех утилит есть такая возможность, а подобная необходимость вставить «спецсимвол» случается).

[00:20:38]

[00:20:38]

^^^ А в этом примере у меня есть файл «New Text Document.txt», созданный в ОС Windows при помощи программы Notepad в директории, которую я затем открыл на доступ по сети и примонтировал в Linux в директорию /mnt. Программа Notepad (в отличии от Notepad++) создает файл в DOS-формате – в конце каждой строки использует дополнительный символ «Возврат каретки». Терминалы часто по умолчанию этот символ не отображают, но он есть, и поэтому, например, команда ‘grep "m$" /mnt/New Text Document.txt‘ не выведет строку, заканчивающуюся на букву «m». Команда cat с опцией «-v» отображает этот символ. А для того, чтобы при выводе заменить или удалить это символ, воспользовался командой tr (хотя можно было бы использовать специальную для этого утилиту unix2dos).

Ctrl-l – очищает экран

Комбинация Ctrl-l – «очищает» экран.

[00:10:51]

[00:10:51]

История команд

«Работа с историей команд» – классическая тема обычно из любого начального курса по Linux (по крайней мере, среди тех курсов, которые читаются у нас в «Сетевой Академии ЛАНИТ»). И многие, кто имеет хотя бы небольшой опыт работы с командной строкой, историей команд пользуются – как минимум знают, что она есть, и используют стрелки «вверх» (отобразить предыдущую команду) и «вниз» (отобразить следующую после отображаемой команду в истории команд), чтобы выбрать, какую из ранее введенных команд либо снова выполнить, либо подредактировать и запустить отредактированную. Но помимо стрелок еще есть ряд полезных комбинаций клавиш, которые позволяют работать с историей команд, – быстрее находить нужные команды.

Ctrl-r – Поиск по истории

Комбинация Ctrl-r позволяет искать в истории команд команды, содержащие указанный далее текст.

[00:25:21]

[00:25:21]

^^^ В этом примере мне понадобилось из истории вытащить команду, содержащую текст «su»: нажав Ctrl-r и набрав искомый текст «su», я увидел самую недавнюю команду, содержащую «su»; при повторном нажатии Ctrl-r отображается предыдущая команда, содержащая «su» и т.д. При необходимости изменить команду жму стрелку «вправо» и правлю текст, а чтобы запустить команду — нажимаю Enter.

PgUp/PgDown – Поиск по истории

PgUp – отображает предыдущую команду начинающуюся с уже введенного текста, PgDown – следующую.

[00:27:35]

[00:27:35]

^^^ В этом примере перемещаюсь между командами, начинающимися с «cat». (Часто также ищу команды, начинающиеся с «sudo». Или если мне нужно снова отредактировать какой-то файл, который недавно редактировал: набираю «vi», жму несколько раз PgUp, а затем Enter.)

В дистрибутивах где это настроено — в /etc/inputrc есть строки:

"e[5~":	history-search-backward
"e[6~":	history-search-forward

Alt-_/Alt-./Alt— – вставка аргументов

Комбинация Alt-_ (выполняется нажатием Alt, Shift, -) – вставляет последний аргумент из предыдущих команд. (Аналогично работает комбинация Esc-. или, что то же самое, Alt-.)

[00:28:32]

[00:28:32]

^^^ В данном примере видно, как повторные нажатия Alt-_ вставляют аргументы от пред-пред-…-идущих команд.

Комбинация Alt - – позволяет указать (порядковый номер с конца), какой аргумент вставить клавишей Alt-_ из предыдущей команды.

[00:30:13]

[00:30:13]

^^^ В данном примере вставляю в командную строку различные аргументы из предыдущей команды.

Alt-# – текущую команду преобразовать в комментарий

Бывает, во время набора очень длинной команды понимаю, что мне нужно что-нибудь посмотреть или дополнительно сделать (например, глянуть, какие файлы есть в определенной директории, прочитать мануал по команде, установить нужный пакет…). Что делать с уже набранным текстом? Хотелось бы посмотреть нужную информацию и продолжить набирать команду, а не начинать печатать её сначала. Alt-# (выполняется нажатием Alt, Shift, 3. Также можно использовать Esc-#) – преобразует текущую набранную команду в комментарий в истории – добавляет символ «#» в начало строки и добавляет полученную строку в историю команд.

[00:32:03]

[00:32:03]

Ctrl-o – повтор команд из истории

Комбинация Ctrl-o позволяет повторять серию команд из истории. То есть нужно из истории команд стрелками выбрать первую команду из серии и нажать Ctrl-o – это выполнит текущую команду и выведет из истории следующую. Дальше можно продолжать нажимать Ctrl-o с тем же эффектом.

[00:33:58]

[00:33:58]

^^^ В примере я написал три команды: одна увеличивает на 1 переменную, которой соответствует год; вторая выводит переменную-год; третья показывает, сколько дней в феврале в указанном году. Дальше, нажимая Ctrl-o, повторяю эту серию из трех команд много раз (один кадр соответствует трем нажатиям).

Автодополнение

Tab – автодополнение (в контексте)

Во многих командных интерпретаторах (и в bash в том числе) используется такая возможность, как автодополнение. Как минимум нужно знать, что по нажатию клавиши Tab дописывается название команды. В bash по умолчанию обычно настроено так, что если имеется только один вариант дополнения, то он дописывается по нажатию Tab (также можно использовать Ctrl-i и Esc-Esc). Когда вариантов дополнения много, то по первому нажатию Tab дописывается только общая часть (если она есть). А по второму нажатию Tab отображается список всех доступных вариантов. Дальше можно набрать еще символов – уточнить, какое из дополнений нужно, и снова нажать Tab. То же самое с другими дополнениями: имен файлов, имен переменных.

[00:39:20]

[00:39:20]

^^^ Здесь, например, смотрю (нажав дважды Tab), что есть несколько команд, начинающихся с «if», добавив «c» и нажав Tab, получаю набранной команду «ifconfig».

[00:39:31]

[00:39:31]

^^^ В этом примере дополняю аргументы команды (здесь имена файлов). Также видно, что в случае, когда вариантов много и все не умещаются в окне терминала, их список отображается утилитой для постраничного просмотра (также при очень большом списке вариантов выдается запрос вида «Display all 125 possibilities? (y or n)» или, как в этом примере, при малом количестве — «—More—».

Дополнения имен пользователей, переменных

Часто, когда дописываются аргументы команд по Tab, дописываются имена файлов. Но стоит также отметить, что, в зависимости от контекста, по Tab дописываются и имена переменных (аргументы, начинающиеся с символа «$»), имена пользователей (аргументы, начинающиеся с символа «~»),…

[00:40:36]

[00:40:36]

^^^ Здесь, чтобы набрать «$HISTFILESIZE», вместо 13 символов набрал 8 символов ($ H I Tab F Tab S Tab). Помимо того, что так быстрее, это еще и позволяет допускать меньше ошибок при наборе команд, так как не просто печатаю текст, а выбираю из списка установленных переменных.

[00:41:44]

[00:41:44]

^^^ Здесь дописываю имена пользователей (фактически пишу адрес домашней директории).

Также bash может дополнять не потому, что набранный текст начинается с определенного символа, а по определенным комбинациям клавиш.

Список того, что может дополнять bash, можно посмотреть командой:

♯ bind -P | grep «complet»

possible-username-completions can be found on "C-x~".
complete-username can be found on "e~".
possible-hostname-completions can be found on "C-x@".
complete-hostname can be found on "e@".
possible-variable-completions can be found on "C-x$".
complete-variable can be found on "e$".
possible-command-completions can be found on "C-x!".
complete-command can be found on "e!".
possible-filename-completions can be found on "C-x/".
complete-filename can be found on "e/".

[00:43:50]

[00:43:50]

Так, например, видно, что:

  • Ctrl-x ~ – покажет список имен пользователей, начинающихся с набранных символов, а дополнить комбинацией Esc-~;

  • Ctrl-x @ – список имен машин (согласно /etc/hosts), начинающихся с набранных символов, а дополнить – Esc-@;

  • Ctrl-x $ – список имен переменных, заданных в этой сессии (можно их также посмотреть командой set), а дополнить – Esc-$;

  • Ctrl-x ! – список команд (согласно доступных: $PATH, alias, функций, встроенных команд), а дополнить – Esc-!;

  • Ctrl-x / – список имен файлов, а дополнить – Esc-/.

Alt-* – вставить дополнения, Ctrl-x * – развернуть шаблон

Esc-* (точнее, Esc Shift 8) или, что, то же самое, Alt-* (точнее, Alt, Shift, 8), вставит все варианты дополнения в командную строку. Аналогично можно развернуть список файлов, переменных, имен пользователей.

В примерах ниже разворачиваю список файлов:

Вариант с Alt-*:

[00:44:55]

[00:44:55]

Вариант с Esc-*:

[00:46:30]

[00:46:30]

♯ bind -P | grep ‘*’

insert-completions can be found on "e*".
glob-expand-word can be found on "C-x*".

Ctrl-x * – развернет уже написанный в командной строке шаблон, как в примере ниже:

[00:48:39]

[00:48:39]

Редактирование

Ctrl-w/u/k – вырезать слово/начало/конец строки

Ctrl-w – вырезать слово (от текущего положения курсора до ближайшего ранее в строке пробела/табуляции). Вырезанное можно затем вставить комбинацией Ctrl-y.

[00:52:52]

[00:52:52]

Ctrl-u – вырезать начало строки (от текущего положения курсора. Если курсор в конце строки, то вырежет целиком строку). Вырезанное можно затем вставить комбинацией Ctrl-y.

Ctrl-k – вырезать конец строки (от текущего положения курсора. Если курсор в начале строки, то вырежет целиком строку). Вырезанное можно затем вставить комбинацией Ctrl-y.

Ctrl-y – вставить вырезанное

Ctrl-y – вставить вырезанный фрагмент командной строки. (В bash используется свой буфер для хранения вырезанных фрагментов – называется «kill ring»).

Важно: Удобно использовать с Alt-y (позволяет «прокручивать» варианты вставки из буфера).

Ctrl-x Ctrl-e – редактировать в $EDITOR

Нажав комбинацию Ctrl-x Ctrl-e, можно редактировать командную строку в любом внешнем редакторе (по умолчанию часто используется редактор vim; переназначить редактор можно, указав в переменной EDITOR). Часто редакторы имеют больше продвинутых возможностей в редактировании текста. Особенно удобно, если редактор умеет подкрашивать синтаксис команд и имеет различные встроенные инструменты для быстрого поиска и исправления ошибок.

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

[00:53:40]

[00:53:40]

Ctrl-_ – undo

Ctrl-_ (точнее, нужно нажать Ctrl Shift -) или Ctrl-x Ctrl-u – отменяет последние правки при редактировании командной строки.

Перемещение

Ctrl-a/e – в начало/конец строки

Ctrl-a и Ctrl-e – перемещение в начало и конец командной строки соответственно. Можно, конечно, пользоваться клавишами Home и End, но так быстрее при использовании, например, таких клавиш, как вырезание Ctrl-w и вставка Ctrl-y.

[00:52:05]

[00:52:05]

Alt-b/f и Ctrl-←/→ – предыдущее/следующие слово

Alt-b (и тот же эффект у Ctrl-Left) – переход в начало предыдущего слова.

Alt-f (и тот же эффект у Ctrl-Right) – переход в конец следующего слова.

[00:50:10]

[00:50:10]

Настройки

bash

Подробнее значения действия редактирования командной строки bash можно посмотреть в мануал по bash’у. Действия, упомянутые в этой статье (в порядке упоминания):

♯ man bash

  • clear-screen (C-l) Clear the screen, then redraw the current line, leaving the current line at the top of the screen.

  • reverse-search-history (C-r) Search backward starting at the current line and moving `up’ through the history as necessary. This is an incremental search.

  • reverse-search-history (C-r) Search backward starting at the current line and moving `up’ through the history as necessary. This is an incremental search.

  • history-search-backward Search backward through the history for the string of characters between the start of the current line and the point. This is a non-incremental search.

  • history-search-forward Search forward through the history for the string of characters between the start of the current line and the point. This is a non-incremental search.

  • yank-last-arg (M-., M-_) Insert the last argument to the previous command (the last word of the previous history entry). With a numeric argument, behave exactly like yank-nth-arg. Successive calls to yank-last-arg move back through the history list, inserting the last word (or the word specified by the argument to the first call) of each line in turn. Any numeric argument supplied to these successive calls determines the direction to move through the history. A negative argument switches the direction through the history (back or forward). The history expansion facilities are used to extract the last word, as if the «!$» history expansion had been specified.

  • digit-argument (M-0, M-1, …, M—) Add this digit to the argument already accumulating, or start a new argument. M— starts a negative argument.

  • insert-comment (M-#) Without a numeric argument, the value of the readline comment-begin variable is inserted at the beginning of the current line. … The default value of comment-begin causes this command to make the current line a shell comment.

  • operate-and-get-next (C-o) Accept the current line for execution and fetch the next line relative to the current line from the history for editing. A numeric argument, if supplied, specifies the history entry to use instead of the current line.

  • complete (TAB) Attempt to perform completion on the text before point. Bash attempts completion treating the text as a variable (if the text begins with $), username (if the text begins with ~), hostname (if the text begins with @), or command (including aliases and functions) in turn. If none of these produces a match, filename completion is attempted.

  • complete-username (M-~) Attempt completion on the text before point, treating it as a username.

  • possible-username-completions (C-x ~) List the possible completions of the text before point, treating it as a username.

  • complete-hostname (M-@) Attempt completion on the text before point, treating it as a hostname.

  • possible-hostname-completions (C-x @) List the possible completions of the text before point, treating it as a hostname.

  • complete-variable (M-$) Attempt completion on the text before point, treating it as a shell variable.

  • possible-variable-completions (C-x $) List the possible completions of the text before point, treating it as a shell variable.

  • complete-command (M-!) Attempt completion on the text before point, treating it as a command name. Command completion attempts to match the text against aliases, reserved words, shell functions, shell builtins, and finally executable filenames, in that order.

  • possible-command-completions (C-x !) List the possible completions of the text before point, treating it as a command name.

  • complete-filename (M-/) Attempt filename completion on the text before point.

  • possible-filename-completions (C-x /) List the possible completions of the text before point, treating it as a filename.

  • insert-completions (M-*) Insert all completions of the text before point that would have been generated by possible-completions.

  • glob-expand-word (C-x *) The word before point is treated as a pattern for pathname expansion, and the list of matching filenames is inserted, replacing the word. If a numeric argument is supplied, an asterisk is appended before pathname expansion.

  • unix-word-rubout (C-w) Kill the word behind point, using white space as a word boundary. The killed text is saved on the kill-ring.

  • unix-line-discard (C-u) Kill backward from point to the beginning of the line. The killed text is saved on the kill-ring.

  • kill-line (C-k) Kill the text from point to the end of the line.

  • yank (C-y) Yank the top of the kill ring into the buffer at point.

  • yank-pop (M-y) Rotate the kill ring, and yank the new top. Only works following yank or yank-pop.

  • undo (C-_, C-x C-u) Incremental undo, separately remembered for each line.

  • backward-word (M-b) Move back to the start of the current or previous word. Words are composed of alphanumeric characters (letters and digits).

  • forward-word (M-f) Move forward to the end of the next word. Words are composed of alphanumeric characters (letters and digits).

bind -P

Можно посмотреть, какие клавиши к каким действиям редактирования командной строки bash привязаны – для этого можно воспользоваться командой «bind -P».

Есть и много других интересных комбинаций – для примера можно глянуть:

Клавиши, переключающие регистр букв:
bind -P | egrep "case|capitalize"

[00:58:35]

[00:58:35]

Клавиши, меняющие слова/буквы местами:
bind -p | grep "transpose"

Также можно настроить свои привязки – например, чтобы по комбинации «Ctrl-f» выводился результат команды «date»:

bind -x'"C-f": date'

[01:00:50]

[01:00:50]

/etc/inputrc (настройки библиотеки readline)

Так как bash и многие shell’ы используют библиотеку readline для взаимодействия с командной строкой, то можно перенастроить соответствия комбинаций клавиш и действий в /etc/inputrc.

Например, такие строки меняют поведение по умолчанию клавиш «Вверх» и «Вниз»

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

"e[A": history-search-backward
"e[B": history-search-forward

Коды клавиш можно посмотреть, используя комбинацию Ctrl-v, упомянутую выше в этой статье.

Итог

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

Если, по вашему мнению, стоило упомянуть какие-то еще полезные комбинации — напишите в комментариях.

На этом всё. Надеюсь, было полезно. Если есть какие-то вопросы и уточнения, пишите, я буду рад ответить. Также буду рад упоминаниям в комментариях, что для вас оказалось полезным/новым в этой статье. Так я пойму, что стоило упоминать, а что можно было и пропустить.


Ну, и приходите к нам учиться в «Сетевую Академию ЛАНИТ»!

В интернете есть много открытых материалов для самостоятельного изучения Linux, но даже один недельный курс (особенно очный, но подойдет и вебинарный) с хорошим инструктором позволит быстрее и продуктивнее понять суть и особенности данной системы не тратя годы на уже стандартные ошибки новичка.

Приходите к нам учится — начальный курс хороший катализатор для самостоятельного обучения ибо, как сказал один слушатель: «За два дня курса (прим., на второй день пятидневного курса), узнал больше чем за два года самостоятельного обучения«.


А в завершение загадки для оооооочень внимательно посмотревших вебинар «Сетевой Академии ЛАНИТ» по теме этой статьи:

  1. Дата, когда проходил вебинар.

  2. Какой пароль у пользователя root на системе, используемой на вебинаре?

  3. Какой дистрибутив Линукс использовался в примерах?


Мои статьи на Хабре:

  • 📃 Краткий справочник по «всем-всем» командам Linux (25.08.2022)

  • 📃 Многообразие Linux-дистрибутивов (31.08.2021)

  • 📃 Использование быстрых клавиш в командной строке Linux (BASH) (24.02.2021)

  • 📃 Обзор различных сред оформления рабочего стола в Linux (01.09.2020)

Понравилась статья? Поделить с друзьями:
  • Валидол инструкция по применению отзывы врачей
  • Кеторолак солофарм уколы инструкция по применению цена отзывы аналоги
  • Глиатилин раствор для приема внутрь детям инструкция отзывы
  • Газовая колонка вилатерм s13 инструкция по эксплуатации
  • Витам инструкция по применению в ветеринарии для птиц