Как начать работать: базовое руководство


Вход в систему
Выход из системы
Использование команд
Настройка среды
Управление паролем
Работа с системой
Оперативная помощь


UNIX является многопользовательской, многозадачной средой. В отличие от персональных компьютеров, системы UNIX изначально построены так, чтобы разрешить одновременный доступ к системе множеству пользователей.

Установлена ли UNIX на большой многопользовательской системе или на персональной рабочей станции, архитектура этой операционной системы влияет на способы работы и на требования, которые система предъявляет к пользователю и к администратору.

Настоящая глава предназначена для того, чтобы ознакомить читателя с основами UNIX с точки зрения пользователя. Не все UNIX на самом деле поддерживают множество пользователей, каждому из которых предоставлены клавиатура или терминал. Некоторые машины (рабочие станции) выделены отдельным пользователям, другие функционируют как серверы, которые обслуживают несколько удаленных компьютеров, но не конечных пользователей. Однако во всех случаях UNIX работает так, что всегда может проявить свои многопользовательские, многозадачные способности. Для целей данного учебного пособия мы будем считать, что у читателя на столе - собственная рабочая станция UNIX.


Вход в систему


UNIX-машину одновременно могут использовать много людей. Для того чтобы система знала, кто вы такой и какие ресурсы имеете право использовать, следует идентифицировать себя. Кроме того, поскольку UNIX ожидает общения с вами посредством терминала (или PC, на котором исполняется программа эмуляции терминала), то терминал и система UNIX должны установить основные правила обмена информацией. Процесс установления коммуникационного сеанса и идентификации пользователя называется "входом в систему".


ПРИМЕЧАНИЕ

На самом деле UNIX различает коммуникационный сеанс и сеанс работы с системой конкретного пользователя; можно войти в систему под одним именем, затем выйти и войти снова уже под другим именем, не прерывая коммуникационного сеанса. Поскольку большинство пользователей получают доступ к UNIX из PC, а также с целью упрощения, в данной главе пользовательский сеанс и коммуникационный сеанс будут рассматриваться как идентичные. При более близком знакомстве со средой UNIX и с такими утилитами, как telnet, различие между этими двумя понятиями станет более очевидным




Настройка бюджета пользователей


Даже если система UNIX загружена, этого недостаточно, чтобы начать работу - в отличие от PC Прежде чем пользователь получит доступ к компьютерной системе, кто-то (обычно системный администратор) должен сконфигурировать систему для этого пользователя, иначе говоря, создать бюджет пользователя. Если UNIX установлен на домашнем PC, то, очевидно, все придется делать самому пользователю Если же вы используете UNIX на рабочем месте в офисе, то, наверное, существует человек или люди, чья работа состоит в администрировании всех систем. В таком случае следует обратиться к ним и попросить настроить ваш пользовательский бюджет. В компании может существовать специальная форма, в которой необходимо указать имя, временный пароль, какую оболочку вы предпочитаете использовать, какова ваша группа по умолчанию, к каким группам вы должны принадлежать и какие почтовые псевдонимы следует добавить. Многие из упомянутых параметров зависят от того, какую работу вы будете выполнять и с кем сотрудничать.

Независимо от того, кто настраивает ваш пользовательский бюджет, вы должны знать две вещи, чтобы использовать систему ваше регистрационное имя и пароль Регистрационное имя является уникальным именем, по которому система опознает пользователя Оно часто связано с реальным именем, фамилией или комбинацией первого инициала и фамилии (например, "frank", "brimmer" или "fbrimmer", соответственно) Если вас просят выбрать себе имя пользователя, старайтесь подобрать такое имя, которое будет ассоциироваться у других именно с вами. Оно не должно быть неопределенным или общеупотребительным, чтобы вас не путали с другими пользователями Системный администратор проверит, не принадлежит ли уже кому-то из пользователей выбранное вами регистрационное имя Пароль, который будет у вас затребован или вам присвоен, является временной строкой, которая предоставляет возможность первоначального доступа к системе. Начальный пароль не имеет значения, поскольку пользователь должен изменить его на свой собственный пароль при первой же регистрации в системе.

Остальные элементы бюджета пользователя новичкам объяснить сложнее. Кое-что подскажут коллеги, которые используют ту же самую систему. Системный администратор может помочь разобраться в том, какие учетные значения должны задать вы Не стоит излишне волноваться при желании все значения впоследствии можно будет изменить.


Вход в систему


Теперь, когда вы знаете свое регистрационное имя (далее р имя пользователя) и пароль (пусть это будут, соответственно, "brimmer*" и "new_user"), у вас есть доступ к системе. Система попросит ввести имя пользователя, напечатав login:. В ответ следует ввести имя пользователя. Затем UNIX спросит пароль, напечатав Password:. Введите пароль. Когда печатаете пароль, не беспокойтесь, что вводимые символы не появляются на экране. Это нормально и предназначено для вашей же защиты. Никто, кроме самого пользователя, не должен знать его пароля, именно поэтому никто не сможет увидеть пароль на экране в момент регистрации. Не забывайте для ввода нажимать <Enter>.


login: brimmer

Password:

Please wait...checking for disk quotas

Marine biology word of the day:

Cnidaria (n.) Nigh-DARE-ее-uh (L. a nettle) - a phylum of basically

radially symmetrical marine invertebrates including corals, sea

anemones, jellyfish and hydroids. This phylum was formerly known

as Coelenterata.:

$




Совет

Некоторые клавиатуры имеют клавишу, помеченную как "Return". Другие клавиатуры имеют клавишу, помеченную "Enter". Если на вашей клавиатуре есть и то и другое, то, вероятно, правильной клавишей для использования является "Return".




Совет

