3-2 Система, готовая начать работу с вами, высвечивает на экра- не дисплея приглашение-подсказку "login:". Если на экране появи- лись блики или какая-нибудь абракадабра, нажмите несколько раз клавишу INTERRUPT (или DEL). Когда же, наконец, подсказка "login:" появилась на вашем экране, ваши действия должны быть следующими: 1. Наберите ваше регистрационное имя и нажмите RETURN. Если в наборе имени вы допустили ошибку, нажмите Ctrl-u для появления той же командной строки снова (надавите Ctrl, и, не отпуская, нажмите клавишу u). После того, как вы нажмете RETURN, на экране появится запрос "Password:". 2. Введите ваш пароль и нажмите RETURN. При этом вводимые вами символы не высвечиваются на экране и курсор не сдвигается. Это делается, чтобы скрыть от других пользователей ваш пароль и, таким образом, защитить ваши записи. Если вы введете регистрационное имя или пароль неверно, то система высветит на экране следую- щее сообщение: _____________________________________________________ | | Login incorrect | login: | Увидев такое сообщение, введите имя или пароль снова. 3. В зависимости от того, какую конфигурацию имеет ваша система, ею может быть задан вопрос о типе вашего терминала. В этом случае на экране вы увидите следую- щее: _____________________________________________________ | | TERM=(unknown) | Если такая строка появилась, введите информормацию о типе вашего терминала. (Если вы не знаете этого, кон- тактируйте с системным администратором.) . 3-3 Если вся информация введена правильно, на экране появится "символ приглашения". В среде Bourne Shell это знак доллара ($), и в среде C-Shell это знак процентов (%). Этот символ подскажет вам, с какой именно версией UNIX вы имеете дело. В зависимости от конфигурации, система может также поинте- ресоваться о текущей дате. 3.2.2 Выход из системы. Обычный способ выхода из системы - это на очередной символ приглашения ответить logout (после % в C-Shell) или exit (после $ в Bourne Shell). Также иногда для выхода используется комбина- ция клавиш Ctrl-d. Однако, некоторые системы не предоставляют возможности выходить по Ctrl-d. Причина тому - стандартное обоз- начение конца файла в UNIX знаком Ctrl-d, и частое его исполь- зование для сообщения о конце ввода с клавиатуры. Некоторые пользователи ошибочно могут нажать Ctrl-d несколько раз, и тем самым ненамеренно выйти из системы. Для предотвращения такой пу- таницы системный администратор может отключить такую функцию Ctrl-d. Проэкспериментируйте, работает ли на вашей системе Ctrl-d в качестве указания о выходе. Если нет, то попытайтесь выйти с по- мощью exit или logout. Если вы не находитесь в системе, войдите в нее и затем попробуйте выйти по Ctrl-d, exit или logout. 3.2.3 Изменение вашего пароля. Для предотвращения доступа к системе несанкционированных пользователей каждый санкционированный пользователь должен иметь пароль. Когда вы впервые получаете системный бюджет, сделайте это с помощью системного администратора. Некоторые системы UNIX требуют регулярного обновления пароля. Вне зависимости от этого требования, очевидно, что периодически изменять пароль - хорошая идея (по крайней мере, раз в два месяца) для большей безопаснос- ти системы. Для изменения пароля используйте команду passwd. Делается это следующим образом: 1. Введите следующую команду и нажмите RETURN: passwd . 3-4 Вы видите: _____________________________________________________ | | Changing password for user | Old password: | При этом ваше регистрационное имя появится на месте слова user. 2. Внимательно введите старый пароль .Он не высветится на экране. Если вы допустили ошибку, нажмите RETURN. По- явится сообщение "Sorry", затем приглашение системы. Начните все снова с шага 1. 3. Следующее сообщение появится, когда вы введете старый пароль и нажмете RETURN: _____________________________________________________ | | New password: | Введите ваш новый пароль и нажмите RETURN. Хорошо бы использовать в пароле комбинацию строчных и прописных букв. 4. Вы видите следующее сообщение: _____________________________________________________ | | Re-enter new password: | Снова введите новый пароль. Если вы ошибетесь, то увидите следующее: _____________________________________________________ | | They don't match; try again | . 3-5 Когда вся процедура будет закончена, снова появится пригла- шение UNIX. Когда вы будете снова входить в систему, не забудь- те, что у вас новый пароль. 3.3 Обеспечение безопасности ваших ресурсов. В основном, обеспечение безопасности - забота самого поль- зователя. Небрежное использование или нерегулярное обновление пароля - реальная угроза благополучию компьютерной системы. 3.3.1 Безопасность пароля. Несколько полезных советов о специфике безопасности пароля: 1. Не используйте пароль, который легко разгадать. Па- роль должен содержать не меньше шести символов, вклю- чающих буквы, цифры и знаки пунктуации. (Например: frAiJ6*) 2. Пароль не должен быть именем (даже прозвищем), собс- твенным существительным или другим словом, которое можно найти в /usr/dict/words. (Не используйте пароль типа terry9) 3. Всегда держите свой пароль в секрете. Никогда не запи- сывайте его, не посылайте электронной почтой и не произносите вслух. 3.3.2 Безопасность - это ваши хорошие привычки. Это достаточно просто - иметь хорошие привычки для безопас- ности. Здесь приводятся несколько общих советов. 1. Не забудьте, прежде чем уйти от терминала, выйти из системы. 2. Покидая терминал, даже на короткое время, используйте утилиту lock(C). 3. Некоторые "особо чувствительные" файлы не просматри- вайте публично. (В Части 4 вы найдете информацию о том, как это сделать) 4. Убирайте флоппи-диски и ленты с конфиденциальной ин- формацией в ящик с замком, который не забывайте за- пирать. . 3-6 5. Если вы заметите что-то странное, происходящее с ваши- ми файлами и каталогами, или же найдете следы чьего-нибудь посещения вашего хозяйства, обратитесь к системному администратору. 3.3.3 Использование бюджета других пользователей. Вы можете найти необходимым работать с файлами других поль- зователей. Однако, запросто может так быть, что установленный для этих файлов режим доступа позволяет лишь владельцу редакти- ровать его. Чтобы обойти эту проблему, используйте команду su для изменения вашего текущего распределения ресурсов, включив часть бюджета другого пользователя. Для использования команды su вам необходимо знать соответствующий пароль. Например, чтобы войти в бюджет пользователя по имени joe, введите на очередное приглашение UNIX (но не на приглашение login) следующую команду: su joe Когда появится запрос о пароле, введите пароль пользователя joe. Отменить действие команды su и вернуться в ваш собственный бюджет можно, нажав клавишу Ctrl-d. 3.4 Изменение типа вашего терминала. В большинстве систем конфигурация позволяет сразу использо- вать системную консоль для работы с UNIX. Но и многие другие серийные терминалы различных типов могут быть подключены к сис- теме UNIX. Если вам предстоит работать на серийном терминале, важно знать, как специфицируется тип терминала. Тип терминала высвечивается на его экране всякий раз при регистрации. Вы можете изменить значение типа вашего терминала с помощью редактирования файла .profile в вашем начальном каталоге. Если вы работаете с C-Shell, то вместо файла .profile, которого у вас нет, редактируйте файл .login, который у вас есть. Могут быть по крайней мере две причины, по которым вы може- те захотеть изменить значение высвечиваемого типа терминала: . У вас может появиться новый терминал, модель которого не совпадает с моделью вашего прежнего терминала. В этом случае тот тип терминала, который появится на эк- ране благодаря старому файлу .profile (.login), будет неверным. . 3-7 . Может быть так, что значение типа терминала сооб- щается системой как "unknown" (неизвестный) или "ansi" (стандартный), что неверно для вашего термина- ла. Тогда каждый раз при регистрации вам будет задан вопрос о типе терминала. Для настройки среды на ваш терминал в этом случае достаточно нажать клавишу RETURN в ответ на запрос о типе терминала. Необяза- тельно явно вводить тип терминала. Чтобы изменить высвечиваемый тип терминала, воспользуйтесь редактором vi для исправления .profile (.login). Часть 4 данного руководства показывает, как пользоваться редактором vi. Находясь в vi, подгоните курсор к строке, которая выглядит так: eval 'tset -m :\?unknown -s -r -Q' Вместо unknown (или того значения, которое есть) в этой строке напечатайте значение типа вашего терминала. Например, ес- ли вы обычно работаете с терминалом vt100, строка будет выгля- деть следующим образом: eval 'tset -m :|?vt100 -s -r -Q' Каждый раз, входя в систему, вы будете встречать следующее сообщение: TERM = (vt100) Нажмите RETURN, и теперь тип терминала установлен vt100. Нет необходимости вводить vt100. 3.5 Ввод команд. Прежде чем вы начнете работать с командами, описанными в оставшейся части данного руководства, вам необходимо подробно познакомиться с тремя очень полезными возможностями UNIX. Это - буфер клавиатуры, комбинация клавиш для стирания командной стро- ки и останов/возобновление вывода на экран. Эти возможности опи- саны ниже. 3.5.1 Ввод командной строки. Ввод командной строки состоит из печатания символов и пос- ледующего нажатия клавиши RETURN. Когда вы нажмете RETURN, компьютер прочтет командную строку и будет выполнять специфици- рованную команду. Нажав только RETURN без ввода команды, вы не вызовите никаких командных действий. . 3-8 Вы можете вводить подряд несколько командных строк, не дожидаясь, пока после выполнения очередной команды снова появит- ся символ приглашения системы. Это возможно благодаря поддержи- ваемому UNIX буферу клавиатуры. Буфер клавиатуры UNIX может содержать до 256 вводимых символов. Проэкспериментируйте с ис- пользованием буфера клавиатуры, вводя следующие команды одну за другой, причем следующую вводите, не дожидаясь выполнения преды- дущей. (Всегда нажимайте RETURN после ввода команды. В данном примере нажимайте RETURN после ввода каждой команды.) lc -la du -a lc -Fa Эти команды распечатают полный листинг всех файлов текущего каталога, затем статистику обращений к диску этих файлов, и, на- конец, снова список файлов, но в другом формате. 3.5.2 Стирание командной строки. Вполне вероятно, что вы можете допустить ошибку в наборе команды. Стереть всю текущую командную строку вы можете с по- мощью команды Ctrl-u. Когда вы нажмете Ctrl-u, снова появится приглашение системы, а команда выполнена не будет. 3.5.3 Останов вывода на экран. Часто просматриваемый поток данных выводится на экран столь быстро, что вы не успеваете их прочесть. Для приостановки вывода нажмите Ctrl-s. Для возобновления выдачи на экран нажмите Ctrl-q. Проведите эксперимент с использованием Ctrl-s и Ctrl-q, введя следующую ниже команду, затем нажмите Ctrl-s для остановки вывода и Ctrl-q для его возобновления: ls /bin . Ч А С Т Ь 4. Работа с файлами и каталогами. ___________________________________________________________ 4.1 Введение 4-1 4.2 Работа с каталогами 4-1 4.2.1 Печать имени вашего рабочего каталога 4-2 4.2.2 Распечатка содержания каталога 4-2 4.2.3 Изменение вашего рабочего каталога 4-3 4.2.4 Создание каталогов 4-4 4.2.5 Уничтожение каталогов 4-5 4.2.6 Переименование каталогов 4-6 4.2.7 Копирование каталогов 4-6 4.3 Редактирование файлов с помощью редактора vi 4-7 4.3.1 Ввод текста 4-7 4.3.2 Движение курсора 4-8 4.3.3 Удаление текста 4-8 4.3.4 Вставка текста 4-9 4.3.5 Выход из редактора vi 4-9 4.4 Распечатка файлов 4-10 4.4.1 Использование lp 4-10 4.4.2 Использование опций lp 4-11 4.4.3 Отмена запроса о печати 4-12 4.4.4 Нахождение состояния запроса о печати 4-12 4.5 Работа с файлами 4-13 4.5.1 Отображение на экране содержания файла 4-14 4.5.2 Удаление файлов 4-16 4.5.3 Комбинирование файлов 4-16 4.5.4 Переименование файлов 4-17 4.5.5 Перемещение файлов 4-18 4.5.6 Копирование файлов 4-18 4.5.7 Нахождение файлов 4-19 . 4.6 Обработка текстовых файлов 4-20 4.6.1 Сопоставление файлов 4-20 4.6.2 Сортировка файлов 4-21 4.6.3 Поиск шаблонов в файле 4-21 4.6.4 Подсчет слов, строк и символов 4-22 4.7 Использование режимов доступа к файлам и каталогам 4-23 4.7.1 Изменение режимов доступа к файлам 4-26 4.7.1 Изменение режимов доступа к каталогам 4-28 . 4.1 Введение. В этой части содержится информация о том, как выполнять следующие команды UNIX: . Напечатать имя текущего каталога, . Просмотреть содержание каталога, . Перейти в другой каталог, . Создать, уничтожить, переименовать и скопировать ката- лог, . Использовать при создании файла текстовый редактор vi, . Распечатать файлы, . Вывести на экран содержимое файла, . Уничтожить, скомбинировать, переименовать, передвинуть, скопировать и найти файлы, . Соотнести и рассортировать файлы, . Найти шаблоны в файле, . Подсчитать слова, строки и символы в файле, . Использовать режимы доступа к файлам и каталогам. Эта часть построена как самоучитель. Изучать ее лучше всего непосредственно за терминалом, вводя данные в примерах команды. Ни одна из описанных здесь команд не дана в деталях. Для более подробного ознакомления обратитесь к UNIX User's Reference. 4.2 Работа с каталогами. Благодаря иерархической структуре файловой системы, любая система UNIX имеет много каталогов и подкаталогов. UNIX вклю- чает в себя несколько команд, упрощающих работу с каталогами. Эти команды описаны в следующих главках. . 4-2 4.2.1 Печать имени вашего рабочего каталога. Каталог, в котором вы сейчас находитесь, на какое-то время стал вашим рабочим каталогом. Все вводимае команды выполняются относительно рабочего каталога. Имя этого каталога можно узнать по команде pwd, которая расшифровывается как "print working directory" ("напечатать рабочий каталог"). Узнать, каков ваш ра- бочий каталог, можно, введя следующую команду: pwd Когда в системе вы впервые, вы находитесь в вашем начальном каталоге. 4.2.2 Распечатка содержания каталога. Несколько родственных команд используется для распечатки содержания каталога: lc  Эта команда - вариант команды ls. Команда ls упорядочивает в алфавитном порядке и печатает содержание каталога. Команда lc тоже упорядо- чивает в алфавитном порядке содержание ката- лога и печатает его в виде стобцов. lf Эта команда похожа на lc, и к тому же она от- мечает каталоги слэшем (/) и выполнимые файлы (компьютерные программы) звездочкой (*). Введите следующую команду для распечатки содержания /usr/bin: lc /usr/bin Этот каталог содержит много выполнимых файлов, с которыми вы работаете в среде UNIX. Введите команду lc без имени катало- га для распечатки содержания текущего каталога. . 4-3 Также полезна команда l. Она эквивалентна команде ls -l, которая производит "длинную" распечатку содержания каталога. Вывод будет примерно таким: __________________________________________________________ | | total 338 | -rw-rw-r-- 1 markt pub 4448 Mar 1 09:16 1.intro.00 | -rw-rw-r-- 1 markt pub 4457 Mar 1 09:29 1.intro.s | -rw-rw-r-- 1 markt pub 33836 Mar 1 09:30 2.consepts.00 | -rw-rw-r-- 1 markt pub 35096 Mar 1 12:49 2.consepts.s | -rw-rw-r-- 1 markt pub 52197 Mar 1 15:09 3.basic.s | -rw-rw-r-- 1 markt pub 39835 Feb 16 11:02 4.advan.s | По команде l, читая слева направо, мы получим следующую информацию о каждом файле или каталоге: . Режим доступа . Число каналов связи . Владелец . Группа . Размер в байтах . Время последней модификации . Имя файла Запись в верху списка показывает общее число "блоков", ис- пользуемых на диске для хранения всех этих файлов. Один блок со- держит 512 байтов. 338 блоков, или 173056 байтов, необходимо для хранения описанных выше файлов. 4.2.3 Изменение вашего рабочего каталога. Ваш рабочий каталог - это то место в файловой системе, где вы находитесь. Перейти в другой каталог файловой системы UNIX можно по команде cd. . 4-4 Введя команду cd без параметров, вы окажетесь в вашем на- чальном каталоге. Попробуйте. Введите cd. Чтобы быть уверенным, что вы находитесь в вашем начальном каталоге, проверьте это с помощью команды pwd. Чтобы перейти в каталог, отличный от вашего начального ка- талога, специфицируйте нужный каталог как аргумент в команде cd. Например, введя следующую команду, вы окажетесь в /usr/bin: cd /usr/bin Проверьте, что вы в /usr/bin, введя pwd. Попасть в корневой каталог можно по команде: cd / Корневой каталог - "вершина" файловой системы. (Игра слов, так как дерево файлов инвертировано.) Все прочие каталоги нахо- дятся "ниже" его. Посмотрим с помощью команды lf файлы и катало- ги, содержащиеся в корневом каталоге. Затем вернемся в ваш на- чальный каталог. (О начальном каталоге более подробно смотрите Часть 2 данного руководства.) Некоторые стенографические нотации помогут более быстрому перемещению в файловой системе. Для того, чтобы попасть в ката- лог на один уровень выше текущего, введите: cd .. Введите следующую команду - и вы на два уровня выше: cd ../.. Если вы введете последнюю команду, находясь в своем началь- ном каталоге, то, вероятнее всего, окажетесь в корневом катало- ге. Проверьте это (pwd). 4.2.4 Создание каталогов. Находясь в вашем рабочем каталоге, вы можете создать подка- талог с помощью команды mkdir. Ведите cd для перехода в ваш на- чальный каталог и затем введите следующую команду для создания подкаталога с именем tempdir: mkdir tempdir . 4-5 Проверьте с помощью команды lf, что tempdir существует. Пе- рейдите в tempdir с помощью команды cd и проверьте, что tempdir пуст (по lf). Наконец, воспользуйтесь командой touch(C) для соз- дания в tempdir двух пустых файлов: touch tempfile1 tempfile2 Введите снова lf для проверки, что tempfile1 и tempfile2 созданы. Если вы хотите создать подкаталог в каталоге, то это вам удастся лишь в том случае, если вы имеете режим доступа по запи- си. Если вы такого режима доступа не имеете и воспользуетесь ко- мандой mkdir, вы получите следующее сообщение: mkdir: cannot acctss directory_name В этом сообщении directory_name будет представлять собой имя каталога, в котором вы пытались создать подкаталог. Попро- буйте проделать это в каталоге /etc, где вы скорее всего не име- ете режима доступа по записи: mkdir /etc/temp 4.2.5 Уничтожение каталогов Для уничтожения каталога используйте команду rmdir. Эта ко- манда неприменима к каталогам, содержащим подкаталоги и файлы. Проверьте это: перейдите в ваш начальный каталог посредством ко- манды cd и затем введите следующую команду для уничтожения соз- данного в 4.2.4 каталога tempdir: rmdir tempdir Вы должны увидеть следующее сообщение: rmdir: tempdir not empty Чтобы уничтожить каталог tempdir с помощью rmdir, вы можете прежде уничтожить файлы tempfile1 и tempfile2, содержащиеся в нем. Но не надо это проделывать сейчас, так как они нам понадо- бятся в дальнейшем. . 4-6 4.2.6 Переименование каталогов. Для переименования каталога используйте кoманду mv. Напри- мер, перейдите в ваш начальный каталог по команде cd и затем введите следующую команду для переименования tempdir - каталога, созданного в 4.2.4, - в newdir: mv tempdir newdir Проверьте, что имя изменено, с помощью команды lf. Заметим, что в результате изменения имени каталога на newdir с файлами, содержащимися там, ничего не происходит. Прверьте это командой lf: lf newdir 4.2.7 Копирование каталогов. Команда copy копирует каталоги. Конечно, прежде чем копиро- вать содержание одного каталога в другой, вы должны иметь режим доступа по записи для второго каталога. Чтобы скопировать каталог /newdir, созданный в 4.2.6, и все содержащиеся там файлы в tmp/newdir, введите следущую команду: copy $HOME/newdir /tmp/newdir В этой команде "$HOME" - стенографическое название пути к вашему начальному каталогу. Чтобы проверить, что файлы из $HOME/newdir скопированы в /tmp/newdir, введите следующую команду: lf /tmp/newdir Уничтожьте /tmp/newdir, введя следующие команды: rm /tmp/newdir/* rmdir /tmp/newdir . 4-7 Первая команда уничтожит все файлы в /tmp/newdir, вторая команда уничтожит каталог /tmp/newdir. Проверьте, что /tmp/newdir уничтожено, вводя следующую команду: lf /tmp Уничтожьте $HOME/newdir, введя следующие команды: rm $HOME/newdir/* rmdir $HOME/newdir 4.3 Редактирование файлов с помощью редактора vi. Текстовый редактор vi является экранным редактором, вклю- ченным в ОС UNIX. В этой главке сжато описано использование ре- дактора vi. Для более подробного ознакомления обращайтесь к UNIX User's Guide. 4.3.1 Ввод текста. Измените ваш каталог на начальный с помощью команды cd, и введите следующую команду для создания файла tempfile: vi tempfile Появится сообщение, из которого вы узнаете, что создали но- вый файл. Заодно вы попали в редактор vi. Существует два режима в vi: режим вставки и режим команд. Используйте режим вставки для добавления текста в файл, а режим команд - для исправления существующего текста. Так как tempfile пуст, введите i для работы в режиме вставки. Введите следующие строки текста, нажимая RETURN после каж- дой строки. Если вы сделали ошибку в наборе строки, используйте клавишу BKSP для стирания и продолжайте набор символов: Этот самоучитель очень, очень помогает мне. С ним легко изучать применение системы UNIX. Как я рад, что имею такой самоучитель. После того, как вы введете последнююю строку, нажмите кла- вишу ESC. При этом вы выйдете из режима вставки и попадете в ре- жим команд. . 4-8 4.3.2 Движение курсора. Хотя существует много команд для перемещения курсора, оста- новимся здесь лишь на четырех (всегда подразумевается, что вы в режиме команд): h Находясь в режиме команд, нажимайте h для перемещения на один символ влево. l Перемещение на один символ вправо. k Перемещение на одну строку вверх. j Перемещение на одну строку вниз. Попробуйте использовать эти команды для перемещения курсора во введенном вами тексте. Заметим, что часто клавиши-стрелки представляют клавиши h,l,k,j для управления движением курсора. 4.3.3 Удаление текста. Удалить текст в редакторе vi очень просто. Здесь есть раз- личные команды для удаления символов, слов и целых строк. Для удаления одного символа подведите курсор под этот сим- вол и нажмите клавишу x. Попробуйте, как работает эта клавиша, удаляя запятую в первой строке текста. Чтобы удалить слово, подведите курсор под первый символ слова и нажмите dw (нажмите d, и, отпустив, нажмите w). Попро- буйте использовать эту команду, удаляя слово "очень" в первой строке вашего текста. Чтобы удалить строку, поместите курсор на любое место этой строки и нажмите dd (нажмите d, а потом, отпустив, снова d). Попробуте с помощью этой команды удалить третью строку вашего текста. Теперь ваш текст должен выглядеть следующим образом: _________________________________________________________ | | Этот самоучитель очень помогает мне. | С ним легко изучать применение системы UNIX. | . 4-9 4.3.4 Вставка текста. Клaвиши i и o используются для вставки текста. Мы уже ис- пользовали клавишу i для вставки текста в пустой файл. Если вы хотите добавить текст в существующую строку, подведите курсор к тому месту, куда бы вы хотели поместить новый кусок, нажмите i для перехода в режим вставки, введите текст и вернитесь в режим команд, нажав клавишу ESC. Например, подведите курсор к "л" в слове "легко" во второй строке, нажмите i, введите слово "очень", нажмите пробел и вернитесь в режим команд с помощью ESC . Вторая строка будет выглядеть так: __________________________________________________________ | | С ним очень легко изучать применение системы UNIX. | Клавиша o может быть использована для вставки новой строки. Поместите курсор непосредственно выше того места в файле, где будет помещена вставляемая строка, и нажмите o. Появится место для новой строки, при этом курсор попадет на начало строки. Вы автоматически попали в режим вставки. Попробуйте, поместив кур- сор во вторую строку tempfile и нажав o. Теперь введите новый текст. Нажмите ESC, когда закончите. 4.3.5 Выход из редактора vi. Через какое-то время вы захотите сохранить ваш файл, преж- де, чем покинуть vi. Чтобы сделать это, перейдите в режим команд и наберите :x. Эта команда сохранит файл, который вы редактиро- вали, и вернет вас в среду UNIX. В некоторых случаях вам понадобится выйти из редактора без сохранения вашей работы. Для этого в режиме команд наберите :q!. Эта команда вернет вас в среду UNIX без внесения изменений в тот файл, с которым вы занимались. Выйдите из tempfile, нажав :x. Снова войдите в tempfile, введя следующую команду: vi tempfile . 4-10 Вставьте какой-либо текст с помощью i или o, нажмите ESC и введите :q! для выхода без сохранения внесенных изменений. Прсмотрите tempfile с помощь следующей команды: cat tempfile Вы заметите, что последние изменения не высветились. Унич- тожьте tempfile с помощью команды rm tempfile 4.4 Распечатка файлов. Распечатать файл можно с помощью команды lp. Это одна из так называемых команд "строчного принтера". Команды строчного принтера легки в использовании и очень гибки. С помощью несколь- ких простых команд вы можете напечатать много копий вашего фай- ла, отменить запрос о печати или задать специальные опции для принтера. Проверьте вместе с вашим системным администратором на- личие в вашей системе опций для команд управления принтером. 4.4.1 Использование lp. С помощью команды cd перейдите в ваш начальный каталог и введите следующую команду для создания файла, с которым можно поэкспериментировать: cp /etc/motd $HOME/printfile Эта команда поместит копию /etc/motd в ваш начальный ката- лог под названием printfile. Файл /etc/motd - "message of the day file" - файл "сообщения о дате". Его содержание появляется на экране вашего дисплея каждый раз при регистрации в системе. Каталог должен быть открыт для выполнения любому пользова- телю, чтобы вы могли распечатать какой-либо файл из него. Это означает, что и другие пользователи должны иметь режим доступа по выполнению в этом каталоге. Чтобы сделать каталог общеупотре- бимым, введите следующую команду: chmod o+x $HOME (Смотрите "Использование режимов доступа к файлам и катало- гам" далее в этой части, где более подробно об chmod(C).) . 4-11 Введите следующую команду для печати printfile: lp printfile Эта команда по умолчанию пошлет одну копию файла printfile на принтер для печати. Заметим, что вы можете распечатать нес- колько файлов, помещая их имена в качестве аргументов команды lp. Когда вы печатаете с помощью lp, на экране высвечивается "сообщение ID", которое выглядит примерно так: pr4-532 Первая часть этого сообщения (pr4) - название принтера, на котором вы печатаете. Вторая часть (532) идентифицирует ваш ра- бочий номер. Если вы захотите позже отозвать свой запрос о печа- ти или изменить его состояние, припомните сообщение ID. (Отмена и изменение состояния запроса о печати описано ниже.) Также вы можете использовать lp с каналами. Например, вве- дите следующую команду для сортировки и последующей печати копии файла /etc/passwd, содержащего информацию о системном бюджете: sort /etc/passwd | lp (Подробнее о sort(C) смотрите "Сортировка файлов", ниже в этой части.) 4.4.2 Использование опций lp. Команда lp имеет несколько опций, которые помогут вам конт- ролировать вывод на печать. Вы можете задать число копий, кото- рые вы хотите получить отпечатанными, с помощью числовой опции -n. Например, чтобы напечатать две копии printfile, введите: lp printfile -n2 Часто с одной системой UNIX связаны несколько различных принтеров. С помощью опции -d вы можете специфицировать принтер, на котором хотите распечатать ваш файл. Для того, чтобы напеча- тать две копии вашего файла printfile на принтере, который назы- вается laser, введите: lp printfile -n2 -dlaser Вместе с вашим системным администратором проверьте имена ваших принтеров. . 4-12 4.4.3 Отмена запроса о печати. Используйте команду cancel для отмены запроса о печати. Ко- манда cancel берет аргумент из ID-сообщения. Например, остано- вить печать файла с ID-сообщением от laser-245 можно, введя сле- дующую команду: cancel laser-245 Попробуйте начать печать по команде lp и затем остановить печать по команде cancel. Закончив, введите следующую команду для уничтожения printfile: rm printfile Вы можете использовать команду cancel для остановки текущей печати. Например, чтобы прервать происходящую в данный момент печать какого-либо файла на принтере laser, введите следующую команду: cancel laser Если вы прерываете печать чужого файла, его владельцу тот- час будет послано сообщение об этом. 4.4.4 Нахождение состояния запроса о печати. Используйте команду lpstat для изменения состояния запроса о печати. Для этого просто введите следующее: lpstat Команда lpstat выдаст примерно такой текст: _________________________________________________________ | | prt1-121 cindum 450 Dec 15 09:30 | laser-450 cindum 4968 Dec 15 09:46 | . 4-13 Заметим, что, используя команду lpstat без опций, вы полу- чите информацию только о своих файлах. Если вы интересуетесь по- добной информацией о файлах всех пользователей данного компьюте- ра, используйте команду lpstat с опцией -o. Эта команда не даст никакой информации, если работа принтера завершена. Первая колонка выданного по команде lpstat текста содержит ID-сообщение для каждого файла, находящегося в печати. Вторая колонка показывает ваше регистрационное имя. В третьей колонке содержится число символов, которые будут напечатаны, и в четвер- той колонке - дата и время поступления запроса о печати. Для изучения состояния отдельного файла используйте команду lpstat с ID-сообщением файла. Например, для нахождения состояния файла с ID-сообщением laser-256 введите следующую команду: lpstat laser-256 Будет высвечено состояние только одного файла. Вы можете также запросить состояние принтеров вашей систе- мы, используя опцию -p, или же задавая имена отдельных интересу- ющих вас принтеров. Следующая команда поможет вам узнать инфор- мацию обо всех принтерах системы: lpstat -p Чтобы узнать состояние принтера laser, введите: lpstat -plaser Высветились ID-сообщение и информация о состоянии всех фай- лов, ожидающих в данный момент печати на принтере laser. 4.5 Работа с файлами. Манипуляции с файлами ( создание, удаление, печать на экра- не, комбинирование, переименование, перемещение и копирование ) входят в число наиболее важных функций операционной системы. Ко- манды UNIX, реализующие эти функции, описаны ниже. . 4-14 4.5.1 Отображение на экране содержания файла. Команда more печатает на экране содержание файла, причем, напечатав столько, сколько умещается на полном экране, она при- останавливает вывод. Эта команда не может быть использована для редактирования файла. Если размер файла превосходит один экран, то после выдачи каждого куска файла вы увидите следующее сообще- ние: --More--(XX%) XX% показывают, сколько процентов текста уже напечатано на экране. Для медленной, построчной выдачи текста нажимайте клави- шу RETURN. Для поэкранной выдачи нажимайте пробел. Введите следующую команду: more /etc/rc При этом на эране начнет печататься файл /etc/rc. Для пре- рывания печати файла прежде, чем она будет завершена, нажмите q. Команда more не позволяет листать назад, к началу файла. Однако, вы можете, используя команду more, организовать поиск по шаблону, взяв шаблон как аргумент через слэш (/). Например, вве- дите следующую команду для поиска строки, содержащей слово "process" в /etc/rc : more /etc/rc Вверху на экране вы увидите следующее сообщение: ________________________________________________________ | | ...skipping | Если шаблон будет найден, на экране под этим сообщением вы увидите две искомые строки. В противном случае будет выдано со- общение "Pattern not found" ("Шаблон не найден"). Если при просмотре файла с помощью команды more вы находи- те, что этот файл нужно редактировать, то в редактор vi вы може- те попасть, нажав клавишу v. Конечно, вы должны иметь режим дос- тупа по записи к этому файлу для редактирования с помощью этого или другого редактора. Для печати содержимого файла на экране нужно иметь режим доступа по чтению. . 4-15 Вы можете использовать команду more с каналами. Например, команда more полезна, когда вы хотите вывести содержание катало- га в длинном формате. Введите следующую команду для поэкранной печати содержания каталога /bin в длинном формате: l /bin | more (О каналах читайте Часть 2 данного руководства.) Команды head и tail выводят на печать соответственно начало и конец файла. Применяемые без опций, они печатают по 10 строк от начала и от конца файла. Введите следующую команду для печати на экране 10 последних строк файла /etc/rc: tail /etc/rc Количество необходимых вам для просмотра строк вы можете указать точно. Введите следующую команду для печати первых 20 строк /etc/rc: head -20 /etc/rc Введите для печати 20 последних строк /etc/rc: tail -20 /etc/rc Команда cat также выдает на экран содержание файла. Подобно команде more, cat непрерывно печатает файл до тех пор, пока вы не остановите просмотр нажатием Ctrl-s. Ctrl-d продолжит прос- мотр. Просмотр автоматически прекратится, когда будет достигнут конец файла. Для прекращения просмотра до его завершения нажмите INTERRUPT (Del). Введите следующую команду для просмотра содержания файла /etc/termcap. Используйте Ctrl-s и Ctrl-d для остановки и возоб- новления просмотра и INTERRUPT для его досрочного завершения: cat /etc/tempcat . 4-16 4.5.2 Удаление файлов. Команда rm используется для удаления файлов. Мы уже показы- вали на разных примерах этой части действие команды rm. Измените ваш каталог на начальный с помощью команды cd и введите следую- щую команду для создания трех новых файлов: touch tempfile1 tempfile2 tempfile3 Удалите файл tempfile3 командой: rm tempfile3 Опция -i позволит вам обеспечить контроль за удалением фай- лов, когда перед каждым удалением вам будет задаваться вопрос, действительно ли вы хотите удалить файл, имя которого стоит в командной строке. Если вы нажмете y и затем RETURN, данный файл будет удален. Если нажать n, файл останется нетронутым. Эта оп- ция полезна, когда происходит удаление файлов из каталога, со- держащего много файлов. Она поможет вам не удалить ошибочно те файлы, которые вы хотите на самом деле сохранить. Попробуйте применить эту опцию в следующей команде: rm -i tempfile1 tempfile2 Заметим, что в подобной команде аргументами могут быть нес- колько файлов. Это верно для большинства команд UNIX. Вы можете также использовать универсальные символы. Например, вместо ис- пользования предыдущей команды, вы могли бы получить тот же ре- зультат с помощью такой команды: rm -i tempfile* (Использование универсальных символов в командах UNIX опи- сано в Части 2 данного руководства.) 4.5.3 Комбинирование файлов. Помимо печати на экране, команда cat может быть использова- на для комбинирования нескольких существующих файлов в один но- вый файл. Это достигается путем переадресации вывода cat в новый файл. Для переадресации используется знак больше ( > ). Если этот новый файл не существует, он будет создан автоматически. (Если вы не знакомы с переадресацией, читайте Часть 2 данного руководства.) . 4-17 Перейдите в ваш начальный каталог с помощью команды cd и введите следующую команду для комбинирования файлов /etc/motd и /etc/rc в один файл catfile: cat /etc/motd /etc/rc > catfile Теперь просмотрим содержимое нового файла catfile с помощью команды more: more catfile Символ >> может быть использован для подсоединения одного файла в конец другого файла. Например, присоединим содержимое /etc/motd к catfile, введя следующую команду: cat /etc/motd >> catfile Теперь в начале и в конце catfile находится /etc/motd. Про- верим это с помощью следующих команд: head -20 catfile tail -20 catfile 4.5.4 Переименова