Здесь PID
— номер процесса; TTY
— терминал, связанный с процессом (как в команде who
); TIME
— затраченное время процессора в минутах и секундах, а в конце строки — выполняемая команда. Команда ps
— одна из тех команд, которые выполняются по- разному в различных версиях системы, так что вывод в вашей системе может иметь другой формат. Даже аргументы могут отличаться — см. в своем справочном руководстве страницу ps(1)
.
Процессы, подобно файлам, имеют иерархическую структуру: у каждого процесса есть родитель и могут быть потомки. Ваша копия интерпретатора shell
была создана процессом, обслуживающим связь через терминал с системой. Когда вы запускаете команды, их процессы становятся прямыми потомками вашей копии shell
. Если вы запускаете программу "внутри" одной из этих команд, например команду '!'
для выхода из редактора 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
для установки требуемой среды, и они будут выполняться всякий раз при входе в систему.
Большинство пользователей первым делом помещают в свой файл .profile
команду
$ stty erase ←
Мы использовали ←, чтобы сделать символ стирания видимым, но вы должны поместить в .profile
настоящий символ "шаг назад". Команда stty
воспринимает также обозначение ^x
в качестве ctl-x
, поэтому тот же результат можно получить, вводя:
$ stty erase '^h'
поскольку '^'
ранее применялся для операции программного канала |
, поэтому его следует экранировать с помощью кавычек.) Если на вашем терминале нет возможности задать интервалы табуляции, можно добавить к строке с stty
аргумент -tabs
:
stty erase '^h' -tabs
Если у вас есть желание посмотреть, как загружена система, при входе в нее добавьте для подсчета пользователей конвейер
who | wc -l
Если имеется служба новостей, можно добавить команду news
. Те, кому нравится игра fortune
, могут добавить
/usr/games/fortune
Спустя некоторое время вы обнаружите, что период входа в систему существенно возрос, и выберете для себя оптимальный вариант.
Некоторыми возможностями системы можно управлять с помощью так называемых shell-переменных, значения которых пользователь может и посмотреть, и установить. Например, строка-приглашение, обозначаемая ранее как $
, на самом деле хранится в shell-переменной, называемой PS1
, и можно присвоить ей любое значение:
PS1='Yes, dear ?'
Да, дорогой?
Кавычки необходимы, поскольку в строке-приглашении есть пробелы, а в этой операции пробелы перед и после "="
не допускаются.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии