Описания команд оболочки C
Оболочка C содержит следующие встроенные команды.
| Флаг | Описание |
|---|---|
| alias [Имя [Список_слов]] | Если параметры не указаны, то команда показывает все определенные псевдонимы. С параметром Имя команда показывает все псевдонимы этого имени. Если указан параметр Список_слов, команда присваивает значение Список_слов псевдониму Имя. В качестве Имени нельзя указывать команды alias и unalias. |
| bg [%Задание ...] | Переводит текущее или указанное в параметре Задание задание в фоновый режим, возобновляя его работу, если она была остановлена. |
| break | Возобновляет выполнение после обработки оператора end
ближайшего внешнего цикла foreach или
while. |
| breaksw | Прерывает выполнение команды switch; возобновляет выполнение после оператора endsw. |
| case Метка: | Задает Метку для команды switch. |
| cd[Имя] | Эквивалентна команде chdir (см. ниже). |
| chdir[Имя] | Изменяет текущий каталог на указанный в параметре
Имя. Если Имя не указано, команда изменяет текущий каталог на ваш домашний. Если Имя - не подкаталог текущего каталога и не начинается с /, ./
или ..//, то оболочка просматривает все элементы переменной среды cdpath в
поисках подкаталога с именем Имя.
Если Имя - это имя переменной
среды, значение которой начинается с символа косой черты (/), то оболочка пытается рассматривать это
значение как каталог. Команда chdir эквивалентна команде cd |
| continue | Продолжает выполнение после оператора end ближайшей
команды while или foreach. |
| default: | Отмечает вариант по умолчанию
(default) в операторе
switch.
Оператор
default должен находиться после всех
остальных меток case. |
| dirs | Показывает стек каталогов. |
| echo | Записывает символьные строки в стандартный вывод оболочки. |
| else | Запускает команды, указанные за вторым оператором
else в последовательности команд
if
(Выражение)
then ...else if (Выражение2)
then ... else ...
endif. Прим.: Оператор иначе является
встроенной командой csh, использующей сначала оператор если(expr),
а затем ..иначе ...конец, если.
Если (expr) верно,
то выполняются все команды до оператора иначе. Если (expr) ложно,
то выполняются команды между операторами иначе и конец, если. Все отдельные цитаты берутся дословно и не интерпретируются.
|
| конец | Присваивает переменной Имя последовательно элементы из списка, указанного в параметре Список, и запускает
последовательность Команд,
расположенную между оператором foreach и соответствующим ему end. Операторы
foreach и end
должны находиться на отдельных строках. Оператор |
| endif | Если Выражение истинно, запускает Команды,
следующие за первым оператором then. Иначе, если Выражение2 из оператора else if истинно, запускает Команды, следующие за вторым
оператором then. Если Выражение2 после else if ложно, запускает Команды, следующие за последним else.
Допустимо любое количество пар else if. При этом необходим только один
завершающий оператор endif. Раздел, начинающийся с
else, необязателен. Слова
else и endif
могут стоять только в начале строк. Раздел
if должен либо быть единственным в
строке ввода, либо следовать за командой
else. |
| endsw | Сравнивает метки case со
значением переменной Строка. Строка - это команда или имя файла
с выполненными подстановками. В метках case переменной длины следует применять
символы сравнения с шаблоном *, ? и
[ . . . ]. Если ни одна из меток перед
default не будет выбрана, управление
будет передано на метку default. Метки case и метка
default должны находиться в начале
строк.
Команда breaksw продолжает
выполнение после команды endsw. В ее
отсутствие управление будет передаваться по меткам
case и default,
как в языке C. Если ни одна из меток не будет выбрана и метка default отсутствует, то
выполнение будет продолжено после команды endsw. |
| eval Параметр . . . | Рассматривает значение Параметр как входные данные для оболочки и выполняет соответствующие команды внутри текущей оболочки. Эта команда часто применяется для запуска других команд, имена которых получены в результате выполнения команды или подстановки переменных, поскольку анализ выполняется до подстановки. |
| exec Команда | Запускает указанную Команду вместо текущей оболочки. |
| exit (Выражение) | Завершает работу оболочки, используя значение переменной среды status (если не задано Выражение), либо значение Выражения. |
| fg [%Задание ...] | Переводит текущее или указанное в параметре Задание задание в интерактивный режим, возобновляя его работу, если она была остановлена. |
| foreach Имя (Список) Команда. . . | Поочередно присваивает переменной Имя значения из Списка и выполняет последовательность команд до оператора end. |
| glob Список | Показывает Список с учетом подстановки хронологии, переменных и имен файлов. Помещает между словами символ с нулевым кодом и не добавляет в конец строки возврат каретки. |
| goto Слово | Продолжает выполнение со строки, указанной в параметре Слово. Слово - это имя файла и команда, в результате подстановки которых получается строка в форме Метка: . Оболочка просматривает входные данные на максимально возможную длину для поиска строки в форме Метка:, перед которой может стоять несколько пробелов или знаков табуляции. |
| hashstat | Показывает статистику работы хэш-таблицы поиска команд. |
| history [-r | -h] [n] | Показывает список хронологии. Самые старые события показываются первыми. Если указать число в параметре n, будет показано только n последних событий. С флагом -r события будут показаны в обратном порядке - начиная с самых новых. С флагом -h список хронологии выводится без нумерации. При этом могут быть созданы файлы, допустимые в качестве входных для команды source с флагом -h. |
| if (Выражение) Команда | Запускает указанную Команду (с аргументами), если
Выражение истинно.
Подстановка переменных в Команде
выполняется в самом начале, одновременно с оператором if.
Команда должна представлять собой простую команду (а не конвейер или список
команд, даже заключенный в скобки). Прим.: Перенаправление ввода и вывода
выполняется даже в том случае, если Выражение ложно и Команда не выполняется.
|
| jobs [-l] | Показывает список активных заданий. Команда jobs с флагом -l (строчная L) кроме номеров и имен заданий показывает идентификаторы процессов. |
| kill -l | [[-Сигнал] % Задание...|ИД-процесса...] | Отправляет сигнал TERM (завершить) или другой Сигнал указанному Заданию или процессу ИД-процесса. Сигналы указываются либо по номеру, либо по имени (согласно файлу /usr/include/sys/signal.h, но без префикса SIG). Если указан флаг -l (строчная L), то будет показан список сигналов. |
| limit [-h] [Ресурс [Максимум]] | Ограничивает использование указанного ресурса для текущего
процесса и всех процессов, им созданных. Ограничения на
использование ресурсов хранятся в файле
/etc/security/limits. Вы можете
ограничить время центрального процессора (CPU), размер файлов,
размер данных, размер дампа памяти и размер памяти. Максимальные значения задаются командой
mkuser при добавлении пользователя в
систему. Эти значения затем можно изменить командой chuser. Все ограничения делятся на гибкие и жесткие. Пользователи могут увеличивать гибкие ограничения вплоть до жестких. Для увеличения жесткого ограничения или для указания такого гибкого ограничения, которое будет превышать жесткое, необходимы права пользователя root. С флагом -h будут показаны жесткие ограничения, без него - гибкие. Если параметр Максимум не указан, команда limit показывает текущее ограничение на использование указанного ресурса. Если параметр Ресурс также не указан, команда limit показывает текущие ограничения на использование всех ресурсов. Дополнительная информация о ресурсах, управляемых командой limit, приведена в описании функций getrlimit, setrlimit и vlimit. Параметр Максимум для времени
использования CPU указывается в формате
чч:мм:сс. Для других ресурсов Максимум указывается в
виде числа с плавающей точкой или целого, которое может быть
дополнено масштабным коэффициентом. Допустимы следующие масштабные коэффициенты: k (килобайты, 1 килобайт=1024
байт), m (мегабайты) и b (блоки - единицы, применяемые функцией ulimit).
Если масштабный коэффициент не указан,
то считается, что размер всех ресурсов задан в килобайтах. Для имен ресурсов и масштабных коэффициентов можно применять
однозначные сокращения.Прим.: Данная команда ограничивает объем физической
памяти, доступной процессу, только в том случае, если ее не хватает другим активным
процессам.
|
| login | Завершает работу начальной оболочки и заменяет ее экземпляром команды /usr/bin/login. Это один из способов выхода из системы (поддерживается в целях совместимости с командами оболочек ksh и bsh). |
| logout | Завершает работу начальной оболочки. Данная команда
необходима в случае, если установлена опция
ignoreeof. |
| nice [+n] [Команда] | Без параметров устанавливает приоритет выполнения команд в
оболочке равным 24. С флагом +n увеличивает приоритет
на указанное значение (n). Если с параметром +n указана Команда, запускает Команду с приоритетом 24 плюс указанное
значение. Пользователь с правами root может вызывать
команды nice с отрицательным числом в параметре. Команда всегда запускается в отдельной оболочке с теми же
ограничениями, что и команды в простом операторе if. |
| nohup [Команда] | Если Команда не указана, сигналы hangups игнорируются до завершения сценария. Если Команда указана, сигналы hangups игнорируются во время работы этой Команда. Для запуска конвейера
или списка команд поместите их в сценарий оболочки,
разрешите для него выполнение и укажите этот сценарий в
качестве Команды.
Все процессы, запущенные в фоновом режиме со знаком амперсанда
(&), уже защищены от получения сигнала hangup при выходе пользователя из
системы. Однако этим процессам все равно можно отправить сигнал hangup
явно, если для них не был запущен оператор nohup. |
| notify [%Задание...] | Указывает заданию отправлять уведомления об изменении состояния текущего или указанного Задания асинхронно. Обычно оболочка отправляет уведомления перед выводом приглашения. При задании переменной оболочки notify это свойство включается автоматически. |
| onintr [- | Метка] | Управляет реакцией оболочки на прерывания.
Если аргументы не
указаны, восстанавливает реакцию оболочки на прерывания по умолчанию,
при которой сценарии оболочки завершаются, и управление передается
командной строке. Если указан флаг -,
все прерывания игнорируются. Если указана Метка, оболочка выполняет команду
goto Метка, когда получает прерывание или когда ее подпроцесс
завершается прерыванием. В любом случае, если
оболочка работает автономно, и все прерывания игнорируются, то
все формы команды onintr не выполняют никаких действий. Прерывания будут и дальше игнорироваться оболочкой и всеми запущенными командами. |
| popd [+n] | Выталкивает имя каталога из стека и переходит в этот каталог. Если указан параметр +n, команда извлекает n-й элемент стека. Элементы нумеруются от вершины стека, начиная с нуля. |
| pushd [+n|Имя] | Без аргументов меняет местами два верхних элемента стека каталогов. С параметром Имя команда сохраняет текущий каталог в стеке каталогов (указанном в переменной среды cwd) и переходит в новый каталог. Если указано +n, команда получает из стека n-й каталог и переходит в него. Элементы стека каталогов нумеруются от вершины стека, начиная с нуля. |
| rehash | Повторно создает внутреннюю хэш-таблицу содержимого каталогов, указанных в переменной оболочки path. Это необходимо, если после входа в систему в каталоги path были добавлены новые команды. Команда rehash применяется только в том случае, если команды были добавлены в собственные каталоги пользователя или если содержимое системных каталогов было изменено другим пользователем. |
| repeat Число Команда | Запускает Команду,
удовлетворяющую тем же ограничениям, что и команда в
простом операторе if, указанное
Число раз. Прим.: Перенаправления
ввода-вывода выполняются ровно один раз, даже если Число равно 0.
|
| set [[Имя[n]] [ = Слово]] | [Имя = (Список)] | Без аргументов показывает значения всех переменных оболочки. Переменные, значение которых состоит из нескольких слов, показываются в виде списка, заключенного в скобки. Если указано только Имя, оболочка C присваивает переменной Имя пустую строку. Иначе переменной Имя присваивается значение Слово или Список слов. Если указано число n, то n-му компоненту переменной Имя присваивается значение Слово; n-й компонент должен существовать. Во всех случаях в команде и имени файла выполняются все подстановки. Для изменения нескольких значений в одной команде set аргументы могут повторяться. Однако подстановка переменных во всех аргументах выполняется до присваивания значений. |
| setenvИмя Значение | Присваивает переменной среды с именем Имя строку символов Значение. Наиболее часто используемые переменные среды - USER, TERM, HOME и PATH - автоматически импортируются и экспортируются в переменные user, term, home и path оболочки C. К ним нет необходимости применять команду setenv. |
| shift [Variable] | Сдвигает элементы переменной оболочки argv или другой Переменной влево. Если переменная оболочки argv (или указанная Переменная) не установлена или длина ее значения менее одного слова, выдается сообщение об ошибке. |
| source[-h] Имя | Считывает команды, записанные в файле Имя. Команды source могут быть вложены друг в друга. Однако при слишком большой глубине вложенности у оболочки могут закончиться дескрипторы файлов. Ошибка в команде source любого уровня вложенности завершает все команды source. Обычно входные данные во время выполнения команды source не добавляются в список хронологии. Команда с флагом -h помещает команды в список хронологии, не выполняя их. |
| stop [%Задание ...] | Останавливает текущее или указанное Задание, работающее в фоновом режиме. |
| suspend | Приостанавливает оболочку, имитируя получение сигнала STOP. |
| switch (строка) | Запускает последовательность команд switch (Строка) case Строка : ... breaksw default: ... breaksw endsw. Эта команда сравнивает каждую метку оператора case со значением переменной Строка. Если ни одно совпадение не найдено, то выполняется действие, связанное с меткой default. |
| time [Команда] | Команда time автоматически
определяет время выполнения команд. Если Команда не указана,
time показывает отчет о времени,
использованном данной оболочкой и ее потомками. Если
Команда указана, будет показано
время ее выполнения. Формат отчета об использованном
времени определяется значением переменной оболочки time. При
необходимости, для показа статистики по времени после завершения
команды создается дополнительная оболочка. Ниже приведен пример
применения команды time совместно с командой
sleep:
Вывод этой команды выглядит примерно следующим образом:
Ниже приведено описание полей вывода:
|
| umask [Значение] | Определяет права доступа к файлу. Это Значение, вместе с правами доступа создающего процесса, задает права доступа к создаваемому файлу. Значение по умолчанию: 022. Если Значение не указано, будет показано текущее значение. |
| unalias *|Шаблон | Удаляет все псевдонимы с именами, соответствующими Шаблону. Для удаления всех псевдонимов введите unalias *. Отсутствие псевдонимов не приводит к ошибке. |
| unhash | Отменяет применение внутренней хэш-таблицы для нахождения запускаемых программ. |
| unlimit [-h][Ресурс] | Отменяет ограничение на использование Ресурса.
Если Ресурс не указан, удаляются все ограничения на использование ресурсов. Список имен Ресурсов приведен в описании
команды limit. С флагом -h команда удаляет соответствующие жесткие ограничения. Жесткие ограничения могут быть изменены только пользователем с правами доступа root. |
| unset *|Шаблон | Удаляет все переменные с именами, соответствующими Шаблону. Для удаления всех переменных введите unset *. Если ни одна переменная не задана, это не приводит к ошибке. |
| unsetenvШаблон | Удаляет все переменные среды, имена которых соответствуют Шаблону. (См. также встроенную команду setenv) |
| wait | Ожидает завершения всех фоновых заданий. В интерактивном задании ожидание может быть прервано сигналом INTERRUPT (обычно вызываемым комбинацией клавиш Ctrl-C). После этого оболочка показывает имена и номера всех оставшихся заданий. |
| while (Выражение) Команда. . . end | Выполняет Команды, указанные между операторами while и соответствующим ему end, пока Выражение не примет нулевое значение. Для завершения цикла служит команда break; для продолжения цикла - continue. Операторы while и end должны находится на отдельных строках. При вводе с терминала после команды while (Выражение) будет показано приглашение, похожее на приглашение команды foreach. |
| @ [Имя[n] = Выражение] | Без аргументов показывает значения всех переменных среды. С
аргументами присваивает переменной Имя значение
Выражения. Если выражение содержит символы <,
>, & или |, они должны быть
заключены в скобки. Если указано число n, значение Выражения присваивается n-му компоненту переменной Имя.
Переменная Имя и ее n-ый компонент должны существовать. Допустимы
операторы языка C, такие как |