nice -число команда
команда установки приоритета. В системе используется
шкала приоритетов: [-100; +100], приоритет +100 самый
низкий. Первая форма устанавливает приоритет для
интерпретатора, равный 4, вторая - приоритет, равный
указанному числу, третья - приоритет для команды, рав-
ный 4. Только администратор системы может установить
отрицательный приоритет. Для выполнения запускается
новый интерпретатор, который обеспечивает выполнение
команды. Команда должна быть одна и не может содержать
последовательность команд, конвейер или псевдоним.
nohup
nohup команда
запрещает реакцию на сигналы SIGINT (CTRL/C), SIGQUIT
(CTRL/\) и SIGHUP (BREAK - отключение удаленного терми-
нала или ЭВМ по коммутируемой линии). Первая форма в
командном файле устанавливает свое действие на все
строки, указанные ниже. Вторая форма приводит к тому,
что при выполнении указанной команды эти сигналы игно-
рируются. Для всех асинхронных процессов nohup выпол-
няется автоматически.
- 62 -
notify %внутренний_идентификатор_процесса
notify %шаблон_имени_процесса
notify
дает команду на асинхронный вывод сообщений об измене-
ниях состояния процесса. Обычно эти сообщения выво-
дятся после передачи на выполнение новой командной
строки. Если команда notify выполнена без аргументов,
то этот режим устанавливается для всех процессов.
onintr
onintr -
onintr метка
управляет реакцией на прерывания. Первая форма уста-
навливает стандартную реакцию на прерывания, которая
заключается в завершении командного файла или возврате
на уровень ввода терминальных команд. Вторая форма
вызывает игнорирование всех прерываний. Последняя
форма вызывает выполнение перехода на метку при получе-
нии прерывания или при завершении порожденного процесса
из-за прерывания. В любом случае, если интерпретатор
csh работает асинхронно, все формы команды onintr игно-
рируются.
popd
popd +число
выполняет команду cd имя_номер_2 стека имен каталогов.
Имя_номер_1 из стека имен каталогов удаляется, осталь-
ные элементы стека сохраняются с новыми номерами.
Форма popd +число удаляет имя_номер_(1+число) из
стека, остальные элементы стека сохраняются с новыми
номерами. При этом переход в другой каталог не осу-
ществляется.
pushd
pushd имя_каталога
pushd +число
любая форма команды pushd меняет порядок в стеке имен
каталогов. Форма pushd выполняет команду cd
имя_номер_2 стека. При этом имя_номер_2 ставится в
вершину, а имя_номер_1 - на его место в стеке; осталь-
ные элементы стека остаются на своих местах. Форма
pushd имя_каталога выполняет команду cd имя_каталога,
при этом имя_каталога записывается в вершину стека,
остальные элементы стека сохраняются с новыми номерами.
Форма pushd +число выполняет команду cd
- 63 -
имя_номер_(1+число). При этом имя_номер_(1+число) ста-
вится в вершину стека, а число имен каталогов переписы-
ваются в конец стека в том порядке, в котором они сле-
довали от вершины стека, другие элементы стека остаются
без изменений.
rehash
обновить хеш-таблицу.
repeat число команда
команда repeat позволяет повторить выполнение команды
указанное число раз. Команда должна быть одна в
командной строке, она не должна быть последователь-
ностью команд, псевдонимом или конвейером.
set
set имя
set имя = слово
set имя[индекс] = слово
set имя = (список_слов)
set список_присваиваний
первая форма команды set отображает значения всех пере-
менных интерпретатора команд. Переменные, которые в
качестве своих значений имеют не одно слово, отобража-
ются как заключенный в скобки список слов. Вторая форма
присваивает указанному имени пустую строку, третья -
слово, четвертая - значение слова с номером индекс,
пятая - список слов. Последняя форма используется для
указания списка присваиваний - в одной командной строке
несколько присваиваний. Во всех случаях происходят
расширения псевдонимов командных строк и имен файлов.
Подстановка переменных осуществляется перед выполне-
нием присваиваний. Перед операциями над элементами мас-
сива его необходимо полностью определить. Не обрабаты-
ваются массивы с переменными или неопределенными грани-
цами.
setenv
setenv имя значение
первая форма выводит значение переменных окружения,
вторая их устанавливает. Удалить переменную окружения
можно командой unsetenv.
shift
shift переменная
осуществляет левый сдвиг списка слов переменной. Левый
элемент списка исчезает. Попытка осуществить shift для
- 64 -
пустого списка приводит к состоянию ошибки.
source файл
предназначена для выполнения командного файла без
порождения нового интерпретатора. Команды source могут
быть вложенными. Ошибка в команде source на любом
уровне завершает выполнение. Вызов команды source без
аргументов порождает состояние ошибки.
stop %внутренний_идентификатор_процесса
stop %шаблон_имени_процесса
останавливает выполнение асинхронного процесса.
suspend
останавливает выполнение интерпретатора.
switch( входная_строка )
case образец_1:
...
breaksw
...
default:
...
endsw
в образцах вариантов case сначала выполняются подста-
новки. В образцах вариантов case можно использовать
шаблоны имен файлов *, ? и [...]. Образцы вариантов
case последовательно сравниваются с указанной в switch
входной строкой. Если не выявлено совпадение образца
со входной строкой, выполнение продолжается после
default. Слова case и default должны стоять первыми в
командной строке. Оператор breaksw передает управление
на строку, следующую за endsw. Если в варианте case не
указан оператор breaksw, то при совпадении с образцом
выполняются все строки до первого breaksw или default.
Если не обнаружено совпадение с образцом и default
отсутствует, выполнение продолжается после endsw.
time
time команда
при отсутствии параметров печатается итог времени,
израсходованного интерпретатором и его потомками. В
качестве команды нельзя использовать псевдонимы.
umask
umask маска
- 65 -
по умолчанию файлу устанавливается код доступа, который
определяется маской. Файл будет иметь код доступа, в
котором маскированы (равны 0) биты, установленные
(равны 1) в маске. Пусть маска имеет вид 123. Первая
цифра относится к маскированию битов доступа для вла-
дельца файла и администратора, вторая - к битам доступа
группы, а третья - к битам доступа всех остальных поль-
зователей. Значение маски указывается в восьмеричном
коде. Обычно значением маски является 002, которое
задает любой доступ для пользователей своей группы,
доступ для чтения и выполнения другим пользователям, и
022, которое определяет любой доступ (за исключением
записи) для пользователей своей группы и всех прочих.
Чтобы узнать текущее значение маски, надо выполнить
команду umask без аргумента.
unalias псевдоним ...
все псевдонимы, имена которых соответствуют указанным,
отменяются. Следовательно, unalias * удаляет все псев-
донимы. При запуске команды без аргументов порождается
состояние ошибки.
unhash
запрещает использовать хеш-таблицу при поиске команды.
unlimit ресурс
unlimit
снимает ограничение на ресурс. Если ресурс не указан,
снимаются ограничения на все ресурсы.
unset шаблон
удаляются все переменные, имена которых соответствуют
указанному шаблону. Таким образом, unset * удаляет все
переменные, установленные командой set.
unsetenv имя
удаляется переменная из окружения.
wait
ожидание всех выполняемых процессов. Пока выполняется
команда wait, приглашение не печатается. Команда wait
выполняется, пока не завершатся все запущенные на
выполнение процессы. При прерывании выполнения команды
wait (CTRL/C или СУ/C) сообщаются имена и номера всех
процессов, для которых выполнялось ожидание.
while( выражение )
...
end
- 66 -
цикл выполняется, пока истинно (не равно нулю) значение
выражения. Ключевые слова while и end должны нахо-
диться на отдельных строках. В теле цикла можно исполь-
зовать break для выхода из цикла и continue для возоб-
новления следующей итерации цикла без завершения теку-
щей.
- 67 -
СОДЕРЖАНИЕ
АННОТАЦИЯ ......................................... 2
1. Командный язык C-shell ............................ 3
1.1. Лексическая структура языка C-shell ............. 3
1.2. Форматы командных строк, перемещения по файловой
системе ......................................... 6
1.3. Управление вводом и выводом ..................... 9
1.4. Управление процессами ........................... 11
1.5. Шаблоны имен файлов и каталогов ................. 17
1.6. Подстановки значений переменных ................. 19
1.7. Модификаторы переменных ......................... 26
1.8. Выражения ....................................... 30
1.9. Операторы языка C-shell ......................... 35
1.10. Командные файлы ................................. 39
1.11. Протоколирование, средства работы с протоколом .. 44
1.12. Переменные интерпретатора csh ................... 49
1.13. Специальные файлы ............................... 55
1.14. Встроенные команды и операторы .................. 57
- 68 -
команда установки приоритета. В системе используется
шкала приоритетов: [-100; +100], приоритет +100 самый
низкий. Первая форма устанавливает приоритет для
интерпретатора, равный 4, вторая - приоритет, равный
указанному числу, третья - приоритет для команды, рав-
ный 4. Только администратор системы может установить
отрицательный приоритет. Для выполнения запускается
новый интерпретатор, который обеспечивает выполнение
команды. Команда должна быть одна и не может содержать
последовательность команд, конвейер или псевдоним.
nohup
nohup команда
запрещает реакцию на сигналы SIGINT (CTRL/C), SIGQUIT
(CTRL/\) и SIGHUP (BREAK - отключение удаленного терми-
нала или ЭВМ по коммутируемой линии). Первая форма в
командном файле устанавливает свое действие на все
строки, указанные ниже. Вторая форма приводит к тому,
что при выполнении указанной команды эти сигналы игно-
рируются. Для всех асинхронных процессов nohup выпол-
няется автоматически.
- 62 -
notify %внутренний_идентификатор_процесса
notify %шаблон_имени_процесса
notify
дает команду на асинхронный вывод сообщений об измене-
ниях состояния процесса. Обычно эти сообщения выво-
дятся после передачи на выполнение новой командной
строки. Если команда notify выполнена без аргументов,
то этот режим устанавливается для всех процессов.
onintr
onintr -
onintr метка
управляет реакцией на прерывания. Первая форма уста-
навливает стандартную реакцию на прерывания, которая
заключается в завершении командного файла или возврате
на уровень ввода терминальных команд. Вторая форма
вызывает игнорирование всех прерываний. Последняя
форма вызывает выполнение перехода на метку при получе-
нии прерывания или при завершении порожденного процесса
из-за прерывания. В любом случае, если интерпретатор
csh работает асинхронно, все формы команды onintr игно-
рируются.
popd
popd +число
выполняет команду cd имя_номер_2 стека имен каталогов.
Имя_номер_1 из стека имен каталогов удаляется, осталь-
ные элементы стека сохраняются с новыми номерами.
Форма popd +число удаляет имя_номер_(1+число) из
стека, остальные элементы стека сохраняются с новыми
номерами. При этом переход в другой каталог не осу-
ществляется.
pushd
pushd имя_каталога
pushd +число
любая форма команды pushd меняет порядок в стеке имен
каталогов. Форма pushd выполняет команду cd
имя_номер_2 стека. При этом имя_номер_2 ставится в
вершину, а имя_номер_1 - на его место в стеке; осталь-
ные элементы стека остаются на своих местах. Форма
pushd имя_каталога выполняет команду cd имя_каталога,
при этом имя_каталога записывается в вершину стека,
остальные элементы стека сохраняются с новыми номерами.
Форма pushd +число выполняет команду cd
- 63 -
имя_номер_(1+число). При этом имя_номер_(1+число) ста-
вится в вершину стека, а число имен каталогов переписы-
ваются в конец стека в том порядке, в котором они сле-
довали от вершины стека, другие элементы стека остаются
без изменений.
rehash
обновить хеш-таблицу.
repeat число команда
команда repeat позволяет повторить выполнение команды
указанное число раз. Команда должна быть одна в
командной строке, она не должна быть последователь-
ностью команд, псевдонимом или конвейером.
set
set имя
set имя = слово
set имя[индекс] = слово
set имя = (список_слов)
set список_присваиваний
первая форма команды set отображает значения всех пере-
менных интерпретатора команд. Переменные, которые в
качестве своих значений имеют не одно слово, отобража-
ются как заключенный в скобки список слов. Вторая форма
присваивает указанному имени пустую строку, третья -
слово, четвертая - значение слова с номером индекс,
пятая - список слов. Последняя форма используется для
указания списка присваиваний - в одной командной строке
несколько присваиваний. Во всех случаях происходят
расширения псевдонимов командных строк и имен файлов.
Подстановка переменных осуществляется перед выполне-
нием присваиваний. Перед операциями над элементами мас-
сива его необходимо полностью определить. Не обрабаты-
ваются массивы с переменными или неопределенными грани-
цами.
setenv
setenv имя значение
первая форма выводит значение переменных окружения,
вторая их устанавливает. Удалить переменную окружения
можно командой unsetenv.
shift
shift переменная
осуществляет левый сдвиг списка слов переменной. Левый
элемент списка исчезает. Попытка осуществить shift для
- 64 -
пустого списка приводит к состоянию ошибки.
source файл
предназначена для выполнения командного файла без
порождения нового интерпретатора. Команды source могут
быть вложенными. Ошибка в команде source на любом
уровне завершает выполнение. Вызов команды source без
аргументов порождает состояние ошибки.
stop %внутренний_идентификатор_процесса
stop %шаблон_имени_процесса
останавливает выполнение асинхронного процесса.
suspend
останавливает выполнение интерпретатора.
switch( входная_строка )
case образец_1:
...
breaksw
...
default:
...
endsw
в образцах вариантов case сначала выполняются подста-
новки. В образцах вариантов case можно использовать
шаблоны имен файлов *, ? и [...]. Образцы вариантов
case последовательно сравниваются с указанной в switch
входной строкой. Если не выявлено совпадение образца
со входной строкой, выполнение продолжается после
default. Слова case и default должны стоять первыми в
командной строке. Оператор breaksw передает управление
на строку, следующую за endsw. Если в варианте case не
указан оператор breaksw, то при совпадении с образцом
выполняются все строки до первого breaksw или default.
Если не обнаружено совпадение с образцом и default
отсутствует, выполнение продолжается после endsw.
time
time команда
при отсутствии параметров печатается итог времени,
израсходованного интерпретатором и его потомками. В
качестве команды нельзя использовать псевдонимы.
umask
umask маска
- 65 -
по умолчанию файлу устанавливается код доступа, который
определяется маской. Файл будет иметь код доступа, в
котором маскированы (равны 0) биты, установленные
(равны 1) в маске. Пусть маска имеет вид 123. Первая
цифра относится к маскированию битов доступа для вла-
дельца файла и администратора, вторая - к битам доступа
группы, а третья - к битам доступа всех остальных поль-
зователей. Значение маски указывается в восьмеричном
коде. Обычно значением маски является 002, которое
задает любой доступ для пользователей своей группы,
доступ для чтения и выполнения другим пользователям, и
022, которое определяет любой доступ (за исключением
записи) для пользователей своей группы и всех прочих.
Чтобы узнать текущее значение маски, надо выполнить
команду umask без аргумента.
unalias псевдоним ...
все псевдонимы, имена которых соответствуют указанным,
отменяются. Следовательно, unalias * удаляет все псев-
донимы. При запуске команды без аргументов порождается
состояние ошибки.
unhash
запрещает использовать хеш-таблицу при поиске команды.
unlimit ресурс
unlimit
снимает ограничение на ресурс. Если ресурс не указан,
снимаются ограничения на все ресурсы.
unset шаблон
удаляются все переменные, имена которых соответствуют
указанному шаблону. Таким образом, unset * удаляет все
переменные, установленные командой set.
unsetenv имя
удаляется переменная из окружения.
wait
ожидание всех выполняемых процессов. Пока выполняется
команда wait, приглашение не печатается. Команда wait
выполняется, пока не завершатся все запущенные на
выполнение процессы. При прерывании выполнения команды
wait (CTRL/C или СУ/C) сообщаются имена и номера всех
процессов, для которых выполнялось ожидание.
while( выражение )
...
end
- 66 -
цикл выполняется, пока истинно (не равно нулю) значение
выражения. Ключевые слова while и end должны нахо-
диться на отдельных строках. В теле цикла можно исполь-
зовать break для выхода из цикла и continue для возоб-
новления следующей итерации цикла без завершения теку-
щей.
- 67 -
СОДЕРЖАНИЕ
АННОТАЦИЯ ......................................... 2
1. Командный язык C-shell ............................ 3
1.1. Лексическая структура языка C-shell ............. 3
1.2. Форматы командных строк, перемещения по файловой
системе ......................................... 6
1.3. Управление вводом и выводом ..................... 9
1.4. Управление процессами ........................... 11
1.5. Шаблоны имен файлов и каталогов ................. 17
1.6. Подстановки значений переменных ................. 19
1.7. Модификаторы переменных ......................... 26
1.8. Выражения ....................................... 30
1.9. Операторы языка C-shell ......................... 35
1.10. Командные файлы ................................. 39
1.11. Протоколирование, средства работы с протоколом .. 44
1.12. Переменные интерпретатора csh ................... 49
1.13. Специальные файлы ............................... 55
1.14. Встроенные команды и операторы .................. 57
- 68 -