В некоторых системах Erase - это #, a Kill - это @. В других системах Erase - это Backspace или Delete, a Kill - это <Control-U> или <Control-X>.




Если системный администратор все правильно настроил, а пользователь все правильно ввел, то пользователь войдет в систему и сможет приступить к работе. Если появится сообщение, говорящее Login Incorrect, то, возможно, были неправильно введены имя пользователя или пароль Если ошибка была допущена при вводе имени пользователя, то клавиши Backspace и Delete помогут исправить ошибку Самый простой способ - это начать все сначала, нажав дважды <Enter> и получив новую подсказку Login .

Другими сообщениями об ошибках могут быть No Shell, No Directory или Cannot Open Password File. Если вы увидите любое из этих сообщений или несколько попыток зарегистрироваться неизменно порождают сообщение Login Incorrect, то попросите системного администратора помочь решить эту проблему.

Совет.

Сообщение No Shell означает, что UNIX не может запустить интерпретатор команд, который был сконфигурирован при настройке бюджета пользователя. В зависимости от типа системы UNIX, возможны два варианта. Либо придется обратиться к администратору, либо пользователь все же войдет в систему, но при этом будет использована оболочка по умолчанию. В последнем случае используйте команду chsh, которая меняет оболочку, заданную в бюджете пользователя. Сообщение No Directory означает, что UNIX не может получить доступ к начальному каталогу пользователя, который указан при настройке бюджета. И здесь, в зависимости от системы, все может завершиться успешно - пользователь попадет в каталог по умолчанию. Затем ему может потребоваться помощь системного администратора для создания начального каталога или изменения значения начального каталога в бюджете. Сообщение Cannot Open Password File означает, что UNIX не имеет доступа к системному файлу паролей, в котором содержится информация бюджета (имя пользователя, пароль, ID пользователя, оболочка, группа и т.п ) каждого пользователя. Если проблема связана с файлом паролей, то ни один пользователь не сможет войти в систему. При появлении такого сообщения необходимо связаться с системным администратором.




Если система сконфигурирована для использования графического интерфейса пользователя (GUI), то при входе в систему будет появляться экран входа в систему. Данный экран выполняет те же самые функции, что и подсказки командной строки. На экране, скорее всего, будут два поля, которые пользователю необходимо заполнить. Одно поле предназначено для имени пользователя, другое - для пароля.


После успешного входа в систему


После успешной регистрации на экране появляются несколько сообщений. Это может быть дата и время последнего входа в систему, информационное сообщение системы ("Message of the Day" - сообщении дня), уведомление, информирующее о том, получено ли что-то новенькое по электронной почте. Сообщение дня может быть важным, поскольку оно является средством, с помощью которого администратор системы общается с пользователями. Примером информации, помещаемой в "Сообщения дня", является время следующей профилактики (когда никто не может использовать систему).

После вывода всех сообщений система готова к работе и ждет дальнейших указаний пользователя. Такое состояние готовности и ожидания сопровождается выводом на экран подсказки с последующим курсором. Типичной подсказкой является $ или %. Подсказка в виде знака доллара часто используется оболочками Bourne и Коrn, а знак процента - оболочками С. Значение подсказки можно при желании изменять. Тот, кто конфигурировал бюджет, мог уже установить другое значение подсказки. Для изменения подсказки следует поменять значение переменной среды PS1 (для Bourne и Коrn) или prompt (для оболочки С). Курсор (место на экране, где отображается очередной вводимый символ) обычно изображается символом подчеркивания (_) или прямоугольником, которые могут мигать. Вид курсора может меняться в разных системах.


Разные привилегии для разных пользователей


Даже при администрировании своей персональной системы важно создать для себя бюджет, несмотря на то что система уже имеет заранее настроенный бюджет администратора, который используется исключительно для администрирования системы. При работе с бюджетом администратора важно быть внимательным, поскольку у этого бюджета есть специальные привилегии. Системы UNIX имеют встроенные механизмы безопасности. Большинство пользователей не могут создавать и настраивать новые бюджеты пользователей или осуществлять другие административные функции. Пользователь ROOT - это особый пользователь, которого иногда называют суперпользователем. Он может делать с системой все что угодно. Эта высшая степень силы необходима для полноценного администрирования системы UNIX, но если допускать ошибки, то возникают проблемы. По этой причине следует создать для себя еще один бюджет, не имеющий привилегий пользователя ROOT. После такой настройки обычная, повседневная работа оказывает влияние только на персональную среду пользователя, но не подвергает опасности систему. В многопользовательской, не персональной, среде у вас, скорее всего, будут привилегии обычного пользователя (но не суперпользователя). Безопасность во многопользовательских системах особенно важна, поскольку одна ошибка привилегированного пользователя может негативно повлиять на каждого пользователя и всю систему.

В UNIX также существуют средства, которые помогают предотвратить вмешательство пользователей в работу друг друга в многопользовательской среде. Каждый пользователь "владеет" своей средой и может избирательно разрешать группам или всем другим пользователям получать доступ к своей работе. Если пользователь выполняет закрытую работу, к которой никто другой не должен иметь доступ, то необходимо ограничить доступ к работе для всех, кроме владельца. Если группа пользователей работает над совместным проектом, то пользователь-руководитель группы должен ограничить доступ, разрешив его лишь владельцу (себе) и членам своей группы. Если к данной работе должны обращаться многие или все пользователи в системе, то следует разрешить доступ всем.


Выход из системы


После завершения работы с системой следует выйти из нее. Отключение предотвратит случайное или преднамеренное получение доступа посторонних к вашим файлам. Выход из системы также высвободит ресурсы системы для использования их другими пользователями.

Нормальный способ выхода почти из любой оболочки - ввести exit. Данная команда заставит оболочку прекратить функционирование. Выход пользователя из оболочки и есть выход из системы. При работе с csh можно ввести logout. Некоторые оболочки, в зависимости от конфигурации, будут также закрываться при вводе символа конца файла (обычно <Control-D>)

