• Что можно приготовить из кальмаров: быстро и вкусно

    Если система впала в панику, прежде всего надо скопировать сообщения о неполадках. Поскольку в случае паники FreeBSD стандартные способы копирования данных на вашей машине недоступны — система не позволит войти в нее с помощью SSH и запустить даже такие простые команды, как script(1). Консоль может быть намертво заблокирована либо можно «застрять» в отладчике. Но в любом случае вы должны иметь сообщение об ошибке.

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

    Вскоре я понял, что у FreeBSD нет специалистов, способных решить мою проблему. Вместо этого я получил короткий ответ: «Можете прислать вывод обратной трассировки?» Когда я спросил, как это сделать, меня отправили читать справочное руководство (глава 1). К счастью, паника оказалась легко воспроизводима, единственное, что требовалось, — это воссоздать ошибку при входе клиента в систему. Остаток дня я провел в борьбе с последовательной консолью и дампами ядра.

    Неприятность с сообщением о неполадках, записанным мной на конверте, заключалась в том, что оно предоставляло лишь крохотный отрывок всей истории аварии. По сути, сообщение было настолько непонятным, что напоминало наивное описание примет угнанного автомобиля: «красный, с царапиной на крыле». Если вы не сообщите марку автомобиля, его модель, номер двигателя и номерной знак, то полиция недалеко продвинется. Точно так же без дополнительной информации от аварийного ядра разработчики FreeBSD не смогут выявить причины неполадок.

    Однако есть простой путь решить эту проблему: подготовить сервер к возможной панике до того, как она произойдет. Проведите надлежащую настройку при установке сервера. Сейчас я конфигурирую все свои машины для надлежащей обработки аварийных ситуаций, прежде чем запустить их в работу. Таким образом, при возникновении аварии вы автоматически получите отладочную информацию. Эта идея может показаться оригинальной, безусловно, ей не придается особое значение в документации FreeBSD, однако есть смысл подготовиться к аварии. Если она никогда не случится — что ж, не на что и жаловаться. Если же система впадет в панику, вы готовы предоставить разработчикам FreeBSD полный отладочный дамп без проблем.

    Подготовка

    Анализировать панику можно разными способами; я предпочитаю записывать дамп памяти на диск для дальнейшей спокойной обработки. Вам необходимо пространство свопинга (область подкачки), размером немного превосходящее память, занимаемую ядром. Несмотря на то что вам может потребоваться полный дамп оперативной памяти, в большинстве случаев дамп ядра FreeBSD 7.0 занимает меньше половины гигабайта. Если вы используете нечто требующее выделения большого объема памяти в ядре, например экспериментальную поддержку файловой системы ZFS, размер дампа ядра увеличится. Если область подкачки недостаточно велика, надо либо переустановить систему, либо добавить жесткий диск с областью подкачки достаточного размера. (Помните, что я говорил об этом в главе 2 ? Вы еще не жалеете, что не слушали меня тогда?) Наличие в разделе /var свободного пространства, достаточного для дампа ядра, полезно, но необязательно.

    Получение аварийного дампа

    Процесс получения аварийного дампа примерно таков: если система сконфигурирована правильно, то при аварии она сохранит копию оперативной памяти. Эта копия называется дампом . Система не может сохранить дамп в файле. С одной стороны, потому что при аварии ядро ничего не знает о файлах, с другой — файловая система может быть повреждена или попытка записи может повредить ее. Однако ядро знает о разделах, поэтому оно может записать дамп в раздел. Проще всего записать дамп в раздел свопинга, предназначенный для временного хранения содержимого памяти. По умолчанию FreeBSD сохраняет дамп в первом разделе свопинга, размещая его как можно ближе к концу раздела. Как только дамп будет сохранен, система перезагрузит компьютер.

    Во время перезагрузки FreeBSD активизирует раздел свопинга и проверяет чистоту файловых систем. После паники почти наверняка разделы повреждены. Возможно, они журналируются или предусматривают запуск fsck(8) в фоновом режиме, но система не может гарантировать это. FreeBSD должна включить свопинг до запуска fsck(8), потому что этой программе может потребоваться пространство свопинга. Будем надеяться, что в системе достаточно памяти, чтобы программе fsck(8) не потребовался свопинг, а если он необходим, то будем надеяться, что пространство свопинга достаточно велико, чтобы избежать перезаписи файла дампа, скрытого в конце раздела свопинга.

    Как только FreeBSD обретет файловую систему, где можно будет сохранить дамп памяти, она запустит программу savecore(8), которая скопирует его в подходящую файловую систему, удалит дамп из пространства свопинга и продолжит перезагрузку. Теперь у вас есть файл с дампом ядра, который можно проанализировать.

    Настройка вывода аварийного дампа

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

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

    dumpdev="/dev/ad4s1b"

    Не забудьте перечислить в файле /etc/fstab всех разделы свопинга.

    Программа savecore(8) автоматически сохраняет дамп ядра в каталоге /var/crash . Однако если раздел /var имеет недостаточный размер для хранения дампа, укажите другой каталог в переменной dumpdir в файле rc.conf :

    dumpdir="/usr/crash"

    Последовательные консоли и паника

    Хотя последовательная консоль не является абсолютно необходимой для выяснения причин паники, тем не менее она может оказаться бесценной, когда придется столкнуться с зависшей машиной. Способность фиксировать все происходящее с помощью программы script(1) делает последовательную консоль ценным инструментом. В случае удаленной машины, последовательная консоль превращается в насущную потребность. Если вы действительно хотите подготовиться к панике, снабдите все машины последовательными консолями или хотя бы сдвоенными консолями. Если это возможно, протоколируйте вывод последовательных консолей — это позволит вам получить сообщение о панике, даже если система не настроена на сохранение дампа.

    Несмотря на то что savecore(8) обладает некоторыми дополнительными возможностями, такими как возможность сжатия файла, в современных системах они обычно не используются.

    Теперь, имея отладочное ядро и устройство сохранения дампа, вы готовы к аварийным ситуациям, насколько это возможно.

    Отладка ядра

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

    Наличие отладчика в ядре облегчает процесс отладки, если у вас есть доступ к консоли или последовательная консоль к удаленной машине. Отладку можно вести полностью в автономном режиме, но иногда наличие отладчика упрощает поиск причин паники.

    makeoptions DEBUG=-g
    options KDB
    options KDB_TRACE
    options DDB

    После добавления опции DDB в ядро FreeBSD больше не будет автоматически перезагружаться после паники. Что вам больше подходит — чтобы система сама перезагружалась после паники или ждала вашего вмешательства? В случае удаленной системы вы почти наверняка захотите сохранить дамп и автоматически перезагрузить машину после паники, но если вы находитесь рядом с консолью, то, возможно, захотите выполнить перезагрузку вручную.

    Для автоматической перезагрузки используйте параметр ядра KDB_UNATTENDED:

    options KDB_UNATTENDED

    Этот параметр предписывает FreeBSD автоматически перезагрузиться после паники, даже если в конфигурации ядра присутствует параметр DDB . После паники на экране появится сообщение, предлагающее нажать клавишу пробела, чтобы войти в отладчик; если этого не сделать, система перезагрузится через 15 секунд.


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

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

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

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

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

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

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

    # /sbin/shutdown -h now

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

    # /sbin/shutdown -r now

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

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

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

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

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

    Login group is «jack». Invite jack into other groups: wheel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Страница справки по text. Это главный источник документации в UNIX-системах. man ls покажет вам все способы использования команды ls. Нажимайте Enter для передвижения по тексту, Ctrl-B для возврата на страницу назад, Ctrl-F для продвижения вперёд, q или Ctrl-C для выхода.

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

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

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

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

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

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

    # periodic daily

    выдача опущена

    # periodic weekly

    выдача опущена

    # periodic monthly

    выдача опущена

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

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

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

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

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

    # cp rc.conf rc.conf.orig

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

    # mv rc.conf rc.conf.orig

    # cp rc.conf.orig rc.conf

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

    # mv rc.conf.orig rc.conf

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

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

    # vi filename (мне больше нравится ee, он показался мне наиболее удобным).

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

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

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

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

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

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

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

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

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

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

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

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

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

    Ctrl-b и Ctrl-f

    для перемотки на экран назад и вперёд, как при работе с 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 для записи файла на диск и выхода. Работает всегда. (Вы не поставили пробел после запятой, ведь так?)

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

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

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

    удаляет filename.

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

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

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

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

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

    % find /usr -name «filename»

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

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

    8. Следующие шаги

    Теперь вы должны иметь инструменты, которые необходимо держать под рукой и умеете редактировать файлы, так что вы должны суметь запустить всё, что угодно. Много полезной информации содержится в Руководстве по 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(хорошее место для программного обеспечения, которое вы добавляете, и которое должно быть доступно всем пользователям) такой командой:

    # 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. Наберите

    # 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.

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

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

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

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

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

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

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

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

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

    При запуске 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.

    10. Остальное

    Работая как пользователь 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.

    11. Терминал

    Еще одной интересной командой является команда who, она позволяет посмотреть, кто сейчас подключен к системе. Далее мы имеем возможность подключиться к необходимой нам сессии (при наличии на это прав конечно).

    Продолжение следует…

    Это очередная статья, на которую меня сподвиг недавно купленный VPS -сервер от Mojordomo . За все время использование, чуть меньше месяца у меня только положительные эмоции относительно этой компании. Благодаря Mojordomo я в боевом режиме пощупал FreeBSD. Настоящие знания приходят именно с такого опыта.

    Вот столкнулся с тем, что Apache и MySQL в операционной системе FreeBSD лежат не там где в Linux. Поэтому управление работой демонов немного различаются. Было решено за впечатлить все в этом блоге, так как знания, который не записаны на бумаге – это временные знания, которые постепенно забываются.

    Управление Apache во FreeBSD

    Для того, чтобы запустить Apache, нужно:

    /usr/local/etc/rc.d/apache22 start

    Остановить Apache 2.2 на FreeBSD можно командой:

    /usr/local/etc/rc.d/apache22 stop

    Перезапустить Apache на FreeBSD:

    /usr/local/etc/rc.d/apache22 restart

    Аналогично команды выглядят и для запуска/остановки/перезапуска сервера баз данных MySQL.

    Управление MySQL во FreeBSD

    Для того, чтобы запустить демон MySQL-сервера в операционной системе FreeBSD, необходимо исполнить команду:

    /usr/local/etc/rc.d/mysql-server start

    Остановить MySQL-сервер поможет команда:

    /usr/local/etc/rc.d/mysql-server stop

    А перезапустить MySQL можно так:

    /usr/local/etc/rc.d/mysql-server restart

    Универсальное правило управления демонами во FreeBSD

    В операционной системе FreeBSD дополнительное программное обеспечение устанавливается в /usr/local/etc/ . А файлы запуска размещены в /usr/local/etc/rc.d/ . Именно по этому во FreeBSD всеми демонами можно управлять практически одинаково. Синтаксис команды, если это можно так назвать, предельно просто и выгялдит вот так:

    /usr/local/etc/rc.d/имя_демона restart

    Для того, чтобы посмотреть что установлено у Вас в системе, поможет команда:

    Ls /usr/local/etc/rc.d

    Полученный список и является списком имен_демонов , которыми можно управлять описанным тут способом.

    Рассказать в соц. сетях

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

    Командная строка любой Unix подобной системы насчитывает более 2500 команд, которые простому человеку запомнить невозможно физически, да и не требуется это на самом деле. По всем командам можно вывести справочную информацию прямо в консоли, и, чтобы начать ею пользоваться, вам понадобится ознакомиться лишь с наиболее употребляемыми из них.

    • exit – выход из режима командной строки;
    • shutdown –h now – немедленное выключение компьютера (вместо нее можно использовать “halt”);
    • shutdown –r now – немедленная перезагрузка компьютера (аналог – “reboot”);
    • last reboot – просмотр истории перезагрузок;
    • adduser – добавление нового пользователя в систему. Эту команду необходимо выполнить, если при установке FreeBSD не были созданы дополнительные пользователи и вы работаете в системе как root, что является серьезной брешью в системе безопасности вашего компьютера. Чтобы впоследствии добавленный пользователь имел возможность периодического выполнения административных команд (с помощью команды su), ему необходимо присвоить группу “wheel”;
    • rmuser – удаление пользователя из системы;
    • id – если вы забыли, кем являетесь в системе, то эта команда поможет это определить;
    • pwd – показать текущую директорию;
    • ls – список файлов текущей директории;
    • ls –F – выведет список файлов и укажет их тип (* - исполняемый файл; / - директория; @ - символическая ссылка);
    • ls -l – список файлов в long-формате, в котором будут указаны размер, дата создания и права, назначенные файлу;
    • ls -a – показать скрытые файлы;
    • cd – смена директории;
    • cd~ – переход в домашнюю директорию текущего пользователя;
    • view fname – просмотр файла fname без возможности внесения в него изменений;
    • touch – создать пустой файл;
    • apropos text – вывод любой содержащей слово “text” строки из базы данных whatis;
    • man command – вывод подробной справочной информации по команде “command”;
    • which command – вывод директории команды “command” (работает, только для команд, находящихся в явно указанных системной переменной “path” директориях);
    • locate path – поиск и вывод всех директорий, в названии которых содержится слово “path”;
    • whatis command – покажет функции команды “command”;
    • whereis fname – поиск файла с названием fname и вывод полного пути к этому файлу;
    • df – информация о смонтированных разделах и свободном пространстве всех подключенных накопителей;
    • ps aux – вывод подробных сведений о запущенных процессах;
    • rm fname – удалить файл с названием fname;
    • rm -r dir – удаление директории dir со всеми вложенными поддиректориями;
    • ls -R – вывод списка файлов в текущей директории и во всех поддерикториях;
    • passwd – изменить пароль пользователя.

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

    Я понимаю, что не каждому ясна конкретная суть той или иной комманды, и не каждый понимает, как происходит срабатывание того или иного пункта моего списка! По этому я выкладываю для вас видео урок по работе с командами операционной системы Freebsd.

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

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

    cp - Сокращение от copy , команда выполняет копирование файлов.
    Рассмотрим пример использования этой команды. Скопируем файл /home/file1 в директорию /home/dir/ :

    Cp /home/file1 /home/dir/file1

    df - Команда для просмотра свободного места на диске.
    ls - Команда для просмотра содержимое каталога.
    Рассмотрим подробно содержимое каталога:

    cd – Команда для перехода по каталогам.
    Пример, выполним переход в директорию /home:

    Cd /home

    mkdir dir_name - Команда для создания директории.

    pwd — Команда отображает текущую директорию в которой вы находитесь.

    mv — Сокращение от move , команда служит для перемещения, либо переименования файла.
    Пример использования команды mv:

    Mv /home/gile1 /home/file2

    rm — Сокращение от remove , команда служит для удаления файлов.
    Пример удаления файла:

    Rm /home/file1

    rmdir — Сокращенно от remove dir , команда выполняет удаление директории.
    Рассмотрим пример удаления директории с именем mydir :

    Rmdir mydir

    uname - Команда для вывода информации о системе.

    ps - Команда выводит на экран список активных процессов.

    top — Команда для просмотра выполняемых процессов в режиме реального времени.

    kill pid - Команда принудительно завершает процесс. В качестве параметра PID указывается id процесса.

    killall processname - Команда принудительно завершает процесс. В качестве параметра processname указывается имя процесса.

    history 20 - Команда отображает список последних команд. Число 20 означает количество последних комманд.

    id - Команда для отображения текущего uid gid группы.

    who - Команда для вывода списка пользователей в системе.

    whoami - Команда для просмотра имени текущего пользователя.

    su - Команда дает права суперпользователя root. При этом пользователь должен быть в группе wheel.

    su username - Переключение окружения с правами другого пользователя.

    cat /etc/passwd - Просмотр всех аккаунтов в системе.

    cat /etc/group - Просмотр всех групп в системе.

    cat /etc/master.passwd - Команда для просмотра всех учетных записей с зашифрованными паролями.

    passwd - Команда для смены пароля. Актуальна для пользователей root.

    passwd username - Команда для смены пароля указанного пользователя.

    pw usermod username -G wheel - Команда для добавления пользователя в группу wheel.

    pw userdel username -r - Команда для удаления пользователя. Параметр -r говорит о том, что будет удалена домашняя директория.

    mount - Команда для просмотра смонтированных файловых систем. См. пример: .

    pkg_info - Команда для просмотра информации обо всех установленных пакетах.

    Просмотр детальной информации о пакете pack-1.0.0

    Pkg_info pack-1.0.0

    Просмотр детальной информации о всех пакетах pack.

    Pkg_info pack\*

    Просмотр список файлов включенных в пакет.

    Pkg_info -L pack\*

    Команда для определения в каком из пакетов включен файл /usr/local/bin/file .

    Pkg_info -W /usr/local/bin/file

    pkg_add pack-1.2.3.tbz - Команда для установки пакета из файла.

    pkg_delete foo-1.2.3 - Команда для удаления пакета.

    ifconfig -a - Команда для отображения сетевого интерфейса.

    ping сайт - Команда ping, известная пожалуй каждому системному администратору.

    traceroute сайт - Команда выводит таблицу трассировки к узлу.

    reboot - Команда выполняет перезагрузку системы.

    shutdown -h 5 «Sys maintenance» - Выключение системы через 5 минут, с выводом сообщения пользователям.

    portsnap fetch - Команда выполняет обновление портов.

    where is wget - Команда отображает полный путь к программе, в примере это wget.

    scp -p -r /home/dir [email protected]:/home/server - Команда для копирования файлов на другой сервер.

    less file — Команда для просмотра содержимого файла.

    command | less - Команда для запуска результатов работы команды с less.