Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 88
Текст из файла (страница 88)
Существует четыре варианта использования журнала:• Повторное выполнение одной из предыдущих команд• Подстановка команд•Подстановка аргументов (определенных параметров команды)• Использование модификаторов для извлечения или замены частей команды или словаВ следующих подразделах описаны инструменты csh, применяемые для редактирования и повторного выполнения команд. При работе с tcsh доступналюбая из этих возможностей. Кроме того, клавиши управления курсоромобеспечивают навигацию в командной строке, а команды редактирования,описанные далее в разделе «Редактирование командной строки», - изменение команд. Клавиши управления курсором в tcsh следующие:КлавишаДействие<Вверх>Предыдущая команда<Вниз>Следующая команда<Влево>Переместиться влево по командной строке<Вправо>Переместиться вправо по командной строкеПодстановка командКомандаОписаниеУказание интерпретатору на начало подстановки из журнала командВыполнить последнюю команду!NКоманда номер Л/ из журнала! -Л/Команда, отстоящая назад от текущей на Л/!stringСамая недавняя команда, начинающаяся со строки string600Глава 8.
Интерпретаторы csh и tcshКомандаОписание\1string?Самая недавняя команда, содержащая строку string\?string?%Аргумент самой недавней команды, содержащий строку string!$Последний аргумент предыдущей команды! ! stringВыполнить предыдущую команду с добавлением строки stringIN stringВыполнить команду с номером Л/ с добавлением строки stringI {s1}s2Самая недавняя команда, начинающаяся со строки s7; выполнить с добавлением строки s2~old~new~Быстрая подстановка; в последней команде заменить строку old на строку new и выполнить измененную командуПримеры подстановки командРассматривается следующая команда:%3 vi cprogs/01.c ch002 ch03Номер событияВведенная командаВыполняемая команда4-осгоvi cprogs/01.c ch02 ch035nroff ! *nroff cprogs/01.c ch02 ch036nroff !$nroff ch037!vivi cprogs/01.c ch02 ch038!6nroff ch039!?01vi cprogs/01.c ch02 ch0310! {nr} . newnroff ch03.
new11!!|lpnroff ch03. new | Ip12more !?pr?%more cprogs/01 . сПодстановка словДвоеточие может предварять любой из спецификаторов слов:Спецификатор ОписаниеИмя командыАргумент с номером лПервый аргументПоследний аргумент601Журнал командСпецификатор Описание: л-тАргументы из диапазона от п до я-тСлова с 0 по т; идентично : 0-яСлова с л до предпоследнегоАргументы от п до последнего; идентично л-$ЛВсе аргументы; идентично —$ или 1—$Текущая командная строка до текущей позиции; практически бесполезный спецификаторПримеры подстановки словРассматривается команда%13 cat ch01 ch02 ch03 biblio backНомер событияВведенная командаВыполняемая команда14Is ИЗ"Is ch0115sort И З : *sort ch01 ch02 ch03 biblio back16more !cat:3*more ch03 biblio back17! cat: 0-3cat ch01 ch02 ch0318vi !-5:4vi biblioМодификаторы команд журналаПодстановки команд и слов могут модифицироваться следующим образом:Отображение, замена и экранированиеМодификатор Описание:рОтобразить команду, но не выполнять ее:s/old/newЗаменить первое вхождение подстроки old на newigs/old/пенЗаменить все вхождения подстроки old на new:&Повторить предыдущую замену (команда :s или ") первого вхожде-:g&Повторить предыдущую замену для всех вхожденийЗаключить список слов в кавычкиЗаключить в кавычки отдельные словаГлава 8.
Интерпретаторы csh и tcsh602УсечениеМодификатор ОписаниеИзвлечение первого доступного корня путевого имени (до последнегосимвола точки):гИзвлечение всех корнейИзвлечение первого доступного расширения имени файла (символыза последней точкой):geИзвлечение всех расширений:hИзвлечение первого доступного заголовка (до последнего символа /):ghИзвлечение всех заголовков из имен файлов:tИзвлечение первого доступного хвоста путевого имени (символы запоследним слэшем):gtИзвлечение всех хвостовПеревод в верхний регистр первой строчной буквы (только в tcsh)Перевод в нижний регистр первой прописной буквы (только в tcsh):аПрименить к слову модификаторы, следующие за а, столько раз,сколько возможно. Если а используется совместно с модификаторомg, то применяется ко всем словам (только в tcsh)Примеры использования модификаторов команд журналаВ продолжение вышеприведенных примеров команда номер 17 выглядит так:9617 cat ch01 ch02 ch03Номер события Введенная командаВыполняемая команда19!17:s/ch/CHcat CH01 ch02 ch0320М7д&cat CH01 CH02 CH0321! more:pmore cprogs/01.c ( только отобразить )22cd ! $ : hcd cprogs23vivi 01.
с24grep stdio ! $grep stdio 01 . с25"stdio'include s t d i o " : qg r e p "include stdio" 01. с26nroff !21:t:pn r o f f 01. с ( это ли нам нужно? )27i in r o f f 01. с (выполнить)!mo:$:tРабота с командной строкой603Специальные псевдонимы в tcshВ tcsh могут быть установлены специальные псевдонимы, которые изначально не определены. Если специальный псевдоним установлен, он вступает в действие по определенному событию.
Ниже приводится список специальных псевдонимов:beepcmdПри выдаче звукового сигнала.cwdcmdПри изменении текущего рабочего каталога.periodicКаждые несколько минут. Точное значение устанавливается переменнойинтерпретатора tperiod.precmdПеред отображением нового приглашения командной строки.shell shellЕсли назначенный для выполнения интерпретатор не указан в сценарииявно, использовать интерпретатор shell.
Строка shell должна являться абсолютным именем интерпретатора.Работа с командной строкойКак в csh, так и в tcsh доступна определенная функциональность для работыс командной строкой. Оба интерпретатора поддерживают дополнение команд, a tcsh позволяет редактировать командную строку.ДополнениеКак в tcsh, так и в csh существует возможность дополнения набираемыхслов, tcsh автоматически дополняет слова и команды по клавише <Tab>, acsh делает это при нажатии клавиши <Esc>, причем только когда установлена переменная filec. Если дополнение является неоднозначным (т.
е. набираемой строке соответствуют несколько дополнений), интерпретатор дополняет слово, насколько это возможно, а затем издает звуковой сигнал, уведомляющий, что слово не окончено. Список возможных дополнений можно получить, нажав клавиши <Ctrl>+<D>. tcsh также уведомляет пользователяоб окончании дополнения путем добавления пробелов к полным именамфайлов и символа / к полным именам каталогов.Как csh, так и tcsh опознают запись ~ как обозначение домашнего каталога.Интерпретаторы считают слова на новой строке и последующие СИМБОЛ.Ы|, &, ;, 1 1 и && командами и соответственно изменяют пути поиска.
Дополнения могут использоваться для незаконченных слов; при этом только буквы слева от приглашения проверяются на наличие для них дополнений.604Глава 8. Интерпретаторы csh и tcshСопутствующие переменные интерпретатора• autolist• fignore• listmax• listmaxrowsСопутствующие команды редактирования командной строки• complete-word-back• complete-word-format• expand-glob• list-globСопутствующие встроенные команды• comlpete• ^incompleteРедактирование командной строки в tcshtcsh позволяет перемещать курсор по командной строке и редактировать еепо собственному усмотрению.
Существует два основных режима редактирования командной строки, которые берут начало от двух популярных текстовых редакторов- Emacs nvi. По умолчанию включен режим Emacs; переключаться между режимами можно следующим образом:bindkey -ebindkey -vКомбинации EmacsКомбинации viГлавное различие между клавиатурными сочетаниями Emacs nvi состоит втом, что сочетания Emacs не зависят от режима, т.
е. работают всегда однозначно, vi имеет два режима работы - командный и вставки; между этимирежимами приходится переключаться. В каждом из режимов команды имеют свой смысл. Кроме того:• Редактирование Emacs проще; редактированиеу! более гибкое.• Редактирование Emacs позволяет возвращать удаленный текст и выделять текст; в режиме редактированияг! это невозможно.•Существенно различаются возможности поиска в журнале команд.Режим EmacsВ табл. 8.1-8.3 приводятся различные команды, доступные в режиме редактирования Emacs,Работа с командной строкой605Таблица 8.1. Команды позиционирования курсора (режим Emacs)КомандаОписаниеCtrl-BОткат на один символCtrl-FПеремещение вперед по тексту на один символEscbПеремещение назад по тексту на одно словоEscfПеремещение вперед по тексту на одно словоCtrl-AПерейти в начало строкиCtrl-EПерейти в конец строкиТаблица 8.2. Команды удаления текста (режим Emacs)КомандаОписаниеDEL или Ctrl-HУдаление символа слева от курсораCtrl-DУдаление символа под курсоромEscdУдаление словаEsc DEL или Esc Ctrl-HУдаление слова перед курсоромCtrl-KУдалить все символы от курсора до конца строкиCtrl-UУдалить всю строкуТаблица 8.3.