Bash

Материал из Энциклопедия Хаб.ру
Перейти к: навигация, поиск

Содержание

Bash

Встроенные переменные:

$DIRSTACK - содержимое вершины стека каталогов
$EDITOR - текстовый редактор по умолчанию
$EUID - эффективный UID. Если вы использовали программу su для выполнения команд 
от другого пользователя, то эта переменная содержит UID этого пользователя
$UID - переменная, содержащая реальный идентификатор, который устанавливается только при регистрации пользователя
$FUNCNAME - имя текущей функции в скрипте
$GROUPS - массив групп, к которым принадлежит текущий пользователь
$HOME - домашний каталог пользователя
$HOSTNAME - hostname
$HOSTTYPE - архитектура машины
$LC_CTYPE - внутренняя переменная, которая определяет кодировку символов
$OLDPWD - прежний рабочий каталог
$OSTYPE - тип ОС
$PATH - путь поиска программ
$PPID - идентификатор родительского процесса
$SECONDS - время работы скрипта (в секундах)
$# - количество параметров переданных скрипту
$* - список аргументов, переданных скрипту. Разделителем между аргументами является $IFS
$@ - список аргументов, переданных скрипту. Разделителем является перенос строки
$! - PID последнего запущенного в фоне процесса
$$ - PID самого скрипта
$IFS - внутренний разделитель полей, используемый для разбивки на слова. Значением по умолчанию является пробел

Отключить спикер при ошибке ввода:

/etc/inputrc 
"set bell-style none"

Горячие клавиши

(C - Control, M - Alt)

Комманды перемещения по тексту

beginning-of-line (C-a)  - переход в начало текущей строки
end-of-line (C-e) - переход к концу текущей строки
forward-char (C-f) - переход на 1 символ вперёд
backward-char (C-b) - переход на 1 символ назад
forward-word (M-f) - передвижение курсора на одно слово вперёд
   Словом считается алфавитно-цифровая последовательность символов
backward-word (M-b) - передвижение курсора на одно слово назад
   Словом считается алфавитно-цифровая последовательность символов
clear-screen (C-l) - очищение экрана
   С аргументами очищает текущую строку без очистки экрана

Перемещение по истории команд

accept-line (Newline, Enter)
   Применяется независимо от положения курсора. Если строка не пуста, то ее содержимое добавляется к 
   списку истории, определяемое переменной HISTCONTROL. Если строка является модифицированным 
   изменением восстановленной из истории команды, то ее содержимое в том месте, откуда она была взята, 
   откатывается до оригинального состояния
previous-history (C-p) 
   Взять предыдущую команду из истории введенных ранее команд (эквивалентно клавише ↑)
next-history (C-n) 
   Взять следующую команду из истории введенных ранее команд (эквивалентно клавише ↓)

beginning-of-history (M-<) 
   Переход к первой строке в истории команд
end-of-history (M->) 
   Переход к последней команде в истории команд

reverse-search-history (C-r)
   Поиск по истории в обратном направлении, начиная с текущей строки и двигаясь вверх по истории команд. 
   Повторное нажатие - просматривание результатов поиска - инкрементальный поиск

forward-search-history (C-s)
   Поиск по истории команд в прямом направлении, начиная с текущей строки и двигаясь вниз по истории. 
   Повторное нажатие - просматривание результатов поиска -  инкрементальный поиск
 
non-incremental-reverse-search-history (M-p)
   Поиск по истории команд в обратном направлении начиная с текущей строки - не инкрементальный поиск строки,
   предоставленной пользователем
non-incremental-forward-search-history (M-n)
   Поиск по истории команд в прямом направлении, начиная с текущей строки - не инкрементальный поиск строки,
   предоставленной пользователем
history-search-forward
   Поиск далее в списке истории строки символов от начала текущей строки до позиции курсора (текущей позиции).
   Этот поиск - не инкрементный. По умолчанию команда не забиндена
history-search-backward
   Поиск в обратном направлении в списке истории строки символов от начала текущей строки до позиции курсора
   (текущей позиции). Этот поиск - не инкрементный.  По умолчанию команда не забиндена
