SCO: Руководство по Unix (Unix tutorial) Руководство по ОС UNIX НПКО Мекомп при ММ СССР UNIX SystemЪV Operating System Руководство по ОС UNIX ( UNIX Tutorial ) Информация, содержащаяся в этом документе, может быть под- вергнута изменениям без предупреждения и не представляет собой обязательств со стороны The Santa Cruz Operation, Inc, а также Microsoft Corporation. Программное обеспечение, описанное в этом документе, поставляется по соглашению о лицензии, или же по сог- лашению о нераспространении. Программное обеспечение может ис- пользоваться или копироваться только в соответствии с пунктами соглашения. Незаконным является копирование программного обеспе- чения на магнитную ленту, диск или какой-либо другой носитель с целями, отличными от собственных нужд покупателя. Portions 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988 Microsoft Corporation. All rights reserved. Portions 1983, 1984, 1985, 1986, 1987, 1988 The Santa Cruz Operation, Inc. All rights reserved. Всякое использование, дублирование или любое другое расп- ространение правительством будет подвергнуто следующим ограничениям: подоглавления (b) (3) (ii) для ограничения прав на компьютерное программное обеспечение , и подоглавления (b) (2) для ограничения прав на технические данные; и то, и другое см. 52.227-7013. Microsoft, MS-DOS и XENIX являются торговыми марками Microsoft Corporation. UNIX является торговой маркой AT&T Bell Laboratories. SCO номер документа: XG-5-16-88-5.0 . Содержание. ________________________________________________________ 1. Введение 1.1 Введение 1-1 1.2 Об этом руководстве 1-1 1.3 Способы обозначений 1-2 2. Основные концепции 2.1 Введение 2-1 2.2 Бюджет 2-1 2.3 Файлы 2-2 2.4 Способы именований 2-6 2.5 Команды 2-10 2.6 Ввод и вывод 2-13 3. Регистрация в системе 3.1 Введение 3-1 3.2 Получение доступа к системе 3-1 3.3 Обеспечение безопасности ваших ресурсов 3-5 3.4 Изменение типа вашего терминала 3-6 3.5 Ввод команд 3-7 4. Работа с файлами и каталогами 4.1 Введение 4-1 4.2 Работа с каталогами 4-1 4.3 Редактирование файлов с помощью редактора vi 4-7 4.4 Распечатка файлов 4-10 4.5 Работа с файлами 4-13 4.6 Обработка текстовых файлов 4-20 4.7 Использование режимов доступа к файлам и каталогам 4-23 5. Сопровождение системы 5.1 Введение 5-1 5.2 Создание резервных копий 5-1 5.3 Копирование дискет 5-9 5.4 Извлечение информации о статусе системы 5-10 5.5 Управление процессами 5-12 5.6 Программирование на языке Shell 5-17 . 6 Утилиты непосредственного взаимодействия UNIX 6.1 Введение 6-1 6.2 Использование системных часов и календаря 6-1 6.3 Почтовые услуги 6-2 6.4 Автоматические напоминания системы 6-7 6.5 Использование системного калькулятора 6-8 . Ч А С Т Ь 1. В в е д е н и е _______________________________________________________ 1.1 Введение 1-1 1.2 Об этом руководстве 1-1 1.3 Способы обозначений 1-2 . 1-1 1.1 Введение Это руководство является введением в операционную систему UNIX. Оно предназначено для пользователей, слабо или совсем не знакомых с UNIX или XENIX. ОС UNIX состоит из двух сотен команд и программ. Данный самоучитель не дает разъяснений, как пользоваться всеми двумяс- тами. Однако, здесь вы найдете описания наиболее часто использу- емых и наиболее важных команд и программ. Цель данного руководства состоит в том, чтобы как возможно быстро научить вас практической работе в ОС UNIX. Для этого, как мы считаем, нет необходимости обеспечивать вас всей полнотой информации об ОС UNIX. Если вам все же нужно знать все, обрати- тесь к UNIX User's Reference и к UNIX User's Guide. 1.1 Об этом руководстве Данное руководство составлено следующим образом: . Часть 1, "Введение", содержит общий обзор и показывает, как пользоваться самоучителем. . Часть 2, "Основные концепции", объяснит те принципы, знание которых повысит эффективность вашей работы в сре- де UNIX. Части, следующие после второй, предполагают знание данной части. . Часть 3, "Вход в систему", объясняет, как войти в сис- тему, как защитить ваши записи, как редактировать подсказки системы, а также как вводить команды UNIX. . Часть 4, "Работа с файлами и каталогами", описывает, как выполнять основные задачи, включающие работу с файлами и каталогами. Здесь вы узнаете, как созда- вать файлы и каталоги, как перемещать, копировать, уничтожать и переименовывать файлы и каталоги. Также эта глава дает пояснения, как использовать различные утилиты текстового процессора UNIX, и как организовать доступ к файлам и каталогам. . 1-2 . Часть 5, "Сопровождение системы", объясняет, как поль- зоваться служебными утилитами UNIX. Показано, как соз- давать резервные копии, как копировать дискеты, как узнать информацию о статусе системы и как устанавливать фоновый режим выполнения команд. Также в пятой части содержится обсуждение стиля программирования в ОС UNIX. . Часть 6, "Утилиты непосредственного взаимодействия UNIX", рассказывает об использовании утилит типа "рабо- чий стол" UNIX: об автоматических напоминаниях и под- сказках системы, о связи с другими пользователями и об использовании системных вычислений. Вы наилучшим образом используете данное руководство, если начнете с чтения части 2. Прочтя ее, вы получите информацию, не- обходимую для понимания последующих глав. Затем вы можете про- честь части с 3 по 6, одновременно в качестве упражнений выпол- няя на вашем компъютере примеры, описанные в тексте. Все главки каждой части являются самостоятельными единицами информации. Необязательно читать предыдущие главки для понимания материала, изложенного в последующих. Для того, чтобы знать, как выполнять специальные задачи, такие, например, как распечатка текстового файла, если вы знаете, как его создать, обратитесь к соответствующей главке. В данном случае это будет 4.4 в части 4. Для того, чтобы понять 4.4, вам не обязательно читать главки 4.1 - 4.3. 1.3 Способы обозначений В данном руководстве приняты следующие соглашения о спосо- бах обозначений: . Примеры, приведенные в тексте, реальные. .  Команды, которые вы будете вводить, напечатаны жирным шрифтом. .  Клавиши, которые нужно нажимать, напечатаны жирным шриф- том. Например, клавиша Return представлена как RETURN. . 1-3 . Комбинации клавиш выделены жирным  шрифтом и печатаются через дефис. Например: Ctrl-d. Чтобы выполнить команду, представленную комбинацией клавиш, нажмите первую клавишу, и, не отпуская ее, нажмите следующую. В данном примере нажмите клавиши Control и d. . Заглавные буквы в круглых скобках часто употребляются в названиях команд, например: touch(C) О буквах в круглых скобках можно прочесть в UNIX User's Reference, где содержится полная информация о командах. . ЧАСТЬ 2. Основные концепции. ___________________________________________________________ 2.1 Введение 2-1 2.2 Бюджет 2-1 2.2.1 Бюджет пользователя 2-1 2.2.2 Бюджет привилегированного пользователя 2-2 2.3 Файлы 2-2 2.3.1 Обычные файлы 2-2 2.3.2 Файлы специальных устройств 2-3 2.3.3 Каталоги 2-3 2.3.4 Справочные структуры 2-4 2.4 Способы именований 2-6 2.4.1 Имена файлов 2-6 2.4.2 Маршруты 2-6 2.4.3 Имена шаблонов 2-7 2.4.4 Специальные символы 2-8 2.5 Команды 2-10 2.5.1 Командная строка 2-11 2.5.2 Синтаксис 2-12 2.6 Ввод и вывод 2-13 2.6.1 Переадресация 2-13 2.6.2 Каналы 2-14 . 2-1 2.1 Введение Эта часть рассказывает об основных концепциях, которые не- обходимо знать для эффективной работы в среде UNIX. После чте- ния этой части вы будете понимать, как составляется бюджет поль- зователя, каким образом организованы и именованы системные каталоги и файлы, как вводить команды и как команды ввода-вывода можно переадресовать. Важно прочесть эту часть перед чтением последующих частей данного руководства. 2.2 Бюджет. 2.2.1 Бюджет пользователя Распределение ресурсов (бюджет) должно уже существовать к тому моменту, как вы зарегистрируетесь в системе UNIX. Ваш бюд- жет должен содержать следующие компоненты: . Ваше регистрационное имя. Это то имя, по которому вы будете известны системе. Это имя вам нужно ввести по подсказке системы о регистрации. . Ваш пароль. Каждый пользователь в целях повышения безо- пасности системы и своих записей может иметь пароль. Этот пароль вводится во время регистрации в системе. . Идентификатор вашей группы. Каждый пользователь извес- тен системе как индивидуальный пользователь и как член группы. Групповое участие - важный способ повышения надежности системы. В качестве члена группы вы получа- ете доступ к тем файлам и каталогам, к которым не име- ет доступа индивидуальный пользователь. . Ваш "начальный каталог". Это - место в файловой систе- ме, где вы можете хранить ваши собственные файлы. При первой регистрации в системе вы должны указать свой начальный каталог. . Вашу "регистрационную оболочку". Эта программа считыва- ет и выполняет вводимые вами команды UNIX. В большинстве случаев вашей регистрационной оболочкой будет Bourne Shell, которая выдает в качестве подсказ- ки знак доллара ($). Однако, может быть использована конфигурация с оболочкой C-Shell со знаком процентов (%) в подсказке, или Visual Shell, являющаяся интер- фейсом меню-устройства. Во всем данном руководстве под выражением "подсказка UNIX", или "приглашение UNIX", подразумевается знак доллара или знак процентов. . 2-2 Как только все эти сведения будут установлены, вы получите возможность манипулировать файлами, каталогами и командами ОС UNIX. 2.2.2 Бюджет привилегированного пользователя Кроме бюджета индивидуального пользователя, каждая система UNIX имеет бюджет "привилегированного пользователя". (Привиле- гированный пользователь называется также "корневым"). Админист- ратор системы должен зарегистрировать привилегированного пользо- вателя в порядке выполнения своих административных задач. Привилегированный пользователь имеет свободный доступ к управле- нию всей системой. Привилегированный пользователь может прочесть и отредактировать любой файл системы, выполнить любую программу. 2.3 Файлы Файл - основная единица в файловой системе UNIX. Файлы в UNIX делятся на три различных типа: обычные файлы (то, что мы имеем в виду, говоря слово "файл"), файлы специальных устройств и каталоги. Каждый из этих типов описан в главках, следующих ни- же. 2.3.1 Обычные файлы Обычный файл состоит из набора восьмибитовых единиц - байтов. Обычный файл - это, как правило, либо текстовый доку- мент, либо исходная запись программы, либо данные для програм- мы. Выполнимые файлы в двоичном коде, или компьютерные прог- раммы, тоже могут быть рассмотрены как обычные файлы. В обычном файле байт интерпретируется программой-обработчиком как текстовый символ, двоичная запись команды или выражения программы. Каждый обычный файл имеет следующие атрибуты: . имя файла, не обязательно уникальное; . уникальный номер в файловой системе, называемый число- вым дескриптором; . размер в байтах; . время последнего внесения изменений; . установленный способ доступа; . пользователь (владелец) файла и группа. . 2-3 Защита файлов В многопользовательских системах часто появляется необхо- димость "защиты" определенных файлов, ограничения доступа не- которых пользователей к файлам в то время, когда к ним открыт доступ других. Файлы защищаются тем, что пользователям назна- чается "режим доступа". UNIX поддерживает три режима доступа: чтение Если доступ только по чтению, то пользова- тель с содержанием файла с помощью команд cat и more. Пользователь, имеющий режим доступа только по чтению, не может вносить в файл изменения. запись  Пользователь, имеющий режим доступа по за- писи, имеет право редактировать файл. выполнение Если файл является программой, то пользо- ватель, имеющий режим доступа по выполне- нию, может выполнить эту программу. Вам не удастся выполнить эту программу, если вы не имеете данного режима доступа. Режим доступа назначается владельцем файла. (Владельцем файла является его создатель). Режим доступа может комбиниро- ваться из трех, описанных выше. Это позволяет владельцу файла определять, кто из пользователей может читать, записывать в или/и выполнять файл. Заметим, что привилегированный пользова- тель имеет доступ по чтению, записи и выполнению для любого файла системы. Механизм, обеспечивающий безопасность файлов, в UNIX дос- таточно гибок. Он позволяет назначать различные способы доступа для файлов владельца, файлов группы и других пользователей. Обычно владелец файла имеет доступ по чтению и записи, члены группы - только по чтению, другие пользователи не имеют доступа. 2.3.2 Файлы специальных устройств. Каждому физическому устройству в системе, будь то твердый или флоппи-диск, строчный принтер, терминалы или системная па- мять, поставлены в соответствие так называемые "специальные файлы". Эти файлы называются также файлами специальных уст- ройств. Данное руководство не описывает эти файлы. Интересую- щиеся могут обратиться к UNIX Administrator's Guide. 2.3.3 Справочные файлы или каталоги. Справочные файлы - это, скорее, картотеки, чем файлы. Это места, где размещены файлы (концептуально, а не физически). Часто справочные файлы называют также "каталогами". . 2-4 Каталог содержит имена и числовые дескрипторы файлов. Чис- ловые дескрипторы входят в простую систему числовых дескриптров, использующуюся в UNIX для организации файловой системы. Система числовых дескрипторов входит в единый файл параметров, содержа- щий информацию о файлах: о типе файлов, о числе связей с ними, о размещении файлов на диске, о размерах файлов, об имени владель- ца или группы, о режимах доступа к файлам и о времени последней модификации. Также как и обычные файлы, каталоги могут быть защищены назначением режимов доступа. Доступом может быть разрешение на чтение, на запись и на выполнение. Чтобы сделать что-нибудь по- лезное в данном каталоге, пользователь должен иметь режим досту- па "по выполнению" относительно данного каталога. Чтобы добавить файл или исключить его из данного каталога, необходимо иметь ре- жим доступа "запись" и "выполнение". Чтобы просмотреть содержа- ние данного каталога, нужно иметь режим доступа "чтение" и "вы- полнение". Режим доступа к каталогу назначается его владельцем. Если нет владельца как такового, то им считается создатель ката- лога. 2.3.4 Структура каталога. При многопользовательской работе с большим количеством фай- лов возникает необходимость в создании особого механизма быстро- го просмотра файловой системы. Особенностью системы UNIX явля- ется "инвертированная древовидная структура" каталога, позволяющая эффективно организовать большое количество файлов. Связанные файлы могут быть сгруппированы вместе в отдельном ка- талоге. Наряду с обычными файлами, каталоги могут содержать дру- гие каталоги, называемые иногда "подкаталогами". В свою очередь, подкаталоги могут содержать как обычные файлы, так и новые под- каталоги, и т.д. Команда cd служит для перехода из одного ката- лога в другой. Типичным деревом файлов является приведенный ниже пример, где "корень" (root) располагается сверху, а "ветви" де- рева растут вниз. Катлоги являются "узлами" дерева, а обычные файлы - "листьями". На рисунке 2-1 изображена инвертированная древовидная структура каталога: / root _________________|___________________ | | | bin usr dev | __________|__________ | | | | | chmod gwenl markt ttyla __|______ _______|__ | | | | mail news text data Рис. 2-1 Типичная файловая система . 2-5 На рисунке 2-1 имена bin, usr, dev, gwenl и markt являются названиями каталогов, и все они представляют собой узлы дерева. В вершине дерева находится корневой каталог, который представлен знаком слэш (/). Имена mail, news, text и data представляют обычные файлы, на рисунке это - "листья" дерева. Файл chmod яв- ляется именем команды, которая может быть выполнена. Идентифика- тор ttyla - имя файла специального устройства. Он представляет терминал и также содержится в древовидной структуре. Если каталог содержит идущие вниз ветви, представляющие другие файлы или каталоги, то такие файлы и каталоги называются "содержащимися" в данном каталоге. На рис. 2-1 файлы mail и news содержатся в каталоге gwenl, который, в свою очередь, содержится в каталоге usr. А каталог usr содержится в корневом каталоге. Любому файлу в системе можно дать имя, начиная от корня и двигаясь по какой-либо ветви до желаемого файла. ФайлБ которому дается имя. соотносится с каким-либо каталогом. Соглашения о способах именований в UNIX обсуждается ниже. Каталог пользователя. Каждый пользователь в системе UNIX имеет персональный, или "начальный", каталог. Это то место, где вы можете сохранять свои файлы, и где другим пользователям делать нечего. Наряду с на- чальным каталогом, могут существовать и другие подкаталоги, где присутствуют ваши собственные записи и осуществляется ваше уп- равление. Обычно начальные каталоги пользователей системы UNIX располагаются в каталоге с именем usr, что проиллюстрировано ри- сунком 2-2. usr ______________|______________ | | | adam eve mary | ________|________ | | | | | text text temp text Рис. 2-2. Типичный каталог пользователя На рисунке 2-2 показано, что каталог usr содержит начальные каталоги каждого пользователя. В данной системе три пользовате- ля: adam, eve и mary. . 2-6 2.4 Способы именований. Каждому файлу, каталогу и устройству в UNIX поставлены в соответствие имя файла и маршрут. Об этом - две следующие ниже главки. 2.4.1 Имена файлов. Имя файла - последовательность, содержащая от 1 до 14 сим- волов, которыми могут быть буквы, цифры и некоторые специальные символы, такие, например, как подчеркивание (_). Каждый отдель- ный файл, каталог и устройство в системе имеет имя. Хотя можно использовать почти любые символы в имени файла, лучше ограни- читься алфавитно-цифровым набором символов и точкой. Остальные символы, в особенности символы управления, не стоит употреблять для этой цели. Имена файлов должны как-то отражать их содержание. Напри- мер, файл, содержащий список необходимых покупок, скорее должен иметь имя покупки, а не file1. Заметим, что имя файла должно быть уникально только в пределах данного каталога, но совсем не обязательно во всей системе. Различные каталоги могут содержать разные файлы с одинаковыми именами. Например, различные файлы могут иметь одинаковое имя text, если они находятся в разных ка- талогах. (См. рис. 2-2). Когда имя файла начинается с точки, то сам файл является "скрытым", и его имя не отображается на дисплее по команде lc. Часто файлы системной конфигурации (System configuration files) являются скрытыми. Команды lc -a не выводят имена скрытых фай- лов. Тире (-) используется в специальных опциях команд, и его следует избегать в именах файлов. Наконец, никогда не должны ис- пользоваться в именах файлов знак вопроса (?), звездочка (*), скобки ([ и ]) и другие разделители, так как они имеют свое тол- кование в среде UNIX. (Более подробную информацию об этих сим- волах можно получить из главки "Специальные символы", ниже в этой части). 2.4.2 Маршруты. Маршрут - это последовательность имен каталогов, представ- ляющий собой путь в файловой системе к данному файлу, где каждое следующее имя отделяется от предыдущего наклонной чертой - слэ- шем. Если название маршрута начинается со слэша, то путь в иско- мый файл начинается от корневого каталога всего дерева системы. В обратном случае, если название маршрута начинается непосредс- твенно с имени файла, то путь к искомому файлу должен начаться от текущего каталога (рабочего каталога). Введя команду pwd, можно узнать имя текущего каталога. . 2-7 Маршрут, название которого начинается со слэша, называется полным или абсолютным. Абсолютный маршрут - указание полного пу- ти к месту расположения файла в системе. Абсолютный маршрут уни- кален: не существует двух таких файлов, каталогов или устройств, пути к которым в точности совпадают. Маршрут, название которого начинается не со слэша, является относительным, так как он ука- зывает путь от текущего каталога. 2.4.3 Имена шаблонов. Общеупотребимыми в UNIX являются следующие имена файлов и каталогов: / Имя корневого каталога. /bin Каталог, содержащий большинство наибо- лее часто используемых команд UNIX. /usr Каталог, содержащий все каталоги поль- зователей. В подкаталоге /usr/bin со- держатся те наиболее часто используемые команды UNIX, которые не вошли в /bin. /dev Каталог, содержащий файлы специальных устройств. /dev/console Файл специального устройства - систем- ной консоли. /dev/ttyXX Имена файлов специальных устройств - системных портов. XX представляет собой номер, например, la или 006. Большинс- тво портов - терминалы. /lib Каталог, содержащий "библиотечные" фай- лы, используемые для системного разви- тия. /usr/lib Каталог, содержащий приложения UNIX. /tmp Каталог, содержащий временные файлы. /usr/joe/run Типичный пример полного маршрута. Это путь к файлу run, которым владеет поль- зователь по имени joe. . 2-8 bin/skript Относительный маршрут. Путь к файлу skript подкаталога bin от текущего ка- талога. Если текущим является корневой каталог (/), то имя пути будет /bin/skript. Если текущий каталог /usr/joe, то имя пути /usr/joe/bin/skript. file1 Имя обычного файла в текущем каталоге. Все файлы и каталоги, за исключением корневого, имеют "ро- дительский" каталог. Этот каталог расположен "непосредственно выше" данного каталога или файла в дереве файловой системы. Фай- ловая система UNIX поддерживает специальную стенографическую нотацию для родительского и текущего каталогов: . Стенографическое имя текущего каталога. Например, ./filexxx имеет имя filexxx файла, расположеного в текущем каталоге. .. Стенографическое имя каталога, родительского по отно- шению к текущему. Например, по имени ../.. мы обра- тимся к каталогу, находящемуся на два уровня "выше" текущего. 2.4.4 Специальные символы. UNIX поддерживает возможность объединения наборов файлов по специальным шаблонам. Представьте, к примеру, что вы работае- те над большой книгой. Отдельные главы этой книги могут хранить- ся в виде отдельных файлов, называющихся, например, chpt1, chpt2, chpt3 и т. д. Вы также можете каждую главу разделить на несколько частей в виде файлов, и иметь, таким образом, файлы chpt1.1, chpt1.2, chpt1.3 и т.д. Когда вы соберетесь напечатать всю книгу с помощью строчно- го принтера, вы можете ввести следующую команду: lp chpt1.1 chpt1.2 chpt1.3 ... . 2-9 Вводя так много имен файлов в команде, вы быстро утомитесь, и, скорее всего, наделаете ошибок. К счастью, есть более короткая запись того же самого. Последовательность фай- лов, имена которых содержат общие части - "шаблоны", может быть записана компактно, когда различающиеся части записывают- ся универсальными символами, играющими роль джокеров при игре в карты. В этой части мы обсудим следующие универсальные сим- волы: * Соответствует нулю или более символов. [] Соответствует какому-либо символу в скобках. ? Соответствует какому-либо одному символу. Например, вы можете ввести: lp chpt* Звездочка означает "нуль или более символов произвольного типа", и поэтому команда, приведенная выше, означает следующее: "послать сообщения файлам, имена которых начинаются со слова chpt, о выводе на печать". Этот быстрый и эффективный путь рас- печатки всех файлов поможет закончить вашу книгу. Такая сокращенная запись свойственна не только команде lp. Она может быть использована и в любой другой команде. Например, вы можете пролистать список имен файлов вашей книги с помощью команды lc chpt* Универсальный символ * может располагаться не только в кон- це имени. Он может заменять любую группу символов в любом месте имени файла. По определению, звездочка может обозначать и все имена файлов, не содержащих слэшей или начинающихся с точек: cat * Эта команда выведет все файлы текущего каталога на экран. Звездочка - не единственный универсальный символ, позволяющий группировать имена. Представьте, что вам нужно распечатать части только с 1 по 4 и 9. Вы можете ввести: lp chpt[12349]* . 2-10 Скобки ([ ]) означают "соответствие одному из символов в скобках". Если должно быть поставлено соответствие нескольким символам, то это можно записать более коротко, с использованием следующей команды: lp chpt[1-49]* (Заметим, что эта запись должна рассматриваться как после- довательность с chpt1 по chpt4 и chpt9, а не как последователь- ность с chpt1 по chpt49). В этом примере показано, что символы в скобках могут записываться через тире: "[a-z]", что означает "любой символ от а до z". Знак вопроса (?) соответствует какому-либо одному символу: lc ? По этой команде будут выведены все файлы, имена которых состоят из одного символа. Следующая команда выведет информацию о первом файле из каждой главы (т.е. chpt1.1, chpt2.1, ...). lc chpt*.1 Если вам понадобилось отключить специальное значение симво- лов *, ?, [], то заключите их в одинарные кавычки. Например, следующая команда распечатает только файлы с именем '?', а не все файлы с односимвольными именами: lc '?' Шаблоны обсуждаются в части "Оболочка" руководства UNIX User's Guide. 2.5 Команды Вы уже немного знакомы с тремя полезными командами UNIX, lc, lp и cat. Команда lc используется для вывода содержания ка- талога, команда lp для распечатки файлов, команда cat - для вы- вода содержимого файла. Команды являются выполнимыми программами. Когда вы вводите имя команды, UNIX пытается найти программу с таким именем и, в случае удачи, выполнить ее. В командной строке могут содержаться также аргументы и опции или файлы, если программе это необходи- мо. Командная строка и ее синтаксис описаны в двух следующих главках. . 2-11 2.5.1 Командная строка. Среда UNIX считывает строку символов, называемую "команд- ной строкой", и воспринимает ее как команду. Далее оболочка оп- ределяет, какие именно действия нужно выполнить. (Существует три оболочки UNIX: Bourne Shell, C-Shell и Visual Shell). UNIX считывает имя команды с командной строки, находит выполнимую программу, связанную с именем этой команды, затем выполняет программу. Когда завершится выполнение программы, среда UNIX возобновляет чтение и анализ командной строки. Когда вы вводите команду, фактически вы редактируете текстовую строку, называемую "буфером командной строки". Буфер командной строки будет содер- жать саму командную строку только после нажатия клавиши RETURN. Изменение буфера командной строки осуществляется нажатием клавиш BKSP и Ctrl-u. Если нажать клавишу INTERRUPT прежде RETURN, ко- мандная строка, содержащаяся в буфере, будет стерта. (Большинс- тво клавиатур используют клавишу DEL для обозначения INTERRUPT). В одной командной строке может содержаться несколько ко- манд, при этом они разделяются точкой с запятой. Например, сле- дующая командная строка вызовет печать текущей даты и имени те- кущего каталога: date; pwd Команды могут подчиняться "фоновому процессу", если в ко- мандную строку добавить знак амперсанда (&). Эта модификация нужна для выполнения "пакетных" процессов других систем. Основ- ным преимуществом фонового выполнения команд является возмож- ность одновременного выполнения других команд в приоритетном ре- жиме. Например, следующая команда выводит статистику обращений к диску в каталоге /usr, фактически расходующей время операции, без постоянной связи с терминалом: du /usr > diskuse & Команда du будет выводить информацию в файл diskuse, когда произошла переадресация выводного потока, на что указывает знак " > ". (Переадресация ввода и вывода обсуждается в главе "Ввод и вывод" ниже. Фоновые процессы описаны в главе "Задачи с развиты- ми свойствами"). . 2-12 2.5.2 Синтаксис. Общий синтаксис команды таков: cmd [опции] [аргументы] [имена файлов] [...] По определению, названия команд печатаются строчными буква- ми. Опции не являются обязательными атрибутами. От имени коман- ды они отделяются через тире (-). Используются опции в качестве модификаторов команд. Например, команда lc вызовет печать содер- жания каталога в сжатом виде в несколько столбцов. Эта же коман- да с опцией -l (lc -l) распечатает содержание каталога в расши- ренном виде. В некоторых случаях одна опция может представлять собой комбинацию нескольких, как в следующей команде: lc -rl На самом деле в этой команде сгруппированы две опции, где опция -rl одновременно позволяет распечатать содержание каталога в обратном алфавитном порядке и в расширенном формате. Иногда в одной команде могут присутствовать несколько оп- ций, например: copy -a -v начало конец Здесь опция -а собщает команде copy о необходимости всякий раз перед копированием файлов от начало до конец требовать от пользователя подтверждения о копировании. Опция -v отличается "многословием", заставляя распечатывать имена файлов после копи- рования. Покажем, в какой форме записываются аргументы в других ко- мандах: grep 'строка текста' data.file В этом примере строка текста - единственный аргумент, и это та строка, которую команда grep будет искать в файле data.file. . 2-13 2.6 Ввод и вывод. В минимальной конфигурации UNIX предполагает, что ввод осуществляется с клавиатуры терминала, а вывод направляется на экран терминала. Для иллюстрации типичной команды обмена введем: cat Теперь эта команда ждет ввода с вашей клавиатуры. Все стро- ки, а их может быть много, будет восприниматься как ввод до тех пор, пока вы не введете Ctrl-d, что будет означать "конец файла" или "индикатор конца трансмиссии". Например, введем: это две строчки RETURN ввода  RETURN Ctrl-d Команда cat сразу же выводит на экран каждую вводимую стро- ку. Таким образом, вывод будет в точности повторять напечатанную вводимую строку. Вот что вы увидите на экране дисплея: _________________________________________________________ | | $ cat | это две строчки | это две строчки | ввода | ввода | $ Потоки команд ввода и вывода могут быть "переадресованы", так, ввод может осуществляться из файла, а не с клавиатуры, а вывод может быть направлен не на экран, а на принтер. Вдобавок, вы можете создавать "каналы", чтобы использовать вывод одной ко- манды в качестве ввода другой. (О переадресации и каналах читай- те в двух следующих главках). 2.6.1 Переадресация В UNIX файл может и вводиться с терминала, и выводиться на терминал. Следующая команда выводит список файлов на экран ваше- го терминала: lc . 2-14 Но если ввести видоизмененную команду, список файлов будет выведен не на экран, а в файл filelist (который будет создан, если еще не существует): lc > filelist Символ, служащий для указания о переадресации - знак "боль- ше" ( > ),- означает: "поместить выводной поток в файл, имя ко- торого следует непосредственно за знаком, а не на экран. Исполь- зование следующей команды - другой путь для переадресации: cat f1 f2 f3 > temp Эта команда помещает копии нескольких файлов в файл temp путем переадресации вывода команды cat в этот файл. Еще один символ, используемый в выводе ( >> ), работает аналогично символу переадресации вывода, а значение его - "доба- вить конкатенацию file1, file2 и file3 в конец файла temp, не перекрывая и не уничтожая уже имеющееся там содержимое": cat file1 file2 file3 >> temp Как и в случае переадресации вывода, если файл temp еще не существует, то он создается при таком обращении. Аналогично, символ переадресации ввода ( < ) означает: "взять вводной поток для программы из файла, имя которого следу- ет после знака " < ", а не с терминала". Следующая команда пе- решлет копии файла letter.txt нескольким пользователям UNIX с помощью команды mail: mail adam eve mary < letter.txt (О команде mail смотрите Часть 6 данного руководства). 2.6.2 Каналы. Интересной концепцией среди многих других в UNIX является концепция каналов. Каналы - простой способ использования вывода одной команды в качестве ввода другой. Последовательность ко- манд, реализующих этот механизм, называется "конвейером". . 2-15 Например, предположим, что вам нужно найти все уникальные строки в 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 Вертикальная черта (|) употреблена между командами uniq и sort, чтобы показать, что вывод sort, который обычно поступает на терминал, может быть использован как входной поток команды uniq, который, в свою очередь, отправляет свой выходной поток на обзор с помощью команды more. Следующая команда - другой пример конвейера. Команда wc подсчитывает количество строк, слов и символов в ее входном по- токе. Команда who распечатывает текущий список зарегистрировав- шихся пользователей, каждое имя на новой строке. Таким образом, следующий конвейер информирует вас о числе зарегистрированных пользователей путем подсчета количества строк, распечатываемых по команде who: who | wc -l Обратите внимание на разницу в выводе между wc -l и wc. Ко- манда wc подсчитывает число строк, слов и символов во входном потоке, а команда wc -l сообщит вам лишь число строк. Любая программа, входным потоком которой может быть ввод с клавиатуры, может получать входной поток и по каналу. Аналогич- но, любая программа, которая может посылать выводной поток на экран терминала, может выводить также и посредством канала. Вы можете иметь столько элементов конвейера, сколько пожелаете. . Ч А С Т Ь 3 Регистрация в системе. _________________________________________________________ 3.1 Введение 3-1 3.2 Получение доступа к системе 3-1 3.2.1 Регистрация в системе 3-1 3.2.2 Выход из системы 3-3 3.2.3 Изменение пароля 3-3 3.3 Обеспечение безопасности ваших ресурсов 3-5 3.3.1 Безопасность пароля 3-5 3.3.2 Безопасность - это ваши хорошие привычки 3-5 3.3.3 Использование бюджета других пользователей 3-6 3.4 Изменение типа вашего терминала 3-6 3.5 Ввод команд 3-7 3.5.1 Ввод командной строки 3-7 3.5.2 Стирание командной строки 3-8 3.5.3 Останов вывода на экран 3-8 . 3-1 3.1 Введение Прочтя эту главу, вы узнаете, как выполнить следующие ос- новные задачи UNIX: . Вход в систему . Выход из системы . Изменение пароля . Использование бюджета других пользователей . Переопределение типа вашего терминала . Ввод команд UNIX . Стирание командной строки, содержащей ошибки . Приостановление и возобновление вывода на экран Материал этой части лучше всего изучать непосредственно за терминалом, вводя команды, описанные в примерах. Команды, описанные в этой части, не разобраны в деталях. Для более полного ознакомления обращайтесь к UNIX User's Reference. 3.2 Получение доступа к системе. Для работы в системе UNIX вы сначала должны получить дос- туп к регистрации. Зарегистрировавшись, вы попадете в свой на- чальный каталог. Регистрация, изменение пароля и выход из систе- мы описаны ниже. 3.2.1 Регистрация в системе. Прежде чем войти в систему, вы должны иметь свой системный бюджет (выделенные вам ресурсы). В большинстве случаев созданием вашего бюджета займется системный администратор. Однако, если вам по каким-либо причинам нужно сделать это самостоятельно, об- ратитесь к UNIX Sistem Administrator's Guide, откуда можно по- черпнуть всю необходимую информацию. В данной части вы найдете описания ваших действий уже после создания бюджета. .