Обычно при запуске из оболочки команды в системе Unix вы не увидите строки приглашения, пока команда не завершит работу. Тем не менее можно отделить процесс от оболочки и поместить его в «фон» с помощью символа амперсанда (&); после этого строка приглашения вернется. Если вам необходимо распаковать большой архив с помощью команды gunzip (о ней вы узнаете из раздела 2.18), а тем временем вы намерены заняться чем-либо другим, запустите команду такого вида:
$ gunzip
Оболочка должна в ответ выдать номер PID нового фонового процесса, а строка приглашения появится немедленно, чтобы вы смогли работать далее. Процесс продолжит свое выполнение и после того, как вы выйдете из системы. Это чрезвычайно удобно, если приходится запускать программу, которая производит довольно много вычислений. В зависимости от настроек системы оболочка может уведомить вас о завершении процесса.
Обратной стороной фоновых процессов является то, что они могут ожидать начала работы со стандартным вводом (и, хуже того, выполнять чтение прямо из терминала). Если фоновая программа пытается считывать что-либо из стандартного ввода, она может зависнуть (попробуйте команду fg, чтобы вызвать ее из фона) или прекратить работу. К тому же, если программа выполняет запись в стандартный вывод или стандартную ошибку, все это может отобразиться в терминале вне всякой связи с какими-либо выполняемыми командами: вы можете увидеть неожиданный результат, пока работаете над чем-то другим.
Лучший способ добиться того, чтобы фоновый процесс не беспокоил вас, — перенаправить его вывод (и, возможно, ввод), как описано в разделе 2.14.
Узнайте о том, как обновить окно терминала. Оболочка bash и большинство полноэкранных интерактивных программ поддерживают сочетание клавиш Ctrl+L для повторной отрисовки всего экрана. Если программа производит считывание из стандартного ввода, сочетание клавиш Ctrl+R обычно обновляет текущую строку, однако нажатие неверного сочетания в неподходящий момент может привести вас к более печальной ситуации, чем была раньше. Нажав, например, Ctrl+R в строке приглашения оболочки bash, вы окажетесь в режиме реверсивного поиска isearch mode (для выхода из него нажмите клавишу Esc).
2.17. Режимы файлов и права доступа
Каждый файл системы Unix обладает набором
— rw-r — r—
Оставшаяся часть режима файла содержит сведения о правах доступа, которые разделены на три группы:
Каждый из наборов прав доступа может содержать четыре основных обозначения (табл. 2.5).
Рис. 2.1. Составляющие режима файла
Таблица 2.5. Обозначение прав доступа
Обозначение
Описание
r
Файл доступен для чтения
w
Файл доступен для записи
x
Файл является исполнимым (можно запустить его как программу)
–
Ничего не обозначает
Права доступа пользователя (первый набор символов) относятся к пользователю, который является владельцем файла. В приведенном выше примере это juser. Второй набор символов относится к группе (в данном случае somegroup). Любой пользователь из этой группы обладает указанными правами доступа. Воспользуйтесь командой groups, чтобы узнать, в какую группу вы входите. Дополнительную информацию можно получить в подразделе 7.3.5.
В третьем наборе (другие права доступа) указано, кто еще будет обладать в системе правами доступа. Их часто называют правами доступа
примечание
Каждая позиция, содержащая обозначение права доступа на чтение, записи или исполнение, иногда называется битом прав доступа. По этой причине вы можете слышать, как пользователи упоминают про «биты доступа для чтения».