Специальные команды
Как правило, для выполнения каждой команды shell порождает отдельный процесс. Специальные команды отличаются тем, что они встроены в shell и выполняются в рамках текущего процесса.
| : | Пустая команда. Возвращает нулевой код завершения. |
| . file | Shell читает и выполняет команды из файла file, затем завершается; при поиске file используется список поиска $PATH. |
| break [n] | Выход из внутреннего for или while цикла; если указано n, то выход из n внутренних циклов. |
| continue [n] | Перейти к следующей итерации внутреннего for или while цикла; если указано n, то переход к следующей итерации n-ого цикла. |
| cd [ <аргумент> ] | Сменить текущую директорию на директорию <аргумент>. По умолчанию используется значение HOME. |
| echo [ <арг> ... ] | Выводит свои аргументы в стандартный вывод, разделяя их пробелами. |
| eval [ <арг> ... ] | Аргументы читаются, как если бы они поступали из стандартного ввода и рассматриваются как команды, которые тут же и выполняются. |
| exec [ <арг> ... ] | Аргументы рассматриваются как команды shell'а и тут же выполняются, но при этом не создается нового процесса. В качестве аргументов могут быть указаны направления ввода-вывода и, если нет никаких других аргументов, то будет изменено лишь направление ввода-вывода текущей программы. |
| exit [ n ] | Завершение выполнения shell'а с кодом завершения n. Если n опущено, то кодом завершения будет код завершения последней выполненной команды (конец файла также приводит к завершению выполнения). |
| export [ <переменная> ... ] | Данные переменные отмечаются для автоматического экспорта в окружение (см. Окружение) выполняемых команд. Если аргументы не указаны, то выводится список всех экспортируемых переменных. Имена функций не могут экспортироваться. |
| hash [ -r ] [ <команда> ... ] | Для каждой из указанных команд определяется и запоминается путь поиска. Опция -r удаляет все запомненные данные. Если не указан ни один аргумент, то выводится информация о запомненных командах: hits - количество обращений shell'а к данной команде; cost - объем работы для обнаружения команды в списке поиска; command - полное имя команды. В некоторых ситуациях происходит перевычисление запомненных данных, что отмечается значком * в поле hits. |
| pwd | Выводит имя текущей директории. |
| read [ <переменная> ... ] | Читается из стандартного ввода одна строка; первое ее слово присваивается первой переменной, второе - второй и т.д., причем все оставшиеся слова присваиваются последней переменной. |
| readonly [ <переменная> ... ] | Запрещается изменение значений указанных переменных. Если аргумент не указан , то выводится информация обо всех переменных типа readonly. |
| return [ n ] | Выход из функции с кодом завершения n. Если n опущено, то кодом завершения будет код завершения последней выполненной команды. |
| set [ --aefkntuvx [ <арг> ... ] ] | Команда устанавливает следующие режимы: |
| -a | отметить переменные, которые были изменены или созданы, как переменные окружения (см. Окружение) |
| -e | если код завершения команды ненулевой, то немедленно завершить выполнение shell'а |
| -f | запретить генерацию имен файлов |
| -k | все переменные с именем помещаются в окружение команды, а не только те, что предшествуют имени команды (см. Окружение) |
| -n | читать команды, но не выполнять их |
| -t | завершение shell'а после ввода и выполнения одной команды |
| -u | при подстановке рассматривать неустановленные переменные как ошибки |
| -v | вывести вводимые строки сразу после их ввода |
| -x | вывести команды и их аргументы перед их выполнением |
| -- | не изменяет флаги, полезен для присваивания позиционным переменным новых значений. |
| При указании + вместо - каждый из флагов устанавливает противоположный режим. Набор текущих флагов есть значение переменной $-. <арг> - это значения, которые будут присвоены позиционным переменным $1, $2 и т.д. Если все аргументы опущены, выводятся значения всех переменных. | |
| shift [ n ] | Позиционные переменные, начиная с $(n+1), переименовываются в $1 и т.д. По умолчанию n=1. |
| test | вычисляет условные выражения (см. Дополнительные сведения. Test ) |
| trap [ <арг> ] [ n ] ... | Команда <арг> будет выполнена, когда shell получит сигнал n (см. Сигналы). (Надо заметить, что <арг> проверяется при установке прерывания и при получении сигнала). Команды выполняются по порядку номеров сигналов. Любая попытка установить сигнал, игнорируемый данным процессом, не обрабатывается. Попытка прерывания по сигналу 11 (segmentation violation) приводит к ошибке. Если <арг> опущен, то все прерывания устанавливаются в их начальные значения. Если <арг> есть пустая строка, то этот сигнал игнорируется shell'ом и вызываемыми им программами. Если n=0, то <арг> выполняется при выходе из shell'а. Trap без аргументов выводит список команд, связанных с каждым сигналом. |
| type [ <имя> ... ] | Для каждого имени показывает, как оно будет интерпретироваться при использовании в качестве имени команды: как внутренняя команда shell'а, как имя файла или же такого файла нет вообще. |
| ulimit [ -f ] [ n ] | Устанавливает размер файла в n блоков; -f - устанавливает размер файла, который может быть записан процессом-потомком (читать можно любые файлы). Без аргументов - выводит текущий размер. |
| umask [ nnn ] | Пользовательская маска создания файлов изменяется на nnn. Если nnn опущено, то выводится текущее значение маски. Пример: после команды umask 755 будут создаваться файлы, которые владелец сможет читать, писать и выполнять, а все остальные - только читать и выполнять. |
| unset [ <имя> ... ] | Для каждого имени удаляет соответствующую переменную или функцию. Переменные PATH, PS1, PS2 и IFS не могут быть удалены. |
| wait [ n ] | Ждет завершения указанного процесса и выводит код его завершения. Если n не указано, то ожидается завершения всех активных процессов-потомков и возвращается код завершения 0. |
| |