yank-nth-arg (M-C-y)
   Вставляет первый аргумент предыдущей команды (обычно это второе слово предыдущей строки) в текущую позицию 
   курсора. Если указан аргумент n, вставляет n-ное слово предыдущей команды (слова в предыдущей команде 
   нумеруются с 0). Если аргумент - отрицательный, вставляется n-ное слово от конца предыдущей команды
yank-last-arg (M-., M-_)
   Вставляет последний аргумент предыдущей команды (последнее слово в предыдущей записи списка истории). 
   Если указан аргумент, работает также, как и команда yank-nth-arg. При последовательном вызове команды 
   yank-last-arg выполняется проход в обратном направлении по списку истории со вставкой последнего аргумента
   очередной строки
shell-expand-line (M-C-e)
   Выполняет подстановки в строке по аналогии с командным интерпретатором. Выполняются подстановки псевдонимов и команд
   из списка истории, а также подстановка слов
history-expand-line (M-^) 
   Выполняет подстановку команд из списка истории команд в текущей строке
insert-last-argument (M-., M-_) 
   Синоним для команды yank-last-arg
operate-and-get-next (C-o)
   Принимает текущую строку для выполнения и извлекает следующую строку после текущей из списка истории команд
   для редактирования. Аргументы игнорируются

Команды для изменения текста

delete-char (C-d)
   Удаляет символ в позиции курсора. Если текущая позиция - начало строки,- в строке нет символов, и 
   последняя нажатая клавиша не привязана к команде  delete-char, возвращает EOF

backward-delete-char (Rubout)
   Удаляет символ перед курсором. При указании числового аргумента сохраняет удаленный текст 
   в кольцевом буфере (kill ring)  

forward-backward-delete-char
   Удаляет символ в позиции курсора, если курсор не в конце строки. В этом случае удаляется 
   символ перед курсором. По умолчанию эта команда не привязана ни к одной комбинации клавиш

 quoted-insert (C-q, C-v)
   Добавляет следующий набранный символ буквально. Так можно вставлять, например, символы типа C-q

tab-insert (C-v TAB) 
   Вставляет символ табуляции
self-insert (a, b, A, 1, !, ...) 
   Вставляет набранный символ

transpose-chars (C-t)
   Переносит символ перед текущей позицией за текущую позицию. Текущая позиция также 
   перемещается вперед на один символ. Если текущая позиция -  конец строки, -меняет местами 
   два символа перед текущей позицией. Отрицательные аргументы не поддерживаются

transpose-words (M-t)
   Переносит предыдущее слово за слово, на котором или после которого стоит курсор. Курсор перемещается
   в конец перенесенного слова

upcase-word (M-u)
   Переводит в верхний регистр текущее или следующее слово. Если указан отрицательный аргумент, 
   переводит в верхний регистр предыдущее слово, но не меняет текущей позиции

downcase-word (M-l)
   Переводит в нижний регистр текущее или следующее слово. Если указан отрицательный аргумент, 
   переводит в верхний регистр предыдущее слово, но не меняет текущей позиции

capitalize-word (M-c)
   Начинает с заглавной буквы текущее или следующее слово. Если указан отрицательный аргумент, 
   начинает с заглавной буквы предыдущее слово, но не меняет текущей позиции

Удаление и вставка

kill-line (C-k)
   Удаляет текст от текущей позиции курсора до конца строки

backward-kill-line (C-x Rubout) 
   Удаляет текст до начала строки

unix-line-discard (C-u)
   Удаляет текст от текущей позиции до начала строки. Удаленный текст помещается в кольцевой буфер

kill-whole-line 
   Удаляет все символы текущей строки, независимо от позиции курсора

kill-word (M-d)
   Удаляет символы от курсора до конца слова или, если курсор стоит между словами, до конца следующего слова
   Границы слов определяются так же, как и для команды forward-word

backward-kill-word (M-Backspace)
   Удаляет слово перед курсором. Границы слова определяются также, как и в команде backward-word

