# Пособие для новичков во FreeBSD и &unix;

Annelise
Anderson

    andrsn@andrsn.stanford.edu

15 августа 1997
&tm-attrib.freebsd; &tm-attrib.ibm; &tm-attrib.microsoft; &tm-attrib.netscape; &tm-attrib.opengroup; &tm-attrib.general;

Поздравляем вас с установкой FreeBSD! Это вводное пособие предназначено для тех, кто является новичком в мире FreeBSD и &unix;—так что оно начнётся с основ. Предполагается, что вы используете дистрибутив FreeBSD версии 2.0.5 или более поздней, распространяемый компанией BSDi или FreeBSD.org, и в вашей системе (на данный момент) имеется один пользователь (это вы)—и вы хорошо ориентируетесь в DOS/&windows; или &os2;.

## Регистрация в системе и выход из неё

Зарегистрируйтесь в системе (когда увидите приглашение login:) как пользователь, которого вы создали во время установки, или войдите в систему как пользователь root. (В вашей установленной системе уже имеется учётная запись для пользователя root; root может переходить хоть куда и делать всё, что угодно, в том числе удаление необходимых для работы файлов, так что будьте внимательны!) Обозначения &prompt.user; и &prompt.root; в последующем тексте означают приглашения системы (ваше может отличаться от него), причём &prompt.user; обозначает обычного пользователя, а &prompt.root; пользователя root.

Чтобы выйти из системы (и получить новое приглашение login:) наберите

    &prompt.root; exit

столько раз, сколько нужно. Да, нажимайте enter после набора команд, и помните, что &unix; чувствителен к регистру букв—набирайте `exit`, но не `EXIT`.

Для завершения работы машины наберите

    &prompt.root; /sbin/shutdown -h now

Или, для перезагрузки нужно набрать

    &prompt.root; /sbin/shutdown -r now

или

    &prompt.root; /sbin/reboot

Перезагрузку можно также выполнить нажатием клавиш CtrlAlt Delete. Подождите некоторое время, чтобы дать этой команде отработать. В последних релизах FreeBSD она эквивалента выдаче команды `/sbin/reboot` и гораздо, гораздо лучше, чем нажатие кнопки сброса. Вы ведь не хотите всё переустанавливать заново, не так ли?

## Добавление пользователя с привилегиями root

Если при установке системы вы не создали ни одного пользователя, и поэтому вошли в систему как root, то теперь вы должны создать пользователя по команде

    &prompt.root; adduser

При первом использовании утилиты adduser она может запрашивать сохранение некоторых параметров для использования их по умолчанию. вы можете сделать оболочкой, используемой по умолчанию, командный процессор &man.csh.1;, а не &man.sh.1;, если по умолчанию вам предлагается `sh`. В противном случае просто нажимайте enter для принятия всех предлагаемых по умолчанию вариантов. Эти значения по умолчанию сохраняются в файле `/etc/adduser.conf`, в форме, доступной для редактирования.

Предположим, что вы создали пользователя jack с полным именем Jack Benimble. Назначьте пользователю jack пароль, если информационная безопасность имеет значение (даже если это дети, которые могут стучать по клавиатуре). Когда вам будет задан вопрос по включению пользователя jack в другие группы, наберите wheel

    Login group is ``jack''. Invite jack into other groups: wheel

Это позволит входить в систему как пользователь jack и использовать команду &man.su.1; для того, чтобы стать пользователем root. Тогда вас не будут больше обвинять в том, чтобы вы входите в систему как пользователь root.

Вы можете прекратить работы с `adduser` в любой момент, нажав Ctrl C, а в завершении ввода у вас будет шанс подтвердить заведение нового пользователя или набрать n в качестве отрицательного ответа. Вам может захотеться создать второго нового пользователя (jill?), для того, чтобы при редактировании файлов для входа пользователя jack имелся горячий резерв на тот случай, если что-то пойдёт не так.

После того, как вы это сделаете, воспользуйтесь командой `exit` для возврата к приглашению ко входу в систему и зарегистрируйтесь в ней как пользователь jack. Вообще говоря, лучше всего основную массу работы выполнять, работая как обычный пользователь, который не имеет мощь и опасность пользователя root.

