UNIX — универсальная среда программирования | страница 34



. Если вы запускаете программу "внутри" одной из этих команд, например команду >'!' для выхода из редактора >ed, то создается новый процесс-потомок, который является, таким образом, уже внуком для >shell.

Иногда процесс выполняется столь долго, что вы уже жалеете, что запустили его. Выключите терминал и идите домой, не дожидаясь его окончания. Но если вы выключите терминал или отсоедините его от сети, то процесс будет уничтожен, даже если применен >&. Специально для такого случая предусмотрена команда >nohup ("no hangup" — без отбоя).

Введите

>$ nohup команда &

и команда будет продолжать выполняться, даже если выйти из системы. Любой результат выполнения команды будет сохранен в файле, называемом >nohup.out. После запуска программы никакая команда >nohup уже не поможет.

Если ваш процесс требует много процессорного времени, вы можете облегчить участь тех, кто работает вместе с вами, запустив его с приоритетом ниже обычного. Это можно сделать с помощью программы >nice:

>$ nice большая-команда &

Команда >nohup автоматически вызывает >nice, поскольку раз уж вы собираетесь выйти из системы, то можете позволить, чтобы ваша команда выполнялась дольше.

Наконец, вы можете дать указание системе запустить ваш процесс в необычное время, скажем, утром, когда все нормальные люди снят, а не работают на машине. Команда называется >at(1):

>$ at

>время любые команды

>какие угодно...

>ctl-d

>$

Это пример типичного использования команды >at, но, конечно, команды можно брать и из файла:

>$ at 3am < файл

>$

Время можно задавать исходя из 24-часового цикла как >2130 или 12-часового как >930pm.

Создание среды

Одним из достоинств системы UNIX является то, что вы можете легко адаптировать ее по своему вкусу либо в соответствии с местными традициями программистского мира. Например, как отмечалось выше, существуют разные стандарты для символов стирания и удаления; по умолчанию используются ># и >@ . Вы можете изменить их в любой момент с помощью команды

>$ stty erase е kill k

где >'e' обозначает нужный вам символ стирания, а >'k' — символ удаления. Однако задавать эти символы при каждом входе в систему — довольно нудное занятие.

На помощь здесь приходит >shell. Если в вашем начальном каталоге есть файл >.profile, интерпретатор будет запускать команды из него при каждом входе в систему перед выдачей первого приглашения. Поэтому можно поместить команды в >.profile для установки требуемой среды, и они будут выполняться всякий раз при входе в систему.