Эта глава описывает, как использовать библиотеку GNU History интерактивно, c точки зрения пользователя. Она должна рассматриваться как руководство пользователя.
Библиотека History обеспечивает средства раскрывания истории, подобные
предоставляемым csh
. Этот раздел описывает
синтаксис, использующийся для управления информацией истории.
Раскрывание истории вводит слова из списка истории во входной поток, облегчая повторение команд, вставку аргументов предыдущей команды в текущую строку ввода или быстрое устранение ошибок в предыдущей команде.
Раскрывание истории происходит в два этапа. Первый заключается в определении, какая из строк списка истории должна использоваться в процессе замены. На втором этапе выбираются части этой строки для включения в текущую. Строка, выбранная из истории, называется событием, а использованные части называются словами. Существуют различные модификаторы для манипулирования выбранными словами. Строка разбивается на слова так же, как это делает Bash, так что несколько слов, заключенных в кавычки, рассматриваются как одно слово. Раскрывания истории вводятся появлением специального знака, по умолчанию это `!'.
Указатель событий является ссылкой на запись командной строки в списке истории.
!
!
не следует пробел,
знак табуляции, знак конца строки, `=' или `('.
!n
!-n
!!
!строка
!?строка[?]
^строка1^строка2^
!!:s/строка1/строка2/
.
!#
Указатели слов используются для выбора желаемых слов из события. Спецификация события отделяется от указателя слова двоеточием. Его можно опустить, если указатель слова начинается с `^', `$', `*', `-' или `%'. Слова нумеруются от начала строки, причем первому слову присваивается номер 0 (ноль). Слова вставляются в текущую строку, разделенные одиночными пробелами.
Например,
!!
!!:$
!$
.
!fi:2
fi
.
Вот указатели слов:
0 (ноль)
n
^
$
%
x-y
*
x*
x-
Если указатель слова задается без указания события, в качестве события используется предыдущая команда.
После необязательного указателя слова вы можете добавить последовательность из одного или более следующих модификаторов, перед каждым из которых ставится двоеточие.
h
r
e
p
s/старое/новое/
&
g
gs/старое/новое/
, или с `&'.