Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 84
Текст из файла (страница 84)
hash) их расположение.— Считать все последующие строки аргументами, а не параметрами.—а, —allОтображать все экземпляры программы, а не только те,которые будут реально запущены.Встроенные команды-р, —pathОтобразить хешированное значение для команды, которое может отличаться от пути, записанного в переменнойокружения PATH.571type-t, -typeОпределить, является ли команда псевдонимом, ключевым словом, функцией, встроенной командой или файлом, и вывести результат.Пример$ type mv readmv is /bin/mvread is a shell built-intypesettypesetCM. declare.ulimit [options] [n]Отобразить значение одного или нескольких ограничений наиспользование ресурсов либо установить значение ограничения в п, если таковое задано.
Ограничения могут быть жесткими (—Н) или мягкими (—S). По умолчанию ulimit устанавливает оба ограничения либо отображает мягкое ограничение. Параметры определяют, с каким ресурсом происходитработа.Параметры— Считать все последующие строки аргументами, а не параметрами.—аОтобразить все текущие ограничения.—Н Жесткое ограничение ресурсов.—S Мягкое ограничение ресурсов.Специальные ограниченияЭти параметры налагают ограничение на использование специальных видов ресурсов:—сФайлы отображения памяти.—dРазмер сегмента данных процесса.-fРазмер файла, создаваемого в сеансе работы с интерпретатором.ulimit572ulimitГлава 7. bash: командный интерпретатор Борна—1Объем памяти, захватываемой процессом.-тРазмер набора резидентов.-п Количество файловых дескрипторов.
Ограничение отсутствует во многих системах.—р Размер конвейера, измеряемый в блоках по 512 байт.-s—tРазмер стека.Количество процессорного времени в секундах.—и Количество процессов на одного пользователя.—VumaskВиртуальная память, используемая интерпретатором.umask [nnn]umask [-p][-S]Отобразить или установить значение маски прав доступадля создаваемого файла (в восьмеричной системе счисления). Маска определяет, какие права доступа отсутствуют.(Так, результатом выполнения команды umask 002 будутправа доступа rw—rw—r—).Параметры-р Отобразить значение маски в команде umask, чтобыпользователь мог прочитать ее и выполнить команду.-S Отобразить значение umask в символьном виде, а не ввиде восьмеричного числа.unaliasunalias [-a] namesУдалить имена (names) из списка псевдонимов.
См. такжеalias.Параметр—а Удалить все псевдонимы.unsetunset [options] namesУдалить определения функций или переменных, имена которых перечислены в списке names.Параметры—f Имя является именем функции.—V Имя является именем переменной (режим по умолчанию).Управление заданиямиuntiltest-commandsdocommandsdone573untilВыполнить команды test-commands (как правило, test или [ ]),а если код завершения не равен нулю (т. е. условие ложно),выполнить команды commands; повторить.wait [ID]waitПриостановить выполнение и дождаться завершения всехфоновых процессов (будет получен нулевой код завершения)либо приостановить до завершения фонового процесса илизадания с идентификатором ID.
Полезно иметь в виду, чтопеременная интерпретатора $! содержит идентификаторпоследнего фонового процесса. Если не выполняется работас заданиями, идентификатор процесса ID может быть только численным. См. раздел «Управление заданиями».Примерwait $!Дождаться завершения последнего фонового процессаwhiletest-commandsdocommandsdonewhileВыполнить команды test-commands (обычно test или [ ]), aесли получен нулевой код возврата, выполнить командыcommands; повторить.Управление заданиямиУправление заданиями обеспечивает пользователю возможность переводитьприоритетные задания в фоновый режим, фоновые задания - в приоритетный режим или временно приостанавливать выполнение заданий.
По умолчанию работа с заданиями активирована. Будучи отключенной, она можетбыть вновь активирована любой из следующих команд:bash -m -iset -mset -o monitor574Глава 7. bash: командный интерпретатор БорнаМногим командам управления заданиями требуется идентификатор заданияв качестве аргумента. Этот аргумент может быть задан одним из следующихспособов:%пЗадание с номером п.%sЗадание, командная строка которого начинается с подстроки s.% ?sЗадание, командная строка которого содержит подстроку s.%%Текущее задание.%+Текущее задание (идентично % %).%—Предыдущее задание.bash предоставляет следующие команды для управления заданиями.
Подробнее эти команды описаны в разделе «Встроенные команды» ранее в этойглаве.bg Перевести задание в фоновый режим.fg Перевести задание в приоритетный режим.jobsПеречислить активные задания.killПринудительно завершить задание.stopПриостановить выполнение фонового задания.stty tostopПриостанавливать фоновые задания, пытающиеся послать вывод на терминал.waitДождаться завершения фоновых заданий.Ctrl-ZПриостановить выполнение приоритетного задания (в зависимости отиспользуемого терминала комбинация клавиш для приостановки задания может быть иной).Глава 8Интерпретаторы csh и tcshВ этой главе описан командный интерпретатор csh и его усовершенствованная версия - tcsh. В некоторых дистрибутивах Linux tcsh используется в качестве С shell, и все описанное в этой главе будет справедливо даже для csh втаких системах. Интерпретатор С shell имеет такое название, потому чтомногие символы и конструкции программирования в этом интерпретаторенапоминают язык С.Стандартным для Linux интерпретатором является bash.
Если вы хотите использовать csh или tcsh, необходимо прежде всего изменить интерпретатор,запускаемый по умолчанию и определяемый в файле паролей. Интерпретатор по умолчанию может быть указан при создании учетной записи для нового пользователя. Если учетная запись уже существует, необходимо воспользоваться командой chsh, чтобы произвести замену (описание командысм. в главе 3 «Команды Linux»).В этой главе представлены следующие темы:• Обзор возможностей• Вызов интерпретатора• Синтаксис• Переменные• Выражения• Журнал команд• Работа с командной строкой• Управление заданиями• Встроенные команды576Глава 8.
Интерпретаторы csh и tcshОбзор свойствИнтерпретатор С shell предоставляет следующий набор возможностей:• Перенаправление ввода/вывода• Метасимволы (маски) для сокращения имен файлов• Переменные интерпретатора, позволяющие настраивать параметры окружения•Целочисленная арифметика• Доступ к выполнявшимся ранее командам (журнал команд)• Сокращение имен команд (использование псевдонимов)• Встроенный набор команд для создания сценариев интерпретатора• Управление заданиямиИнтерпретатор tcsh предоставляет все перечисленные выше возможности,но обладает и рядом дополнительных:• Редактирование командной строки и команды редактора• Дополнение слов (по клавише <ТаЬ>)• Проверка орфографии• Расширенный журнал команд• Расширенные возможности навигации в каталогах• Планирование событий, таких как завершение сеанса работы или блокирование терминала после определенного интервала бездействия и отложенное выполнение команд• Дополнительные встроенные команды интерпретатора• Новые переменные интерпретатора, а также новые переменные окружения• Новые форматирующие последовательности для переменной приглашения, а также два дополнительных приглашения - для циклов и проверкиорфографии• Доступ к переменным «только для чтения»Вызов интерпретатораКомандный интерпретатор может быть запущен следующим образом:csh [options] [arguments]tcsh [options] [arguments]В csh и tcsh используется синтаксис, напоминающий синтаксис языка С, акоманды могут выполняться как с терминала, так и из файла.
При отладкесценариев полезны параметры —п, —v и —х.Синтаксис577Параметры—bСчитать последующие параметры аргументами выполняемой команды, а не параметром собственно csh.-с-dВыполнить указанные в параметре команды.Загрузить стек каталогов из файла ~/.cshdirs, даже если интерпретаторвызывается после входа пользователя в систему (tcsh).Завершить работу при получении ошибочного кода возврата выполняемой команды.—е—f—iБыстрый запуск; при вызове csh не выполняются .cshrc и .tcshrc.Создать диалоговую среду (вывести приглашение командной строки).-1Интерпретатор, выполняемый при входе в систему (использование этого параметра исключает применение всех остальных).—т Загрузить файл ~/.tcshrc, даже если пользователь не является его владельцем.—п Производить разбор команд, но не выполнять их.—s Выполнять команды, поступающие со стандартного ввода.—t—уЗавершить работу после выполнения одной команды.Отображать команды перед их выполнением; производить расширениеподстановок журнала команд, но не другие расширения (имен файлов,переменных и команд).
Идентично установке verbose.—V Идентично —v, но также отображать .cshrc.—х-XОтображать команды перед их выполнением, расширять все подстановки. Идентично установке echo.Идентично —х, но также отображать .cshrc.АргументыАргументы присваиваются позиционным параметрам $1, $2 и т. д. в соответствии с их порядком. Если первый из аргументов является исполняемымсценарием, производится чтение команд из указанного файла, а значенияоставшихся аргументов присваиваются переменным $1, $2 и т. д.СинтаксисВ этом подразделе описаны многочисленные особенности, специфичные дляинтерпретаторов csh и tcsh.
Темы расположены следующим образом:• Специальные файлы• Специальные символы в именах файлов• ЭкранированиеГлава 8. Интерпретаторы csh и tcsh578• Формы команд• Формы перенаправленияСпециальные файлыОписаниеИмя файла~/.cshrc или ~/.tcshrc Выполняется при каждом запуске интерпретатора~ /.loginВыполняется интерпретатором после .cshrc при входе в систему~ /.cshdlrsВыполняется интерпретатором после .login при входе в систему (tcsh)~ /.logoutВыполняется при завершении сеанса работы с интерпретатором/etc/passwdИнформация о домашних каталогах пользователей для расширения ~патеСпециальные символы в именах файловСимволыЗначениеЛюбая строка, пустая или состоящая из произвольного количествасимволовОдин произвольный символ[abc...]Любой из перечисленных в скобках символов; для задания интерваламожет использоваться дефис (например, a-z, A-Z, 0-9)[abc, ххх,..Расширение каждой из перечисленных строкДомашний каталог текущего пользователя~патеДомашний каталог пользователя с регистрационным именем патеПримеры% Is new*% cat ch?Вывести список файлов, имена которых начинаются на new.Соответствует файлам, имена которых имеют вид ch9,но не ch10% vi [D-R]*Редактировать файлы, имена которых начинаются на любуюбукву от прописной D до R% Is {ch.app}? Расширить список и вывести список файлов ch1, ch2, a p p l , app2% cd "tornПерейти в домашний каталог пользователя tornЭкранированиеЭкранирование отменяет специальное значение символа и позволяет использовать его буквально.
Следующие символы имеют специальное значение для командного интерпретатора С shell:СинтаксисСимволы579ОписаниеРазделитель командВыполнение в фоновом режимеГруппировка командКонвейер* ? []Метасимволы в именах файловРасширение строк (обычно экранирование не требуется)> < & !Символы перенаправленияПодстановка из журнала команд, быстрая подстановкаИспользуются для экранирования символовПодстановка результатов работы командПодстановка значений переменныхРазделители словновая строка,пробел, табуляцияСледующие символы могут использоваться для экранирования:Все символы между двойными кавычками понимаются буквально, кроме следующих, которые сохраняют специальное значение:$ Производится подстановка значения переменной.Подстановка результата выполнения команды.Парные двойные кавычки закрывают последовательность.\ Экранирование следующего символа.! Доступ к журналу команд.newlineСимвол новой строки.' ' Все символы между одинарными кавычками понимаются буквально,кроме символа журнала команд «!», еще одной одинарной кавычки,закрывающей последовательность, и символа новой строки.\Символ, следующий за этим, понимается буквально.