На главную | Поиск
Вы находитесь в Хранилище файлов Белорусской цифровой библиотеки

Руководство по Xenix

1. Введение 1.1. Обзор Это руководство знакомит вас с ключевыми понятиями сис- темы XENIX. Оно составлено в виде учебника. Руководство начинается с "демонстрационного сеанса", в котором поясняется пример сеанса реальной работы на компьютере, объясняется, как работать с командами и исправлять ошибки при их наборе с клавиатуры. Вводятся основные понятия, такие, как файлы, команды и соот- ветствие образцам. Затем эти и другие понятия объясняются применительно к "реальным" примерам, таким, как работа с файлами, зада- ние конфигурации терминала, управление процессами и информация о статусе или состоянии. _______________________________________________________ Замечание Это руководство необходимо прочитать перед тем, как вы раскроете остальную документацию по системе XENIX, но для получения более подробной информации по всем темам, затронутым здесь, обращайтесь к другим руководствам пользователя и справочникам из комплекта документации. __________________________________________________ 1.2. Система XENIX Система XENIX состоит из многопользовательской операци- онной системы общего назначения и более сотни приклад- ных и обслуживающих программ. В дополнение к операцион- ной системе XENIX, описанной в данном руководстве, воз- можно использование двух других системных пакетов: Сис- темы разработки программ XENIX и Системы обработки текстов XENIX. 1.3. Рабочее окружение системы XENIX Система XENIX построена вокруг операционной системы XENIX. Операционная система предназначена для эффектив- ной организации и управления ресурсами компьютера таким образом, чтобы ими могли пользоваться реальные пользо- ватели. Эти ресурсы включают в себя память, диски, принтеры, терминалы и любые другие периферийные уст- ройства, связанные с системой. Сердцевиной системы XENIX является "многопользовательская" и "многозадач- ная" операционная система. Многопользовательская сис- тема позволяет нескольким пользователям одновременно - 1 - использовать компьютер, таким образом обеспечивая мень- шую стоимость вычислительной мощности в расчете на одного пользователя. Многозадачная система позволяет работать одновременно нескольким программам и увеличи- вает производительность компьютера, так как несколько программ могут работать одновременно, а не последова- тельно. Так как UNIX (а значит, и XENIX) является принятым стандартом операционных систем, ориентированных на ква- лифицированного пользователя, то с этим окружением можно использовать большую часть программного обеспече- ния. В дополнение, XENIX обеспечивает доступ к файлам операционной системы MS-DOS, наиболее широко используе- мой операционной системой в мире для 16 разрядных компьютеров. Для систем, которые поддерживают DOS, XENIX предоставляет команды, которые дадут вам доступ к файлам и дискам в формате DOS. Также система XENIX включает несколько широко распространенных удачных усо- вершенствований, разработанных в Калифорнийском универ- ситете в Беркли, и экранный интерфейс, близкий к другим интерфейсам программных продуктов фирмы Microsoft. Другие особенности, характеризующие систему XENIX: - Мощный командный язык для команд программирова- ния XENIX. В отличие от других интерактивных командных языков, "shell" системы XENIX является полным языком программирования. - Соглашение по присвоению простых и составных имен. Имена могут использоваться абсолютно, либо относительно любого каталога файловой системы. - Независимость операций ввода-вывода от уст- ройств: каждое физическое устройство, от инте- рактивного терминала до основной памяти, воспри- нимается как файл, что позволяет привести к еди- ной форме ввод-вывод в файл и на устройство. - Набор относительных текстовых редакторов, вклю- чающий полный экранный редактор. - Гибкие средства обработки текстов. В системе XENIX существуют команды для поиска и извлечения образцов текста из файлов, сравнения и нахожде- ния различий между файлами, сравнения каталогов и поиска по каталогам. Так же предоставляются средства форматирования, установки типа и про- верки правильности написания текста, а также средства для форматирования и установки типа сложных таблиц и выравнивания. - 2 - - Сложная программа-"калькулятор". - Монтируемая и отмонтируемая файловая система, которая позволяет добавлять гибкие диски к фай- ловой системе. - Полный набор различных гибких способов защиты каталогов и файлов, который предоставляет все комбинации полномочий на чтение, запись или выполнение для владельца каждого файла или ката- лога, а также для группы пользователей. - Средства для создания, получения доступа, пере- мещения и обработки файлов и каталогов простым и общим для всех способом. 1.4. Об этом руководстве Данное руководство построено следующим образом: Глава 1, "Введение", содержит введение и обзор системы XENIX. Глава 2, "Демонстрационный сеанс", дает опыт непос- редственного общения с системой XENIX. Глава 3, "Основные понятия", объясняет основные поня- тия, которые вам нужно знать перед тем, как вы начнете использовать систему. В нее включены разделы по файло- вой системе, соглашению по присвоению имен, командам и вводу-выводу. Глава 4, "Задачи", объясняет, как выполнять повседнев- ные задачи с помощью соответствующих команд системы XENIX. - 3 - 2. Демонстрационный 2.1. Введение В этой главе описан демонстрационный сеанс работы, раз- работанный для того, чтобы помочь вам освоить систему XENIX, и начать эффективно ее использовать. Показано, как входить в систему, вводить информацию с клавиатуры, что делать, если при вводе была сделана ошибка, как вводить команды и как выходить из системы. 2.2. Перед тем, как вы войдете в систему Перед тем, как вы сможете войти в систему, ваше имя должно быть занесено в список пользователей системы XENIX. В этот момент вам дадут регистрационное имя и пароль. Вы можете занести свое имя сами или поручить эту работу кому-либо другому; это зависит от окружения, в котором используется ваша система. В любом случае, см. Руководство оператора XENIX и mkuser(C) для получе- ния более подробной информации о добавлении пользовате- лей в систему. Когда для вас заводится учетная структура в системе XENIX, вы также получаете имя пользователя, пароль и регистрационный каталог. Если все это у вас уже есть, то все, что вам нужно - это терминал, с которого вы сможете войти в систему. XENIX поддерживает большинстов типов терминалов, и, подключая терминал для работы с системой, вы не должны столкнуться с проблемами. Снова см. Руководство оператора XENIX для получения дополни- тельной информации по установке конфигурации вашего терминала. 2.3. Вход в систему Обычно система простаивает с приглашением "login:" на экране терминала. Если система не выводит никаких сим- волов, когда вы вводите текст, то, возможно, ваш терми- нал получает информацию на неправильной скорости, и вам необходимо проверить переключатели терминала. Если переключатели установлены правильно, несколько раз наж- мите клавиши BREAK или INTERRUPT. Когда вы получили сообщение "login:", введите ваше регистрационное имя, а затем нажмите RETURN; система ничего не будет делать, пока вы этого не сделаете. Если потребуется пароль, у вас его запросят. Пароль, который вы вводите, не отображается на экране. Это позволяет сохранить его в тайне. Не забудьте нажать RETURN после того, как вы введете пароль. Затем вы увидите строку - 4 - TERM=(unknown) Введите тип вашего терминала (например, ansi) и нажмите RETURN. После успешного входа в систему появляется "символ- приглашение", одиночный символ, который означает, что система готова принимать команды. Обычно используется знак денежной единицы ('$') или процент ('%'). Кроме того, вы можете получить при входе сообщение, такое, как: You have mail (Вам пришла почта) сообщающее вам, что другой пользователь системы послал вам почтовое сообщение. 2.4. Ввод команд После того, как появился символ-приглашение, система готова воспринимать команды, вводимые с терминала. Поп- робуйте ввести: date затем нажмите RETURN. Система выведет нечто такого рода: Mon Jun 16 14:17:10 EST 1985 Не забудьте нажать клавишу RETURN после команды, иначе ничего не произойдет. Клавиша RETURN не будет больше упоминаться, но не забывайте, что ее нужно нажимать в конце каждой командной строки. На некоторых терминалах клавиша RETURN может быть обозначена как ENTER или CR, но во всех этих случаях клавиша осуществляет ту же самую функцию. Другая команда, которую вы можете попробовать ввести, это who, которая выводит имена всех, кто вошел в сис- тему. Типичный вывод команды who может выглядеть так: you console Jan 16 14:00 joe tty01 Jan 16 09:11 ann tty02 Jan 16 09:33 Время, указанное в четвертом столбце, обозначает время входа пользователя в систему; ttynn - это системное имя для каждого пользовательского терминала, где nn это уникальный двухцифровой номер. console - это - 5 - специальное имя основного терминала, установленное по умолчанию для многих операций. Если вы сделали ошибку при вводе имени команды, вы уви- дите сообщение на вашем экране. Например, если вы вве- дете: whom система выведет следующее сообщение: whom: not found (не найдена) Обратите внимание, что регистр, в котором вы набираете команду, имеет значение в системе XENIX. Команды who и WHO не одно и тоже, этим XENIX отличается от некоторых опе- рационных систем, в которых регистр не имеет значения. Теперь попробуйте вывести сообщение на ваш экран, используя команду echo. Введите: echo hello world Команда выведет остаток командной строки на ваш терми- нал: hello world Теперь попробуйте набрать следующее: echo hello world>&gt;greeting.file В этом случае команда echo вместо вашего терминала перешлет свой вывод в новый файл, названный greeting.file. Заметьте, что использование знака больше ('>&gt;') означает "перенаправить" вывод команды. Теперь введите: ls для того, чтобы вывести только имя файла. Чтобы посмот- реть его содержимое, необходимо дать команду: cat greeting.file - 6 - где "cat" означает объединенить (concatenate). Одно из назначений команды cat -это объединить содержимое нес- кольких файлов и поместить результат в новый файл. Однако, так как ваш терминал воспринимается в системе XENIX как любой другой файл, cat чаще всего использу- ется для вывода содержимого файла на экран. Таким обра- зом, вышеуказанная команда пересылает следующий вывод на экран вашего терминала: hello world Чтобы удалить файл greeting.file, введите: rm greeting.file Заметьте, что имена команд системы XENIX часто сокраща- ются до мнемонических названий. Например, cp является сокращением от "copy", ls - сокращение от "list", cat - сокращение от "concatenate", mkdir - сокращение от "make direсtory", а chmod - сокращение от "change mode". 2.5. Ошибки при наборе Если вы сделали ошибку при вводе команды, существует два способа отредактировать строку, при условии, что вы еще не нажали клавишу RETURN. Нажатие клавиши BKSP вызывает удаление последнего введенного символа. Пере- ходя на шаг назад клавишей BKSP можно удалить символы до начала строки, но не перед началом. Таким образом, если вы напечатали что-то неправильно, вы можете испра- вить это. Например, ввод: ddBKSPateRETURN означает то же самое, что и dateRETURN Символ стирания строки Ctrl-u стирает все символы уже введенные на текущей строке. Например, если строку исправить нельзя, нажмите Ctrl-u и начните вводить ее заново. Если вы должны ввести BKSP или Ctrl-u как часть текста, поставьте перед ними обратную косую черту ('\'), таким образом символ теряет свое специальное "удаляющее" зна- чение. Чтобы ввести BKSP или Ctrl-u в текст, введите "\BKSP" или "\Ctrl-u". Система всегда выводит новую строку на ваш терминал после Ctrl-u, даже если этой комбинации предшествует обратная косая черта. Тем не менее Ctrl-u будет записано. - 7 - Чтобы удалить обратную косую черту, дважды нажмите кла- вишу BKSP следующим образом: "\BKSPBKSP". Обратная косая черта широко используется в системе XENIX для того, чтобы обозначить, что следующий за ней символ несет специальное значение. Заметьте, что функции, осу- ществляемые символами BKSP и Ctrl-u доступны во всех системах XENIX, однако клавиши, используемые для обоз- начения этих символов могут изменяться и могут быть установлены командой stty(C). 2.6. Чтение с опережением и ввод с опережением Система XENIX может считывать команды с опережением, это означает, что вы можете набирать команды с такой скоростью, с какой вы хотите, и где вы хотите, а XENIX запомнит все, что вы ввели. Если вы вводили текст в то время, как другая команда выводила текст на экран, вво- димые вами символы появлялись на экране вперемешку с выводимыми символами, но тем не менее они были запом- нены и восприняты в правильном порядке. Таким образом, вы можете ввести несколько команд (т.е. "ввод с опере- жением") одну за другой, не ожидая окончания выполнения первой. Заметьте, что это нельзя использовать при входе в систему; опережающий ввод не работает до тех пор, пока после ввода пароля не появится приглашение в виде знака денежной единицы ('$'). 2.7. Странное поведение терминала Время от времени ваш терминал может себя странно вести. Вы можете привести его в нормальное состояние либо вык- лючив, а затем быстро включив, либо выйдя из системы, и войдя обратно; эти действия приводят к установке заново характеристик вашего терминала. Часто помогает нажатие Ctrl-q. Это восстанавливает работоспособность термина- лов, которые находятся (случайно или по другим причи- нам) в режиме отключенного отображения символов. Ctrl-s приостанавливает вывод на экран, а Ctrl-q продолжает вывод. Если включение и выключение терминала, выход из системы и вход обратно, нажатие Ctrl-q не помогает, прочтите описание команды stty(C) в документации по системе XENIX для получения дополнительной информации по установке характеристик терминала. Также посмотрите следующий раздел, "Остановка программы". 2.8. Остановка программы Вы можете преждевременно прекратить выполнение боль- шинства программ и команд, нажав клавишу INTERRUPT (возможно на вашем терминале она называется DEL, DELETE, Ctrl-c или RUBOUT). На многих терминалах существует клавиша BREAK, которую также можно использо- вать. В некоторых программах, таких, как большинство - 8 - текстовых редакторов, ввод INTERRUPT останавливает только действия, выполняемые в данный момент програм- мой, без преждевременного прекращения самой программы. Когда в этой документации написано "послать прерыва- ние", то подразумевается нажатие клавишу INTERRUPT. 2.9. Выход из системы Чтобы закончить сеанс работы с системой XENIX, вы должны выйти из системы. Это производится нажатием Ctrl-d в первой позиции строки. Недостаточно только выключить терминал, так как это не выводит вас из сис- темы. Некоторые программы также можно остановить нажа- тием Ctrl-d, так что будьте внимательны. 3. Введение В этой главе будут объяснены основные понятия, которые вы должны знать для работы с системой XENIX. Прочитав эту главу, вы будете знать, как организованы системные файлы, каталоги и устройства, и как они называются, как вводятся команды и как можно манипулировать вводом и выводом команд. Начинается эта глава с обсуждения фай- лов. 3.1. Файлы Файл является основной единицей файловой системы XENIX. В системе XENIX в действительности существует три типа файлов: обычные файлы (то, что мы обычно имеем в виду, когда говорим "файл"), каталоги и специальные файлы. Каждый из этих типов описан ниже. 3.1.1. Обычные файлы Обычные файлы обычно содержат текстовую информацию, например документы, данные или тексты программ. Выпол- няемые двоичные файлы также входят в эту группу. Обыч- ный файл это просто именованная последовательность 8- разрядных байтов. Будут ли эти байты восприниматься как текстовые символы, двоичные инструкции или оператор программы, зависит только от тех программ, которые их используют. Каждый обычный файл имеет следующие атри- буты: - Имя файла (не обязательно уникальное). - Уникальный в данной системе номер, называемый номером i-узла. - Размер в байтах. - 9 - - Время создания. - Время изменения. - Время последнего доступа. - Набор кодов доступа. Для обеспечения безопасности и сохранности информации файлы могут быть защищены установкой соответствующих кодов доступа. Это осуществляется при помощи присвое- ния файлам полномочий на чтение-запись-выполнение. Пользователь может управлять предоставлением этих пол- номочияй владельцу файла, группе пользователей и прочим пользователям. По умолчанию, владельцем файла является его создатель. Владелец может читать файл или писать в него. По умолчанию, прочие пользователи могут читать файл, принадлежащий другому, но не могут писать в него. Коды доступа файла могут быть изменены командой chmod. Эта команда описывается в главе 4 данного руководства. 3.1.2. Специальные файлы Специальные файлы соответствуют физическим устройствам, таким, как гибкие или жесткие диски, принтеры, терми- налы и системная память. Они называются "специальные файлы устройств". В этом руководстве они не описаны. 3.1.3. Файлы-каталоги Файлы-каталоги - это файлы, которые можно только читать, и которые содержат информацию о файлах или каталогах, которые умозрительно (но не физически) содержатся внутри него. Эта информация состоит из имени и номера i-узла для каждого файла или каталога, содер- жащегося внутри данного каталога. Номер i-узла - это уникальный номер, связанный с любым заданным файлом. У всех файлов в системе имеются номера i-узлов. Пара имя/номер i-узла называется ссылкой (связью). Команда ls просматривает файлы каталогов и выводит информацию о файлах, содержащихся внутри названного каталога. По номеру i-узла команда ls может найти также другую информацию о файле. Вложенность каталогов внутрь других каталогов - это способ, при помощи которого XENIX реализует характери- зующую ее древовидную структуру каталогов. Каталоги обсуждаются в следующем разделе. Как и обычные файлы, каталоги могут быть защищены при помощи установки соответствующих кодов доступа для обеспечения сохранности информации и безопасности. Это осуществляется присвоением каталогам полномочий на - 10 - чтение-запись-выполнение. Доступ к каталогу может регулироваться для владельца каталога, группы пользова- телей и для прочих пользователей. Разрешение на запись означает, что к каталогу могут быть добавлены или уда- лены файлы. По умолчанию, владельцем каталога является его создатель, владелец может читать, создавать или удалять файлы в каталоге. Также, по умолчанию, пользо- ватель может читать файлы из каталога другого, но не может добавлять или удалять файлы. Как и коды доступа к файлу, коды доступа к каталогу можно изменить коман- дой chmod. Коды доступа, устанавливаемые по умолчанию, могут быть изменены командой umask. 3.1.4. Структура каталога Если в системе работает несколько пользователей и раз- рабатываются различные проекты, число файлов в файловой системе может быстро увеличиваться. К счастью, как упо- миналось раньше, XENIX организует файлы в иерархическую древовидную структуру каталогов. Древовидную структуру можно представить в виде физического мира, в котором пользователь может передвигаться из одного места в дру- гое. "Места" - это каталоги. Каждый пользователь сис- темы имеет свой персональный каталог. Внутри этого каталога пользователь может иметь каталоги или другие подкаталоги, принадлежащие только ему и управляемые только этим пользователем. Когда вы входите в систему, вы попадаете в свой ката- лог. Если вы не предприняли специальных действий при создании файла, новый файл будет создан в вашем рабочем каталоге. Этот файл не имеет отношения к любому другому файлу с тем же именем в чьем-либо другом каталоге. Схема типичного пользовательского каталога показана на Рис 3-1. usr /| / | / | adam eve mary / / text1 / text text temp Рис 3-1 Типичный каталог пользователя. На Рис 3-1 каталог usr содержит персональные каталоги всех пользователей. Заметьте, что файл с именем text в каталоге mary не имеет никакого отношения к такому же файлу в каталоге eve. Это не имеет значения, если все интересующие нас файлы находятся в каталоге eve, но если владельцы каталогов eve и mary работают вместе, или если они работают раздельно, но над связанными задачами, такое разделение файлов становится действи- тельно удобным. Например, владелец mary может - 11 - напечатать текст из каталога eve, набрав: pr /usr/eve/text Также и владелец eve может посмотреть, какие файлы содержатся в каталоге mary: ls /usr/mary 3.2. Файловые системы Файловая система - это набор файлов, организованных определенным образом. В системе XENIX этот набор сос- тоит из всех доступных ресурсов, включающих файлы дан- ных, каталоги, программы, принтеры и диски. Таким обра- зом, файловая система XENIX - система, предоставляющая доступ ко всем системным ресурсам. Чтобы придать ресурсам системы логическую структуру, файловая система XENIX организована иерархически, в виде перевернутой "древовидной структуры". На Рис 3-2 показана структура типичной древовидной файловой сис- темы. В этом типичном дереве файлов корень дерева рас- положен наверху, а ветви дерева растут вниз. Каталоги соответствуют i-узлам в дереве; обычные файлы соот- ветствуют "листьям". Если каталог содержит идущую вниз ветвь к другим файлам или каталогам, тогда эти файлы и каталоги "содержатся" в указанном каталоге. Можно назы- вать любой файл в системе, начиная от корня (корень находится на вершине), и идти вниз по всем веткам до необходимого файла. Точно также вы можете указать любой файл в системе относительно любого каталога. Определе- ние этих файлов зависит от знания соглашений о присвое- нии имен в системе XENIX, обсуждаемых в следующем раз- деле. / (корень) /| / | / | bin usr dev / / cmd / tty doug neil / | | / | | mail news text data Рис 3-2 Типичная файловая система На Рис 3-2 "дерево" файловой системы растет вниз. Имена bin, usr, doug и neil представляют каталоги и все узлы дерева. В системе XENIX корневой каталог имеет имя, состоящее из одного символа "/". Имена mail, news, text и data представляют обычные файлы данных, и все являются "листьями" дерева. Заметьте, что имя cmd - это имя команды, которую можно запустить. Имя tty соот- ветствует терминалу и также представлено в дереве. - 12 - 3.3. Соглашения по присвоению имен В системе XENIX каждый файл, каталог и устройство обла- дают как именем файла, так и абсолютным полным именем файла (иногда также называемым маршрутом к файлу). Полное имя файла представляет собой описание местополо- жения файла или каталога в системе. Полное имя является уникальным для всех имен в системе; просто же имя файла является уникальным только внутри данного каталога и может не быть единственным в системе. Это как в теле- фонном справочнике человек записан под именем John Albert Smith, а в телефонной книжке оффиса этот же человек может быть записан просто под именем John. 3.3.1. Имена файлов Просто имя файла представляет собой последовательность из от одного до четырнадцати символов, отличных от сим- вола косая черта ('/'). Каждый файл, каталог и уст- ройство имеет имя. Имена файлов используются для опре- деления содержимого каталогов. Таким образом, в одном каталоге не может быть двух файлов с одинаковыми име- нами. Однако имена в различных каталогах могут совпа- дать. Несмотря на то, что вы можете использовать любые сим- волы в имени файла, лучше его составлять из буквенно- цифровых символов и точек. Не советуем использовать другие символы в имени файла, особенно управляющие сим- волы. Если имя файла содержит точку в первой позиции, то этот файл является "скрытым" и не отображается командой ls. Однако команда ls с ключом -a выведет скрытые файлы. Тире ('-') используется для указания ключей команды, поэтому следует избегать использования этого символа в именах файлов. Кроме того, нельзя использовать в именах файлов символы знак вопроса ('?'), звездочка ('*'), скобки ('[' и ']'), а также кавычки, так как все эти символы имеют специальное зна- чение при вводе команд. 3.3.2. Полные имена файлов Полное имя файла представляет собой само имя файла, перед которым следует последовательность из имен ката- логов, разделенных символом косая черта ('/'). Если полное имя файла начинается с символа косая черта, оно указывает на файл, который может быть найден при прос- мотре от корневого каталога. В противном случае файлы ищутся относительно "текущего каталога" ( также называ- емого "рабочим каталогом"). Текущий каталог необходимо представлять себе как место вашего расположения в сис- теме, думайте о нем как о физическом местеположении. Когда вы меняете ваш текущий каталог, вы передвигаетесь - 13 - в некоторый другой каталог или место в файловой сис- теме. Полное имя файла, начинающееся с символа косая черта, называется "абсолютным полным именем файла", так как оно не изменяется относительно текущего каталога поль- зователя. Полное имя файла, которое начинается не с символа косая черта, назвается "относительным полным именем файла", так как оно указывает на файл относи- тельно текущего каталога. В любое время пользователь может сменить текущий каталог командой cd. Имя теку- щего каталога можно вывести командой pwd. 3.3.3. Примеры имен файлов Некоторые примеры имен файлов показаны ниже: / Абсолютное полное имя корневого каталога файловой системы. /bin Каталог, содержащий большинство наиболее часто используемых команд системы XENIX. /usr Каталог, содержащий личные каталоги пользователей. Каталог /usr/bin содержит наиболее часто использу- емые команды системы XENIX, которых нет в каталоге /bin. /dev Каталог, содержащий файлы, соответствующие физи- ческим устройствам (таким, как терминалы, принтеры и диски). /dev/console Имя основного терминала системы. /dev/tty Имя терминала пользователя. /lib Каталог, содержащий файлы, используемые некоторыми стандартными командами. tmp Этот каталог содержит временные файлы. /usr/joe/project/A Типичное полное имя файла; указывает на файл с именем A в каталоге project, принадлежащий пользо- вателю joe. bin/x Относительное имя файла; указывает на файл с име- нем x в подкаталоге bin текущего рабочего ката- лога. Если текущим каталогом является корень (/), имя указывает на файл /bin/x. Если текущим - 14 - каталогом является /usr/joe, то указывает на файл /usr/joe/bin/x. file1 Имя обычного файла в текущем каталоге. При работе в системе XENIX каждый пользователь нахо- дится в каталоге, который называется текущим каталогом. Все файлы и каталоги имеют "родительский" каталог. Он стоит на один уровень выше и содержит указанный файл и каталог. В файловой системе XENIX предусмотрено специ- альное сокращение для таких каталогов. Для текущего каталога: . Сокращенное имя текущего каталога. Таким образом ./файлxxx указывает на файл файлxxx, если он существует в текущем каталоге. .. Сокращенное имя "родительского" каталога для теку- щего каталога. Сокращенное имя ../.. обращается к каталогу, который стоит на два уровня выше теку- щего каталога. 3.3.4. Специальные символы В операционной системе XENIX предусмотрены средства проверки на соответствие образцам для указания одновре- менно нескольких файлов, которые соответствуют задан- ному образцу. Например, рассмотрим проблему, которая возникает при присваивании имен частям большого доку- мента, например книги. Логически он может быть разделен на несколько небольших частей, таких, как главы или разделы. Физически он также должен быть разделен, так как редактор системы XENIX vi не может работать с очень большими файлами. Таким образом вы должны разделить документ на несколько файлов. Места, в которых документ разделен, должны сле- довать в логическом порядке. Возможно, вы разделили файл по главам: chap1 chap2 ... Или если каждая глава разбита на несколько файлов вы получите: - 15 - chap1.1 chap1.2 chap1.3 ... chap2.1 chap2.2 ... С первого взгляда видно, какое место конкретный файл занимает в целом документе. Существуют другие преимущества систематического согла- шения по присвоению имен, которые не столь очевидны. А что, если вы захотите напечатать целую книгу на прин- тере? Вы можете ввести: lpr chap1.1 chap1.2 chap1.3 ... но вы быстро устанете и наверняка наделаете ошибок. К счастью, это можно сократить: последовательность имен, содержащих общий образец, можно задать с помощью специ- альных символов. Вот их описание: * Соответствует нулю или более символам. [] Соответствует любому символу внутри скобок. ? Соответствует одному любому символу. Например, вы можете ввести: lpr chap* В системе XENIX звездочка ('*') означает "ноль или более символов любого типа", таким образом указанная команда воспринимается, как "послать на принтер все файлы, имена которых начинаются со слова "chap"". Это сокращение не является свойством только команды lpr; оно может быть использовано в любой команде. Используя этот факт, вы можете вывести имена файлов книги, напечатав: ls chap* В ответ вы получите: chap1.1 chap1.2 chap1.3 ... - 16 - Звездочку можно применять не только в последней позиции в имени файла; она может появляться в любом месте и встречаться несколько раз. Звездочка сама по себе соответствует всем файлам, чьи имена не содержат симво- лов косая черта и не начинаются с точки. Таким образом: cat * выводит все файлы в текущем каталоге на экран вашего терминала. Звездочка не является единственным доступным средством механизма соответствия образцам. Предположим, что вы хотите напечатать только главы от 1 до 4 и 9. Вы можете ввести: lpr chap[12349]* Скобки ( [ и ] ) означают "соответствие любому символу внутри скобок". Границы последовательности букв и цифр могут быть сокращены, таким образом вы можете выполнить ту же команду, введя: lpr chap[1-49]* (Обратите внимание, что это соответствует не 49 файлам, а только пяти.) Буквы также могут быть использованы внутри скобок: "[a-z]" соответствует любому символу от "a" до "z". Знак вопроса соответствует одному любому символу, таким образом ls ? выводит все файлы, чье имя состоит из одного символа, а ls -l chap?.1 выводит информацию о первом файле каждой главы (т.е. chap1.1, chap2.1 ...). Если вам необходимо избежать использования специального значения этих символов ( '*', '?' и [...]) - экраниро- вать их -, заключите весь аргумент в одиночные кавычки. Например, следующая команда напечатает только файл с именем "?", а не все файлы с односимвольными именами: ls '?' Каким образом осуществляется проверка на соответствие образцам, описывается в главе 4 "Руководства пользова- теля XENIX", "Интерпретатор командного языка". - 17 - 3.4. Команды Команды используются для вызова выполняемых программ. Когда вы ввели имя команды, XENIX считывает командную строку, ищет программу с заданным именем, а затем выполняет ее, если находит. Командные строки также могут содержать аргументы, которые указывают ключи или файлы, которые могут понадобиться программе. Командная строка и синтаксис команды описаны в следующих двух частях. 3.4.1. Командная строка Независимо от того, вводите ли вы команду с терминала, или команды считываются из файла, XENIX всегда считы- вает команды из командных строк. Командная строка - это строка символов, которая считывается интерпретатором команд для определения действия, которое необходимо выполнить. Этот интерпретатор командного языка считы- вает имена команд из командной строки, находит выполня- емую программу, соответствующую имени команды, а затем выполняет эту программу. После окончания выполнения программы интерпретатор команд возобновляет чтение командной строки. Таким образом, когда вы вводите на терминале команду, вы редактируете текстовую строку, называемую буфером командной строки, который становится командной строкой только после нажатия клавиши RETURN. Этот буфер командной строки может редактироваться кла- вишами BKSP и Ctrl-u. Нажатие RETURN вызывает передачу буфера командной строки интерпретатору команд. Он счи- тывает командную строку и выполняет соответствующую команду. Если вы нажмете клавишу INTERRUPT до того, как вы нажали клавишу RETURN, буфер командной строки очис- тится. Можно ввести несколько команд в одной командной строке, при условии, что команды будут разделены точкой с запятой (';'). Например, следующая командная строка выводит текущую дату, а затем имя текущего каталога: date; pwd Команды могут быть введены для обработки в фоновом режиме, для этого необходимо добавить амперсанд ('&') к командной строке. Этот режим выполнения подобен "пакетной" обработке на других cистемах. Основное преи- мущество выполнения команд в фоновом режиме заключается в том, что вы можете выполнять другие команды во время выполнения фоновых. Таким образом du /usr>&gt;diskuse& определяет, не связываясь с вашим терминалом, как используется дисковое пространство в каталоге /usr, а это операция, отнимающая много времени. Заметьте, что - 18 - вывод помещается в файл diskuse с перенаправлением вывода при помощи знака больше. Перенаправление опи- сано в разделе 3.6.1. 3.4.2. Формат Общий формат команд следующий: cmd [ключи][аргументы][файл][...] По соглашению, имена команд представлены в нижнем регистре. Ключи определяют действие команды при выпол- нении. Они являются необязательными и обычно предшест- вуют аргументам и именам файлов. Ключи состоят из тире ('-') и идентифицирующей буквы. Например, ключ команды ls -l (произносится "минус эль") устанавливает режим полного вывода каталога, а команда ls -r устанавливает вывод содержимого каталога в обратном алфавитном порядке. В некоторых случаях ключи могут группироваться, формируя один ключевой аргумент. Нап- ример, команда ls -rl представляет собой комбинацию двух ключей, где ключ -rl указывает, что должен производится полный вывод содер- жимого каталога в обратном алфавитном порядке. Иногда несколько ключей должны задаваться отдельно, как в случае: copy -a -v источник назначение где ключ -a указывает, что команда должна требовать у пользователя подтверждения при копировании источника в назначение. Ключ -v устанавливает режим, при котором пользователю будет сообщаться о ходе копирования. Также могут быть заданы другие аргументы, например, строка для поиска, как в случае: grep 'строка текста' выходной_файл В примере выше 'строка текста' представляет собой один аргумент и является строкой, которую команда grep ищет в выходном_файле. Файл предс- тавляет собой аргумент, который указывает имя файла, - 19 - нужное команде. Большинство команд представляют собой выполняемые прог- раммы, скомпилированные компилятором языка C или каким-либо другим компилятором. Некоторые команды представляют собой выполняемые командные файлы, называ- емые "процедурами интерпретатора командного языка". Они описаны в главе 4 Руководства пользователя XENIX "Интерпретатор командного языка". 3.5. Ввод и вывод По умолчанию, в системе XENIX подразумевается, что ввод происходит c клавиатуры терминала, а вывод идет на экран терминала. Чтобы проиллюстрировать типичную команду ввода и вывода, введите: cat Эта команда ожидает ввода с клавиатуры. Она принимает в качестве ввода столько строк текста, сколько вы набе- рете до нажатия Ctrl-d для обозначения конца файла или конца передачи. Например введите: это две строки RETURN ввода RETURN Ctrl-d Когда вы нажмете Ctrl-d, ввод закончится. Команда cat сразу же выводит каждую строку после ее ввода. Так как вывод пересылается на экран терминала по умолчанию, на экран перешлются две строки. Таким образом полный сеанс будет выглядеть так: $ cat это две строки это две строки ввода ввода Потоки ввода и вывода команды могут быть перенаправлены таким образом, что ввод будет происходить из файла, а не с клавиатуры, и вывод будет производиться на принтер или в файл, а не на экран. В дополнение, вы можете соз- дать "конвейер" с помощью межпроцессных каналов, чтобы вывод одной команды стал вводом другой. Перенаправле- ние ввода-вывода и межпроцессные каналы описаны в сле- дующих двух подразделах. Если вы используете команду cat для того, чтобы переслать ввод в файл или межпро- цессный канал, пересылка не осуществится, пока вы не введете Ctrl-d для обозначения конца передачи. - 20 - 3.5.1. Перенаправление В системе XENIX файл может заменить терминал как при осуществлении операций как ввода, так и вывода. Напри- мер: ls выводит список файлов на экран вашего терминала. Но если вы введете ls > список_файлов список ваших файлов будет помещен в файл список_файлов (который будет создан, если до этого он не существо- вал). Символ, который обозначает перенаправление вывода, знак больше ('>&gt;'), означает "поместить вывод команды в указанный файл, а не выводить на экран терми- нала". В следующем примере перенаправления вывода вы можете объединить несколько файлов в один, поместив вывод команды cat в файл: cat f1 f2 f3 > temp Знак добавления вывода ('>&gt;>&gt;'), делает тоже самое, что и знак перенаправления, за исключением того, что он обоз- начает "добавить к концу". Таким образом: cat file1 file2 file3 > temp означает "добавить file1, file2 и file3 к концу файла temp, вместо того, чтобы записать новый файл, разрушая существующую в нем информацию". Как и при обыкновенном перенаправлении вывода, если файл temp не существовал, он будет создан. Аналогично, знак перенаправления ввода ('<&lt;') означает "взять ввод для программы из указанного файла, вместо терминала". Таким образом вы можете создать последова- тельность команд редактирования и поместить ее в файл с именем script. Затем вы можете выполнить эти команды по отношению к файлу набрав: ed файл < script Или если вы использовали редактор для подготовки письма в файле letter.txt, вы можете послать его нескольким пользователям командой: mail adam eve mary joe < letter.txt - 21 - 3.5.2. Межпроцессные каналы Одним из основных нововведений системы XENIX является концепция "межпроцессного канала". Межпроцессный канал - это просто способ связывания вывода одной команды с вводом другой, таким образом, что обе они работают как последовательность команд, называемая конвейером. Например: sort frank.txt george.txt hank.txt объединяет три файла с именами frank.txt, george.txt и hank.txt, а затем сортирует вывод. Предположим, что вы затем хотите найти все уникальные слова в этих файлах и посмотреть результат. Для этого вы можете ввести: sort frank.txt george.txt hank.txt > temp1 uniq < temp1 > temp2 more temp2 rm temp1 temp2 Здесь намного больше работы, чем необходимо. Желаемый результат можно получить, если взять вывод команды sort и подсоединить его к вводу uniq, затем взять вывод uniq и подсоединить его к more. Вы используете следующий конвейер: sort frank.txt george.txt hank.txt | uniq | more Символ вертикальная черта ('|') используется между командами sort и uniq для обозначения того, что вывод программы sort, который обычно посылается на терминал, должен быть перенаправлен на стандартный ввод команды uniq, который в свою очередь посылает свой вывод команде more для просмотра. Существует много других примеров межпроцессного взаимо- действия. Например, следующая команда форматирует в три столбца и разбивает на страницы список ваших фай- лов: ls | pr -3 Программа wc считает количество строк, слов и символов в своем вводе, а программа who выводит список пользова- телей, по одному на строке, работающих в данный момент в системе. Таким образом, следующая команда сообщит нам число пользователей, работающих в системе, подсчитывая число строк в выводе команды who: who | wc -l - 22 - Следующая команда подсчитывает число файлов в текущем каталоге: ls | wc -l Обратите внимание на разницу между выводом команд wc -l и wc. По умолчанию, wc выводит количество строк, слов и символов в вводе. А wc с ключом -l выводит только количество строк. Любая программа, которая считывает с клавиатуры терми- нала, вместо этого может читать из межпроцессного канала. Любая программа, которая выводит на экран тер- минала, может посылать вывод в межпроцессный канал. В конвейере можете быть столько элементов, сколько вы захотите. 4. Задачи 4.1. Введение В этой главе рассказывается, как можно решать обычные задачи с помощью системы XENIX. Отдельные команды, используемые для решения таких задач, описаны более подробно в Справочном руководстве XENIX. 4.2. Получение доступа к системе Для того, чтобы использовать систему XENIX, в первую очередь вы должны получить к ней доступ. Для этого вам нужно войти в систему. Когда вы вошли в систему, вы попадаете в собственную рабочую область. Процесс вхож- дения в систему, изменения пароля и выхода из системы, описан ниже. 4.2.1. Вход в систему Перед тем, как вы сможете войти в систему, вы должны "зарегистрироваться". Ваше имя должно быть добавлено к списку пользователей, а также вам должны пррисвоить пароль и предоставить почтовый ящик. В зависимости от режима администрирования вашей сис- темы, возможно, вам самим необходимо будет добавить свое имя к списку пользователей, либо эта задача будет возложена на кого-либо еще. Если вы сами должны заре- гистрироваться в системе, для получения дополнительной информации обратитесь к Руководству оператора и к раз- делу mkuser(C) в Справочном руководстве по системе XENIX. В настоящем разделе подразумевается, что ваша - 23 - учетная структура в системе уже создана. Обычно, когда с системой не работают, на экране высве- чено приглашение "login:". Если ваш экран пуст или выводит бессмысленные символы, нажмите несколько раз клавишу INTERRUPT. Когда появится приглашение "login:", выполните следую- щую последовательность шагов: 1. Введите ваше регистрационное имя и нажмите RETURN. Если вы ошиблись, нажмите Ctrl-u и введите имя заново. После того, как вы нажали RETURN, на экране появится слово "Password:". 2. Очень внимательно введите свой пароль, после чего нажмите RETURN. Буквы не будут отображаться на экране во времы ввода, а курсор не будет дви- гаться. Если вы ошиблись, нажмите RETURN и повто- рите всю процедуру входа в систему заново. Если вы ввели регистрационное имя и пароль правильно, на экране появится "символ-приглашение". Обычно это знак денежной единицы ('$'). Он говорит о том, что сис- тема XENIX готова принимать команды с клавиатуры. Если вы ошиблись, система выведет сообщение: Login incorrect login: Если вы получили такое сообщение, повторите описанную выше процедуру. Чтобы получить доступ к системе, вы должны правильно ввести регистрационное имя и пароль; система не позволяет исправлять ошибки при вводе пароля. В зависимости от того, как настроена ваша система, после входа вы можете увидеть сообщение, выводимое при входе в систему, которое гласит что-нибудь типа: "Добро пожаловать в систему XENIX", или объявление, представ- ляющее интерес для всех пользователей. 4.2.2. Выход из системы Процедура выхода довольно проста, вам необходимо только нажать Ctrl-d в начале строки. В общем случае, в системе XENIX Ctrl-d обозначает конец файла, и довольно часто используется в - 24 - программах для обозначения конца ввода с клавиатуры. В этих случаях Ctrl-d не выведет вас из системы; просто закончится ввод в отдельную программу, если вы находи- лись в ней. Это значит, что иногда вам придется нес- колько раз нажать Ctrl-d для того, чтобы выйти из сис- темы. Например, если вы находитесь в программе mail, вы один раз должны нажать Ctrl-d для того, чтобы выйти из этой программы, и еще раз для того, чтобы выйти из системы. 4.2.3. Изменение пароля Для того, чтобы предотвратить несанкционированный дос- туп к системе пользователей, каждый зарегистрированный пользователь должен иметь свой пароль. Когда для вас впервые в системе создается учетная структура, пароль вам присваивается системным администратором. Некоторые системы XENIX требуют, чтобы вы меняли свой пароль регулярно через некоторые интервалы времени. Независимо от того, потребуют этого от вас или нет, неплохо бы менять свой пароль для поддержания безопасности сис- темы. В этом разделе рассказывается, как менять пароль. Для изменения пароля используйте команду passwd. Для этого: 1 Введите: passwd и нажмите RETURN. Появится следующее сообщение: Changing password for пользователь Old password: 2 Внимательно введите ваш старый пароль. Он не отоб- ражается на экране. Если вы ошиблись, нажмите RETURN. Появится сообщение "Sorry", а затем сис- темное приглашение. Начните снова с шага 1. 3 После того, как вы введете ваш старый пароль, поя- вится сообщение: New password: Введите ваш новый пароль и нажмите RETURN. 4 Появится сообщение: Re-enter new password: Введите ваш новый пароль снова. Если вы ошиблись, - 25 - нажмите RETURN. Тогда появится сообщение: They don't match; try again и вы должны начать снова с шага 1. Когда вы все сделаете правильно, появится системное приграше- ние. 4.3. Установка конфигурации вашего терминала В большинстве систем конфигурация основного монитора уже настроена на работу с XENIX. Однако к системе XENIX могут быть подсоединены другие терминалы различных типов. В этих случаях важно знать, как установить пара- метры терминала, и как указать, с каким терминалом вы работаете. Также вы, возможно, захотите изменить стан- дартную конфигурацию монитора. В следующем разделе обсуждаются эти темы. 4.3.1. Смена терминала Каждый раз, когда вы входите в систему, выводится тип вашего терминала. Если вам когда-нибудь понадобится войти в систему на терминале другого типа, отличного от того, который вы обычно используете, вам, возможно, потребуется изменить окружение. Для этого вам необхо- димо отредактировать файл .profile в вашем регистраци- онном каталоге. Чтобы это сделать, с помощью текстового редактора найдите строку tset, которая выглядит при- мерно так: eval 'tset -m :\?unknown -s -r -Q' Измените слово unknown (неизвестный) на тип вашего тер- минала. Например, если вы обычно входите в систему с терминала vt100, строка будет выглядеть так: eval 'tset -m :\?vt100 -s -r -Q' Теперь каждый раз при входе в систему вам будет выво- диться сообщение: TERM = (vt100) Нажмите RETURN, и vt100 будет установлен в качестве типа вашего терминала, или введите другой тип терминала и нажмите RETURN. - 26 - 4.3.2. Установка параметров терминала Существует несколько параметров терминала, которые могут быть установлены командой stty. При вызове этой команды без ключей она выводит текущие установленные параметры. Например, типичный вывод может выглядеть так: speed 9600 baud erase '^h' ; kill '^u' even -nl Каждая из вышеперечисленных характеристик терминала может быть установлена командой stty. Для получения дополнительной информации смотрите stty(C) в Справочном руководстве XENIX. 4.4. Редактирование командной строки Когда вы сидите перед терминалом и вводите команды с клавиатуры, вы можете использовать некоторые специаль- ные клавиши. Наиболее полезные из них описаны ниже. 4.4.1. Ввод командной строки Ввод командной строки с вашего терминала заключается в наборе символов и нажатии клавиши RETURN. После нажатия RETURN компьютер читает командную строку и выполняет указанные в ней команды. Вы можете ввести столько командных строк, сколько вы хотите, не ожидая окончания выполнения команд, так как система XENIX поддерживает ввод символов с опережением. 4.4.2. Удаление командной строки При вводе команд неизбежно появление ошибок при наборе (опечаток). Чтобы удалить текущую командную строку, нажмите Ctrl-u. 4.4.3. Приостановка вывода на экран Во многих случаях вы будете просматривать содержимое файла на экране терминала. Содержимое длинных файлов выводится гораздо быстрее, чем вы можете читать. Для временной приостановки вывода программы на экран терми- нала нажмите Ctrl-s. Для продолжения вывода нажмите Ctrl-q. - 27 - 4.5. Работа с файлами Работа с файлами (создание, объединение, вывод содержи- мого, копирование, перемещение, присвоение имени и уда- ление файлов) является одной из наиболее важных возмож- ностей, которые предоставляет операционная система. В нижеследующем разделе описываются команды, которые реа- лизуют эти функции. 4.5.1. Создание файла Чтобы создать файл и поместить в него текст, исполь- зуйте редактор vi, который описан в главе 2 Руководства пользователя XENIX, "vi: текстовый редактор". Если по каким-либо причинам вы захотите создать пустой файл, введите: > имя_файла где имя_файла - это имя пустого файла. В общем случае, новые файлы создаются командами по мере необходимости. 4.5.2. Вывод содержимого файла Команда more осуществляет вывод содержимого файла поэк- ранно. Формат команды следующий: more ключи имя_файла more полезно использовать, если вы хотите только пос- мотреть файл, не внося изменений. Например, чтобы вывести содержимое файла memos, введите: more memos more может быть вызвана с ключами, которые устанавли- вают режим вывода файла и место, с которого надо начать вывод. Вот некоторые ключи: +номер_строки Начинает вывод со строки, определенной аргументом номер_строки. +/текст Начинает вывод за две строки до текста, где текст - это слово или число. Если текст состоит из двух или более слов, их необходимо заключить в двойные кавычки. -c Перерисовывает экран вместо его прокрутки. - 28 - -r Выводит управляющие символы, которые обычно игно- рируются. Например, чтобы начать просмотр файла memo с места, где впервые встречаются слова "net gain", введите: more +/"net gain" Если файл не влезает на один экран, в нижней строке выводится процентное отношение оставшейся части. Для просмотра оставшейся части файла используйте команды прокрутки: RETURN Промотать вперед на одну строку. d Промотать вперед на половину экрана. ПРОБЕЛ Промотать вперед на полный экран. nПРОБЕЛ Промотать вперед на n строк. . Повторить предыдущую команду. Вы не можете просматривать файл в обратном направлении, к началу файла. Вы можете осуществить поиск вперед по образцу с помощью команды /. Например, если вы хотите найти образец "net gain", вве- дите: /net gain/ и нажмите RETURN. more выведет сообщение: ...skipping в верхней части экрана, а затем промотает до места, расположенного за две строки от найденной последова- тельности символов "net gain". Если во время просмотра файла командой more вы решите, что хотите изменить его, вы можете вызвать редактор vi, нажав: v Смотри главу 2 "vi: текстовый редактор" Руководства пользователя XENIX для получения информации о работе с - 29 - vi. more заканчивает работу автоматически, при достижении конца файла. Если вы хотите выйти из этой программы раньше, введите: q Команды head и tail выводят, соответственно, первые и последние десять строк файла. Они полезны для проверки содержимого отдельного файла. Например, чтобы посмотреть первые десять строк файла memo, введите: head memo Вы можете определить количество строк, выводимых коман- дами head и tail. Например: tail -4 memo выводит последние четыре строки файла memo. Команда cat также выводит содержимое файла. Вывод про- исходит до тех пор, пока вы не нажмете Ctrl-s, чтобы остановить его. Нажав Ctrl-q, вы можете продолжить просмотр. Программа заканчивает работу автоматически при достижении конца файла. Если вы хотите закончить раньше, нажмите INTERRUPT. Чтобы вывести содержимое одного файла, введите: cat file1 Чтобы вывести содержимое нескольких файлов, введите: cat file1 file2 file3 4.5.3. Объединение файлов Команда cat часто используется для объединения несколь- ких файлов в один. Для того, чтобы объединить два файла с именами file1 и file2 в новый файл с именем bigfile, введите: cat file1 file2 >bigfile Заметьте, что здесь мы записываем содержимое двух фай- лов в новый файл с именем bigfile. Знак больше ('>&gt;') используется для перенаправления вывода команды cat в новый файл. - 30 - Вы также можете использовать команду cat для добавления одного файла к концу другого. Например, чтобы добавить file1 к file2, введите: cat file1 >> file2 Содержимое file1 добавится к file2. file1 тем не менее остается как отдельный файл. 4.5.4. Перемещение файлов Команда mv перемещает один файл в другой в том же или другом каталоге. Например, чтобы переместить один файл, с именем текст, в другой, с именем книга, введите: mv текст книга После завершения операции в рабочем каталоге не будет существовать файла с именем текст, так как он будет переименован в книга. Чтобы переместить файл в другой каталог, в качестве последнего аргумента команды mv задайте имя каталога назначения. Например, для того чтобы переместить файлы file1 и file2 в каталог /tmp, введите: mv file1 file2 /tmp В вашем рабочем каталоге теперь не существует этих двух файлов, они расположены в каталоге /tmp. Вышеуказанная команда делает то же самое, что и последовательность из двух следующих команд: mv file1 /tmp mv file2 /tmp Команда mv всегда проверяет, не является ли последний аргумент именем каталога, и если это так, все файлы, заданные другими аргументами перемещаются в этот ката- лог. 4.5.5. Переименование файла Чтобы переименовать файл, надо просто "переместить" его в файл с новым именем: старое имя файла будет удалено. Таким образом, для того, чтобы переименовать файл с именем anon в johndoe, введите: mv anon johndoe - 31 - Заметьте, что перемещение и переименование файлов представляют собой по сути одинаковые операции. 4.5.6. Копирование файла Существует два вида команды cp: в одном случае файлы копируются в каталог, а в другом случае файл копируется в другой файл. Таким образом, чтобы скопировать три файла в каталог с именем filer, введите: cp file1 file2 file3 filer В вышеуказанной команде три файла копируются в каталог filer; при этом исходные файлы остаются в рабочем ката- логе. Заметьте, что имена одинаковы в двух каталогах. Как и команда mv, cp всегда проверяет, не является ли последний аргумент именем каталога, и если это так, все файлы, заданные другими аргументами, копируются в этот каталог. Чтобы создать две копии файла в вашем рабочем каталоге, вы должны изменить имя одной копии. Для того, чтобы сделать это, вы можете вызвать команду копирования сле- дующим образом: cp file filecopy После выполнения вышеприведенной команды в рабочем каталоге будет существовать два разных файла с одинако- вым содержанием. Научиться копировать файлы можно с помощью раздела 4.6.7, "Копирование каталога", из этой главы. 4.5.7. Удаление файла Чтобы стереть или удалить файлы, введите: rm file1 file2 Этой командой файлы file1 и file2 удаляются из рабочего каталога. Команда: rm -i file1 file2 позволяет вам удалять файлы в диалоговом режиме, запра- шивая, действительно ли вы хотите удалить каждый из файлов file1 и file2. Если вы нажмете y, а затем RETURN, данный файл будет удален; если вы нажмете n, файл останется нетронутым. Эта команда полезна при чистке каталога, который содержит много файлов. - 32 - 4.5.8. Поиск файлов Команда find производит поиск файлов с заданными име- нами. Команда полезна для нахождения местоположения файлов с одинаковыми именами, или для нахождения файла, если вы забыли каталог, в котором он находится. Команда имеет следующий формат: find имя_каталога -name имя_файла -print где имя_каталога - это имя каталога, в котором вы хотите искать. find осуществляет поиск рекурсивно, начиная с указанного каталога, просматривая все файлы и подкаталоги каталога, заданного именем_каталога. Ключ -name означает, что вы ищете файлы с указанными именами_файлов. (Существует несколько других режимов поиска командой find, смотри find(C) в Справочном руко- водстве по системе XENIX.) имя_файла - это имя файла, который вы хотите найти. Ключ -print означает, что вы хотите вывести на экран вашего терминала полные имена файлов, которые соот- ветствуют указанному имени_файла. Вы можете перенапра- вить этот вывод в файл, используя символ перенаправле- ния ('>&gt;'). (Существует еще несколько операций, которые вы можете осуществлять командой find, например удаление и перемещение файлов; смотри find(C) в Справочном руко- водстве XENIX.) Например, следующая команда найдет все файлы с именем memo в каталоге /usr/joe и всех его под- каталогах: find /usr/joe -name memo -print Вывод, к примеру, мог бы выглядеть так: /usr/joe/memo /usr/joe/accounts/memo /usr/joe/meetings/memo /usr/joe/mail/memo 4.5.9. Связывание одного файла с другим (файлы- ссылки) Команда ln объединяет два файла в различных каталогах таким образом, что когда в одном каталоге файл меня- ется, он также меняется и в другом. Это может быть полезно, если нескольким пользователям надо разделять информацию, или если вы хотите, чтобы один файл нахо- дился в нескольких каталогах. Эта команда имеет - 33 - следующий формат: ln файл новый_файл где файл - это исходный файл, а новый_файл - новый, связанный с первым файл-ссылка. Например, следующая команда связывает файл memos в каталоге /usr/joe с фай- лом joememos в каталоге /usr/mary: ln /usr/joe/memos /usr/mary/joememos Когда бы /usr/joe/memos ни изменялся, всегда будет изменяться и /usr/mary/joememos. Когда вы создаете ссылку на файл, имя файла-ссылки свя- зывается с i-узлом. i-узел определяет уникальный набор данных на диске. С этими данными могут быть связаны одно или более имя. Таким образом, описанная выше команда гарантирует, что файлы каталог1/файл1 и каталог2/файл2 будут одинаковы. Существуют три вещи, которые не сразу очевидны: 1. Использование ссылок для больших наборов файлов при необходимости использовать их параллельно может сэкономить значительный объем дискового пространства. 2. Использование ссылок на файл несколькими пользова- телями опасно, так как любой из них может изменить файл, и, таким образом, повлиять на содержимое всех файлов-ссылок. 3. Удаление файла из каталога не удаляет другие ссылки на него. Таким образом, в действитель- ности, файл не удаляется из системы. Например, если вы удалите файл, который имеет четыре ссылки, три из них останутся. Подробнее о ссылках см. ln(C) в Справочном руководстве XENIX. 4.6. Операции с каталогами Из-за иерархической организации файловой системы в сис- теме XENIX существует множество каталогов и подкатало- гов. Каждый пользователь имеет свой собственный каталог в файловой системе. В вашем пользовательском каталоге вы можете создавать, удалять и копировать каталоги. Ниже описываются команды, которые дают вам возможность работать с каталогами. - 34 - 4.6.1. Вывод имени вашего рабочего каталога Все команды выполняются относительно рабочего каталога. Имя этого каталога выдается командой pwd, которая озна- чает "print working directory" (вывести рабочий ката- лог). Например, если ваш рабочий каталог /usr/joe, то когда вы введете: pwd вы получите: /usr/joe Вы всегда должны представлять себя "живущим" в вашем рабочем каталоге. 4.6.2. Вывод содержимого каталога Вы можете вывести содержимое каталога командой lc. Эта команда сортирует имена файлов и каталогов внутри заданного каталога, а затем выводит их. Если имя ката- лога не задано, lc выводит содержимое текущего ката- лога. Команда lc имеет следующий формат: lc ключи имя Например, чтобы вывести содержимое каталога work, вве- дите: lc work Вывод может выглядеть примерно так: accounts meetings notes mail memos todo Если имя не задано, lc выведет содержимое текущего каталога. Например, команда: lc выведет имена файлов и подкаталогов в этом каталоге. Следующие ключи управляют режимами вывода информации команды lc: -a Выводит все файлы в каталоге, включая "скрытые" файлы ( имена которых начинаются с точки, например .profile и .mailrc). -r Выводит имена в обратном алфавитном порядке. - 35 - -t Выводит имена файлов, упорядочивая их по дате изменения - сначала наиболее поздние (недавно изменялись). При использовании вместе с ключом -r сначала выводятся наиболее старые (давно не изме- нялись). -R Выводит все файлы и каталоги в текущем каталоге, плюс файлы и каталоги, которые стоят "ниже" по отношению к текущему. "R" означает "recursive" (рекурсивно). -F Помечает каталоги косой чертой ('/'), а выполняе- мые файлы звездочкой ('*'). Команда ls работает также, как и команда lc, за исклю- чением того, что список файлов выводится не в несколько столбцов, а в один. Команда ls -l выводит полный список содержимого каталога, который выглядит примерно так: total 501 drwxr-x--- 2 boris grp1 272 Apr 5 14:33 dir1 drwxr-x--- 2 enid grp1 272 Apr 5 14:33 dir2 drwxr-x--- 2 iris grp1 592 Apr 6 11:12 dir3 -rw-r----- 1 olaf grp2 282 Apr 7 15:11 file1 -rw-r----- 1 olaf grp2 72 Apr 7 13:50 file2 -rw-r----- 1 olaf grp2 1403 Apr 1 15:22 file3 Для каждого файла и каталога указана следующая информа- ция (слева направо): - Коды доступа - Число ссылок - Владелец - Группа - Размер в байтах - Время последнего изменения - Имя файла Про информацию из этого списка и о том, как изменять коды доступа, вы узнаете из раздела 4.8 "Использование кодов доступа файла и каталога". Более подробно вывод содержимого каталога описан в раз- деле ls(C) в Справочном руководстве XENIX. - 36 - 4.6.3. Создание каталога Для создания подкаталога в вашем рабочем каталоге используйте команду mkdir. Например, чтобы создать новый каталог с именем phonenumbers, просто введите: mkdir phonenumbers После выполнения этой команды в вашем рабочем каталоге будет существовать новый пустой каталог. 4.6.4. Удаление каталога Для удаления каталога, расположенного в вашем рабочем каталоге, используйте команду rmdir. Например, чтобы удалить каталог phonenumbers из текущего каталога, введите: rmdir phonenumbers Каталог phonenumbers должен быть пустым, для того, чтобы вы смогли его удалить; это предотвращает катаст- рофические удаления файлов и каталогов. Если вы хотите испытывать судьбу, то вы можете использовать рекурсив- ное удаление содержимого каталога с помощью команды rm, но здесь это описываться не будет. Для получения допол- нительной информации смотри раздел rm(C) в Справочном руководстве XENIX. 4.6.5. Переименование каталога Для переименования каталога используйте команду mv. Например, чтобы переименовать каталог little.dir в big.dir введите: mv little.dir big.dir Эта команда просто переименовывает каталоги; файлы не перемещаются. 4.6.6. Перемещение каталога Команда mv также перемещает каталоги. Она имеет следую- щий формат: mv старый_каталог новый_каталог где старый_каталог - это каталог, который уже сущест- вует. Например, чтобы переместить каталог /usr/joe/accounts в /usr/joe/overdue, введите: - 37 - mv /usr/joe/accounts /usr/joe/overdue Полное имя каталога /usr/joe/accounts теперь /usr/joe/overdue. ?????.sh 3 "Создание копии каталога" Команда copy копирует каталоги. Она имеет следующий формат: copy ключи старый_каталог новый_каталог Чтобы скопировать все файлы из каталога /usr/joe/memos в каталог /usr/joe/notes, введите: copy /usr/joe/memos /usr/joe/notes Файлы из каталога usr/joe/memos скопируются в /usr/joe/notes. Команда copy имеет следующие ключи: -l Устанавливает связь копии файла (создаются файлы- ссылки) с исходным файлом. -m Устанавливает для копий файла ту же самую дату изменения, что и для исходного файла. -r Рекурсивное копирование каталога, т.е. копируются все подкаталоги указанного каталога. 4.7. Перемещение по файловой системе При работе с системой XENIX полезно представлять себе древовидную структуру файлов и каталогов. Каждый ката- лог представляет собой место, в которое и из которого вы можете перемещаться. В каждый момент времени вы находитесь в каком-то месте в древовидной структуре. Это место называется либо рабочим каталогом, либо теку- щим каталогом. Команды, используемые для нахождения вашего местоположения и перемещения по древовидной структуре, описаны ниже. 4.7.1. Определение местоположения Ваше текущее место в файловой системе это имя рабочего каталога. Вы можете определить это имя командой pwd, которая означает "print working directory" (вывести рабочий каталог). Например, если вы находитесь в ката- логе /usr, то когда вы введете команду: pwd вы получите имя: /usr - 38 - 4.7.2. Смена рабочего каталога Рабочий каталог представляет собой ваше местоположение в системе: это "то, где вы находитесь" в системе XENIX. Для того, чтобы сменить это место, используйте команду "сменить каталог" - cd: cd Она меняет ваш рабочий каталог на ваш домашний каталог. Чтобы перейти в любой другой каталог, укажите его имя как аргумент команды cd. Например, команда: cd /usr перемещает вас в каталог /usr. Так как вы находитесь "в" вашем рабочем каталоге, смена каталогов подобна "путешествию" из одного каталога в другой. Чтобы перейти на один каталог выше текущего, введите: cd .. Например, указанная выше команда переместит вас из /usr/joe/work в /usr/joe. Точно также команда: cd ../.. переведет вас из /usr/joe/work в /usr, перемещая вас вверх на два каталога. 4.8. Использование кодов доступа файла и каталога Система XENIX позволяет владельцу файла ограничить дос- туп к файлам и каталогам, указывая, кто может читать, изменять или выполнять файлы, которые принадлежат ему. Для определения кодов доступа, связанных с заданным файлом или каталогом, используйте команду ls -l. Вывод этой команды выглядит примерно так: total 501 drwxr-x--- 2 boris grp1 272 Apr 5 14:33 dir1 drwxr-x--- 2 enid grp1 272 Apr 5 14:33 dir2 drwxr-x--- 2 iris grp1 592 Apr 6 11:12 dir3 -rw-r----- 1 olaf grp2 282 Apr 7 15:11 file1 -rw-r----- 1 olaf grp2 72 Apr 7 13:50 file2 -rw-r----- 1 olaf grp2 1403 Apr 1 15:22 file3 Коды доступа представляют собой первые десять символов в строке вывода. Коды доступа для dir1, первого файла - 39 - в вышеприведенном списке, представляют собой последова- тельность: drwxr-x--- Первый символ обозначает тип файла. Он может быть сле- дующим: - Обозначает обыкновенный файл. d Обозначает каталог. c Обозначает специальное устройство символьного типа, например, принтер или терминал. b Обозначает специальное устройство блокового типа, например, жесткий или гибкий диск. n Обозначает специальный файл имени (т.е. семафор, используемый для управления доступом к некоторому ресурсу). s Обозначает разделяемый файл данных. p Обозначает межпроцессорный канал, которому присво- ено имя. Следующие девять символов, слева направо, представляют собой девять наборов по девять кодов доступа в каждом. Каждый набор управляет доступом для: - Владельца - Группы - Прочих пользователей Внутри каждого набора три символа обозначают, соот- ветственно, полномочия на чтение файла, его изменение (т.е. запись в него) и выполнение файла как команду. Для каталога полномочие "на выполнение" означает разре- шение искать в каталоге любые входящие в него файлы или каталоги. Коды доступа для обыкновенного файла имеют следующие значения: r Файл можно читать w В файл можно писать (его можно изменять) x Файл можно выполнять - 40 - - Соответствующие полномочия отсутствуют Для каталогов коды доступа имеют следующие значения: r Файлы каталога можно вывести; код "x" каталога должен быть установлен. w В каталоге можно создавать или удалять файлы; так же, как и с "r", код "x" каталога должен быть установлен. x В каталоге можно вести поиск. Прежде чем вы смо- жете перейти в каталог с помощью команды cd, полу- чить доступ к файлу, или вывести файлы этого ката- лога, для этого каталога должен быть установлен код "x". Помните, что пользователь должен иметь разрешение "x", чтобы сделать что-либо полезное в каталоге. Ниже приведены несколько типичных комбинаций кодов дос- тупа для каталога: d--------- Доступ закрыт. Это режим, который запрещает доступ к каталогу классу пользователей. drwx------ Разрешает доступ только владельцу. Он может использовать команду lc, создавать файлы, удалять файлы, получать доступ к файлам и переходить в каталог с помощью команды cd. Это типичные коды доступа для владельца каталога. drwxr-x--- Разрешает доступ для членов группы. Они могут использовать команду lc и получать доступ к файлу в соответствии с кодами доступа файла. Члены группы могут переходить в этот каталог, используя команду cd, но не могут создавать или удалять файлы внутри него. Это типичные коды доступа вла- дельца, дающего другим необходимый доступ к файлам в своем каталоге. drwx--x--x С этими кодами доступа все пользователи, за исклю- чением владельца, не могут использовать команду lc, но могут переходить в каталог с помощью команды cd. В этой главе описаны только обычные файлы, выполняемые файлы и каталоги. Сведения о других типах файлов смотри в разделе ls(C) в Справочном руководстве XENIX. - 41 - 4.8.1. Изменение кодов доступа Коды доступа файла или каталога можно изменить командой chmod. Она полезна, если вы создали файл с одним режи- мом защиты, но хотите разрешить прочим пользователям читать, писать или выполнять его. Формат команды chmod следующий: chmod инструкция имя_файла Поле инструкция указывает какие коды доступа для какого класса пользователей вы хотите изменить. Существует три класса пользователей и они обозначаются следующим обра- зом: u Пользователь, владелец файла или каталога. g Группа, которой принадлежит пользователь. o Прочие - все пользователи системы. a Все классы пользователей. Существует три типа кодов доступа: r Читать - разрешает указанным пользователям смот- реть, но не изменять или удалять файл. w Писать - разрешает указанным пользователям изме- нять или даже удалять файл. x Выполнять - разрешает указанным пользователям выполнять файл как команду. Например, предположим, что файл file1 существут со сле- дующими кодами доступа: -rw-r----- В этом примере владелец файла может читать и писать в файл, члены группы могут читать его, а прочие пользова- тели не имеют доступа к файлу вообще. Для того, чтобы разрешить читать file1 всем классам пользователей, введите: chmod a+r file1 В инструкции команды (a+r), "a" обозначает "all" (все). Получившиеся коды доступа установлены следующим обра- зом: - 42 - -rw-r--r-- Если file1 имеет следующие коды доступа: -rw------- Следующая команда разрешает читать и писать в этот файл только членам группы: chmod g+wx file2 Теперь коды доступа будут выглядеть следующим образом: -rw--wx--- Чтобы запретить владельцу файла и членам группы писать и выполнять его, введите: chmod ug-wx file1 4.8.2. Изменение полномочий на просмотр каталога Каталоги также имеют полномочия на выполнения. Этот атрибут означает полномочия на просмотр, а не на выпол- нение, так как каталоги нельзя выполнить. Если эти полномочия не даны какому-то пользователю, то тогда он не сможет даже посмотреть имена файлов в этом каталоге. Например, предположим, что каталог dir1 имеет следующие атрибуты: drwxr-xr-x Чтобы запретить просматривать каталог прочим пользова- телям, введите: chmod o-xr dir1 Новые атрибуты будыт выглядеть следующим образом: drwxr-x--- 4.9. Обработка информации Во многих случаях в файлах будет содержаться информа- ция, которую вы, возможно, захотите обработать. В сис- теме XENIX существуют различные сервисные программы для обработки информации. В следующих разделах описываются некоторые такие программы и как ими пользоваться. - 43 - 4.9.1. Сравнивание файлов Для сравнивания двух текстовых файлов используйте команду diff. Она выводит те строки из указанных фай- лов, которые различаются. Например, предположим, что файл с именем men содержит следующие строки: Теперь пора всем настоящим мужчинам прийти на помощь своей стороне а файл с именем women содержит следующее: Теперь пора всем настоящим женщинам прийти на помощь своей стороне В этом случае команда: diff men women Выведет следующее: 1c1 < Теперь пора всем настоящим мужчинам --- < Теперь пора всем настоящим женщинам Различия между тремя файлами можно получить при помощи команды diff3. Подробнее эта команда описана в разделе diff3(C) в Справочном руководстве XENIX. 4.9.2. Отображение аргументов Команда echo выводит аргументы на стандартный вывод. Например, введя: echo "Now is the time For all good men To come to the Aid of their party" Вы получите: "Now is the time For all good men To come to the Aid of their party" - 44 - Команда echo особенно полезна при программировании на языке интерпретатора команд shell. Cм. главу 4 "Интерпретатор командного языка" в Руководстве пользо- вателя XENIX. 4.9.3. Сортировка файла Одной из наиболее полезных команд обработки файлов является команда sort. По умолчанию, sort сортирует строки файла в соответствии с последовательностью ASCII, т. е. в алфавитном порядке. Например, чтобы отсортировать файл с именем phonelist, введите: sort phonelist В вышеприведенном примере отсортированное содержимое файла будет выводиться на экран. Для создания отсорти- рованной версии phonelist с именем phonesort, введите: sort phonelist > phonesort Заметьте, что sort полезна для сортировки вывода других команд. Например, чтобы отсортировать вывод команды who, введите: who | sort >whosort Эта команда берет вывод who, сортирует его и пересылает отсортированный вывод в файл whosort. У команды sort существует большое количество ключей. Подробное описание см. в разделе sort(C) в Справочном руководстве XENIX. 4.9.4. Поиск образца в файле Команда grep выбирает и выводит только те строки, кото- рые соответствуют заданному образцу. Например, чтобы вывести все строки файла, содержащие слово "tty38", введите: grep 'tty38' file Вообще, вы всегда должны заключать образец для поиска в одиночные кавычки, чтобы специальные метасимволы интерпретировались правильно. В следующем примере подразумевается, что вы имеете файл с именем phonelist, который содержит строки, в которых указано имя и телефон. Подразумевается также, что в этом списке несколько тысяч имен. Вы можете - 45 - использовать команду grep, чтобы найти телефон человека с именем Joe, чей номер начинается с цифр 822. Для этого введите следующую команду: grep 'Joe' phonelist | grep '822-' >joes.number grep найдет все строки, содержащие слово "Joe". Затем эти строки будут профильтрованы через другую команду grep, котррая выберет строки, содержащие "822-" таким образом отбросив всех других ненужных Joe. В конце кон- цов, при условии, что в списке существует единственный Joe, чей номер начинается с 822, его имя и телефон будет записано в файле joes.number. Для получения дополнительной информации о команде grep, а также о "родственниках" этой команды fgrep и egrep, о типах образцов, которые можно искать (они называются "регулярные выражения"), смотри раздел grep(C) в Спра- вочном руководстве XENIX. 4.9.5. Подсчет слов, строк и символов wc - это программа для подсчета слов в файле. Буквы 'wc' обозначают word count (подсчет слов). Подразумева- ется, что слова разделяются знаками пунктуации, пробе- лами, табуляциями или символами новая строка. wc также считает количество символов и строк; все три числа выводятся по умолчанию. Например, чтобы подсчитать число строк, слов и символов в файле textfile, введите: wc textfile Типичный вывод количества строк, слов и символов может выглядеть следующим образом: 4432 18188 97808 textfile Если вы хотите подсчитать только символы, слова или строки, вы должны использовать соответствующие мнемони- ческие ключи. В качестве иллюстрации посмотрите внимательно на следу- ющие три команды и их вывод: wc -c textfile 97808 textfile wc -w textfile 18188 textfile wc -l textfile 4432 textfile - 46 - Первый пример выводит число символов в textfile, второй выводит число слов, а третий число строк. 4.9.6. Установка времени выполнения команды Программа at позволяет вам установить время выполнения команды. Она полезна, если вы хотите выполнить команду в то время, когда вы не собираетесь работать с системой непосредственно. Команда at принимает стандартный ввод и имеет следующий формат: cat файл | at время день файл - это имя файла, содержащего команду или команды для выполнения. время - это время дня, заданное циф- рами, за которыми следует "am" или "pm", что обозна- чает, соответственно, до полудня или после полудня. Число, заданное одной или двумя цифрами, воспринимается как часы, тремя или четыремя - как часы и минуты. Более четырех цифр не воспринимается. день необязателен. Это либо имя месяца, за которым сле- дует номер дня, либо день недели. Если день не задан, команда выполнится сегодня. Например, если вы захотите определить, какие процессы будут работать в системе в десять часов вечера, во вторник, поместите следующую строку в файл с именем use: ps -a > /usr/myname/use (Как создавать файлы и записывать в них текст, описано в главе 4 "vi: текстовый редактор" в Руководстве поль- зователя XENIX). После того, как вы создали такой файл, введите: cat use | at 10pm tues Нажмите RETURN. Появиться приглашение системы XENIX и вы можете продолжать работать. В десять часов вечера, во вторник, система XENIX выполнит команду ps -a и поместит вывод в файл use. Выход из системы на команду at не влияет. Для того, чтобы проверить, какие файлы должны выпол- ниться, используйте команду at с ключом -l. Она выводит файлы, принадлежащие данному пользователю, которые должны выполняться. Также выводится следующая информа- ция: - 47 - - Идентификатор файла. - Команда, вызывающая этот файл (at или batch). - Дату и время, когда должен быть выполнен файл. Чтобы отменить выполнение команды, сначала просмотрите список файлов для выполнения и запомните его идентифи- катор. Затем используйте команду at -r для удаления файла или файлов из списка. Команда at -r имеет следующий формат: at -r число Например: at -r 504510300.a удалит файл с номером 504510300.a, отменив все команды, которые содержались в нем. Пользователь может удалять только свои собственные файлы. 4.10. Управление процессами В системе XENIX несколько процессов могут работать одновременно. Например, вы можете запустить программу сортировки файла "в фоновом режиме", а сами в это время редактировать другой файл в основном режиме. Те про- цессы, которыми вы управляете с клавиатуры, называются основными процессами. Другие процессы, которые вы можете инициировать, но не можете полностью управлять ими, называются фоновыми процессами. В любой момент времени у вас может существовать только один основной процесс, но при этом могут одновременно выполняться несколько фоновых процессов. В этой части описано управление фоновыми и основными процессами. 4.10.1. Запуск процесса в фоновом режиме Обычно команды, посланные с клавиатуры, выполняются в строгой последовательности; одна команда должна закон- читься перед тем, как начнется выполняться следующая. Такого типа команды называются основными процессами. В отличие от них, фоновым процессам не надо ждать оконча- ния предыдущей команды. Фоновые команды особенно полезны для выполнения программ, которые знимают много времени. Для того, чтобы запустить процесс в фоновом режиме, добавьте амперсанд ('&') к концу команды. Например, чтобы посчитать число слов в нескольких больших файлах, при этом продолжая работать с чем-нибудь еще, введите: - 48 - wc file1 file2 file3 >count& Вывод будет собран в файле count. Если вывод не напра- вить в файл, он будет появляться на экране в непредска- зуемые моменты во время вашей работы. Когда процесс запускается в фоновом режиме, вы теряете над ним контроль во время выполнения. Например, введя INTERRUPT, вы не остановите фоновый процесс. Вместо этого вы должны использовать команду kill, описанную в следующем разделе. 4.10.2. Как остановить процесс Чтобы остановить выполнение основного процесса, нажмите на вашем терминале клавишу INTERRUPT. Это остановит любую команду, работующую в основном режиме. Для того, чтобы остановить все ваши процессы, работающие в фоно- вом режиме, введите: kill 0 Чтобы остановить какой-то конкретный фоновый процесс, сначала введите: ps Команда ps выводит идентификаторы (PID) всех ваших существующих процессов. Например: PID TTY TIME CMD 3459 03 0:15 -sh 4831 03 1:52 cc program.s 5185 03 0:00 ps Для вышеприведенного примера, вы можете ввести: kill 4831 где 4831 - это идентификатор процесса, который вы хотите остановить. _______________________________________________________ Замечание Остановка процесса, связанного с редактором vi, может ввести терминал в странный режим работы. Кроме того, временные файлы, котрые обычно созда- ются во время запуска команды и удаляются после окончания ее работы, могут остаться после выполне- ния команды kill. Временные файлы обычно нахо- дятся в каталоге /tmp. Этот каталог следует перио- дически проверять и удалять старые файлы. - 49 - __________________________________________________ 4.11. Получение информации о статусе Так как XENIX - это большая вычислительная среда, существует ряд вещей, которые вы захотите узнать о самой системе, например: кто сейчас работает в системе, сколько осталось свободного места на дисках, какие про- цессы в данный момент выполняются. В этом разделе опи- саны различные виды доступной информации и методы ее получения. 4.11.1. Кто работает в системе Команда who выводит имена, номера терминалов и время входа в систему пользователей, работающих на данный момент в системе. Например, введите: who Эта команда выведет на экран терминала что-то подобное следующему: arnold tty02 Apr 7 10:20 daphne tty21 Apr 7 07:47 eliot tty23 Apr 7 14:21 elen tty35 Apr 7 08:36 gus tty26 Apr 7 09:55 adrian tty28 Apr 7 14:21 Команда finger выводит более подробную информацию, такую, как номера телефонов организаций и добавочные телефонные номера. Для получения дополнительной инфор- мации об использовании этой команды, смотри finger(C) в Справочном руководстве XENIX. 4.11.2. Какие процессы выполняются Так как команды могут быть запущены в фоновом режиме, не всегда очевидно, какие процессы были запущены вами. Команда ps означает "process status" (статус процесса) и выводит информацию о текущих процессах, связанных с вашим терминалом. Например, вывод команды ps может выг- лядеть следующим образом: PID TTY TIME CMD 10308 38 1:36 ed chap02.man 49 38 0:29 -sh 11267 38 0:00 ps Столбец PID содержит уникальный идентификатор процесса, - 50 - который может быть использован для остановки какого- нибудь конкретного процесса. Столбец TTY содержит тер- минал, с которым связан процесс. Столбец TIME содержит общее время выполнения процесса. Процесс может быть остановлен командой kill. Для получения информации об использовании этой команды, смотри раздел 4.10.2 "Как остановить процесс". Для того, чтобы определить все процессы, работающие в системе, используйте ключ -a: ps -a Чтобы определить процессы, работающие на другом терми- нале, используйте ключ -t, после которого укажите номер терминала. Например, если вы хотите узнать, какие про- цессы связаны с терминалом номер 13, введите: ps -t13 Для получения дополнительной информации о команде ps и ее ключах, смотри ps(C) в Справочном руководстве XENIX. 4.11.3. Получение информации о принтере Вы можете получить информацию о состоянии файлов, кото- рые вы послали на печать, командой lpstat. lpstat выво- дит информацию об отдельном файле или обо всех ваших файлах, ожидающих печати. Чтобы выяснить, в каком состоянии находится отдельный файл (его статус), вам нужно знать идентификатор зап- роса на печать. Когда вы делаете запросы на печать с помощью команды lp, то идентификатор запроса выводится на экран. Он имеет вид: принтер-идентификационный_номер принтер - это имя принтера, на котором будет печататься ваш файл (узнайте у администратора системы, какие прин- теры вам доступны), а идентификационный_номер представ- ляет собой уникальное число, идентифицирующее ваш файл. Чтобы узнать состояние конкретного файла, введите: lpstat идентификатор_запроса lpstat в ответ выведет дату и время, когда был сделан запрос на печать, и сколько символов осталось напеча- тать. Чтобы выяснить, в каком состоянии находятся все ваши файлы, ожидающие печати на принтерах, введите: - 51 - lpstat lpstat в ответ выведет идентификаторы запросов и инфор- мацию о состоянии всех ваших файлов. Вы можете узнать, какие файлы ожидают печати на данном принтере, использовав lpstat с ключом -p. Эта команда имеет следующий формат: lpstat -p принтер В ответ lpstat выведет идентификаторы запросов и инфор- мацию о состоянии для всех файлов, ожидающих печати на указанном принтере. Подробно lpstat и его ключи описываются в Справочном руководстве XENIX в разделе lpstat(C). 4.12. Как пользоваться принтером Команды XENIX, управляющие принтерами, легки в исполь- зовании и предоставляют вам большое количество вариан- тов при печати файла. С помощью нескольких простых команд вы можете сделать несколько копий файла, отме- нить запрос на печать или установить специальный ключ для конкретного принтера. Так как система принтеров XENIX разработана таким образом, чтобы ее можно было легко настраивать на работу с различным окружением, то узнайте у вашего администратора системы, какие принтеры и ключи вам доступны. 4.12.1. Печать файлов: lp Чтобы распечатать копии ваших файлов, вы можете вос- пользоваться либо командой lp, либо командой lpr. Эти две команды эквивалентны. В этом разделе в примерах используется lp. Например, чтобы напечатать одну копию файла с именем memo, введите: lp memo Вы можете отправить на печать несколько файлов. Напри- мер, чтобы напечатать файлы memo, report и letter, вве- дите: lp memo report letter Когда вы делаете запрос на печать, lp в ответ выводит на экран вашего терминала идентификатор вашего запроса. Он может, например, выглядеть так: - 52 - pr4-532 Первая часть ("pr4") - это имя принтера, на котором ваш файл будет печататься. Вторая часть ("232") идентифици- рует ваш файл. Если вы позже захотите отменить запрос на печать или проверить, в каком состоянии он нахо- дится, то вам бы надо запомнить этот идентификатор зап- роса. Подробнее это описано в разделах 4.12.3, "Отмена запроса на печать", и 4.12.4, "Как узнать состояние запроса на печать:lpstat". Одна копия каждого указанного вами файла будет напеча- тана на принтере, используемом в вашей системе по умол- чанию. lp можно использовать в конвейерах команд и с другими командами. Разбиение на страницы осуществляется коман- дой pr. Чтобы поделить страницы и напечатать файл с именем textfile, введите: pr textfile | lp Чтобы отсортировать, разбить на страницы и напечатать файл datafile, введите: sort datafile | pr | lp 4.12.2. Как пользоваться ключами lp У команды lp есть несколько ключей, которые помогают вам управлять выводом принтера. С помощью ключа количества, -n, вы можете указать, сколько копий вы хотите напечатать. Например, чтобы напечатать две копии файла с именем report, введите: lp report -n2 Другой ключ, -d, задает место назначения вашего запроса на печать, т.е. принтер, на котором должен быть напеча- тан ваш файл. знайте у администратора системы, какие принтеры вам доступны. Чтобы напечатать две копии файла с именем report на принтере quick, введите: lp report -n2 -dquick Другие полезные ключи: -c Сделать копию печатаемых файлов. Это предотвратит случайное удаление или изхменение файла до того, как он будет напечатан. - 53 - -m Отправить вам почту с сообщением, что ваш файл напечатан. -o Задать ключи принтера. Например, вы имеете возмож- ность указать, что ваш документ должен быть напе- чатан с помощью 12-иголочного режима. Какие ключи доступны для каждого принтера или групп принтеров вашей системы, узнайте у администратора системы. -r Удалить файлы после печати. Подробнее ключи команды lp описаны в Справочном руко- водстве XENIX в разделе lp(C). 4.12.3. Как отменить запрос на печать: cancel Вы можете отменить запрос на печать. Например, чтобы отменить печать файла с идентификатором запроса laser- 245, введите: cancel laser-245 Команда cancel немедленно ликвидирует запрос на печать, даже если принтер уже начал его выполнять. Командой lp можно также воспользоваться, чтобы остано- вить любую печать на конкретном принтере. С помощью cancel вы легко можете освободить принтер для печати следующего файла, или остановить печать непонятного вывода, не обращаясь к администратору системы. Например, чтобы отменить печать любого файла, который в текущий момент печатается на принтере с именем slow, введите: cancel slow Если владельцем файла являетесь не вы, то владельцу файла автоматически будет послано сообщение о том, что запрос на печать был отменен. 4.12.4. Как узнать состояние запроса на печать: lpstat Чтобы выяснить, в каком состоянии находятся ваши файлы, ожидающие печати, введите: lpstat lpstat выведет нечто подобное следующему: - 54 - __________________________________________ | prt1-121 chrisw 450 Dec 15 09:30| | laser-450 chrisw 4968 Dec 15 09:46| | | | | |_________________________________________| В первом столбце показаны идентификаторы запросов для всех ваших файлов, ожидающих печати или печатаемых; во втором столбце стоит ваше регистрационное имя. В третьем столбце указывается, сколько символов должно быть напечатано, а в четвертом содержатся дата и время, когда вы сделали запросы на печать. Чтобы выяснить состояние конкретного файла, воспользуй- тесь командой lpstat с идентификатором вашего запроса. Например, чтобы выяснить, в каком состоянии находится файл с идентификатором запроса на печать daisy-256, введите: lpstat daisy-256 lpstat выведет состояние только этого запроса на печать. Вы можете также запросить состояние различных принтеров в вашей системе с помощью ключа -p или задав имя кок- ретного принтера, который вас интересует. Чтобы узнать, в каком состоянии находятся все принтеры вашей системы, введите: lpstat -p Чтобы узнать, в каком состоянии находится принтер с именем quick, введите: lpstat -pquick lpstat выведет идентификатор запроса и информацию о состоянии для каждого файла, в текущий момент ожидаю- шего печати на принтере с именем quick. Более подробно команда lpstat и ее ключи описываются в Справочном руководстве XENIX в разделе lpstat(C). - 55 - 4.13. Связь с другими пользователями Так как в системе XENIX поддерживается многопользова- тельский режим, с другими пользователями системы очень удобно связываться. Ниже описаны различные способы связи. 4.13.1. Отправка почты mail представляет собой общесистемное средство, которое дает вам и другим пользователям системы отправлять и получать почту. Чтобы послать почту другому пользова- телю в системе, введите: mail joe где joe - это имя любого пользователя системы. После команды введите текст сообщения, которое вы хотите пос- лать. Ввод текста завершается нажатием trl-d. Целиком сеанс работы с почтой на вашем терминале мог бы выглядеть, например, так: mail -s "Cобрание сегодня" joe Сегодня в 2:00 будет собрание по поводу недавних проблем с новой системой. Ctrl-d Обратите внимание на использование ключа -s для задания темы сообщения. Потренируйтесь, отправив почту себе. (Это не так странно, как может показаться на первый взгляд - почта самому себе представляет собой удобный способ напомина- ния о чем-либо.) Вы можете также переслать предвари- тельно подготовленное письмо, и можете послать почту нескольким людям одновременно. Подробности см. в Главе 3, "Почта", Руководства пользователя XENIX и в разделе mail(C) в Справочном руководстве XENIX. 4.13.2. Получение почты Когда вы входите в систему, вы иногда можете получать сообщение: You have mail (Вам пришла почта) Чтобы прочитать пришедшую почту, введите: mail - 56 - После этого на экран вашего терминала будут выведены заголовки всех сообщений. Когда вы нажмете RETURN, будет выведено содержание первого сообщения. Каждый раз, когда вы будете нажимать RETURN, будут по-одному выводиться следующие сообщения, причем самые свежие появляются первыми. После того, как выводится каждое сообщение, mail ждет, что вы укажете, что делать с этим сообщением. В качестве ответа в основном нажать одну из двух клавиш: 'd', нажав которую, вы удалите сообщение, и RETURN, нажатием которой сообщение не удаляется (то есть, когда вы в следующий раз будете просматривать свой почтовый ящик, это сообщение будет по-прежнему там). Чтобы прек- ратить сеанс работы с почтой, нажмите 'q'. Другие вари- анты ответов см. в Справчоном руководстве XENIX в раз- деле mail(C). 4.13.3. Передача сообщения на терминал Чтобы вывести сообщение непосредственно на терминал другого пользователя, используйте команду write. Напри- мер, чтобы вывести сообщение на терминал пользователя joe, введите: write joe После того, как вы запустили команду, нажав RETURN, все последующие вводимые вами строки выводятся и на экран вашего терминала и на экран терминала пользователя joe. Чтобы прекратить передавать текст на другой терминал, нажмите на новой строке Ctrl-d. При двустороннем обмене сообщениями каждой стороне рекомендуется оканчивать каждое сообщение ясным разли- чимым сигналом, обычно 'o' (означающим "over" - закон- чено); когда обмен сообщениями предполагается прекра- тить, используйте сигнал "oo" (означающий "over and out"). 4.14. Как пользоваться системными часами и календа- рем В XENIX есть несколько команд, которые сообщат вам текущую дату и время, или выведут календарь на любой выбранный вами месяц или год. Эти команды описываются ниже. - 57 - 4.14.1. Как узнать дату и время Команда date выводит дату и время. Введите: date Будут выведены дата и время. 4.14.2. Как вывести календарь Команда cal выводит календарь любого заданного вами месяца или года. Эта команда имеет формат: cal месяц год Например, чтобы вывести календарь на март 1952 года, введите: cal 3 1952 Результат: March 1952 S M Tu W Th F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Месяц всегда выражается цифрой. Чтобы вывести календарь на весь год, не указывайте в команде месяц. Год надо всегда указывать целиком; команда "cal 85" выведет календарь не на 1985 год, а на 85 год. 4.15. Как пользоваться автоматической записной книж- кой В настоящее время для всех пользователей XENIX доступна автоматическая записная книжка. Один раз каждый день XENIX с помощью команды calendar ищет в регистрационном каталоге пользователя файл с именем calendar, содержи- мое которого может выглядеть, например, так: 1/23 Свадьба Петра Давидовича 2/9 Машин день рождения 3/30 День рождения И.О.Загогулько - 58 - 4/27 В 2:00 собрание 9/1 День рождения Кати calendar просматривает все строки этого файла, извлекая те из них, в которых указаны сегодняшняя или завтрашняя дата. После этого эти строки по почте системы направ- ляются вам, чтобы напомнить об указанном событии. 4.16. Доступ к учетным структурам других пользовате- лей Вы можете легко осуществлять доступ к файлам других пользователей, независимо от установленных полномочий доступа к ним, с помощью команды su. Процедура su заме- няет вход в систему, и вам надо знать пароль другого пользователя. Например, чтобы стать пользователем joe, введите: su joe и нажмите RETURN. Когда появляется приглашение на ввод пароля, введите пароль этого пользователя. Чтобы отме- нить действие команды su и вернуться в вашу собственную учетную структуру, нажмите Ctrl-D. 4.17. Калькулятор Команда bc вызывает программу - интерактивный настоль- ный калькулятор, которой можно пользоваться, как микро- калькулятором. Ниже показан типичный сеанс работы с bc. Комментарии объясняют, что делается после ввода каждой строки. /* Это комментарий */ 123.456789 + 987.654321 /* Сложить и вывести */ 1111.111110 9.0000000 - 9.0000001 /* Вычесть и вывести */ -.0000001 64/8 /* Разделить и вывести */ 8 1.12345678934 * 2.3 /* Обратите внимание на точность */ 2.58395061548 19%4 /* Найти остаток */ 3 3^4 /* Возведение в степень */ 81 2/1*2 /* Заметьте последовательность*/ 4 2/(1*2) /* Опять заметьте последовательность */ 1 - 59 - x = 46.5 /* Присвоить значение x*/ y = 52.5 /* Присвоить значение y*/ x + y + 1.0000 /* Сложить и вывести */ 100.0000 obase=16 /* Установить 16-ричное основание счисле- ния*/ 15 /* Преобразовать к 16-ричному виду */ F 16 /* Преобразовать к 16-ричному виду */ 10 64 /* Преобразовать к 16-ричному виду */ 40 255 /* Преобразовать к 16-ричному виду */ FF 256 /* Преобразовать к 16-ричному виду */ 100 512 /* Преобразовать к 16-ричному виду */ 200 quit /* Надо набрать слово целиком */ Кроме этого, доступно масштабирование, определение функций и операторы во многом похожие на соответствую- щие средства языка Си. Можно присваивать значения име- нованным регистрам и осуществлять вызов подпрограмм. Дополнительная информация по этому вопросу дана в Главе 5, "bc: Калькулятор", Руководства пользователя XENIX. - 60 - СОДЕРЖАНИЕ 1. Введение ..................................... 1 1.1. Обзор ...................................... 1 1.2. Система XENIX .............................. 1 1.3. Рабочее окружение системы XENIX ............ 1 1.4. Об этом руководстве ........................ 3 2. Демонстрационный ............................. 4 2.1. Введение ................................... 4 2.2. Перед тем, как вы войдете в систему ........ 4 2.3. Вход в систему ............................. 4 2.4. Ввод команд ................................ 5 2.5. Ошибки при наборе .......................... 7 2.6. Чтение с опережением и ввод с опережением .. 8 2.7. Странное поведение терминала ............... 8 2.8. Остановка программы ........................ 8 2.9. Выход из системы ........................... 9 3. Введение ..................................... 9 3.1. Файлы ...................................... 9 3.1.1. Обычные файлы ............................ 9 3.1.2. Специальные файлы ........................ 10 3.1.3. Файлы-каталоги ........................... 10 3.1.4. Структура каталога ....................... 11 3.2. Файловые системы ........................... 12 3.3. Соглашения по присвоению имен .............. 13 3.3.1. Имена файлов ............................. 13 3.3.2. Полные имена файлов ...................... 13 3.3.3. Примеры имен файлов ...................... 14 3.3.4. Специальные символы ...................... 15 3.4. Команды .................................... 18 3.4.1. Командная строка ......................... 18 3.4.2. Формат ................................... 19 3.5. Ввод и вывод ............................... 20 3.5.1. Перенаправление .......................... 21 3.5.2. Межпроцессные каналы ..................... 22 4. Задачи ....................................... 23 4.1. Введение ................................... 23 4.2. Получение доступа к системе ................ 23 4.2.1. Вход в систему ........................... 23 4.2.2. Выход из системы ......................... 24 4.2.3. Изменение пароля ......................... 25 4.3. Установка конфигурации вашего терминала .... 26 4.3.1. Смена терминала .......................... 26 4.3.2. Установка параметров терминала ........... 27 4.4. Редактирование командной строки ............ 27 4.4.1. Ввод командной строки .................... 27 4.4.2. Удаление командной строки ................ 27 4.4.3. Приостановка вывода на экран ............. 27 - 61 - 4.5. Работа с файлами ........................... 28 4.5.1. Создание файла ........................... 28 4.5.2. Вывод содержимого файла .................. 28 4.5.3. Объединение файлов ....................... 30 4.5.4. Перемещение файлов ....................... 31 4.5.5. Переименование файла ..................... 31 4.5.6. Копирование файла ........................ 32 4.5.7. Удаление файла ........................... 32 4.5.8. Поиск файлов ............................. 33 4.5.9. Связывание одного файла с другим (файлы- ссылки) .................................. 33 4.6. Операции с каталогами ...................... 34 4.6.1. Вывод имени вашего рабочего каталога ..... 35 4.6.2. Вывод содержимого каталога ............... 35 4.6.3. Создание каталога ........................ 37 4.6.4. Удаление каталога ........................ 37 4.6.5. Переименование каталога .................. 37 4.6.6. Перемещение каталога ..................... 37 4.7. Перемещение по файловой системе ............ 38 4.7.1. Определение местоположения ............... 38 4.7.2. Смена рабочего каталога .................. 39 4.8. Использование кодов доступа файла и ката- лога ....................................... 39 4.8.1. Изменение кодов доступа .................. 42 4.8.2. Изменение полномочий на просмотр ката- лога ..................................... 43 4.9. Обработка информации ....................... 43 4.9.1. Сравнивание файлов ....................... 44 4.9.2. Отображение аргументов ................... 44 4.9.3. Сортировка файла ......................... 45 4.9.4. Поиск образца в файле .................... 45 4.9.5. Подсчет слов, строк и символов ........... 46 4.9.6. Установка времени выполнения команды ..... 47 4.10. Управление процессами ...................... 48 4.10.1. Запуск процесса в фоновом режиме ......... 48 4.10.2. Как остановить процесс ................... 49 4.11. Получение информации о статусе ............. 50 4.11.1. Кто работает в системе ................... 50 4.11.2. Какие процессы выполняются ............... 50 4.11.3. Получение информации о принтере .......... 51 4.12. Как пользоваться принтером ................. 52 4.12.1. Печать файлов: lp ........................ 52 4.12.2. Как пользоваться ключами lp .............. 53 4.12.3. Как отменить запрос на печать: cancel .... 54 4.12.4. Как узнать состояние запроса на печать: lpstat ................................... 54 4.13. Связь с другими пользователями ............. 56 4.13.1. Отправка почты ........................... 56 4.13.2. Получение почты .......................... 56 4.13.3. Передача сообщения на терминал ........... 57 4.14. Как пользоваться системными часами и кален- дарем ...................................... 57 4.14.1. Как узнать дату и время .................. 58 - 62 - 4.14.2. Как вывести календарь .................... 58 4.15. Как пользоваться автоматической записной книжкой .................................... 58 4.16. Доступ к учетным структурам других пользова- телей ...................................... 59 4.17. Калькулятор ................................ 59 - 63 -

Last-modified: Tue, 30 Jun 1998 04:46:06 GMT
World LibraryРеклама в библиотекеБиблиотека не предназначена для детей! Проект Либмонстра, партнеры БЦБ - Украинская цифровая библиотека и Либмонстр Россия https://database.library.by