При использовании графического интерфейса пользователя процедура отключения может быть иной. Необходимо просмотреть руководства или обратиться к оперативной подсказке, чтобы узнать, как выходить из GUI конкретной системы.


Использование команд


Во время процесса входа пользователя в систему UNIX выполняет несколько действий, которые готовят пользователя и систему к взаимодействию друг с другом. Такие действия включают идентификацию пользователя, инициализацию пользовательской среды и запуск интерпретатора команд, который принято называть оболочкой. Команды - это приказание системе что-то сделать. Интерпретатор команд распознает команды и передает информацию туда, где она нужна. Системы UNIX изначально комплектовались интерпретатором команд под названием "оболочка Bourne", на которую обычно ссылаются как на sh, хотя в некоторых системах оболочки Коrn или POSIX установлены как sh (см. следующее примечание.) Данная оболочка по-прежнему входит в состав большинства систем UNIX. Более новая оболочка, которая распространена на большинстве систем UNIX - это оболочка С (на нее ссылаются как на csh). Еще одна менее распространенная оболочка - Коrn (ksh). Среди разных оболочек существуют вариации в доступных командах..


ПРИМЕЧАНИЕ: чТО В ИМЕНИ?

Все варианты операционной системы UNIX используют несколько распространенных оболочек Наиболее известны следующие:

sh Оболочка Bourne р наиболее распространенная в сравнении с другими (Может устанавливаться как bsh)

ksh Оболочка Коrn р развитие оболочки Bourne. В нее добавлена история и редактирование командной строки (Иногда устанавливается как sh,)

sh Оболочка POSIX очень похожа на Коrn Стандарт POSIX требует ее инсталляции как sh. Некоторые поставщики устанавливают ее как /bin/sh. Некоторые помещают ее в специальный каталог и называют sh, оставляя оболочку Воurnе как /bin/sh.

csh Оболочка С, использующая синтаксис, сходный с синтаксисом популярного языка С

bash Оболочка Воrn Again, менее распространена

tcsh Версия оболочки С с интерактивным редактированием командной строки




Что такое команда?


Команда UNIX представляет собой серию вводимых символов Эти символы составляют слова, разделенные пробелами Пробел является результатом одного или нескольких нажатий клавиши пробела или табуляции Первое слово - имя команды Остальные слова называются аргументами команды Аргументы предоставляют команде необходимую информацию или определяют вариант поведения команды Для вызова команды необходимо просто ввести имя команды с последующими аргументами (если они есть) Чтобы сообщить оболочке, что ввод закончен и команду следует исполнять, нажмите <Enter>

Попробуйте Введите команду date Имя команды - date, и она не принимает никаких аргументов Следовательно, введите просто date, нажмите <Enter> и наблюдайте, что получится Компьютер должен вывести на экран текущую дату и время Если дата или время не верны, попросите системного администратора их исправить А как насчет того, чтобы попробовать команду с аргументами Введите команду echo Имя команды - echo, и она принимает несколько аргументов Затем команда echo повторит аргументы на экране, отсюда и ее название Попытайтесь создать команду, которая напишет на экране ваше имя и фамилию Вот как выглядят команды и их вывод в нашей системе


$ date

Sat Aug 5 11:11:00 EST 1997

$ echo MyName

MyName

$





Некоторые команды, такие как echoр являются частью конкретной оболочки Они называются встроенными В таком случае команды нестандартны и отличаются а разных оболочках Следовательно, если вы изучили одну оболочку и позднее были вынуждены (или захотели) переключиться на другую оболочкур то придется изучать новые команды <и отвыкать от старых)р Другие команды являются стандартными для UNIX и не зависят от тогор какую оболочку вы используете Такие команды должны быть в каждой системе UNIX Остальные команды являются нестандартными и могут быть, а могут и отсутствовать в конкретной системе UNIX

Команды UNIX используют специальный тип аргумента, который называется опцией Опция указывается знаком тире (клавиша "минус"), за которым следует один или несколько символов Опции позволяют менять поведение команды Чаще всего опции бывают просто одиночными символами, следующими за тире Двумя другими, редко используемыми, формами являются знак плюс вместо знака минус и следующее за тире слово, а не единичный символ В следующем абзаце показаны распространенные команды с двумя опциями Команда ls выводит листинг файлов текущего каталога

Прежде всего, введите команду ls без аргументов Затем введите ее с опцией -а и обратите внимание на то, что оглавление каталога содержит теперь несколько файлов, имена которых начинаются с точки Такие скрытые файлы распечатываются командой ls только в том случае, когда указана опция -а Затем введите команду ls с опцией -l Данная опция изменяет формат распечатки каталога так, чтобы каждый файл распечатывался с соответствующими сведениями о нем. Наконец, введите команду ls с обеими опциями ls -a -1

$ ls

visible

$ ls -a

. ..hidden visible

$ ls. -l

total 0

-rw-rw-rw- 1 sartin uu 0 Mar 5 12:58 visible

$ ls -а -l

total 16

drwxrwxrwx 2 sartin uu 1024 Mar 5 13:03 .

drwxr-xr-x 37 sartin uu 3072 Mar 5 13:03 ..

-rw-rw-rw- 1 sartin uu 0 Mar 5 12:58 .hidden

-rw-rw-rw- 1 sartin uu 0 Mar 5 12:58 visible $


Разработчик команды часто старается выбрать в качестве опций осмысленные символы. В отношении команды ls можно считать, что -а означает "all" (все), то есть должны распечатываться все файлы (включая специальные файлы, начинающиеся с точки). Опцию -1 можно считать означающей "long" (длинный), то есть распечатать длинный листинг каталога, поскольку формат изменился так, что каждая строка содержит один файл с информацией о нем. В результате листинг удлиняется.