Если вы уже создали пользователя и хотите, чтобы он мог выполнять команду `su` для получения привилегий root, вы можете войти в систему как root и отредактировать файл `/etc/group`, добавив пользователя jack в первую строчку (в группу wheel). Однако сначала вам нужно поупражняться с программой &man.vi.1;, текстовым редактором,—или использовать более простой редактор, &man.ee.1;, устанавливаемый в последних версиях FreeBSD.

Для удаления пользователя воспользуйтесь командой `rmuser`.

## Просмотр окружения

Войдя в систему как обычный пользователь, оглянитесь вокруг и попробуйте выполнить некоторые команды, дающие доступ к источникам информации и помощи внутри FreeBSD.

Вот некоторые команды и то, что они делают:

`id`

  Говорит вам, кто вы!

`pwd`

  Показывает, где вы находитесь—текущий рабочий каталог.

`ls`

  Выдаёт список файлов, находящихся в текущем каталоге.

`ls `-F``

  Выдаёт перечень файлов, находящихся в текущем каталоге, добавляя символы `*` после выполнимых файлов, `/` после каталогов и `@` после символических ссылок.

`ls `-l``

  Выдаёт перечень файлов в расширенном формате—размер, дата и права доступа.

`ls `-a``

  Вместе со всеми выдаёт и список скрытых dot-файлов (начинающихся с точки). Если вы являетесь пользователем root, то dot-файлы выдаются и без указания флага `-a`.

`cd`

  Смена каталогов. `cd `..`` перемещает на один уровень выше; обратите внимание на промежуток после `cd`. `cd `/usr/local`` перейдёт в указанное место. `cd `~`` перейдёт в домашний каталог человека, который вошёл в систему—к примеру, `/usr/home/jack`. попробуйте выполнить команду `cd `/cdrom``, а затем `ls` для проверки того, что ваш CDROM смонтирован и работает.

`view filename`

  Позволяет вам просмотреть файл (с именем filename) без внесения в него изменений. Попробуйте выполнить команду `view `/etc/fstab``. Для выхода нужно набрать `:q`.

`cat filename`

  Выдаёт содержимое filename на экран. если он слишком длинный и вы можете увидеть только его конец, нажмите ScrollLock и используйте клавишу стрелка вверх для движения назад; вы можете также использовать ScrollLock и со страницами справки. Нажмите ScrollLock снова для прекращения прокрутки. Вам может захотеться попробовать команду `cat` с некоторыми из dot-файлов в вашем домашнем каталоге—`cat `.cshrc``, `cat `.login``, `cat `.profile``.

В файле `.cshrc` вы заметите алиасы для некоторых из команд `ls` (они очень удобны). Вы можете создать другие алиасы, отредактировав файл `.cshrc`. Вы можете сделать эти алиасы доступными всем пользователям системы, поместив их в общесистемный конфигурационный файл для `csh`, `/etc/csh.cshrc`.

## Получение помощи и информации

Вот несколько полезных источников получения помощи. Здесь Text обозначает что-то по вашему выбору, что вы вводите—обычно команду или имя файла.

`apropos text`

  Всё, что содержит строку text в базе whatis.

`man text`

  Страница справки по text. Это главный источник документации в &unix;-системах. `man `ls`` покажет вам все способы использования команды `ls`. Нажимайте Enter для передвижения по тексту, CtrlB для возврата на страницу назад, CtrlF для продвижения вперёд, q или CtrlC для выхода.

`which text`

  Покажет, в каком месте из маршрута поиска пользователя находится команда text.

`locate text`

  Все маршруты, где находится строчка text.

`whatis text`

  Описывает, что делает команда text и её справочная страница. Команда `whatis *` расскажет вам обо всех двоичных файлах в текущем каталоге.

`whereis text`

  Ищет файл text и выдаёт полный путь до него.

Вы можете захотеть попробовать использоваться команду `whatis` с некоторыми полезными командами типа `cat`, `more`, `grep`, `mv`, `find`, `tar`, `chmod`, `chown`, `date`, и `script`. Команда `more` позволит вам читать постранично, как и в DOS, например, `ls -l | more` или `more filename`. Знак `*` работает как общий шаблон—например, `ls w*` выдаст перечень файлов, начинающихся с буквы `w`.

