"соответствие любому символу внутри скобок". Границы последовательности букв и цифр могут быть сокращены, таким образом вы можете выполнить ту же команду, введя: 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