Перенаправление ввода и вывода


Одной из очень распространенных концепций в UNIX является перенаправление ввода и вывода команд. Однако, прежде чем рассматривать перенаправление, неплохо было бы рассмотреть ввод и вывод команд как есть, без модификации. В данном случае UNIX использует слово стандартный для обозначения режима по умолчанию. Так, в UNIX термин "стандартный ввод" означает ввод, который поступает при стандартных установках. Под стандартным выводом понимается вывод, направленный на стандартное устройство вывода. Когда пользователь первый раз входит в систему и оболочка начинает выполняться, в качестве стандартного ввода установлен ввод с клавиатуры, а стандартный вывод предполагает в вывод на экран. Имея это в виду, разберем несколько примеров.

Команда cat принимает из стандартного ввода любые символы и затем отражает их в стандартный вывод. Например, введите команду cat без аргументов. Курсор должен перейти в следующую строку, в которой будет отсутствовать подсказка. В этот момент команда cat ждет, что вы введете символы. Можно ввести их сколько угодно, а затем указать, что ввод окончен. Введите несколько слов и нажмите <Return> Теперь введите специальный символ, <Ctrl-D> (придержите клавишу <Control> при вводе символа <D>.) Будет введен управляющий символ "еоf". Слова, которые вы ввели, должны появиться на экране дважды - один раз после ввода их с клавиатуры и второй раз потому, что команда cat вывела их на экран. Первый опыт демонстрирует использование стандартного ввода (набор на клавиатуре) и стандартный вывод (результаты команды появились на экране).


$ cat

s

A few words

<CTRLXD>

A few words


Хотя данный простой пример пока не выглядит особенно полезным, посмотрим, что изменится, если добавить перенаправление.

Оболочки UNIX имеют специальные символы, которые означают перенаправление. Здесь освещаются только основы перенаправления. Перенаправление вывода обозначается знаком >, а перенаправление ввода - знаком <. Обычно вывод перенаправляется в файл, а ввод перенаправляется из файла. Теперь продолжим разбор оставшейся части примера.

Попытайтесь выполнить команду cat, используя перенаправление вывода и оставив лишь стандартный ввод. Введите cat > filename. Filename - это имя файла. И вновь команда cat будет ждать ввода (поступающего из стандартного устройства ввода, каким является клавиатура) в начале следующей строки. Введите несколько слов, как делали это прежде, нажмите <Return> и затем, в начале новой строки, нажмите < Control >-<D>. Вводимые слова на экране не покажутся, поскольку вы перенаправили вывод команды cat. Вывод был перенаправлен в файл filename. Но как узнать, есть ли он там? Для проверки используйте команду cat с перенаправлением ввода, что будет продемонстрировано следующим опытом.


$ cat. > scottу

Meow, whine

meow

<CTRL><D>


Предостережение.

<Ctrl>-<D> должен быть первым символом вводимой строки, чтобы он рассматривался как "еоf".




Для того чтобы увидеть содержимое файла filename требуется, чтобы ввод команды cat поступил из данного файла и вывод поступил на экран. Следовательно, необходимо перенаправить стандартный ввод и оставить стандартный вывод как есть. Введите cat < filename. На этот раз команда cat ждать вас не будет р поскольку вводимая информация уже находится в файле. Команда cat выведет содержимое файла на экран.


$ cat < scotty

Meow, whine

meow

СОВЕТ

Обратите внимание на тонкую разницу между этими двумя командами: cat > filename и cat < filename. Запомнить разницу можно, описав словами, куда направлена стрелка: направлена ли она в команду или из команды? Если в команду, то это перенаправление ввода, а если из команды, то это перенаправление вывода.



Команда cat предоставляет возможность указать имя файла, который будет использоваться как ввод. Попробуйте указать имя файла таким (более распространенным) способом: введите cat filename. Многие команды разработаны аналогично: они принимают в качестве аргумента имя файла, из которого осуществляется ввод. Благодаря распространенности такой конструкции команд, перенаправление ввода используется существенно реже в сравнении с перенаправлением вывода.


$ cat scotty

Meow, whine

meow

$


UNIX была разработана в соответствии с философией простых команд, которые выполняют хорошо определенные простые задачи. Затем, объединяя команды, пользователь мог бы решать очень сложные задачи. Каналы (pipes) являются одним из способов, которым UNIX позволяет пользователям объединять команды. Каналы обозначаются вертикальной чертой (|). Канал представляет собой средство перенаправления вывода одной команды на ввод другой команды.

Скажем, необходимо знать, сколько файлов находится в текущем каталоге Вспомните, что команда ls распечатывает все файлы текущего каталога. Затем можно было бы подсчитать количество файлов. Но в UNIX есть команда, которая подсчитывает количество символов, слов и строк ввода и отображает статистику. Следовательно, можно объединить данные две команды и получить число файлов в каталоге.

Один из способов решения этой задачи таков: ls - l| wc -c. Анализируя команду, можно заметить, что ее первая часть нам знакома. Команда ls -l дает оглавление каталога в длинном формате. Фактически команда печатает по одному файлу в строке. Команда wc -l дает количество строк во вводе. Объединение двух команд каналом передает вывод первой команды (распечатку каталога в длинном формате) на ввод второй команде Вывод второй команды (он не перенаправляется, а идет в стандартный вывод) отображается на экране.

Зная несколько команд и применяя описанные базовые формы перенаправления, можно быстро и эффективно решать множество задач. Изучайте команды и старайтесь их применять с различными опциями и аргументами, затем добавляйте перенаправление ввода и вывода Наконец, объединяйте команды каналами. Такой подход поможет вам почувствовать себя "на короткой ноге" с различными командами и их применением.


Настройка среды


Чтобы сделать оболочку более гибкой и простой, UNIX использует концепцию среды. Среда - это набор величин. Вы можете изменять данные величины, добавлять новые значения, удалять существующие. Данные величины называются переменными среды (среды - потому, что они описывают или определяют среду, а переменными - потому, что могут меняться).


Просмотр и установка переменных среды


Среда каждого пользователя выглядит немного по-своему. Почему бы не посмотреть, как выглядит ваша среда? Введите команду env без аргументов. Формат вывода и имена переменных зависят от используемой оболочки и от того, как сконфигурирована система. Типичная среда выглядит приблизительно так:


$ еnv:

HOME-/u/sartin

LOGNAME=sartin

MAIL=/usr/mail/sartin

MANPATH=/usr/man:/usr/contrib/man:/usr/local/man

PATH=/bin/posix:/bin:/usr/bin:/usr/contrib/bin:/usr/local/bin

SHELL=/bin/sh

TERM=vtl00

TZ=CST6CDT


Иногда количество переменных среды слишком велико, а необходимо вывести значение лишь одной переменной. В этом случае для показа текущего значения переменной среды можно использовать команду echo. Для указания того, что вводимое слово следует обрабатывать по особому - как имя переменной среды, - необходимо предварить слово знаком доллара ($). Будьте внимательны и не введите какого-либо служебного символа между знаком доллара и словом. Одна из переменных среды в примере - это HOME. В вашей среде, вероятно, также есть данная переменная. Попытайтесь отобразить ее значение с помощью echo.


$ echo $HОМЕ

/u/sartin

$


ПРИМЕЧАНИЕ

Если вы используете csh, то некоторые переменные среды автоматически копируются в и из переменных csh. В том числе HOME, TERM и PATH, которые csh хранит в home term и path



Новая переменная среды создается путем простого присваивания ей значения. Если задается значение существующей переменной, то старое значение затирается. Одна из трудностей в установке переменных среды заключается в том, что способ их установки зависит от используемой оболочки.

Для того чтобы вывод корректно отображался на экране, переменная среды TERM должна иметь правильное значение. Данная переменная пришла из того времени, когда в качестве дисплеев использовались терминалы (перед тем, как распространились PC и графические дисплеи). Разные терминалы поддерживали разное управление выводом. Следовательно, системы UNIX поддерживали различные системы терминалов. Стандарта здесь нет, поэтому следует определить тип терминала, который используете вы Если для подключения к UNIX применяется PC, то PC выполняет программу эмуляции терминала Большинство таких программ способны эмулировать разные типы терминалов. Важно здесь то, чтобы эмулятор и переменная TERM были установлены в одно и то же (или совместимое) значение. Начните с того, что посмотрите значение переменной TERM, введя echo $TERM. Обратитесь к руководству по эмулятору своего терминала или попросите помощи у системного администратора, чтобы убедиться в правильности установки TERM.

СОВЕТ

Многие эмуляторы терминалов (включая программу Microsoft Windows "Terminal") поддерживают управляющие последовательности терминалов "VtlOO" и ANSI. Попытайтесь установить TERM в vtlOO или anр! для эмулятора терминала подобного типа




Использование файлов оболочки


Откуда берутся все эти переменные среды? Их для вас устанавливает система. И часто каждый пользователь сам устанавливает несколько переменных во время регистрации. Очень может быть, что вы делаете это, даже не подозревая. Во время стартовой настройки, которая происходит в момент регистрации, запускается оболочка. Оболочка автоматически просматривает одно или два места в поисках стартовой настроечной информации. Одно из таких мест начальный каталог пользователя. Стартовая информация в начальном каталоге находится в специальных файлах. Имя такого файла зависит от типа используемой оболочки Когда оболочка стартует, она исследует соответствующий файл и выполняет любые указанные в нем действия. Одним из распространенных действий является присвоение значений переменным среды. Данное действие называется инициализацией переменных среды.

Переменная среды, которая часто устанавливается в стартовом файле оболочки это переменная PATH (или для пользователей оболочек С переменная path - имя записано строчными буквами). Данная переменная содержит список мест (или каталогов) в системе, где оболочка должна искать команду. Каждая вводимая команда физически размещена как файл где-то в файловой системе. Бываетр что одноименные исполняемые файлы, соответствующие одной и той же команде, находятся в разных местах (и при исполнении ведут себя либо одинаково, либо по-разному). Скажем, программа под названием my_program хранится в вашем начальном каталоге, а ваш друг имеет программу под тем же названием my_program, которая находится в его начальном каталоге. Если в ответ на подсказку ввести my_program, то оболочка должна знать, где искать правильную программу Оболочка использует значение переменной PATH - список каталогов, определяющий порядок поиска. Первый же найденный каталог с my_program останавливает поиск, и оболочка выполняет найденный файл. Поскольку все файлы в отдельном каталоге должны быть уникальными, то описанная процедура представляет простой и достаточный метод поиска исполняемых модулей (команд).

Вероятно вы захотите, чтобы $HOME/bin был в начале списка каталогов PATN, а каталог вашего друга р в конце или не указывался вовсе. Таким образом, когда вы введете my_program, то запустится ваша программа, а не его. Всю настройку можно выполнить в файлах запуска оболочки в дополнение к установке значений переменных среды. Если хотите, то можете добавить команду echo, которая выведет на экран приветствие или напомнит вам о необходимости что-то сделать. Одним распространенным элементом, который конфигурируется в файлах запуска оболочки, является набор управляющих символов. Файлы запуска являются мощным инструментом для пользователя оболочки, позволяющим автоматически конфигурировать поведение оболочки.

СОВЕТ

Хорошая идея р создать каталог bin в HOME и хранить исполняемые файлы там Включите $HOME/bin s ваш путь.




Настройка системы с помощью файлов rс


Идея файла, который считывается во время старта, используется не только для оболочек. Фактически, многие команды имеют специальные файлы, содержащие конфигурационную информацию, которую пользователь может модифицировать Общий класс таких файлов называется rс-файлами р от соглашения по наименованию таких файлов. Названия большинства из них оканчиваются буквами rс Некоторые распространенные файлы называются .ехгс, .mailrc и .cshrc. Все имена начинаются с точки Когда файл начинается с точки, это означает, что он не будет отображаться при обычном получении листинга каталога Если необходимо увидеть такие файлы, то применяется опция -а в команде Is Файл .ехгс используется редакторами vi и ех Файл .mailrc используется различными программами чтения электронной почты Файл .cshrc является файлом запуска оболочки С, который только что обсуждался Файлы rс обычно находятся в начальном каталоге (используйте команду ls -а) Затем исследуйте содержимое одного из файлов (используйте команду cat filename)

Ваша среда очень сильно влияет на работу с системой. Она инициализируется во время регистрации с помощью файлов запуска оболочки, растет и изменяется по мере создания новых переменных и изменения существующих. Среда влияет на каждую исполняемую команду. Важно создать такую среду, которая сделала бы наиболее общие и часто выполняемые действия простыми Затратьте время на настройку среды сейчас и впоследствии вы об этом не пожалеете


Управление паролем


Во время регистрации UNIX просит ввести пароль. Если вы первый раз сели за компьютер, то пароль сконфигурировал системный администратор. Первое, что вы должны сделать после регистрации, р это изменить пароль так, чтобы никто, даже системный администратор, его не знал. Изменить пароль можно с помощью команды passwd. Но прежде чем менять пароль, следует немного подумать над тем, каким должен быть пароль. Вот некоторые общие соображения:

1. Пароль должен легко запоминаться. Если вы забудете свой пароль, то никто, в том числе и системный администратор, не сможет его восстановить. Единственное, что сможет сделать системный администратор, ~ это установить новое значение пароля. Это потребует затрат времени р системного администратора и вашего.

2. Пароль не должен быть легким для угадывания кем бы то ни было. Не делайте паролем свое имя или дату рождения, имя пользователя или что-либо из названного, записанное в обратном порядке. Разумно избегать и тех слов, которые можно найти в словаре. Стоит включить в пароль хотя бы один небуквенный символ (например, точку или знак доллара).

3. Делайте пароль разумной длины. Некоторые системы накладывают ограничения на минимальное количество символов в пароле. Нормально, если пароль длиной не менее пяти символов. Ограничений на максимальное количество символов обычно нет, но значащими бывают только первые восемь. При проверке правильности введенного пароля девятый символ и все последующие игнорируются.

4. Время от времени меняйте пароль. Некоторые системы проверяют, когда вы последний раз меняли пароль. Если достигнуто временное ограничение, то система при регистрации уведомит вас об истечении времени действия пароля. Будет выдана подсказка немедленно сменить пароль и до тех пор, пока вы этого не сделаете, работать будет невозможно р временное ограничение встроено в систему. Изменение пароля раз в несколько месяцев вполне приемлемо.

5. Не записывайте пароль и никому его не говорите. Не записывайте его на клочке бумаги. Не говорите своей маме. Не записывайте его в календаре. Не записывайте в дневнике. Не называйте его своему священнику. Не помещайте его в файл конфигурации терминальной программы. Нигде. Никому. Никогда. Разве что своей депозитной ячейке в сейфе.

После того, как вы подумали над тем, каков будет ваш пароль, можете изменить его с помощью команды passwd. Попытайтесь сделать это сейчас. Менять пароль можно так часто, как хотите. Введите passwd. Вначале появится подсказка, спрашивающая старый пароль. Введите старый пароль и нажмите <Return>. Затем появится подсказка, предлагающая ввести новый пароль. Введите новый пароль и нажмите <Enter>. Наконец появится подсказка, предлагающая ввести новый пароль повторно. Такое подтверждение поможет избежать изменения пароля в случае опечатки. Если вы сделаете ошибку, вводя старый пароль, или два ввода нового пароля не будут идентичными, то никаких изменений не произойдет. В силе останется старый пароль. Случайно, по ошибке, изменить пароль невозможно, если только вы не повторите одну и ту же ошибку, вводя новый пароль.


Работа с системой


Большинство клавишей на клавиатуре достаточно очевидны. Если нажать клавишу S, то на экране появится символ s. Если удерживать клавишу Shift и нажать клавишу S, то на экране появится прописная буква S. Помимо букв и цифр, широко известны символы, которые находятся над цифрами, такие как знак процента (%) и запятая (,). В дополнение к названным существуют несколько UNIX- и системнозависимых символов, с которыми следует познакомиться. Они помогут управлять работой и вводить информацию более эффективно. Речь идет об управляющих символах. Название происходит от того способа, которым их печатают. Прежде всего найдите клавишу Control - их на клавиатуре может быть две. Они помечены как Ctrl или каким-либо другим сокращением слова Control. Данная клавиша используется подобно клавише Shift. Вы нажимаете ее, но не отпускаете. Пока удерживается клавиша Control, вы нажимаете другую клавишу, часто букву алфавита. Если при нажатой клавише Control нажать Q, то это будет называться Control-Q, что часто записывается как ^Q (символ ^ находится над цифрой 6 с последующим алфавитно-цифровым символом.)ПРИМЕЧАНИЕ

Когда вы видите запись *Q, то это не означает что необходимо удерживать Shift и Control при нажатии О. При вводе Q необходимо удерживать только Control.




UNIX использует управляющие клавиши для различных распространенных клавиатурных действий Они бывают очень удобны Трудность заключается в том, что в различных системах одним и тем же действиям соответствуют различные управляющие сочетания Следовательно, прежде всего надо узнать, каковы текущие установки Затем их можно поменять по своему желанию Для того чтобы посмотреть на текущие установки, используйте команду stty Введите stty -а в командной строке за подсказкой и посмотрите на результаты Обратимся к следующему примеру, где приведен вывод команды sttyСОВЕТ

Если вы ввели команду, но на экране ничего не отобразилось, то, возможно, вы нечаянно напечатали символ ^S (управляющий символ останова ввода/вывода). Попытайтесь ввести ^Q (управляющий символ отмены останова ввода/вывода) и проверить, появляются ли теперь вводимые-символы.




В выводе команды stty обратите внимание на раздел со словами erase, kill и eof. С каждым из этих слов ассоциируется управляющий символ Найдите сходную часть вывода stty Помните об этом удобстве, читая следующие темы.


Erase


Посмотрите на слово Erase в выводе stty. Рядом с данным словом идет ^Н (словами это

выражается как Control-H). Таким образом, в моей системе Erase, что означает вернуться назад на только что отпечатанный символ, выполняется вводом ^H. Клавиша Erase помогает исправить ошибки ввода Не забудьте посмотреть на вывод команды stty -а, поскольку ваша система может быть сконфигурирована по-иному, не так, как в примере. Попытайтесь поработать с Erase в своей системе. Прежде всего введите символ, который хотите стереть, скажем А. Теперь нажмите клавишу Control, Backspace или Delete, ассоциирующиеся с Erase. Если все хорошо, то курсор должен возвратиться назад на А и следующий печатаемый символ появится там, где был символ А. Попытайтесь ввести корректную серию символов, скажем date <Return>, чтобы убедиться в том, что управляющие символы действительно работают. Если появится сообщение, подобное "А^ date not found", то, значит. Erase не работает. Для того чтобы заставить его работать правильно, выберите клавишу, которую хотите ассоциировать с Erase и введите следующее (предполагается, что выбрана клавиша Backspace):


$ stty erase ^H'

$


Теперь попытайтесь ввести команду date еще раз, удалить А в dAte и заменить ее на а.


ПРИМЕЧАНИЕ

В зависимости от дисплея удаляемые символы на самом деле могут и не исчезать при удалении. Вместо этого курсор может перемещаться таким образом, что следующее нажатие клавиши перезапишет символ.



Клавиша Erase является одной из наиболее часто используемых управляющих клавиш, поскольку вводить без ошибок очень трудно. По этой причине, большинство клавиатур снабжены одной или несколькими специальными клавишами, которые предназначены для удаления. Поищите клавиши, помеченные "Delete" или "Backspace". Одна из них обычно работает как клавиша удаления. Попытайтесь ввести несколько символов и понаблюдайте за тем, что получится при нажатии Backspace или Delete. Нормально клавиша Backspace установлена в ^Н, поэтому если ваше удаление конфигурировано как ^Н, то Backspace, вероятно, будет работать.


Kill


Управляющий символ Kill сходен с управляющим символом Erase в том, что предоставляет возможность возвращаться и исправлять опечатки. Однако, в то время как Erase возвращается на один символ назад за одно нажатие, Kill возвращается назад до самой подсказки. Таким образом, если вы вводите действительно длинную команду и в конце ввода понимаете, что забыли что-то напечатать в начале команды, то можете начать все с начала, введя управляющий символ, ассоциирующийся с Kill. Если вы не знаете, во что установлен Kill, то обратитесь к команде stty. В примере с командой stty Kill установлено в ^Х. И здесь помните о том, что ваша система может быть сконфигурирована иначе, чем система в примере. Теперь введите несколько символов, затем Kill и посмотрите, что произойдет. Все символы должны быть удалены, а курсор р оказаться в следующей за подсказкой позиции.


Stop и Start


Двумя другими широко применяемыми символами являются Stop и Start. Их нормальные значения р это ^S и ^Q, соответственно. Stop позволяет временно приостановить то, что происходит на экране, a Start позволяет возобновить активность после остановки. Команды полезны, если текст на экране прокручивается быстрее, чем его можно прочитать. Управляющий символ Stop приостановит прокрутку на неопределенно долгое время, чтобы вы могли читать текст на экране к своему удовольствию. Попробуйте остановить прокрутку текста во время следующего входа в систему, когда отображается Message of the Day (cm предыдущий раздел в этой же главе под названием "Вход в систему".) Но помните, что надо подготовиться и действовать проворно, поскольку текст прокручивается очень быстро. Попробуйте остановить прокрутку, а затем не забудьте продолжить ее, введя символ команды Start.ПРИМЕЧАНИЕ

В современных GUi и высокоскоростных соединениях Stop и Start не позволяет эффективно управлять выводом. Дело в том, что вывод осуществляется слишком быстро, и, прежде чем вы нажмете символ Stop, пролетят целые экраны.




eof


Управляющий символ eof применяется для сигнализации о конце ввода. Буквы eof представляют сокращение от end of file. Обычное значение управляющего символа eof - это ^D, но обязательно сверьте данное значение с выводом команды stty. Как используется символ конца файла, было показано в разделе "Перенаправление ввода и вывода" ранее в этой же главе.

Существует несколько других управляющих символов, которые здесь не рассматривались. За информацией обратитесь к системной документации по команде stty. Или, еще лучше, продолжите чтение книги. Мы покажем, как искать информацию о командах с помощью механизма оперативной помощи UNIX.

Команда stty используется также для установки значений управляющих символов. Для изменения символа Erase на Backspace можно просто ввести stty erase '^Н'. Не вводите здесь Control-H, а введите "^Н".