unix-word-rubout (C-w)
   Удаляет слово перед курсором, используя в качестве ограничителя слов пробельные символы
   Границы слова, таким образом, отличаются от принятых в команде backward-kill-word

delete-horizontal-space (M-\) 
   Удаляет все пробелы и символы табуляции вокруг текущей позиции

kill-region
   Удаляет весь текст от текущей позиции до отметки (запомненной позиции курсора)
   Этот текст называют областью (region)

copy-region-as-kill 
   Копирует текст области в буфер

copy-backward-word
   Копирует слово перед текущей позицией в буфер. Границы слов определяются также, как и в команде backward-word

copy-forward-word
   Копирует слово после текущей позиции в буфер. Границы слов определяются также, как в команде forward-word

yank (C-y) 
   Вставляет верхний элемент кольцевого буфера в позиции курсора

yank-pop (M-y)
   Прокручивает кольцевой буфер и вставляет новый верхний элемент. Работает только после команды yank или yank-pop

Дополнение введенных команд

complete (TAB)
   Пытается завершить текст, введенный до текущей позиции. Командный интерпретатор bash пытается 
   выполнить возможные окончания, рассматривая текст последовательно как обращение к переменной 
   (если текст начинается с $), как имя пользователя (если текст начинается с ~), как имя хоста 
   (если текст начинается с @), или как команду (включая псевдонимы и функции). Если ни одним 
   из этих способов завершить строку не удалось, выполняется попытка завершения имени файла

possible-completions (M-?) 
   Список возможных окончаний текста до текущей позиции
insert-completions (M-*)
   Вставляет все окончания введенного текста, генерируемые командой possible-completions

menu-complete
   Аналогична команде complete, но заменяет завершаемое слово первым из возможных дополнений. 
   Повторное выполнение команды menu-complete вставляет следующий элемент из списка возможных 
   окончаний. В конце списка окончаний выдается сигнал и восстанавливается исходный текст. 
   Аргумент n вызывает переход на n позиций вперед в списке окончаний, а отрицательный аргумент 
   вызывает переход по списку в обратном направлении. Предполагается привязка этой команды к
   клавише TAB, но по умолчанию она не привязана ни к одной комбинации клавиш

delete-char-or-list
   Удаляет символ в позиции курсора, если курсор не находится в начале или в конце строки (аналогично 
   команде delete-char). Если курсор - в конце строки, - ведет себя аналогично команде possible-completions
   Эта команда стандартно ни к какой комбинации клавиш не привязана

complete-filename (M-/) 
   Пытается завершить введенный текст до текущей позиции, как имя файла

possible-filename-completions (C-x /)
   Выдает возможные окончания текста до текущей позиции, интерпретируемого как имя файла

complete-username (M-~) 
   Пытается завершить введенный текст до текущей позиции, как имя пользователя

possible-username-completions (C-x ~)
   Выдает возможные окончания текста до текущей позиции, интерпретируемого как имя пользователя

complete-variable (M-$)
   Пытается завершить введенный текст до текущей позиции, как обращение к переменной командного 
   интерпретатора

possible-variable-completions (C-x $)
   Выдает возможные окончания текста до текущей позиции, интерпретируемого как обращение к 
   переменной командного интерпретатора

complete-hostname (M-@) 
   Пытается дополнить введенный текст до текущей позиции, как имя хоста

possible-hostname-completions (C-x @)
   Выдает возможные окончания текста до текущей позиции, интерпретируемого как имя хоста

complete-command (M-!)
   Пытается дополнить введенный текст до текущей позиции, как имя команды. При дополнении 
   команд текст сопоставляется последовательно с псевдонимами, зарезервированными словами, 
   функциями командного интерпретатора, встроенными функциями командного интерпретатора, а также 
   с именами выполняемых файлов.

possible-command-completions (C-x !)
   Выдает возможные дополнения текста до текущей позиции, интерпретируемого как имя команды