Некоторые из этих команд работают не очень хорошо? Обе команды &man.locate.1; и &man.whatis.1; зависят от базы данных, которая перестраивается еженедельно. Если ваша машина на остаётся включенной на выходные (и работать под FreeBSD), то для обслуживания вам понадобится запускать определённые команды раз в день, неделю, месяц. Запускайте их как root и дайте каждой отработать, прежде чем запускать следующую.

    &prompt.root; periodic daily
    выдача опущена
    &prompt.root; periodic weekly
    выдача опущена
    &prompt.root; periodic monthly
    выдача опущена

Если вам надоело ждать, нажмите AltF2 для перехода в другую виртуальную консоль, и войдите в систему снова. В конце концов, это многопользовательская и многозадачная система. Тем не менее эти команды, скорее всего, в процессе работы будут выдавать сообщения вам на экран; вы можете набрать `clear` в приглашении для очистки экрана. Пока они работают, вы можете смотреть в содержимое файлов `/var/mail/root` и `/var/log/messages`.

Выполнение таких команд является частью системного администрирования—и как единственный пользователь &unix;-системы вы являетесь собственным системным администратором. Практически всё, для чего вам нужно быть пользователем root, это системное администрирование. Эти обязанности не описываются достаточно хорошо даже в тех больших толстых книгах по &unix;, в которых слишком много места отдаётся описанию работы с меню в оконных менеджерах. Вам может понадобиться одна из двух лучших книг по системному администрированию, либо автора Эви Немет UNIX System Administration Handbook (Prentice-Hall, 1995, ISBN 0-13-15051-7)—второе издание с красной обложкой; или автора Æleen Frisch Essential System Administration (O'Reilly & Associates, 1993, ISBN 0-937175-80-3). Я использую книгу Немет.

## Редактирование текста

Для конфигурации вашей системы вам нужно редактировать текстовые файлы. Большинство из них будут находиться в каталоге `/etc`; и вам необходимо командой `su` получить полномочия пользователя root, чтобы их править. Вы можете использовать простой редактор `ee`, однако в смысле перспективности лучше изучить текстовый редактор `vi`. В каталоге `/usr/src/contrib/nvi/docs/tutorial` есть прекрасный учебник по vi, если он уже у вас есть; в противном случае вы можете его получить с сервера FTP ftp.cdrom.com в каталоге FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial.

Перед тем, как редактировать файл, наверное, вы должны сохранить резервную копию. Предположим, что вы собираетесь отредактировать файл `/etc/rc.conf`. Вы можете воспользоваться командой `cd /etc` для перехода в каталог `/etc` и выполнить следующее:

    &prompt.root; cp rc.conf rc.conf.orig

При этом файл `rc.conf` скопируется в `rc.conf.orig`, и в последующем вы сможете скопировать `rc.conf.orig` в файл `rc.conf` для восстановления оригинала. Но ещё лучше его переместить (переименовать), после чего скопировать обратно:

    &prompt.root; mv rc.conf rc.conf.orig
    &prompt.root; cp rc.conf.orig rc.conf

потому что команда `mv` сохраняет исходную информацию о дате и владельце файла. Теперь вы можете редактировать `rc.conf`. Если вы захотите восстановить исходное состояние, то выполните `mv rc.conf rc.conf.myedit` (полагаем, что вы хотите сохранить отредактированную версию), а затем

    &prompt.root; mv rc.conf.orig rc.conf

для возврата всего на место.

Для редактирования файла наберите

    &prompt.root; vi filename

Передвигайтесь по тексту при помощи клавиш со стрелками. Esc (клавиша отмены) переводит редактор `vi` в командный режим. Вот некоторые из них:

`x`

  удалить символ, на котором находится курсор

`dd`

  удалить целую строку (даже если на экране она не помещается в целую строку)

`i`

  вставка текста в позиции курсора

`a`

  вставка текста после курсора

Сразу после набора `i` или `a` вы можете вводить текст. `Esc` возвратит вас обратно в командный режим, где вы можете набрать

`:w`

  для записи ваших изменений на диск и продолжения редактирования

`:wq`

  для записи и выхода

`:q!`

  для выхода без сохранения изменений

`/text`

  для перемещения курсора на text; `/Enter` (клавиша ввода) для поиска следующего экземпляра text.

`G`

  для перехода в конец файла

`nG`

  Для перехода к строке n в файле, где n является числом

CtrlL

  для перерисовки экрана

Ctrlb и Ctrlf

  для перемотки на экран назад и вперёд, как при работе с `more` и `view`.

Поупражняйтесь с редактором `vi` в своём домашнем каталоге, создав новый файл по команде `vi filename`, добавляя и удаляя текст, сохраняя файл и вызывая его снова. Редактор `vi` преподносит некоторые сюрпризы, потому что он на самом деле достаточно сложный, и иногда вы можете неправильно вызвать команду, которая сделает нечто, чего вы не ожидали. (Некоторым людям действительно нравится `vi`—он более мощный, чем EDIT из DOS—посмотрите команду `:r`.) Для того, чтобы удостовериться, что вы находитесь в режиме команд, нажимайте Esc один или несколько раз, и начинайте снова с этого места, если возникли какие-то проблемы, часто сохраняйте текст командой `:w` и используйте `:q!` для того, чтобы прекратить работу и начать всё сначала (с вашей последней команды `:w`), если это нужно.

Теперь вы можете выполнить `cd` в каталог `/etc`, `su` в пользователя root, использовать `vi` для редактирования файла `/etc/group` и добавлять пользователя в группу wheel, чтобы он имел полномочия пользователя root. Просто добавьте запятую и имя входа пользователя в конце первой строки этого файла, нажмите Esc и воспользуйтесь `:wq` для записи файла на диск и выхода. Работает всегда. (Вы не поставили пробел после запятой, ведь так?)

## Печать файловPrinting Files from DOS

На данный момент, скорее всего, принтер у вас не работает, так что вот способ создания файла из справочной страницы, перемещения её на дискету, а затем печать из DOS. Положим, что вы хотите внимательно прочесть об изменении прав доступа на файлы (весьма важно). Вы можете воспользоваться командой `man chmod` для того, чтобы прочесть об этом. Команда

    &prompt.user; man chmod | col -b > chmod.txt

удалит коды форматирования и перенаправит страницу справки в файл `chmod.txt`, не выдавая её на экран. Теперь поместите отформатированную dos-дискету в дисковод a, выполните `su`, перейдя к пользователю root, и наберите

    &prompt.root; /sbin/mount -t msdos /dev/fd0 /mnt

для монтирования дискеты в каталог `/mnt`.

Теперь (и вам больше не нужно быть пользователем root, так что можете набрать `exit` для возврата к пользователю jack) вы можете перейти в каталог, где создали `chmod.txt` и скопировать файл на дискету следующей командой:

    &prompt.user; cp chmod.txt /mnt

и воспользоваться командой `ls /mnt` для получения списка файлов каталога `/mnt`, которая теперь должна показать файл `chmod.txt`.

Вы также можете захотеть создать файл из `/sbin/dmesg`, набрав

    &prompt.user; /sbin/dmesg > dmesg.txt

и скопировав `dmesg.txt` на дискету. `/sbin/dmesg` является протоколом загрузки системы, который полезно понимать, потому что в нём перечисляется всё, что обнаружила при загрузке FreeBSD. Если вы будете задавать вопросы в списке рассылки &a.questions; или в конференции USENET—наподобие FreeBSD не обнаруживает моего ленточного накопителя, что мне делать?—отвечающие захотят узнать, что выдаёт `dmesg`.

Теперь вы можете (как root) размонтировать гибкий диск, чтобы его вынуть, по команде

    &prompt.root; /sbin/umount /mnt

и перезагрузиться в DOS. Скопируйте эти файлы в каталог DOS, вызовите их при помощи редактора DOS EDIT, &windows; Notepad или Wordpad, или даже с текстовым процессором, внесите маленькое изменение, чтобы файл сохранился, и напечатайте его обычным образом из DOS или Windows. Надеемся, это срабатывает! справочные страницы лучше всего выглядят при печати командой DOS `print`. (Копирование файлов из FreeBSD на смонтированный раздел DOS в некоторых случаях всё ещё немного рискованная операция.)

Процесс настройки принтера на печать из FreeBSD включает в себя создание соответствующей записи в файле `/etc/printcap` и создание нужного каталога очереди в `/var/spool/output`. Если ваш принтер подключен к lpt0 (то, что в DOS называется LPT1), то вам достаточно только перейти в каталог `/var/spool/output` и (как root) создать каталог `lpd`, набрав: `mkdir lpd`, если её ещё не существует. Тогда принтер должен реагировать, если при загрузке системы он включён, а команда `lp` или `lpr` должны посылать файл на принтер. Будет ли файл действительно напечатан, зависит от его настройки, каковая описана в Руководстве FreeBSD.

## Другие полезные команды

`df`

  выдаёт данные о занятом файлами пространстве и смонтированных файловых системах.

`ps aux`

  показывает работающие процессы. `ps ax` является частоупотребительной формой.

`rm filename`

  удаляет filename.

`rm -R dir`

  удаляет каталог dir и все его подкаталоги—осторожно!

`ls -R`

  выдаёт список файлов в текущем каталоге и всех его подкаталогах; я использовал вариант, `ls -AFR > where.txt`, для получения перечня всех файлов в `/` и (отдельно) `/usr` до того, как узнал о более эффективном способе поиска файлов.

`passwd`

  для изменения пароля пользователя (или root)

`man hier`

  справочная страница по файловой структуре &unix;

Используйте `find` для поиска `filename` в `/usr` или в любом из её подкаталогов при помощи команды

    &prompt.user; find /usr -name "filename"

Вы можете использовать `*` в качестве шаблона внутри `"filename"` (это выражение должно быть в кавычках). Если вы укажете команде `find` на поиск в `/`, а не в `/usr`, то она будет искать файл(ы) во всех смонтированных файловых системах, включая CDROM и раздел DOS.

Прекрасным пособием, описывающим команды и утилиты &unix;, является книга Abrahams & Larson, Unix for the Impatient (2nd ed., Addison-Wesley, 1996). Масса информации по &unix; есть и в Internet. Попробуйте зайти на Unix Reference Desk.

## Следующие шаги

Теперь вы должны иметь инструменты, которые необходимо держать под рукой и умеете редактировать файлы, так что вы должны суметь запустить всё, что угодно. Много полезной информации содержится в Руководстве по FreeBSD (которое, скорее всего, есть на вашем жёстком диске) и Web-сайте FreeBSD. На CDROM, а также Web-сайте находятся различные пакаджи и порты. В Руководстве рассказывается более подробно о том, как их использовать (получить пакадж, если он существует, командой `pkg_add /cdrom/packages/All/packagename`, где packagename является именем файла с пакаджем). На CDROM находится перечни пакаджей и портов с их краткими описаниями в файлах `cdrom/packages/index`, `cdrom/packages/index.txt` и `cdrom/ports/index`, а более полные описания можно найти в `/cdrom/ports/*/*/pkg/DESCR`, где знаки `*` обозначают тематические подкаталоги с программами и названиями программ, соответственно.

Если вы посчитаете, что Руководство является слишком сложной книгой (что с `lndir` и всё) по установке портов с CDROM, вот рецепт, который обычно срабатывает:

Найдите нужный вам порт, скажем, `kermit`. На CDROM для него должен существовать каталог. Скопируйте этот подкаталог в каталог `/usr/local` (хорошее место для программного обеспечения, которое вы добавляете, и которое должно быть доступно всем пользователям) такой командой:

    &prompt.root; cp -R /cdrom/ports/comm/kermit /usr/local

В результате должен образоваться подкаталог `/usr/local/kermit`, содержащий все файлы, что есть в подкаталоге `kermit` на CDROM.

Затем создайте каталог `/usr/ports/distfiles`, если он ещё не существует, при помощи команды `mkdir`. Теперь проверьте содержимое `/cdrom/ports/distfiles` на предмет наличия файла с именем, говорящем о том, что это тот порт, который вы хотите иметь. Скопируйте этот файл в каталог `/usr/ports/distfiles`; в последних версиях вы можете пропустить этот шаг, и FreeBSD выполнит его за вас. В случае с `kermit`, дистрибутивного файла не существует.

После этого по команде `cd` перейдите в подкаталог `/usr/local/kermit`, в котором есть файл `Makefile`. Наберите

    &prompt.root; make all install

Во время выполнения пот обратится к FTP для получения всех архивных файлов, нужных ему и которых не найдено на CDROM или в каталоге `/usr/ports/distfiles`. Если сеть у вас ещё не работает, и файла для порта в каталоге `/cdrom/ports/distfiles` нет, вам потребуется получить дистрибутивный файл на другой машине и скопировать его в каталог `/usr/ports/distfiles` через дискету или ваш раздел DOS. Прочтите `Makefile` (при помощи команд `cat`, `more` или `view`), чтобы понять, куда нужно обратиться (на основной сайт распространения) для получения файла и какого его название. Его имя будет усекаться при сгрузке в DOS, а после того, как вы перенесёте его в каталог `/usr/ports/distfiles`, вы должны его переименовать (по команде `mv`) в его первоначальное название, чтобы он мог быть найден. (Используйте двоичный тип передачи файлов!) Затем перейдите обратно в каталог `/usr/local/kermit`, найдите каталог с `Makefile` и наберите `make all install`.

Ещё одной проблемой, встречающейся при установке портов или пакаджей, является их потребность в какой-то другой программе. Если установка чего-либо прекращается с выдачей сообщения can't find unzip или ему подобного, вам может потребоваться установка пакаджа или порта для утилиты unzip, чтобы продолжить.

После того, как установка будет выполнена, наберите команду `rehash` для того, чтобы заставить FreeBSD перечитать файлы, находящиеся в маршрутах поиска, чтобы система обнаружила их появление. (Если вы получили массу сообщений path not found при использовании `whereis` или which, то вам необходимо сделать добавления к перечню каталогов в команде определения маршрута в файле `.cshrc`, находящемся а вашем домашнем каталоге. Задание маршрута в &unix; несёт ту же самую функцию, что и в DOS, за исключением работы с текущим каталогом (по умолчанию) по соображениям безопасности; если команда, которую вы хотите выполнить, находится в текущем каталоге, вам нужно набирать `./` перед названием команды, чтобы она заработала; пробелов после слэша ставить не нужно.)

Вам может потребоваться получить самую последнюю версию &netscape; с их FTP-сайта. (&netscape; требует X Window System.) На данный момент существует и версия для FreeBSD, так что посмотрите вокруг внимательней. Просто воспользуйтесь командой `gunzip filename` и `tar xvf filename` с полученным файлом, перенесите его в каталог `/usr/local/bin` или куда-то ещё, где хранятся бинарные файлы, выполните команду `rehash`, а затем добавьте следующие строки в файлы `.cshrc` в домашних каталогах всех пользователей или (что проще) в файл `/etc/csh.cshrc`, общесистемный файл для запуска `csh`:

    setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
    setenv XNLSPATH /usr/X11R6/lib/X11/nls

При этом предполагается, что файл `XKeysymDB` и каталог `nls` находятся в `/usr/X11R6/lib/X11`; если это не так, найдите их и поместите сюда.

Если изначально вы получили &netscape; в виде порта при помощи CDROM (или FTP), не заменяйте файл `/usr/local/bin/netscape` новым бинарным файлом netscape; это всего лишь скрипт командного процессора, который настраивает для вас переменные окружения. Вместо этого переименуйте новый бинарный файл в `netscape.bin` и замените старый двоичный файл, а именно `/usr/local/netscape/netscape`.

## Ваше рабочее окружение

Ваш командный процессор является самой важной частью вашего рабочего окружения. В DOS обычной оболочкой является command.com. Оболочка занимается интерпретацией команд, которые вы вводите в командной строке, и таким образом взаимодействует с остальной частью операционной системы. Вы можете также писать скрипты командного процессора, которые похожи на .bat-файлы DOS: это последовательности команд, которые должны выполняться без вашего участия.

Вместе с FreeBSD устанавливаются два командный процессора: `csh` и `sh`. `csh` хорош для работы в командной строке, однако скрипты должны писаться на языке оболочек `sh` (или `bash`). Вы можете выяснить, какой командный процессор у вас используется, набрав `echo $SHELL`.

Оболочка `csh` подходящая, однако `tcsh` может всё, что умеет `csh` и ещё больше. Она позволяет вам восстанавливать прошлые команды клавишами со стрелками и редактировать их. В нём есть автозавершение имён файлов по нажатию клавиши табуляции (в `csh` используется клавиша Esc) и он позволяет вам переключаться в каталог, в котором вы были ранее, по команде `cd -`. Также в `tcsh` гораздо легче изменять системное приглашение. Это гораздо упрощает жизнь.

Вот три шага по установке нового командного процессора:

1. Установите командный процессор как порт или пакадж, как вы обычно это делаете с другим портом или пакаджем. Используйте `rehash` и `which tcsh` (предполагается, что вы устанавливаете `tcsh`) для проверки того, что командный процессор установлен.

2. Работая как пользователь root, отредактируйте файл `/etc/shells`, добавив в него строку с новой оболочкой, в нашем случае это `/usr/local/bin/tcsh`, и сохраните файл. (Некоторые порты могут делать это за вас.)

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

Менять командный процессор для пользователя root на что-то, отличающееся от `sh` или `csh`, в ранних версиях FreeBSD и во многих других версиях &unix; опасно; вы можете лишиться работающей оболочки при переходе системы в однопользовательский режим. Решением является использование `su -m` для того, чтобы стать пользователем root, что даст в качестве оболочки `tcsh`, но вы будете являться пользователем root, потому что оболочка является частью окружения. Вы можете сделать это постоянным, добавив в ваш файл `.tcshrc` в качестве алиаса по такой команде:

    alias su su -m

При запуске `tcsh` он будет считывать файлы `/etc/csh.cshrc` и `/etc/csh.login`, как и `csh`. Эта оболочка также читает файл `.login` из вашего домашнего каталога, а также файл `.cshrc`, если только вы не создали файл `.tcshrc`. Это вы можете сделать простым копированием файла `.cshrc` в `.tcshrc`.

Теперь, когда у вас установлен командный процессор `tcsh`, вы можете настроить приглашение командной строки. Все подробности можно найти на странице справки по `tcsh`, но всё же вот строка, которая помещается в ваш файл `.tcshrc`, которая может показать, сколько команд вы уже набрали, сколько сейчас времени и в каком каталоге вы находитесь. Она также выдаёт `>`, если вы являетесь обычным пользователем, и `#`, если вы являетесь пользователем root, однако tsch будет делать это в любом случае:

set prompt = "%h %t %~ %# "

Эта строка должна быть поставлена на то же самое место, что и существующая строка установки приглашения, если она есть, либо после строки "if($?prompt) then", если её нет. Закомментируйте старую строку; вы всегда сможете вернуться к ней обратно, если предпочтёте её. Не забудьте о пробелах и кавычках. Вы можете заставить перечитать `.tcshrc`, набрав `source .tcshrc`.

Перечень других установленных переменных окружения вы можете получить, набрав `env` в приглашении командной строки. В результате, кроме всего прочего, будут показаны редактор, используемый по умолчанию, программа постраничной выдачи и тип терминала. Командой, полезной при входе в систему с удалённого места и невозможности запуска программы, потому что терминал не обладает некоторыми возможностями, является команда `setenv TERM vt100`.

## Остальное

Работая как пользователь root, вы можете размонтировать CDROM по команде `/sbin/umount /cdrom`, вытащить его из привода, вставить другой диск и смонтировать его командой `/sbin/mount_cd9660 /dev/cd0a /cdrom`, при этом предполагается, что cd0a является именем устройства для вашего привода CDROM. Самые последние версии FreeBSD позволяют вам монтировать CDROM просто по команде `/sbin/mount /cdrom`.

Использование живой файловой системы—она находится на втором диске FreeBSD из набора CDROM—полезно при нехватке пространства. То, что находится в этой файловой системе, меняется от релиза к релизу. Вы можете попытаться поиграть в игры с CDROM. При этом применяется команда `lndir`, которая устанавливается с X Window System, и служит для указания программам, где искать необходимые файлы, потому что они находятся в файловой системе `/cdrom`, а не в `/usr` и её подкаталогах, где должны находиться. Прочтите справку по команде `man lndir`.

## Пожелания приветствуются

Если вы используете это руководство, мне будет интересно знать, в каком месте оно написано непонятно и что упущено из того, что, по вашему мнению, должно быть включено ценного. Мои благодарности Eugene W. Stark, профессору информатики в SUNY-Stony Brook, и John Fieber за ценные советы.

Annelise Anderson, andrsn@andrsn.stanford.edu