Некоторые оболочки, включая исходную оболочку Bourne, используют управляющий символ ^ по-своему, поэтому необходимы кавычки. (В этом примере будут работать и двойные кавычки.) Попытайтесь изменить значение управляющего символа Erase и затем использовать команду stty -а, чтобы убедиться в действительном изменении.СОВЕТ

Помните, что ввод символа конца файла в вашей оболочке может отключить вас от системы!




Оперативная помощь


Одна из самых важных вещей, которую надо знать относительно UNIX или любой другой операционной системы, - это как получить помощь, когда вы не знаете, как использовать команду. Многие команды будут выдавать сообщение с правилами использования в случае неправильного ввода команды. Такое сообщение подскажет корректный синтаксис. Это может быть кратким напоминанием об аргументах и их порядке. Для многих команд вы можете получить подсказку об использовании, введя опцию -?. Однако подсказка об использовании часто не дает никакой информации о семантике команды

Команда UNIX man - мощный инструмент, который предоставляет вам полный оперативный доступ к руководству по UNIX. В самой простой форме команда man принимает один аргумент, имя команды или руководства, в информации которого возникла необходимость. Попытайтесь использовать команду man сейчас р возможно, вы захотите указать одну из прежде изученных команд, которая вас особенно заинтересовала, в качестве аргумента. Или можете ввести man man для получения сведений о самой команде man

Часть руководства, посвященная конкретной теме (программе, команде, файлу), называется man-страницей, хотя реально длина ее может быть куда больше одной страницы В man-страницах существуют общие разделы В зависимости от команды могут присутствовать некоторые или все разделы. В начале man-страницы находится раздел name. Обычно он состоит из одной строки, которая задает имя команды и фразу, описывающую то, что она делает. Затем идет раздел Synopsis, где дается синтаксис команды, включая аргументы и опции. В Synopsis, если аргумент включен в квадратные скобки ([]), то он необязателен. Если два синтаксических элемента разделены вертикальной чертой (|), то допустим только один из них (но не оба вместе)


$ man page


В конкретных man-страницах обычно есть несколько разделов, которые бывает необходимо посмотреть Наиболее распространенными являются разделы Description (Описание), Files (Файлы) и See Also (Смотрите также) Раздел Description содержит подробности о применении команды Он описывает каждую опцию, аргумент, взаимосвязь и приемлемые значения каждого аргумента и опций. Содержимое раздела помогает точно выяснить, как использовать команду. Раздел Files содержит список файлов UNIX, используемых командой У вас может возникнуть желание посмотреть на содержимое этих файлов р это поможет понять определенные аспекты поведения команды. Раздел See Also может оказаться очень важен при изучении сходной темы или когда информации на данной странице недостаточно. Данный раздел приводит ссылки на связанные или зависимые команды.

Команда man имеет очень полезную опцию, особенно для пользователей, которые незнакомы с UNIX Это опция -к, которая используется для поиска всех команд, которые имеют отношение к слову, следующему за -к Например, если вы хотите найти информацию о печати, то можно ввести команду man -к print Команда man просматривает специальную базу данных под названием whatis в поисках команд и описаний, содержащих слово print. Если во время поиска обнаружено слово print или слово, содержащее pnnt (например, printing), то соответствующая команда отображается на экране. Таким образом, конечным результатом является список всех команд, имеющих отношение к печати. После этого команду man можно использовать для поиска подробностей о любой или обо всех командах в полученном списке. В некоторых системах еще одним способом выполнить поиск является команда apropos, которая эквивалентна man -k

Хотя наличие полного набора man-страниц в оперативном режиме чрезвычайно полезно, но на это расходуется много дискового пространства Некоторые компании в таких случаях, с целью экономии дискового пространства, хранят man-страницы на одной машине, к которой любой пользователь может обратиться по сети Из-за этого man-страницы могут оказаться не в тех каталогах, где вы их ожидаете найти. Для того чтобы показать команде man, где хранятся руководства, следует ввести переменную MANPATH (См раздел "Просмотр и установка переменных среды", ранее в этой же главе).

Еще одна потенциальная проблема, которая может возникнуть при работе с командой man, имеет отношение к опции -к. Вспомните, что опция -к просматривает базу данных whatis в поисках указанного ключевого слова Поиск работает только тогда, когда администратор системы заранее создал такую базу. Создание базы выполняется с помощью команды catman. Если база данных не была создана, то при использовании опции -к (или команды apropos) появится сообщение об ошибке, говорящее о том, что база данных whatis не найдена. Попросите системного администратора исправить это.


Резюме


Начало данной главы помогло вам подготовиться к тому, что происходит перед во время входа в систему. Раздел "Конфигурирование среды" представил взгляд на среду и на способы ее конфигурирования. Обратитесь к руководствам по оболочке для того, чтобы больше узнать о той среде, в которой вы работаете. Подробности почитайте в части II "Оболочки UNIX". Раздел "Управление паролем" осветил управление паролем с помощью команды passwd, очень важной по соображениям безопасности. В случае, если необходима дополнительная информация о команде passwd, обратитесь к соответствующему руководству. Раздел "Работа в системе" облегчил набор команд с помощью управляющих символов. Man-страница stty р то место, где следует искать дополнительную информацию об управляющих символах. Раздел об оперативной помощи являетсяр вероятно, самым важным разделом главы. Описав команду man, раздел показал, как получить доступ к оперативному руководству по системе UNIX. Используя его, вы можете узнать все, что вам необходимо. Команды, которые представлены в разделе "Использование команд", описаны в оперативном руководстве. Воспользуйтесь командой man и изучите их более подробно. Начав с этого, вы заложите прочный фундамент для дальнейшего общения с системой.

Обновлено: 12.03.2015