dynamic-complete-history (M-TAB)
   Пытается дополнить введенный текст до текущей позиции, сравнивая его со строками из списка истории 
   выполненных команд, в поисках возможных соответствий

complete-into-braces (M-{)
   Выполняет дополнение имени файла и возвращает список возможных дополнений в фигурных скобках
   для возможности обработки его командным интерпретатором

Макросы клавиатуры

start-kbd-macro (C-x () 
   Начинает сохранение набранных символов в текущий клавиатурный макрос
end-kbd-macro (C-x ))
   Останавливает сохранение набранных символов в текущий клавиатурный макрос и сохраняет его определение
call-last-kbd-macro (C-x e)
   Выполняет последний определенный клавиатурный макрос, выводя символы макроса так, как если бы они были 
   введены при помощи клавиатуры

Разное

re-read-init-file (C-x C-r)
   Перечитывает содержимое файла inputrc и учитывает все указанные в нем привязки клавиш и значения переменных

abort (C-g)
   Прерывает текущую команду редактирования и выдает сигнал терминала (вид сигнала задается командой bell-style)

do-uppercase-version (M-a, M-b, M-x, ...)
   Если символ x, введенный вместе с клавишей Meta, является символом нижнего регистра, выполнить команду, 
   привязанную к соответствующему символу в верхнем регистре

prefix-meta (ESC)
   Рассматривать следующий введенный символ как предваренный клавишей Meta. ESC f эквивалентно Meta-f

undo (C-_, C-x C-u) 
   Инкрементная отмена, запоминаемая отдельно для каждой строки

revert-line (M-r)
   Отмена всех изменений текущей строки. Аналогична выполнению несколько раз  команды undo до возвращения 
   строки в исходное состояние
 
tilde-expand (M-&) 
   Выполняет замену тильды в текущем слове

set-mark (C-@, M-<space>)
   Устанавливает метку в текущей позиции. Если задан числовой аргумент, метка устанавливается в соответствующей 
   позиции

exchange-point-and-mark (C-x C-x)
   Меняет местами метку и текущую позицию. Текущей позицией курсора становится запомненная в метке, а прежняя 
   позиция курсора запоминается в метке

character-search (C-])
   Читается символ, и курсор переводится на следующее вхождение этого символа. Отрицательный аргумент означает 
   поиск предыдущего вхождения

character-search-backward (M-C-])
   Читается символ, и курсор переводится на предыдущее вхождение этого символа. Отрицательный аргумент означает 
   поиск следующего вхождения

insert-comment (M-#)
   Значение переменной comment-begin библиотеки readline вставляется в начало текущей строки, и строка принимается, 
   как при нажатой клавише Enter. В результате, текущая строка становится комментарием командного интерпретатора

glob-complete-word (M-g)
   The word before point is treated as a pattern for pathname expansion, with an  asterisk
   implicitly  appended.   This  pattern is used to generate a list of matching file names
   for possible completions.

glob-expand-word (C-x *)
   Слово перед текущей позицией рассматривается как шаблон имен файлов, и вместо него вставляется список соответствующих
   имен файлов

glob-list-expansions (C-x g)
   Выдается список имен файлов, генерируемых командой glob-expand-word, а затем снова исходная строка

display-shell-version (C-x C-v) 
   Показывает информацию о версии текущего экземпляра командного интерпретатора bash

dump-functions ()
   Возвращает все функции и комбинации клавиш, к которым они привязаны, в выходной поток readline. 
   Если задан числовой аргумент, результат форматируется так, что его можно непосредственно включить в файл inputrc

dump-variables ()
   Возвращает все изменяемые переменные readline вместе с их значениями в выходной поток readline. 
   Если задан числовой аргумент, результат форматируется так, что его можно непосредственно включить в файл inputrc

dump-macros ()
   Возвращает все комбинации клавиш readline, привязанные к макросам, и строки, которые выдаются при их нажатии. 
   Если задан числовой аргумент, результат форматируется так, что его можно непосредственно включить в файл inputrc

Внешние ссылки

Bash Reference Manual

Источник — «http://www.hub.ru/wiki/Bash»
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты