Оболочка C - это интерактивный интерпретатор команд и командный язык программирования. Ее синтаксис похож на синтаксис языка программирования C. Для запуска оболочки С предназначена команда csh.
При входе в систему оболочка прежде всего пытается найти системный файл конфигурации /etc/csh.cshrc. Если файл будет найден, оболочка С выполняет перечисленные в нем команды. Затем оболочка С выполняет команды из системного файла /etc/csh.login, если он существует. Затем она пытается установить домашний каталог на основе файлов .cshrc и .login. В этих файлах хранится информация, необходимая для работы оболочки С. Все переменные из файлов /etc/csh.cshrc и /etc/csh.login могут быть переопределены с помощью файлов .cshrc и .login из вашего домашнего ($HOME) каталога. Файлы /etc/csh.cshrc и /etc/csh.login может изменять только пользователь root.
Файлы /etc/csh.login и $HOME/.login обрабатываются только один раз при входе в систему. Обычно они используются для хранения переменных среды, команд, которые вы хотите выполнять при входе в систему, или параметров терминала.
Файлы /etc/csh.cshrc и $HOME/.cshrc обрабатываются при входе в систему и каждый раз при вызове команды csh или сценария оболочки C. Обычно они используются для задания параметров оболочки С, например, псевдонимов и переменных среды (таких как history, noclobber и ignoreeof). В файлах /etc/csh.cshrc и $HOME/.cshrc рекомендуется указывать только Встроенные команды оболочки C, так как любые другие команды увеличивают время запуска сценариев.
В этом разделе обсуждаются следующие вопросы:
В оболочке С существуют следующие ограничения:
Обычно оболочка C игнорирует сигналы QUIT. Отсоединенные задания не реагируют на сигналы с клавиатуры (INTERRUPT, QUIT и HANGUP). Значения остальных сигналов наследуются от родительского процесса. Вы можете управлять обработкой сигналов INTERRUPT и TERMINATE в процедурах оболочки с помощью onintr. Оболочки входа в систему могут игнорировать или обрабатывать сигналы TERMINATE в зависимости от своей настройки. Другие оболочки передают сигналы TERMINATE своим дочерним процессам. Сигналы INTERRUPT игнорируются во время чтения оболочкой файла .logout.