Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Интернет: маркетинг, реклама, торговля" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Страницы справочного руководства ОС UNIX на русском : man ksh(1), часть шестая
Информационный Канал Subscribe.Ru |
Выпуск 147
man ksh(1), часть шестая
Уважаемые подписчики!
Это шестой выпуск из серии, посвященной командному интерпретатору ksh.
Перевод, по сложившейся традиции, сделан по справочному руководству ОС Solaris 8.
Поскольку по правилам оформления рассылок в них не должно быть "висящих" гиперссылок href, не все перекрестные ссылки в выпусках, посвященных ksh, оформлены как гиперссылки. Когда перевод будет закончен, вы сможете скачать с сайта рассылки всю страницу в целом, со всеми необходимыми перекрестными и внешними ссылками.
Режим редактирования vi
Поддерживается два режима набора текста. Первоначально, при вводе команды вы находитесь в режиме ввода. Для редактирования войдите в управляющий режим, нажав ESC (033), и переместите курсор в позицию, где требуется исправление, а затем вставьте или удалите соответствующие символы или слова. Большинство управляющих команд можно предварять необязательным числом, задающим количество повторений.
При работе в режиме vi в большинстве систем, каноническая обработка изначально включена, и команда будет выдавать снова, если скорость обмена данными - 1200 бод или выше, и она содержит любые управляющие символы, или с момента выдачи приглашения прошло менее секунды. Ввод символа ESC прекращает каноническую обработку для остальной части команды, и пользователь затем может изменять командную строку. Эта схема имеет преимущества над канонической обработкой за счет опережающего ввода с клавиатуры в непосредственном режиме.
Если также установлена опция viraw, для терминала каноническая обработка будет всегда отключена. Этот режим принят неявно для систем, не поддерживающих два альтернативных ограничителя конца строки, и может оказаться полезным для некоторых терминалов.
Команды редактирования ввода
По умолчанию редактор находится в режиме ввода.
- erase
-
(Заданный пользователем с помощью команды stty(1) символ erase,
обычно - ^H или #.) Удалить предыдущий символ.
- ^W
-
Удалить предыдущее слово, отделенное пробелами.
- ^D
-
Завершить работу командного интерпретатора.
- ^V
-
Замаскировать следующий символ. Символы редактирования и заданные пользователем
символы erase или kill можно вводить в командной строке или строке
поиска, если предварить комбинацией ^V. Комбинация ^V удаляет
управляющие свойства следующего символа (если они у него есть).
- \
- Замаскировать следующий символ erase или kill.
Команды перемещения курсора
Эти команды будут перемещать курсор.
- [число]l
-
Переместить курсор вперед (вправо) на один символ.
- [число]w
-
Переместить курсор вперед на одно (алфавитно-цифровое) слово.
- [число]W
-
Переместить курсор на начало следующего слова после пробела.
- [число]e
-
Переместить курсор на конец слова.
- [число]E
-
Переместить курсор на конец текущего слова, отделенного пробелом.
- [число]h
-
Переместить курсор назад (влево) на один символ.
- [число]b
-
Переместить курсор назад на одно слово.
- [число]B
-
Переместить курсор на предыдущее слово, отделенное пробелом.
- [число]|
-
Переместить курсор на столбец, заданный числом.
- [число]fc
-
Найти следующий символ c в текущей строке.
- [число]Fc
-
Найти предыдущий символ c в текущей строке.
- [число]tc
-
Эквивалентно последовательности команд f и h.
- [число]Tc
-
Эквивалентно последовательности команд F и l.
- [число];
-
Повторить указанное число раз последнюю команду поиска символа,
f, F, t или T.
- [число],
-
Повторить указанное число раз последнюю команду поиска символа
в противоположном направлении.
- 0
-
Переместить курсор в начало строки.
- ^
-
Переместить курсор на первый не пробельный символ в строке.
- $
-
Переместить курсор на конец строки.
- %
- Перейти к соответствующей скобке, (, ), {, }, [ или ]. Если курсор не находится на одном из перечисленных выше символов, сначала в оставшейся части строки ищется первое вхождение одного из них.
Команды поиска
Эти команды обеспечивают доступ к истории выполненных интерпретатором команд.
- [число]k
-
Выбрать предыдущую команду. При каждом вводе k возвращается предыдущая
по времени команда.
- [число]-
-
Эквивалентна k.
- [число]j
-
Выбрать следующую команду. При каждом вводе j возвращается следующая
по времени команда.
- [число]+
-
Эквивалентна j.
- [число]G
-
Выбирается команда с номером, задаваемым числом. По умолчанию -
последняя выполненная.
- /строка
-
Искать предыдущую по времени команду, содержащую строку.
Строка завершается нажатием RETURN или символом NEWLINE. Если строка
начинается символом ^, сопоставление ведется с начала команды. Если указана
пустая строка, производится поиск строки, которую искали перед этим.
- ?строка
-
То же, что и /, но выполняется поиск следующей по времени команды.
- n
-
Искать следующее соответствие последнему шаблону, заданном в команде / или ?.
- N
- Искать следующее соответствие последнему шаблону, заданном в команде / или ?, но в противоположном направлении. Просматривать историю в поисках строки, указанной в предыдущей команде /.
Команды изменения текста
Эти команды будут изменять строку.
- a
-
Перейти в режим ввода и ввести (добавить) текст после текущего символа.
- A
-
Добавить текст в конце строки. Эквивалентна $a.
- [число]cперемещение
c[число]перемещение -
Удалить от текущего символа до символа, на который был бы установлен курсор при
указанном перемещении, и перейти в режим ввода.
Если в качестве перемещения указано c, удалить всю строку и перейти
в режим ввода.
- C
-
Удалить все от текущего символа до конца строки и перейти в режим ввода.
Эквивалентна c$.
- [число]s
-
Удалить указанное число символов и перейти в режим ввода.
- S
-
Эквивалентна cc.
- D
-
Удалить от текущего символа до конца строка. Эквивалентна d$.
- [число]dперемещение
d[число]перемещение -
Удалить от текущего символа до символа, на который был бы установлен курсор при
указанном перемещении. Если в качестве перемещения указано d,
удаляется вся строка.
- i
-
Перейти в режим ввода и вставить текст перед текущим символом.
- I
-
Вставить текст перед началом строки. Эквивалентна 0i.
- [число]P
-
Поместить предыдущее изменение текста перед курсором.
- [число]p
-
Поместить предыдущее изменение текста после курсора.
- R
-
Перейти в режим ввода и заменить символы на экране набираемыми символами,
переписывая поверх.
- [число]rc
-
Заменить указанное число символов, начиная с текущей позиции,
символом c, и перевести курсор на следующий символ.
- [число]x
-
Удалить текущий символ.
- [число]X
-
Удалить предыдущий символ.
- [число].
-
Повторить предыдущую команду изменения текста.
- [число]~
-
Изменить на противоположный регистр указанного числа символов,
начиная с текущей позиции курсора, и перевести курсор на следующий символ.
- [число]_
-
Вызывает добавление указанного числа слов предыдущей команды и переход
в режим ввода. Если число не указано, используется последнее слово.
- *
-
Вызывает добавление * к текущему слову и выполняет попытку генерации
имен файлов. Если соответствующие файлы не найдены, выдается звуковой сигнал.
В противном случае, слово заменяется соответствующими файлами и выполняется переход в режим ввода.
- \
- Завершить имя файла. Заменяет текущее слово самым длинным общим префиксом всех имен файлов, соответствующих текущему слову с добавлением звездочки. Если соответствие ровно одно, добавляется /, если файл является каталогом, и пробел, если файл не является каталогом.
Другие команды редактирования
Команды различного назначения.
- [число]yперемещение
y[число]перемещение -
Копировать символы от текущего до символа, на который был бы помещен курсор при
указанном перемещении, в буфер удаления. Текст и позиция курсора
не меняются.
- Y
-
Копировать в буфер от текущей позиции до конца строки. Эквивалентна y$.
- u
-
Отменить последнюю команду изменения текста.
- U
-
Отменить все команды изменения текста, выполненные над строкой.
- [число]v
-
Возвращает результат редактирования (с помощью fc -e ${VISUAL:-${EDITOR:-vi}})
соответствующей числу команды во входном буфере. Если число
не указано, используется текущая строка.
- ^L
-
Перевести строку и выдать текущую строку. Срабатывает только в управляющем режиме.
- J(Новая строка)
-
Выполнить текущую строку, независимо от режима.
- M(Return)
-
Выполнить текущую строку, независимо от режима.
- #
-
Если первый символ команды - #, то эта команда удаляет этот символ
# и каждый # после новой строки. В противном случае,
вставляет символ # перед каждой строкой команды. Позволяет вставить
текущую строку в историю выполненных команд как комментарий, и удалять
комментарии с ранее закомментированных команд, выбранных из файла истории.
- =
-
Выдать имена файлов, соответствующих текущему слову с добавлением звездочки.
- @буква
- Просматривается список псевдонимов в поисках псевдонима _буква и, если такой псевдоним определен, его значение будет вставлено во входную очередь для обработки.
Специальные команды
Следующие простые команды выполняются процессом командного интерпретатора. Перенаправление ввода-вывода разрешено. Если не указано иначе, результаты записываются в файл с дескриптором 1, а статус выхода, если нет синтаксической ошибки, - 0. Команды, перед которыми ниже указана одна или две звездочки (*), обрабатываются следующим специальным образом:
- Списки присвоений переменным, предшествующие команде, остаются в силе после завершения команды.
- Перенаправления ввода-вывода выполняются после присвоения значений переменным.
- Ошибки вызывают прекращение работы сценария, в котором они содержатся.
- Слова, следующие за командой, помеченной **, соответствующие формату присвоения значений переменным, обрабатываются по тем правилам, что и присвоения. Это означает, что подстановка тильды выполняется после знака =, а разбиение на слова и генерация имен файлов не выполняется.
- * : [аргумент...]
-
Эта команда только подставляет параметры.
- * . файл [аргумент...]
-
Прочитать весь файл и выполнить указанные в нем команды. Команды выполняются в среде
текущего командного интерпретатора. Путь поиска, задаваемый переменной PATH
используется для поиска каталога, содержащего файл. Если указаны
аргументы, они становятся позиционными параметрами. В противном случае,
позиционные параметры не меняются. Статусом выхода является статус выхода последней
выполненной команды.
- ** alias [-tx] [имя[=значение]]...
-
Команда alias без аргументов выдает список псевдонимов в виде
имя=значение в стандартный выходной поток. Псевдоним
определен для каждого имени, значение которого выдано. Хвостовой пробел
в значении вызывает проверку следующего слова на подстановку псевдонима.
Флаг -t используется для установки и выдачи отслеживаемых (tracked) псевдонимов.
Значение отслеживаемого псевдонима - полное имя файла, соответствующего данному
имени. Значение становится неопределенным при изменении значения переменной
PATH, но псевдоним остается отслеживаемым. Без флага -t для каждого
имени в списке аргументов, для которого не указано значение,
выдается имя и значение псевдонима. Флаг -x используется для установки или
выдачи экспортированных псевдонимов. Экспортированный псевдоним определен для
сценариев, вызываемых по имени. Статус выхода - ненулевой, если указано
имя, но не указано значение, и для этого имени не был
определен псевдоним.
- bg [%задание...]
-
Эта команда работает только в системах, поддерживающих управление заданиями.
Переводит каждое указанное задание в фоновый режим. Если задание не указано,
в фоновый режим переводится текущее задание. Описание формата параметра
задание см. в разделе "Задания" выше.
- * break [n]
-
Выйти из охватывающего цикла for, while, until или
select, если он есть. Если указано значение n, выйти из
n уровней вложенных циклов.
- * continue [n]
-
Перейти на следующую итерацию охватывающего цикла for, while,
until или select. Если указано значение n,
перейти на следующую итерацию n-ного охватывающего цикла.
- cd [аргумент]
cd старый новый -
Эта команда может быть в одной из двух форм. В первой форме она изменяет
текущий каталог на указанный в качестве аргумента. Если указан
аргумент -, каталог меняется на предыдущий. Значение переменной
командного интерпретатора HOME является стандартным значением
аргумента. Переменная PWD устанавливается равной текущему
каталогу. Переменная командного интерпретатора CDPATH задает путь поиска
для каталога, заданного в качестве аргумента. Альтернативные имена
каталогов разделяются двоеточием (:). Стандартный путь - пустой (что
задает текущий каталог). Учтите, что текущий каталог задается пустым именем,
которое может указываться сразу после символа равенства или между двоеточиями
в любом месте списка каталогов. Если аргумент начинается с /,
то путь поиска не используется. В противном случае, каждый каталог в пути
просматривается в поисках аргумента.
Вторая форма команды cd подставляет строку новая вместо строки старая в имени текущего каталога, PWD, и пытается перейти в этот новый каталог. Команда cd не может быть выполнена командным интерпретатором rksh.
- command [-p] [имя_команды] [аргумент...]
command [-v -V] имя_команды -
Утилита command заставляет командный интерпретатор обрабатывать аргументы
как простую команду, подавляя поиск функции командным интерпретатором. Флаг
-p приводит к поиску команды с использованием стандартного значения
PATH, по которому гарантировано будут найдены стандартные утилиты.
Флаг -v записывает в стандартный выходной поток строку -
полное имя или команду, которая будет использоваться командным интерпретатором,
в текущей среде, для вызова имени_команды. Флаг -V
выдает в стандартный выходной поток строку, показывающую, как указанное
имя_команды будет интерпретироваться командным интерпретатором
в текущей среде.
- echo [аргумент...]
-
Описание и использование см. на странице справочного руководства echo(1).
- * eval [аргумент...]
-
Аргументы читаются как входные данные для командного интерпретатора, а
получившаяся команда или команды выполняются.
- * exec [аргумент...]
-
Если указаны аргументы, соответствующая команда выполняется
вместо данного командного интерпретатора, без создания нового процесса.
Среди аргументов могут быть перенаправления ввода-вывода, которые влияют
на текущий процесс. Если аргументы не заданы, эта команда изменяет
дескрипторы файлов как предписывается списком перенаправления ввода-вывода.
В этом случае, любые дескрипторы файлов больше 2, открытые с помощью этого
механизма, закрываются при вызове другой программы.
- * exit [n]
-
Требует от вызывающего командного интерпретатора или сценария завершить работу
со статусом выхода n. Значением будут младшие 8 битов
указанного статуса. Если значение n не указано, статусом выхода
будет статус выхода последней выполненной команды. При выходе, если срабатывает
обработчик сигнала, последней выполненной считается команда, выполненная
перед срабатыванием обработчика. Символ EOF (конец файла) также приводит к
завершению работы командного интерпретатора, если только для него не установлена
опция ignoreeof(см. команду set ниже).
- ** export [имя[=значение]]...
-
Указанные имена помечаются для автоматического экспортирования в среду
последующих команд.
- fc [-e редактор] [-nlr] [первая [последняя]]
fc -e - [старое=новое] [команда] -
В первой форме, из списка последних введенных с терминала HISTSIZE
команд выбирается диапазон команд с первой по последнюю.
Аргументы первая и последняя могут быть указаны
как число или как строка. Строка используется для нахождения самой недавней
команды, которая с нее начинается. Отрицательное число используется как
смещение от номера текущей команды. Если выбран флаг -l,
соответствующие команды выдаются в стандартный выходной поток. В противном
случае, вызывается указанный редактор для файла, содержащего
соответствующие команды. Если редактор не указан, то используется
редактор, заданный значением переменной FCEDIT (по умолчанию -
/bin/ed). По завершении редактирования, отредактированные команды
выполняются. Если параметр последняя не указан, он будет установлен
равным параметру первая. Если не указан параметр первая,
по умолчанию используется предыдущая команда для редактирования и -16 для выдачи.
Флаг -r изменяет порядок следования команд, а флаг -n подавляет
показ номеров команд при выдаче. Во второй форме команда повторно
выполняется после выполнения подстановки старое=новое.
Если аргумент команда не задан, выполняется самая последняя
команда, введенная с этого терминала.
- fg [%задание...]
-
Эта команда работает только в системах, поддерживающих управление заданиями.
Каждое указанное задание переводится в приоритетный режим.
В противном случае, в приоритетный режим переводится текущее задание.
Описание формата параметра задание см. в разделе "Задания" выше.
- getopts строка_опций имя [аргумент...]
-
Проверяет аргументы на соответствие синтаксису опций. Если ни один
аргумент не указан, используются позиционные параметры. Аргумент-опция
начинается с + или -. Аргумент, не начинающийся с + или
-, а также аргумент - заканчивают список опций. Строка_опций
содержит список букв, которые распознает команда getopts. Если после буквы
идет :, предполагается, что у этой опции есть аргумент. Опции можно отделять
от аргумента пробелами.
Команда getopts помещает следующую найденную букву опции в переменную имя, при каждом вызове, добавляя +, если аргумент начинается с +. Индекс следующего аргумента запоминается в переменной OPTIND. Аргумент опции, если есть, запоминается в переменной OPTARG.
Начальный символ : в строке_опций требует от getopts сохранять букву недопустимой опции в OPTARG, а также устанавливать переменной имя значение ?, если опция неизвестна, и значение :, если требуемая опция отсутствует. В противном случае, команда getopts выдает сообщение об ошибке. Статус выхода - ненулевой, когда опций больше нет. Описание и принципы использования см. на странице справочного руководства getoptcvt(1).
- hash [имя...]
-
Для каждого имени командный интерпретатор определяет и запоминает
местонахождение в пути поиска соответствующей команды. Опция -r заставляет
командный интерпретатор забыть все запомненные местонахождения. Если аргументы не
указаны, выдается информация о запомненных командах. В поле hits выдается
количество вызовов соответствующей команды процессом командного интерпретатора.
В поле cost выдается оценка объема работы для нахождения команды в пути поиска.
Если команда найдена в "относительном" каталоге в пути поиска, после перехода в
этот каталог, запомненное местонахождение этой команды перевычисляется. Команды, для
которых это было сделано, помечаются звездочкой (*) по соседству с информацией
о количестве вызовов. При перевычислении стоимость (cost) увеличивается.
- jobs [-lnp] [%задание...]
-
Выдает информацию о каждом из указанных заданий или обо всех
активных заданиях, если задания явно не указаны. Флаг -l приводит к выдаче
идентификаторов процессов, помимо обычной информации. Флаг -n выдает только
задания, остановленные или завершившиеся с момента последнего уведомления.
Флаг -p вызывает выдачу только группы процесса. Описание формата параметра
задание см. в разделе "Задания" выше и на странице справочного
руководства jobs(1).
- kill [-сигнал] %задание...
kill [ -sig ] идентификатор_процесса...
kill -l -
Посылает либо сигнал TERM (завершить), либо указанный сигнал
перечисленным заданиям или процессам. Сигналы можно задавать по номеру или по имени
(как описано на странице справочного руководства signal(3HEAD), но без
префикса "SIG", за исключением сигнала SIGCHD, для которого надо
использовать имя CHLD). Если посылается сигнал TERM (завершить)
или HUP (отключение), то остановленному заданию или процессу будет послан
сигнал CONT (продолжить). В качестве аргумента задание можно
указывать идентификатор процесса, не входящего ни в одно из активных заданий.
Описание формата параметра задание см. в разделе "Задания".
Во второй форме, kill -l, выдаются имена и номера сигналов.
- let аргумент...
-
Каждый аргумент обрабатывается как отдельное арифметическое
выражение для вычисления. Описание вычисления арифметического выражения см.
в разделе "Вычисление арифметических выражений".
Статусом выхода будет 0, если значение последнего выражения - ненулевое, и 1 в противном случае.
- login аргумент...
-
Эквивалентна команде exec login аргумент.... Описание см.
на странице справочного руководства
login(1).
- * newgrp [аргумент...]
-
Эквивалентна команде exec /bin/newgrp аргумент....
- print [-Rnprsu[n]] [аргумент...]
-
Механизм вывода командного интерпретатора.
При вызове без флагов или с флагом -, аргументы выдаются в стандартный выходной поток, как описано на странице справочного руководства echo(1). Статус выхода будет 0, если только получится открыть выходной файл на запись.
- -n
-
Подавляет выдачу символа новой строки при выводе.
- -R | -r
-
Непосредственный (raw) режим. Игнорируются соглашения по управляющим последовательностям
команды echo. Опция -R будет выдавать все последующие аргументы и опции,
кроме -n.
- -p
-
Записывает аргументы в программный канал процесса, запущенного с помощью |&, а не
в стандартный выходной поток.
- -s
-
Выдает аргументы в файл истории, а не в стандартный выходной поток.
- -u [n]
- Указывает одну цифру - номер дескриптора файла n, в который будет выполнен вывод. По умолчанию используется 1.
- pwd
-
Эквивалентна print -r - $PWD.
- read [-prsu[n]] [имя?приглашение] [имя...]
-
Механизм ввода командного интерпретатора. Одна строка читается и разбивается на
поля по разделителям, указанным в переменной IFS. Символ маскировки, (\),
используется для отмены специального значения следующего символа и для продолжения
ввода на следующей строке. В непосредственном (raw) режиме, -r, символ \
не имеет специального значения. Первое поле присваивается первому имени,
второе - второму и т.д., а оставшиеся поля присваиваются последнему имени.
Опция -p вызывает получение входной строки из входного канала процесса,
порожденного командным интерпретатором с помощью |&. Если указан флаг -s,
ввод будет сохранен как команда в файле истории. Флаг -u можно использовать
для указания одной цифрой дескриптора файла, n, из которого надо читать.
Дескриптор файла можно открыть с помощью специальной команды exec.
Значение n по умолчанию - 0. Если имя не указано,
в качестве стандартного используется REPLY. Статус выхода будет 0, за исключением
ситуаций, когда не удалось открыть входной файл на чтение или обнаружен символ EOF.
EOF при использовании опции -p вызывает очистку для соответствующего процесса, так что
можно будет породить новый процесс. Если первый аргумент содержит ?,
оставшаяся часть этого слова используется как приглашение, выдаваемое в стандартный
поток ошибок при работе командного интерпретатора в интерактивном режиме. Статус
выхода - 0, если только не обнаружит символ EOF.
- ** readonly [имя[=значение]]...
-
Указанные имена помечаются как доступные только для чтения и они не могут
быть изменены последующими присвоениями.
- * return [ n ]
- Вызывает выход из функции или сценария, запущенного через '.', в вызывающий сценарий со статусом возврата n. Значением будут младшие 8 битов указанного статуса. Если n не указано, возвращается статус выхода последней выполненной команды. Если команда return вызвана не в функции и не в сценарии, запущенном через '.', она соответствует команде exit.
Copyleft (no c) 2005 В. Кравчук, OpenXS Initiative, перевод на русский язык
В следующем выпуске
Следующая часть перевода страницы справочного руководства ksh(1).
С наилучшими пожеланиями,
В.К.
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.othos.unixman |
Отписаться |
В избранное | ||