Freebsd — Вопросы по курсу Freebsd


Содержание

1.2. дПВТП РПЦБМПЧБФШ ЧП FreeBSD!

FreeBSD — ЬФП ПУОПЧБООБС ОБ 4.4BSD-Lite ПРЕТБГЙПООБС УЙУФЕНБ ДМС ЛПНРШАФЕТПЧ Intel (x86 Й Itanium ®), AMD64, Alpha » Й Sun UltraSPARC ®. чЕДЕФУС ТБВПФБ РП РПТФЙТПЧБОЙА Й ОБ ДТХЗЙЕ БТИЙФЕЛФХТЩ. чЩ НПЦЕФЕ ФБЛЦЕ РТПЮЕУФШ ПВ ЙУФПТЙЙ FreeBSD, ЙМЙ П ФЕЛХЭЕН ТЕМЙЪЕ. еУМЙ ЧЩ ЪБЙОФЕТЕУПЧБОЩ Ч РПНПЭЙ РТПЕЛФХ (ЛПДПН, БРРБТБФОЩН ПВЕУРЕЮЕОЙЕН, ДЕОШЗБНЙ), РТПЮФЙФЕ УФБФША рПНПЭШ FreeBSD.

1.2.1. юФП НПЦЕФ FreeBSD?

FreeBSD ЙНЕЕФ ЪБУМХЦЙЧБАЭЙЕ ЧОЙНБОЙС ЧПЪНПЦОПУФЙ. оЕЛПФПТЩЕ ЙЪ ОЙИ:

чЩФЕУОСАЭБС НОПЗПЪБДБЮОПУФШ У ДЙОБНЙЮЕУЛЙН ТЕЗХМЙТПЧБОЙЕН РТЙПТЙФЕФПЧ, РПЪЧПМСАЭБС РМБЧОП Й УРТБЧЕДМЙЧП ТБУРТЕДЕМЙФШ ТЕУХТУЩ ЛПНРШАФЕТБ НЕЦДХ РТЙМПЦЕОЙСНЙ Й РПМШЪПЧБФЕМСНЙ, ДБЦЕ РТЙ ФСЦЕМЕКЫЙИ ОБЗТХЪЛБИ.

нОПЗПРПМШЪПЧБФЕМШУЛБС РПДДЕТЦЛБ , ЛПФПТБС РПЪЧПМСЕФ НОПЦЕУФЧХ МАДЕК ЙУРПМШЪПЧБФШ FreeBSD УПЧНЕУФОП ДМС ТБЪМЙЮОЩИ ЪБДБЮ. ьФП ЪОБЮЙФ, ОБРТЙНЕТ, ЮФП УЙУФЕНОБС РЕТЙЖЕТЙС, ФБЛБС ЛБЛ РТЙОФЕТЩ Й МЕОФПЮОЩЕ ХУФТПКУФЧБ, РТБЧЙМШОП ТБЪДЕМСЕФУС ЧУЕНЙ РПМШЪПЧБФЕМСНЙ Ч УЙУФЕНЕ ЙМЙ УЕФЙ, Й ЮФП РПМШЪПЧБФЕМСН ЙМЙ ЗТХРРБН РПМШЪПЧБФЕМЕК НПЗХФ ВЩФШ ХУФБОПЧМЕОЩ МЙНЙФЩ ЛБЦДПЗП ТЕУХТУБ, ЪБЭЙЭБС ЛТЙФЙЮЕУЛЙЕ УЙУФЕНОЩЕ ТЕУХТУЩ ПФ РЕТЕЗТХЪПЛ.

нПЭОЩК TCP/IP-УФЕЛ У РПДДЕТЦЛПК РТПНЩЫМЕООЩИ УФБОДБТФПЧ, ФБЛЙИ ЛБЛ SLIP, PPP, NFS, DHCP Й NIS. ьФП ПЪОБЮБЕФ, ЮФП FreeBSD НПЦЕФ МЕЗЛП ЧЪБЙНПДЕКУФЧПЧБФШ У ДТХЗЙНЙ УЙУФЕНБНЙ, Б ФБЛЦЕ ТБВПФБФШ УЕТЧЕТПН НБУЫФБВБ РТЕДРТЙСФЙС, РТЕДПУФБЧМСС ЦЙЪОЕООП ЧБЦОЩЕ ЖХОЛГЙЙ, ФБЛЙЕ ЛБЛ NFS (ХДБМЈООЩК ДПУФХР Л ЖБКМБН) Й ХУМХЗЙ ЬМЕЛФТПООПК РПЮФЩ, ЙМЙ РТЕДУФБЧЙФШ ЧБЫХ ПТЗБОЙЪБГЙА Ч йОФЕТОЕФЕ, ПВЕУРЕЮЙЧБС ТБВПФХ УМХЦВ WWW, FTP, НБТЫТХФЙЪБГЙА Й ЖХОЛГЙЙ НЕЦУЕФЕЧПЗП ЬЛТБОБ (ВТБОДНБХЬТБ).

ъБЭЙФБ РБНСФЙ ЗБТБОФЙТХЕФ, ЮФП РТЙМПЦЕОЙС (ЙМЙ РПМШЪПЧБФЕМЙ) ОЕ УНПЗХФ ЮЙОЙФШ РТЕРСФУФЧЙС ДТХЗ ДТХЗХ. жБФБМШОБС ПЫЙВЛБ Ч ЧЩРПМОЕОЙЙ ПДОПЗП РТЙМПЦЕОЙС ОЕ УЛБЦЕФУС ОБ ТБВПФПУРПУПВОПУФЙ ЧУЕК УЙУФЕНЩ.

FreeBSD 32-ТБЪТСДОБС ПРЕТБГЙПООБС УЙУФЕНБ ( 64-ТБЪТСДОБС ОБ Alpha, Itanium , AMD64, Й UltraSPARC ) Й ЙЪОБЮБМШОП УПЪДБЧБМБУШ ЙНЕООП ФБЛПК.

рТПНЩЫМЕООЩК УФБОДБТФ X Window System (X11R6) РТЕДПУФБЧМСЕФ ЗТБЖЙЮЕУЛЙК ЙОФЕТЖЕКУ РПМШЪПЧБФЕМС (GUI) ДМС ВПМШЫЙОУФЧБ VGA ЛБТФ Й НПОЙФПТПЧ, Й РПУФБЧМСЕФУС У РПМОЩНЙ ЙУИПДОЩНЙ ФЕЛУФБНЙ.

дЧПЙЮОБС УПЧНЕУФЙНПУФШ У ВПМШЫЙОУФЧПН РТПЗТБНН, УПЪДБООЩИ ДМС Linux, SCO, SVR4, BSDI Й NetBSD.

фЩУСЮЙ ЗПФПЧЩИ Л ЙУРПМШЪПЧБОЙА РТЙМПЦЕОЙК ДПУФХРОЩ ЙЪ ЛПММЕЛГЙК РПТФПЧ Й РБЛЕФПЧ FreeBSD. ъБЮЕН ЙУЛБФШ ЮФП-ФП Ч УЕФЙ, ЛПЗДБ ЧЩ НПЦЕФЕ ОБКФЙ ЧУЈ РТСНП ЪДЕУШ?

фЩУСЮЙ ДТХЗЙИ МЕЗЛП БДБРФЙТХЕНЩИ РТЙМПЦЕОЙК ДПУФХРОЩ Ч йОФЕТОЕФЕ. FreeBSD УПЧНЕУФЙНБ РП ЙУИПДОЩН ФЕЛУФБН У ВПМШЫЙОУФЧПН РПРХМСТОЩИ ЛПННЕТЮЕУЛЙИ UNIX ®-УЙУФЕН Й, ФБЛЙН ПВТБЪПН, ВПМШЫЙОУФЧП РТЙМПЦЕОЙК ФТЕВХАФ МЙЫШ ОЕВПМШЫЙИ ЙЪНЕОЕОЙК ДМС УВПТЛЙ (ЙМЙ ОЕ ФТЕВХАФ ЧППВЭЕ).

чЙТФХБМШОБС РБНСФШ У РПДДЕТЦЛПК УВТПУБ ОЕЙУРПМШЪХЕНЩИ УФТБОЙГ РП ФТЕВПЧБОЙА Й »ПВЯЕДЙОЕОЙЕ ЧЙТФХБМШОПК РБНСФЙ Й ВХЖЕТОПЗП ЛЬЫБ» УРТПЕЛФЙТПЧБОЩ ФБЛ, ЮФПВЩ НБЛУЙНБМШОП ЬЖЖЕЛФЙЧОП ХДПЧМЕФЧПТЙФШ РТЙМПЦЕОЙС У ПЗТПНОЩНЙ БРРЕФЙФБНЙ Л РБНСФЙ Й, Ч ФП ЦЕ ЧТЕНС, УПИТБОЙФШ ЙОФЕТБЛФЙЧОПУФШ ДМС ПУФБМШОЩИ РПМШЪПЧБФЕМЕК.

рПДДЕТЦЛБ УЙННЕФТЙЮОПК НОПЗПРТПГЕУУПТОПУФЙ (SMP) ДМС НБЫЙО У ОЕУЛПМШЛЙНЙ РТПГЕУУПТБНЙ.

рПМОЩК ЛПНРМЕЛФ ЙОУФТХНЕОФПЧ ДМС ТБЪТБВПФЮЙЛБ: C , C++ Й Fortran . нОПЦЕУФЧП ДПРПМОЙФЕМШОЩИ СЪЩЛПЧ РТПЗТБННЙТПЧБОЙС ДМС ЙУУМЕДПЧБОЙК Й ТБЪТБВПФЛЙ ФБЛЦЕ ДПУФХРОЩ ЙЪ ЛПММЕЛГЙК РПТФПЧ Й РБЛЕФПЧ.

дПУФХРОПУФШ ЙУИПДОЩИ ФЕЛУФПЧ ЧУЕК УЙУФЕНЩ ПЪОБЮБЕФ, ЮФП ЧЩ ЙНЕЕФЕ НБЛУЙНБМШОЩК ЛПОФТПМШ ОБД ПРЕТБГЙПООПК УТЕДПК. ъБЮЕН ЧЩВЙТБФШ ЪБЛТЩФЩЕ ТЕЫЕОЙС Й ХРПЧБФШ ОБ НЙМПУФШ РТПЙЪЧПДЙФЕМС, ЛПЗДБ ЧЩ НПЦЕФЕ РПМХЮЙФШ РП-ОБУФПСЭЕНХ ПФЛТЩФХА УЙУФЕНХ?

й НОПЗПЕ-НОПЗПЕ ДТХЗПЕ!

FreeBSD ПУОПЧБОБ ОБ 4.4BSD-Lite ПФ Computer Systems Research Group (CSRG) лБМЙЖПТОЙКУЛПЗП хОЙЧЕТУЙФЕФБ, вЕТЛМЙ, Й РТПДПМЦБЕФ УМБЧОХА ФТБДЙГЙА ТБЪТБВПФЛЙ BSD-УЙУФЕН. ч ДПРПМОЕОЙЙ Л РТЕЛТБУОПК ТБВПФЕ, РТЕДПУФБЧМЕООПК CSRG, рТПЕЛФ FreeBSD ФТБФЙФ НОПЗЙЕ ФЩУСЮЙ ЮБУПЧ ДМС ФПОЛПК ОБУФТПКЛЙ УЙУФЕНЩ ДМС НБЛУЙНБМШОПК РТПЙЪЧПДЙФЕМШОПУФЙ Й ОБДЈЦОПУФЙ Ч ХУМПЧЙСИ НБЛУЙНБМШОП РТЙВМЙЦЕООЩН Л »ВПЕЧЩН». лПЗДБ ВПМШЫЙОУФЧП ЛПННЕТЮЕУЛЙИ ЗЙЗБОФПЧ ФПМШЛП РЩФБАФУС ДПУФЙЮШ ФБЛПЗП ХТПЧОС ЧПЪНПЦОПУФЕК, РТПЙЪЧПДЙФЕМШОПУФЙ Й ОБДЕЦОПУФЙ ПРЕТБГЙПООЩИ УЙУФЕН ДМС рл, FreeBSD НПЦЕФ РТЕДМПЦЙФШ ЧУЕ ЬФП РТСНП УЕКЮБУ !

рТЙНЕОЕОЙЕ FreeBSD Ч ДЕКУФЧЙФЕМШОПУФЙ ПЗТБОЙЮЕОП ФПМШЛП ЧБЫЙН ЧППВТБЦЕОЙЕН. пФ ТБЪТБВПФЛЙ РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС ДП БЧФПНБФЙЪБГЙЙ РТПЙЪЧПДУФЧБ, ПФ УЛМБДУЛПЗП ХЮЕФБ ДП ДЙУФБОГЙПООПК ЛПТТЕЛГЙЙ БЪЙНХФПЧ УРХФОЙЛПЧЩИ БОФЕОО; ЕУМЙ ЪБДБЮЙ НПЦОП ТЕЫЙФШ У РПНПЭША ЛПННЕТЮЕУЛЙИ UNIX -УЙУФЕН, УЛПТЕЕ ЧУЕЗП, ПОЙ ТЕЫБЕНЩ Й У РПНПЭША FreeBSD! FreeBSD ФБЛЦЕ УХЭЕУФЧЕООП ЧЩЙЗТЩЧБЕФ ЪБ УЮЕФ ВХЛЧБМШОП ФЩУСЮ ЧЩУПЛПЛБЮЕУФЧЕООЩИ РТЙМПЦЕОЙК, ТБЪТБВПФБООЩИ ЙУУМЕДПЧБФЕМШУЛЙНЙ ГЕОФТБНЙ Й ХОЙЧЕТУЙФЕФБНЙ ЧП ЧУЈН НЙТЕ, Й ДПУФХРОЩИ ЪБ НЙОЙНБМШОХА ГЕОХ ЙМЙ ДБЦЕ ВЕУРМБФОП. лПННЕТЮЕУЛЙЕ РТЙМПЦЕОЙС ФБЛЦЕ ДПУФХРОЩ, Й ЙИ У ЛБЦДЩН ДОЕН УФБОПЧЙФУС ЧУЈ ВПМШЫЕ.

рПУЛПМШЛХ ЙУИПДОЩЕ ФЕЛУФЩ FreeBSD ПВЭЕДПУФХРОЩ, УЙУФЕНБ НПЦЕФ ВЩФШ ПРФЙНЙЪЙТПЧБОБ Ч РПЮФЙ ОЕЧЕТПСФОПК УФЕРЕОЙ ДМС УРЕГЙБМШОЩИ РТЙМПЦЕОЙК ЙМЙ РТПЕЛФПЧ, Б ЬФП, ПВЩЮОП, ОЕЧПЪНПЦОП РТЙ ЙУРПМШЪПЧБОЙЙ ПРЕТБГЙПООЩИ УЙУФЕН ПФ ВПМШЫЙОУФЧБ ЛПННЕТЮЕУЛЙИ РТПЙЪЧПДЙФЕМЕК. чПФ ОЕУЛПМШЛП РТЙНЕТПЧ ФПЗП, ЛБЛ УЕКЮБУ ЙУРПМШЪХЕФУС FreeBSD:

йОФЕТОЕФ-УМХЦВЩ: НПЭОЕКЫЙК TCP/IP УФЕЛ ДЕМБЕФ FreeBSD ЙДЕБМШОПК РМБФЖПТНПК ДМС ВПМШЫЙОУФЧБ йОФЕТОЕФ-РТЙМПЦЕОЙК, ФБЛЙИ ЛБЛ:

уЕТЧЕТЩ World Wide Web (ЛБЛ УФБОДБТФОЩЕ, ФБЛ Й ЪБЭЙЭЈООЩЕ [SSL])

нЕЦУЕФЕЧЩЕ ЬЛТБОЩ (firewalls) Й ЫМАЪЩ NAT (»IP-НБУЛБТБДЙОЗ»)

уЕТЧЕТЩ ЬМЕЛФТПООПК РПЮФЩ

уЕТЧЕТЩ ОПЧПУФЕК ЙМЙ ДЙУЛХУУЙПООЩИ ЗТХРР USENET

Й НОПЗПЕ ДТХЗПЕ.

чЩ НПЦЕФЕ ОБЮБФШ УЧПЈ ЪОБЛПНУФЧП У FreeBSD, ЙУРПМШЪХС ОЕДПТПЗПК рл ЛМБУУБ 386, Б ЧРПУМЕДУФЧЙЙ ХЧЕМЙЮЙФШ ЕЈ НПЭШ ДП УЕТЧЕТБ НБУЫФБВБ РТЕДРТЙСФЙС У ЮЕФЩТШНС РТПГЕУУПТБНЙ Xeon Й RAID ЛПОФТПММЕТПН.

пВТБЪПЧБОЙЕ: чЩ УФХДЕОФ Й ЧБЫЕ ПВТБЪПЧБОЙЕ УЧСЪБОП У ЛПНРШАФЕТБНЙ ЙМЙ ДТХЗЙНЙ ЙОЦЕОЕТОЩНЙ ДЙУГЙРМЙОБНЙ? оЕФ МХЮЫЕЗП РХФЙ ОБЮБФШ ЙЪХЮЕОЙЕ ПРЕТБГЙПООЩИ УЙУФЕН, БТИЙФЕЛФХТЩ ЛПНРШАФЕТБ Й ТБВПФЩ Ч УЕФЙ, ЮЕН ПУЧПЙФШ FreeBSD. лПМЙЮЕУФЧП УЧПВПДОП ДПУФХРОЩИ РБЛЕФПЧ убрт, НБФЕНБФЙЮЕУЛЙИ Й ЗТБЖЙЮЕУЛЙИ РБЛЕФПЧ ФБЛЦЕ ДЕМБАФ ЕЈ ЮТЕЪЧЩЮБКОП РПМЕЪОПК ДМС ФЕИ, ЛФП ЙУРПМШЪХЕФ ЛПНРШАФЕТ ЛБЛ ЙОУФТХНЕОФ ДМС ЧЩРПМОЕОЙС ДТХЗПК ТБВПФЩ!

йУУМЕДПЧБОЙС: ъБ УЮЈФ ДПУФХРОПУФЙ ЙУИПДОЩИ ФЕЛУФПЧ ДМС ЧУЕК УЙУФЕНЩ, FreeBSD — РТЕЧПУИПДОБС РМБФЖПТНБ ЛБЛ ДМС ЙЪХЮЕОЙС ПРЕТБГЙПООЩИ УЙУФЕН Й ЙУУМЕДПЧБОЙК Ч ДТХЗЙИ ПВМБУФСИ ЛПНРШАФЕТОЩИ ОБХЛ. уЧПВПДОБС РТЙТПДБ FreeBSD РПЪЧПМСЕФ ХДБМЈООЩН ЗТХРРБН УПФТХДОЙЮБФШ, ПВНЕОЙЧБФШУС ЙДЕСНЙ Й УПЧНЕУФОЩНЙ ТБЪТБВПФЛБНЙ, ОЕ ВЕУРПЛПСУШ П ОБМЙЮЙЙ УРЕГЙБМШОЩИ МЙГЕОЪЙК ЙМЙ ПЗТБОЙЮЕОЙК ОБ ФП, ЮФП НПЦЕФ ПВУХЦДБФШУС Ч ПФЛТЩФЩИ ЖПТХНБИ.

тБВПФБ Ч УЕФЙ: оХЦЕО ОПЧЩК НБТЫТХФЙЪБФПТ? уЕТЧЕТ ЙНЈО (DNS)? нЕЦУЕФЕЧПК ЬЛТБО, ЪБЭЙЭБАЭЙК ПФ РТПОЙЛОПЧЕОЙС ЙЪЧОЕ Ч ЧБЫХ УЕФШ? FreeBSD НПЦЕФ РТЕЧТБФЙФШ ДБЧОП УРЙУБООЩК Й РЩМСЭЙКУС Ч ХЗМХ 386-К ЙМЙ 486-К рл Ч НПЭОЩК НБТЫТХФЙЪБФПТ У ЧПЪНПЦОПУФША ЖЙМШФТБГЙЙ РБЛЕФПЧ.

тБВПЮБС УФБОГЙС X Window: FreeBSD РТЕЛТБУОЩК ЧЩВПТ, ЕУМЙ ЧБН ОХЦЕО ОЕДПТПЗПК X-ФЕТНЙОБМ, ЙУРПМШЪХАЭЙК УЧПВПДОП ТБУРТПУФТБОСЕНЩК УЕТЧЕТ X11. ч ПФМЙЮЙЕ ПФ X-ФЕТНЙОБМБ, ОБ FreeBSD НПЦОП ЪБРХУЛБФШ НОПЦЕУФЧП РТЙМПЦЕОЙК МПЛБМШОП, ЕУМЙ ФТЕВХЕФУС, ФБЛЙН ПВТБЪПН РЕТЕОЕУС ЮБУФШ ОБЗТХЪЛЙ У ГЕОФТБМШОПЗП УЕТЧЕТБ. FreeBSD НПЦЕФ ВЩФШ ЪБЗТХЦЕОБ »ОБ ВЕЪДЙУЛПЧПК УФБОГЙЙ», ЮФП ДЕМБЕФ ТБВПЮХА УФБОГЙА ЕЭЈ ДЕЫЕЧМЕ Й РТПЭЕ Ч БДНЙОЙУФТЙТПЧБОЙЙ.

тБЪТБВПФЛБ РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС: вБЪПЧБС РПУФБЧЛБ FreeBSD ТБУРТПУФТБОСЕФУС У РПМОЩН ОБВПТПН ЙОУФТХНЕОФПЧ ДМС ТБЪТБВПФЛЙ, ЧЛМАЮБС ЪОБНЕОЙФЩЕ ЛПНРЙМСФПТ GNU C/C++ Й ПФМБДЮЙЛ.

FreeBSD ДПУФХРОБ ЛБЛ Ч ЙУИПДОЩИ ФЕЛУФБИ, ФБЛ Й Ч ДЧПЙЮОПН ЧЙДЕ ОБ CDROM, DVD Й ЮЕТЕЪ БОПОЙНОЩК ДПУФХР Л FTP. рПДТПВОЕЕ П ФПН, ЛБЛ РПМХЮЙФШ FreeBSD, УН. Ч рТЙМ. A.

1.2.2. лФП ЙУРПМШЪХЕФ FreeBSD?

FreeBSD ЙУРПМШЪХЕФУС Ч ЛБЮЕУФЧЕ РМБФЖПТНЩ ОБ ОЕЛПФПТЩИ ЛТХРОЕКЫЙИ УБКФБИ Ч ЙОФЕТОЕФ, ЧЛМАЮБС:

Шпаргалка по командам FreeBSD

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

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

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

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

find — Команда для поиска директорий и файлов.
Рассмотрим простой пример, найдем файлы в директории /home/, начинающиеся с приставки conf:

Поиск файлов и директорий созданные за последний день в текущей директории.

Поиск файлов и директорий чтение которых производилось за последний день в текущей директории.

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

Поиск файлов и директорий созданных либо копированных за последний день в текущей директории.

Поиск и удаление файлов и папок в текущей директории.

tar — Команда для работы с tar архивами. Подробнее о работе с tar архивами.

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

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

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

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

rmdir — Сокращенно от remove dir, команда выполняет удаление директории.
Рассмотрим пример удаления директории с именем 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 — Команда для просмотра смонтированных файловых систем. См. пример: монтирование USB-устройств во FreeBSD.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


scp -p -r /home/dir root@192.168.200.33:/home/server — Команда для копирования файлов на другой сервер.

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

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

Freebsd — Вопросы по курсу Freebsd

2.1. Есть ли хорошие книги о FreeBSD?

В рамках проекта создан широкий спектр документации, которая доступна в онлайне по следующей ссылке: http://www.FreeBSD.org/docs.html. Эти же самые документы доступны и в виде пакаджей, которые можно с лёгкостью установить в вашу систему FreeBSD. Детальная информация о пакаджах с документацией может быть найдена в последующих параграфах.

Кроме того, в Библиографии в конце этого FAQ и в Руководстве имеются ссылки на другие рекомендуемые для чтения книги.

2.2. Есть ли версии документации в другом формате, например, в виде обычного текста ASCII или PostScript?

Да. Документация имеется в нескольких различных форматах и упакованная разными способами на FTP-сервере FreeBSD, и находится она в каталоге /pub/FreeBSD/doc/.

Документация подразделяется на категории различными способами. Это включает:

Имя документа, например, faq или handbook .

Язык и кодировка документа. Они опираются на имена локализаций, которые вы найдёте в каталоге /usr/share/locale вашей системы FreeBSD. На данный момент для документации поддерживаются следующие языки и кодировки:

Формат Значение
html-split Набор маленьких связанных друг с другом HTML-файлов.
html Один большой HTML-файл, полностью содержащий документ.
pdb Формат баз данных Palm Pilot, для использования с утилитой iSilo.
pdf Adobe’s Portable Document Format
ps PostScript
rtf Rich Text Format от Microsoft [a]
txt Обычный текст
Примечания:
a. Номера страниц при загрузке в Word автоматически не обновляются. Нажмите CTRL+ A, CTRL+ END, F9 после загрузки документа для обновления номеров страниц.

Способ компрессии и создания архива. Сейчас используется три.

В случае формата html-split , файлы архивируются с помощью tar (1) . Получающийся файл .tar затем подвергается сжатию по схемам, подробно описываемым далее.

Все другие форматы генерируют один файл с именем book. format (то есть book.pdb, book.html, и так далее).

Эти файлы затем сжимаются по двум схемам сжатия.

Пред. Начало След.
Вступление Установка
Хостинг в Европе для новичков (от 25 руб/мес) и VIP-хостинг для профессионалов (от 1000 руб/мес)

Скидка 25% на все тарифы хостинга по промокоду STDCITF

Linux или FreeBSD? Без гнева и пристрастия

Заметка эта родилась в ходе многочисленных переходов с одной системы на другую, в ходе многолетнего (во временных масштабах IT) их совместного использования, а также в ходе размышлений на тему: а какую систему мне поставить на новую машину? Непосредственным же толчком для нее послужила переписка с рядом авторов unix.gingas.ru и мечты об идеальном дистрибутиве, обсуждавшиеся нет так давно на Linuxforum. Но для начала –Пара оговорок

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

И еще: далее ни слова не будет говориться о применении Linux или FreeBSD в качестве серверов, узлов локальной сети и тому подобных сисадминских материях. А исключительно – о пользовательских, сиречь десктопных, их качествах. Предвидя реакцию некоторой категории читателей, последнюю фразу готов выделить тэгом и повторить дважды и трижды :–)Субъективное вступление

Скоро четыре года, как FreeBSD и Linux чередуются на моих машинах (домашних и служебных) с некоторой периодичностью. Или мирно уживаются в одном, отдельно взятом системном блоке. И за это время я заметил интересную закономерность.

В периоды, когда на моей машине одна FreeBSD, рабочее время мое распределяется примерно так: 90% – практическая работа (абсолютно не важно, какой характер она носит в данный момент), и 10% – более или менее нездоровые эксперименты над системой. Стоит же угнездиться в уголке винчестера какому–никакому Linux–у – и временная доля экспериментов сразу подскакивает до 50%. А в периоды, когда я занимался сборкой Linux–а с нуля, экспериментальный режим фактически становился перманентным.

И я задал себе вопрос – почему? И – для себя же – ответил: FreeBSD – цельная и стройная система, в которой после комплекса начальных настроек не возникает желания ни прибавить чего, ни убавить. Не случайно движение from Scratch, время от времени охватывающее широкие слои Linux–пользователей, в мире FreeBSD фактически не получило развития: известное сочинение Йенса Швайкхардта (существующее и в русском переводе) – это скорее описание автоматизированной альтернативы sysinstall, нежели ручного построения собственной системы с нуля.

Linux такую внутреннюю стройность продемонстрировать не может. И потому желание что–то изменить в уже установленной системе, усовершенствовать, добавить, почистить, а то и просто пересобрать все заново, возникает постоянно, и преодолевается только дефицитом времени.

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

Однако повторяю, все это – сугубо субъективно, ведь далеко не все занимаются сочинением околокомпьютерных заметок. И потому попробую провести более объективное сравнение.Первая попытка объективизма: «железо»

Что требуется большинству пользователей от операционной системы как таковой? Во–первых, конечно поддержка «железа», которое на настольных персоналках, как известно, однообразием не страдает.

Бытует мнение, что Linux поддерживает более широкий спектр оборудования, нежели FreeBSD. Действительно, для последней мы не найдем, скажем, принтерных драйверов от производителя. Полноценная поддержка современных видеокарт реализована только в том случае, если они от NVIDIA (да и то, по отзывам, существенно худшая, нежели для Linux–а). Вероятно, возникнет в этой ОС напряженка и с т.н. win–модемами. Это с одной стороны.

А с другой: всем счастливым обладателям контроллеров ATA RAID и Serial ATA в Linux до недавнего времени приходилось прибегать ко всякого рода ухищрениям. К тому же не всегда удачным, особенно если присоединенные к таким контроллерам диски предполагалось использовать в качестве загрузочных устройств. Собственно, ситуацию можно считать нормализовавшейся только в последних ядрах ветки 2.6.X.

Во FreeBSD же 5–й ветки более или менее параллельно, на каком контроллере IDE–семейства сидит жесткий диск: благодаря CAM (Common Access Method) как–то работать с ним можно будет в любом случае, а если он еще и корректно опознан, то не будет препятствий и для загрузки с него. Да и в 4–й ветке – я ни разу не сталкивался с проблемами для «одновозрастных» контроллеров ATA RAID.

Другой пример – звуковые карты. Все те из них, что основаны на более–менее распространенных чипах, работали во FreeBSD без малейшего напряжения (рук или мысли). То же можно сказать и о «чипсетном» звуке. В Linux–е же аналогичные устройства часто требовали не вполне тривиальных манипуляций с ALSA–драйверами, благо ныне они встроены в ядро. Однако даже и в последнем случае без кое–каких настроечных действий не обойтись. Но это уже предмет второй попытки объективизма.

А итог «железного» объективизма я сформулировал бы так: может быть, Linux поддерживает более широкий круг всяческого оборудования (в том числе, и кое–какой экзотики), но все «железо», что поддерживается FreeBSD (а это практически все стандартное и распространенное «железо»), использовать, в большинстве случаев, проще. И тут мы плавно переходим ко второму волнительному для юзера, особенно начинающего (а не начинающие давно сделали свой выбор) моменту, имя которому –Настройка

Устоявшее (и тщательно культивируемое) мнение, будто бы FreeBSD сложнее в установке и настройке, нежели Linux, я не могу объяснить ничем иным, как недоразумением. Потому что ничего общего с действительностью оно не имеет.

Начнем с установки. Инсталляция FreeBSD штатными средствами (с помощью утилиты sysinstall) выполняется за полчаса, не требует непременного доступа к Сети (хотя таковой лишним не будет) и дает в итоге полностью работоспособную систему с кириллической консолью, функционирующим dial–up (или, по ситуации, включением в локалку), запускаемыми Иксами и необходимым для начала практической деятельности минимумом пакетов (из прекомпилированных бинарников). Все настройки, и общесистемные, и для прикладных пакетов, разумны (пусть и не идеальны с точки зрения конкретного юзера).

Конечно, установка FreeBSD требует некоторых предварительно полученных знаний. Каковые сводятся к а) представлению о разметке диска в BSD–стиле, принятой здесь номенклатуре накопителей и стратегии создания файловых систем. Не потому, что эти моменты так сложны – просто именно они очень отличаются от всего, что пользователь мог знать ранее (по опыту общения с DOS/Windows или Linux). И к тому же разметка диска и файловые системы на них – это единственное, что пользователь не в силах изменить после инсталляции (без тотальной переустановки, естественно). Однако и это не столь страшно: предлагаемая в sysinstall схема разметки и файловых систем по умолчанию вполне походит для настольной персоналки, хотя и не идеальна в ряде специальных случаев.

Большинство известных мне инсталляторов из разных дистрибутивов Linux отличаются от Free’шного sysinstall в две противоположные стороны:

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

Наравне с Free–шным sysinstall я поставил бы (из всех мне известных) только установщик из Archlinux. Написанный, как свидетельствует его разработчик, под влиянием первого, он обеспечивает почти такое же сочетание простоты и гибкости.

Однако (и это уже специфика Linux как системной целостности) даже в этом случае законченной работоспособной системы на выходе не получается. Без ручной доводки обойтись не удастся.

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

Начнем с той же русификации. Сразу после установки FreeBSD пользователь, при желании, получает полностью кириллизованную консоль. Правда, в одном–единственном варианте, с внутренней кодировкой kOI8–R, вводом в ней же и экранным выводом в кодировке DOS, да еще и с не вполне идеальными шрифтами. Но никаких дальнейших действий по базовой русификации от него в обязательном порядке не требуется. А привести раскладки и шрифты в соответствие со своим идеалом он может и позднее. В дистрибутивах же Linux, не очень напирающих на дружественность пользователю ручной правки пары конфигов, пожалуй, не избежать. На причинах этого останавливаться не буду (для тех, кто представляет разницу между консолью в Linux и FreeBSD, они очевидны).

Конечно, в user–ориентированных дистрибутивах Linux отечественного происхождения пользователь получает стопроцентно русифицированную консоль «из коробки». Однако выполненную в соответствии с представлениями разработчиков. Каковые отнюдь не обязаны совпадать с представлениями (и, главное, потребностями) данного конкретного пользователя. И в этом случае на коррекцию ему придется затратить существенно больше сил, нежели при русификации с нуля какого–либо дистрибутива из числа Source Based. В подтверждение чему – вспомним многочисленные статьи, посвященные откату в Red Hat (и Fedore’ном Core) с «прогрессивной» кодировки UTF на KOI8, пусть «бомжовскую», но вполне устраивающую многих и многих.

Русификация консоли тесно связана со стилем инициационных файлов, принятых в данной системе. И тут линейный BSD–стиль с позиций пользователя выглядит более простым, нежели принятая в Linux инициация в стиле System V, основанная на понятии runlevels, перевод которого как «уровни выполнения» способен окончательно запутать начинающего пользователя.

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

Не случайна тенденция многих современных дистрибутивов Linux к использованию BSD–стиля загрузки, примерами чему, кроме классической Slackware, и CRUX, и Gentoo. А в Archlinux понятие runlevels вообще утрачивает значение, хотя соответствующие слова в файле /etc/inittab найти можно, на практике уровни выполнения при старте системы никак не играют. А вот попыток внедрить в BSD–системы «прогрессивный» стиль System V что–то не наблюдается. Не считать же таковым группировку скриптов различных служб в едином подкаталоге в /etc во FreeBSD 5–й ветки.

Что до русификации Иксов – X, как известно, он и в Африке X. И действия по вписыванию путей к файлам с кириллическими шрифтами, коррекция клавиатурной раскладки и установка переключателя с латиницы на кириллицу окажутся неизбежными, поверх какой операционки Иксы бы ни стояли.

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


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

В Linux: начинаем с того, что то же самое чипсетное аудио (а с постепенным вымиранием карт типа SB AWE128 оно становится предпочтительным для всех пользователей без претензий на меломанию или композиторство) непременно требует драйверов ALSA. Благо, что ныне они встроены в ядро и в большинстве дистрибутивов включены в умолчальные ядра в качестве модулей. Если нет, то перекомпиляция ядра большого труда не составит.

Однако перекомпиляцией ядра дело не ограничивается. Нужно еще поставить соответствующий ALSA–инструментарий (да еще, как правило, средства совместимости ее со старой звуковой системой OSS), активизировать соответствующего демона и с помощью не вполне очевидных средств обеспечить его «самовосстановление». И после всего этого опять столкнуться с неожиданностями. Например, с нежеланием мирного сосуществования ALSA и arts (звуковой системы KDE). Конечно, мне могут возразить, что это проблемы KDE, однако во FreeBSD их не возникает вовсе.

Кстати, о доустановке инструментария (и прочих программ). Для этого ведь необходимаСистема управления пакетами

Здесь до недавнего времени первенство, безусловно, принадлежало FreeBSD. Система портов ее обеспечивала несравненное сочетание простоты и гибкости, всегда оставляя возможность выбора – собирать ли пакеты из исходников, или устанавливать их из бинарников. Не возбраняя и комбинацию этих методов. Из всего Linux–ового богачества по этой части с портами мог сравниться только Debian–овский apt, ассимилированный в недрах многих rpm–based дистрибутивов. Однако, хотя apt и предполагает возможность сборки собственных пакетов, основным методом при нем является использование прекомпилированных бинарников, собранных в соответствие с представлениями майнтайнера о зависимостях оных.

Ныне положение изменилось и в Source Based дистрибутивах Linux широко используются портообразные системы, развившиеся под сильным влиянием своего FreeBSD–прототипа: портежи Gentoo, Sorcery из Sorcerer’а, порты CRUX, Archlinux Building System из одноименного дистрибутива. Они подчас превосходят своего прародителя по универсальности, гибкости, глобализации настройки или прозрачности устройства, использования и модернизации. К тому же, за десятилетие своего развития порты FreeBSD стали весьма громоздким и труднообозримым сооружением, поддержание которого в актуальном состоянии представляет собой отдельную задачу. Далеко не всегда решаемую с помощью дополнительных средств типа portupgrade (которая сама по себе является уже частью не базовой системы, но системы портов).

И тут уместно сказать пару слов еще об одной широко распространенной легенде – будто бы сборка из исходников посредством портообразных управляющих комплексов всегда приводит к более «чистой» (то есть свободной от лишних компонентов) системе. Это далеко не всегда так.

Во–первых, в самой природе портов (и их клонов) часто заложена некоторая избыточность устанавливаемых компонентов. Хрестоматийный пример – cvs-up, требующий для актуализации, как базовой системы, так и портов FreeBSD: в бинарном виде это легкий компактный пакет, не обременяющий даже пользователя с модемным подключением. При сборке же через порты он тянет за собой дистрибутив modula (поскольку на нем написан), который дальнейшем не пригодится никому, кроме приверженцев этого языка программирования.

Что меня всегда удивляло в портах FreeBSD, так это ситуация со сборкой моего любимого редактора joe. Каковой в качестве зависимости непременно требовал GNU make версии 3.80, хотя собственный make входит в состав FreeBSD Distributions и собрать с его посредством joe руками не составляет никаких проблем.

А вообще «чистота» установки пакета очень зависит от конкретной реализации порта. Недавно обнаружил я в новостях сообщение о новом оконном менеджере под названием edo – небольшом, как говорилось, компактном и быстром. Обнаружился он и в портах FreeBSD, откуда я решил его собрать. В итоге этот маленький :–) WM потянул за собой (как зависимость зависимости) не что иное, как MySQL.

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

Каждый, кому доводилось собирать Linux from Scratch, знает, что некоторые версии пакетов Base Linux имеют обыкновение собираться только с определенными (отнюдь не обязательно самыми свежими) версиями таких утилит, как autoconf и automake, категорически отказываясь делать это с другими их версиями (пусть даже более свежими и прогрессивными).

Разработчики Source Based дистрибутивов Linux подчас обходят эту сложность тем, что принудительно вносят в список зависимостей таких «склизких» пакетов autoconf и automake «прошлогоднего» розлива, притом, что сам по себе базовый комплект включает уже текущие на данный момент их версии. В результате чего, например, в Gentoo при выполнении бутстраппинга или emerge system можно с удивлением наблюдать, как система лезет в Интернет за бородатым, как Карл Маркс, autoconf хотя свежая его версия только что была развернута из тарбалла stage1. А если вспомнить, что многие полагают, будто по настоящему стабильное ядро Linux может быть собрано только с gcc версии 2.9.X, результатом чего оказывается присутствие в системе двух компиляторов, то о какой «чистоте» сборки можно еще говорить?

Впрочем, достижение разумного баланса между развертыванием прекомпилированных пакетов, установкой их из портообразной системы и самостоятельной «штучной» сборкой – тема совершенно отдельного разговора. А пока рискну сформулировать еще пару «объективок»:

  • FreeBSD, вопреки устоявшемуся мнению, существенно проще в настройке и локальном администрировании. Даже без учета того факта, что она одна, а Linux–ов – много;
  • напротив, система портов FreeBSD в настоящее время (в отличие от недавнего прошлого), не имеет значимых преимуществ перед аналогичными инструментами из Source Based дистрибутивов Linux.

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

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

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

Ибо такой пользователь большую часть времени проводит в Иксах, и ему абсолютно без разницы, поверх какой операционки эти самые Иксы крутятся. Ему только кажется, что он работает в Linux или FreeBSD (NetBSD, OpenBSD – рискну расширить я этот список). На самом деле работает он в KDE (Gnome, XFce, WindowMaker – нужное дописать). И если бы ему не пришлось предварительно устанавливать и настраивать свою операционку, он имел бы шанс никогда не узнать, в какой именно из POSIX–совместимых систем он работает: перед ним будут одни и те же интерфейсные элементы, одни и те же средства настройки и приложения.

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

И тут я не могу не произнести оду текстовой консоли FreeBSD и средствам управления ею. Каковые включают в себя всего две команды: vidcontrol и kbdcontrol, назначение которых однозначно вытекает из названий. И которые позволяют настроить в консоли абсолютно все – от плотности символов на экране (т.н. разрешения) до цвета бордюров, своих для каждого виртуального терминала.

Пользователь Linux для начала вынужден разбираться с тем, какой из двух пакетов управления консолью – kbd или console-tools применяется в его дистрибутиве. Конечно, ныне они практически идентичны по своим возможностям, но каждый имеет свой набор команд с несколько различающимся синтаксисом. А кое–какие настройки (например, цвета текста и фона) требуют от него использования команд, не входящих ни в один из пакетов. А кое–что (например, те же цвета бордюров) все равно останутся для него недоступными.

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

Конечно, и Linux располагает тем же самым набором классических Unix–утилит (точнее, как и FreeBSD, их аналогами). Однако это именно разобщенные пакеты, разрабатывавшиеся в рамках проекта GNU, в сущности, независимо от операционной системы. И уже в силу этого не столь тесно интегрированные с ней и между собой.

Так что же, в консольном режиме первенство остается за FreeBSD? По моему мнению – безусловно. Но только если речь идет именно о чисто текстовой консоли. Если же обратить свой взгляд на т.н. графическую консоль (реализуемую посредством Frame Buffer), то все видится несколько иначе.

Начать с того, что графическая консоль FreeBSD (т.н. Raster Mode) ограничена одним–единственным разрешением 800×600 (тут речь идет именно о настоящем пиксельном разрешении, а не плотности символов). Да и то на некоторых чипах этот режим не работает вообще, на других имеет вполне скверный вид. Собственно, нормального результата в Raster Mode мне не удавалось добиться ни на одной из имевшихся в моем распоряжении видеокарт.

В Linux же графическая консоль просто радует глаз. Даже при поддержке Frame Buffer для абстрактных VESA–совместимых карт, можно варьировать разрешения от 640×480 до 1280×1024, с изменением глубины цвета в стандартном диапазоне. Что обеспечивает не только комфортный просмотр изображений, но и весьма приличное (на мой взгляд – более чем приличное) воспроизведение видео. Для карт, имеющих хорошо реализованные собственные драйвера в ядре Linux (Matrox, ATI, чипсетное видео от Intel) к этому добавляется возможность установки нестандартных разрешений экрана.

Естественно, никто не использует консоль для работы с изображениями, и очень немногие для просмотра видео. Почему же я придаю графической консоли такое значение? Да потому, что незаметно, но наступает эра жидкокристаллических дисплеев, знаменующая собой смерть чисто текстового режима (но не консольного режима как такового). Почему – легко поймут те, кто видел стандартный текстовый режим 80×25 символов на 18–дюймовом LCD–мониторе с физическим разрешением матрицы 1280×1024. А как это смотрелось бы на экране с соотношением сторон 16:9 я боюсь себе даже представить.

Наконец, остается еще один вопрос, важный для пользователя –О производительности

Представление о большем быстродействии FreeBSD по сравнению с Linux–ом столь же традиционно, как и мнение о большей сложности ее настройки. Однако так ли все однозначно?

Во–первых, как один из основных критериев при этом рассматривается скорость загрузки, корреляция которой со скоростью исполнения приложений несколько сомнительна. Помнится, из немалого числа операционок, которые мне довелось видеть в своей жизни, быстрее всех грузилась MS DOS :–)

Во–вторых, даже если считать скорость загрузки одним из критериев быстродействия, то превосходство перед Linux–ом обнаруживает только FreeBSD 4–й ветки. Пятая ветка грузится ровно столько же, сколько и любой дистрибутив Linux, задействующий файловую систему устройств devfs. Конечно, в благородном Linux–семействе можно подобрать таких представителей, которые грузятся еще дольше, но это очень дружественные к юзеру системы, отягощенные. изобилием стартовых сервисов (в частности, автоопределителем оборудования kudzu).

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

Очевидно, что на производительность файловых операций каждой ОС влияют два фактора – реализация взаимодействия с дисковой подсистемой (для десктопа – конкретно с интерфейсом ATA) и организация поддерживаемой файловой системы (систем). И вот тут–то FreeBSD оказывается в невыгодном по сравнению с Linux положении.

Выше упоминалось, что за счет CAM во FreeBSD (речь идет о 5–й ветке) достигается универсализм в работе с дисковыми контроллерами – у меня сложилось впечатление, что ей вообще безразлично, на каком конкретно контроллере сидит диск (лишь бы он опознавался BIOS’ом – но и это необходимо только для загрузки с него ядра). Однако за универсализм приходится платить. И, похоже, что в данном случае расплата наступает в виде снижения быстродействия дисковых операций – хотя достоверной информации по данному вопросу я не нашел, исходя из общих соображений, это выглядит похожим на правду.

Такова первая сторона вопроса. Вторая – файловая система FreeBSD, каковыми являются UFS и (по умолчанию в 5–й ветке) ее усовершенствованная модернизация UFS2. Традиционно в этой ОС обе используются в частично синхронном режиме (noasync mode), когда изменения метаданных файлов записываются на диск немедленно, а изменения блоков данных – кэшируются в оперативной памяти.

В Linux принята другая модель работы с ATA–дисками: разные типы контроллеров имеют (или не имеют) собственную поддержку в ядре. Что исключает использование явно не поддерживаемых устройств, зато для поддерживаемых, судя по всему, обеспечивает большее быстродействие. Файловые системы (а Linux поддерживает в качестве нативных несколько их разновидностей) по умолчанию все (кроме, возможно, JFS) используются в полностью асинхронном режиме (async mode), когда и данные, и метаданные кэшируются в оперативной памяти.

В результате сочетания указанных факторов файловые операции осуществляются в Linux существенно быстрее, нежели во FreeBSD. Собственно, я всегда это подозревал, но только серия измерений показало, насколько отставание FreeBSD 5–й ветки в этом плане существенно – положение не спасает даже механизм SoftUpdates, призванный повысить и надежность, и производительность манипуляций над файлами. К слову сказать – во FreeBSD 4–й ветки такого отставания ранее не наблюдалось, что косвенно подтверждает негативное влияние работы с дисковой подсистемой (усугубляющее деградацию именно синхронных операций) – в ней модель CAM не используется (по крайней мере, не использовалась, когда я ею пользовался). А вот в Linux с его исключительно асинхронным использованием файловых систем, по моим наблюдениям, зависимости скорости работы с файлами от производительности дискового железа почти нет.

Второе из обещанных исключений относится к операциям своппинга. Каковые в Linux и FreeBSD выполняются существенно по разному. Для установления чего достаточно посмотреть на вывод команды top в той и другой ОС при среднепользовательской нагрузке. В Linux можно видеть, что при достаточном количестве оперативной памяти процент использования swap–пространства стремится к нулю. Например, на моем ноутбуке с Linux (512 Мбайт памяти) в момент сочинения этих строк, при загруженном KDE, html–редакторе Quanta, konsole, двух экземплярах konqueror и работающем mplayer (воспроизводство mpeg и RealAudio), swap не задействован вообще. На десктопе с FreeBSD (1 Гбайт памяти) при той же нагрузке задействованная область подкачки меньше 10% почти не опускается.

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

Все это обуславливает большее объективное (устанавливаемое тестами) и особенно субъективное быстродействие Linux по сравнению с FreeBSD. Хотя должен опять подчеркнуть – речь идет именно о десктопной сфере: на сильно загруженном сервере механизм кэширования FreeBSD может проявить свои сильные стороны, и скоростные соотношения между этими системами, возможно, в ряде случаев окажутся прямо противоположными.Подведем итоги

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

Чем подкупает FreeBSD – так это а) простотой установки, б) логичностью настройки и в) легкостью администрирования в локальном масштабе. Однако те же особенности (по крайней мере, большая их часть) характерны ныне и для лучших (по моему мнению) современных представителей Linux–семейства (CRUX и Archlinux, в какой–то степени – Gentoo). Хотя ожидать от них внутренней стройности и целостности FreeBSD, по понятным причинам, в ближайшее время не приходится.

В то же время я отдаю себе отчет в архаичности файловой системы FreeBSD, особенно отчетливо проступающей в сравнении с современными реализациями ReiserFS и XFS для Linux. И почти месячная эксплуатация FreeBSD–десктопа и Linux–ноутбука – машин с практически равным номинальным быстродействием, – что называется, лицом к лицу, убеждает меня в большем быстродействии последней. А вот что имеет больший вес для пользователя – это каждый должен решать для себя. Хотя, как это ни прискорбно, Linux в настоящий момент кажется лучшим выбором для настольного применения.

Однако подчеркну – в настоящий момент, ведь выход версии FreeBSD 5.3 может существенно изменить ситуацию. Однако что бы ни случилось, будущее хотелось бы видеть как взаимовлияние обеих операционных систем, взаимной ассимиляции всех плюсов и изживании минусов. Почему я и закончил бы свое затянувшееся повествование лозунгом в духе советских времен:

Полезные команды FreeBSD

Содержание

Справка

Отобразить страницу справки.

Поиск по страницам справки. whatis и man -f — поиск слова целиком. apropos и man -k — поиск части слова.

Чтение документации в формате Info.

Поиск в info-документации.

Пользователи и группы

Добавить пользователя в интерактивном режиме.

Сменить пароль пользователя.

Если пользователь не задан, сменить свой пароль.

Открыть файл паролей в текстовом редакторе.

Будет запущен редактор, заданный в переменной окружения EDITOR , по умолчанию vi. В скрипте запуска командной оболочки: » /root/.cshrc «, в строке: » setenv EDITOR «, можно задать другой редактор, например ее или mcedit.

Добавить пользователей в группу.

Удалить пользователей из группы.

Отобразить пользователей группы.

Отобразить принадлежность пользователя к группам.

Устройства и ядро

Отобразить сообщения ядра при загрузке системы. Файл /var/run/dmesg.boot содержит информацию о текущем ядре, процессе его запуска и список обнаруженных ядром устройств.

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

Отобразить информацию из DMI/SMBIOS о материнской плате, процессоре и памяти.

Требуется установка порта dmidecode.

Дерево устройств с информацией об используемых ресурсах (IRQ, DMA, Memory).

Список устройств с группировкой по типу ресурса.

Информация о PCI устройствах.

Информация о количестве прерываний (IRQ) и использующих их устройств.

Полезно для решения проблемы высокой нагрузки процессора обработчиками прерываний (% interrupt, отображаемый командой top).

Список подключенных SCSI/ATA дисков.

Информация о SCSI/ATA диске.

Текущий режим обмена данными с диском.

Список устройств поддерживаемых smartctl.

Требуется установка порта smartmontools.

Информация о дисковом устройстве и поддержке SMART.

Включение SMART на устройстве.

Получить SMART-атрибуты с устройства.

Отобразить всю доступную smartctl информацию об устройстве.

Управление USB устройствами. Версия FreeBSD 8 и выше.

Информация о USB устройствах. Версии FreeBSD 7 и более ранние.

Информация о батарее ноутбука.

Подключение терминалом к устройству на COM-порте N. Для завершения сессии ввести «


Список динамически загруженных драйверов.

Список драйверов, статически скомпилированных в ядро.

Для постоянной загрузки драйвера при старте системы, необходимо добавить параметр: драйвер_load=»YES» в /boot/loader.conf.

Выгрузить драйверы с заданными именами или идентификаторами.
-f — выгрузить драйвер принудительно, в случае если он используется.

Отобразить список переменных ядра.
-d — отображать описания переменных, вместо их значений.

Отобразить значение переменной ядра. Либо задать значение переменной скрипта.

Изменить значение переменной ядра.

Задать разрешение экрана физической консоли.
-i mode — отобразить список доступных видеорежимов.

Для автоматической смены разрешения при старте системы, необходимо задать параметр allscreens_flags=»MODE_режим» в /etc/rc.conf

Для записи сообщений выводимых на консоль в лог-файл, необходимо раскомментировать строчку в /etc/syslog.conf:

Создать лог-файл и задать права доступа:

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

Задать IP-адрес и маску сети для интерфейса ifn. Адрес действителен до перезагрузки системы.

Постоянный адрес задается в /etc/rc.conf строкой:

Задать дополнительный IP-адрес для интерфейса ifn. Если дополнительный адрес находится в той же подсети, что и основной адрес, в качестве маски подсети задаем: 255.255.255.255.

Постоянный адрес задается в /etc/rc.conf параметром ifconfig_интерфейс_aliasN. Где N — порядковый номер дополнительного адреса:

Удалить IP-адрес для интерфейса ifn.

Задать MAC-адрес для интерфейса ifn.

Для постоянной подмены MAC-адреса, необходимо создать стартовый скрипт /etc/start_if.интерфейс, и прописать данную команду.

Принудительно задать стандарт передачи данных для интерфейса ifn, в случае, если при автосогласовании скорость определена неверно.

Для постоянного переопределения скорости, корректируем параметр ifconfig_интерфейс в /etc/rc.conf:

Отобразить список поддерживаемых стандартов передачи данных интерфейсом ifn.

Включить интерфейс ifn.

Отключить интерфейс ifn.

Создать псевдоустройство wlan0 на базе ath0. Сканировать и отобразить доступные точки доступа Wi-Fi.

Создать конфиг для подключения к беспроводной сети: /etc/wpa_supplicant.conf.

Если пароль не задан в параметрах, будет выдан запрос на ввод пароля.

1. Создать псевдоустройство wlan0 на базе ath0.

2. Подключиться к беспроводной сети.

Дополнительные параметры для wpa_supplicant:

-B — запуск в фоновом режиме.

-s — отправлять сообщения в syslog вместо текущего терминала.

3. Получить сетевые реквизиты с DHCP-сервера.

Для автоматического подключения при старте системы добавим в /etc/rc.conf следующие параметры:

Статус текущего беспроводного подключения.

Для работы команды необходимо настроить интерфейс управления в wpa_supplicant.conf:

Отобразить таблицу маршрутов.

Добавить маршрут к сети 192.168.1.0, маска /24, шлюз 192.168.2.1.

Добавить маршрут к хосту 192.168.1.123, шлюз 192.168.2.1.

Задать шлюз по умолчанию 192.168.2.1.

Удалить маршрут к сети 192.168.1.0, маска /24.

Получить маршрут для заданного адреса.

-n — не выполнять реверсный DNS-запрос имени узла.

Проверка связи до заданного узла, оценка задержек и потерь.

-s — размер пакета без учета ICMP-заголовка (8 байт для TCP/IPv4).

-c — количество запросов. Если ключ -c не задан, пинг выполняется до остановки вручную по Ctrl+C.

Пинг ARP-пакетами. Полезно если внутрисетевой хост не отвечает на ICMP-запросы.

Требуется установка порта arping.

Трассировка маршрута ICMP пакетами до заданного адреса. Если не указан ключ -I трассировка ведется UDP пакетами.

Трассировка маршрута TCP пакетами на фиксированный порт. Полезно для обнаружения вышестоящих брандмауэров, блокирующих порты.

Начиная с FreeBSD 10, dig и nslookup больше не входят в базовую поставку, но могут быть установлены из порта dns/bind-tools.

Список открытых портов.

-4 — отображать только порты протокола TCP/IP v4 (не отображать UNIX-сокеты).

-L — не отображать порты, открытые на локальных адресах: 127.0.0.0/8.

-u — отображать только UNIX-сокеты.

Список установленных сетевых соединений.

-4 — отображать только соединения по протоколу TCP/IP v4 (не отображать UNIX-сокеты).

-p порт1,порт2. — фильтр соединений по заданным портам.

Также отображается пользователь и процесс, установивший соединение.

Список установленных сетевых соединений и открытых UDP-портов.

-n — отображать адреса и порты в числовом формате.

-f inet — отображать только соединения по протоколу TCP/IP v4 (не отображать UNIX-сокеты).

-x — отображать статистику сокетного буфера и tcp-таймеров.

В полях Recv-Q и Send-Q отображается входящая и исходящая очередь пакетов. Ненулевое значение входящей очереди, сигнализирует о проблеме: локальное приложение не успевает обрабатывать входящий трафик. Наличие исходящей очереди, является нормой, локальное приложение формирует трафик быстрее, чем он отправляется по сети.

Состояние сетевых интерфейсов. Число полученных и отправленных пакетов, количество ошибок и коллизий.

-d — отображать число отброшенных пакетов.

-b — отображать число полученных и отправленных байт.

-h — отображать данные в удобочитаемом формате.

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

-w — итервал в секундах.

-I — сетевой интерфейс для мониторинга. Если интерфейс не задан, отображаются суммарные данные по всем интерфейсам.

-q количество — выход после заданного каличества интервалов.

-d — отображать число отброшенных пакетов.

Мониторинг текущей загрузки сети.

Данные отображаются в реальном времени в формате: источник, получатель, средняя скорость (бит/с) за последние 2 секунды, 10 секунд, 40 секунд.

Требуется установка порта iftop.

-F 192.168.0.0/16 — считать внешний трафик относительно заданной сети.

-t — текстовый режим вывода, без использования ncurses.

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

s, d — агрегация по источнику или получателю.

S, D — отображать порты для источника и получателя.

t — режим отображения.

, 1, 2, 3 — Сортировка по источнику, получателю или одной из трех колонок скорости.

P, o — пауза или заморозка отображения.

j, k — прокрутка списка.

Отобразить текущую ARP-таблицу или запись для заданного хоста.


-a — отобразить все записи.

-n — адреса в числовом формате.

-i — на заданном сетевом интерфейсе.

Перехват и анализ сетевого трафика, для заданного IP-адреса.

-i — сетевой интерфейс для захвата пакетов.

-n — отображать адреса и порты в числовом формате, не выполнять реверсных DNS-запросов.

-e — отображать данные канального уровня (MAC-адрес, протокол, длина пакета).

-A — отображать данные пакета в текстовой форме.

-s размер — число байт, захватываемых из пакета, по умолчанию начиная с FreeBSD 9 — 65535, в предыдущих версиях — 96 байт.

-w файл — запись пакетов в файл. Полученный файл можно просмотреть в Tcpdump или загрузить в Wireshark.

-C размер — максимальный размер сохраняемого файла, при превышении будет создан новый файл со следующим порядковым номером. Размер задается в миллионах байт.

-c число — максимальное количество захватываемых пакетов, выход при превышении заданного количества.

Перехват сетевого трафика, по заданным портам.

Перехват сетевого трафика, для заданного MAC-адреса.

Перехват сетевого трафика, c фильтром по первым трем байтам MAC-адреса (идентификатору производителя устройства).

ether[0:4] и ether[6:4] — получаем старшие 4 байта MAC-адреса получателя и отправителя.

>> 8 — сдвигаем младший байт.

= 0x112233 — сравниваем оставшиеся 3 байта с искомым адресом: 11:22:33

Загрузить файл по заданному URL.

-o имя — задать имя локального файла.

-n — не сохранять дату модификации файла.

Поддерживаются протоколы: HTTP, HTTPS, FTP.

При работе по HTTPS-протоколу возникнет ошибка: «Certificate verification failed», необходимо установить пакет корневых сертификатов ca_root_nss, поддерживаемый проектом Mozilla, и создать ссылку в /etc/ssl:

Многопоточная загрузка файла по заданным URL с поддержкой докачки.

-a — отображать однострочный индикатор прогресса.

-n — число потоков загрузки, по умолчанию 4.

-o путь — путь и (или) имя сохраняемого файла

Требуется установка порта axel.

Установить SSH-подключение к серверу.

-i путь — путь к ключу авторизации.

-p порт — порт для подключения.

Параметры подключения к серверу могут быть заданы в файле конфигурации:

/.ssh/config , или /etc/ssh/ssh_config .

Для завершения подключения, вводим комбинацию «

SSH также поддерживает форвардинг TCP-подключений и создание VPN-туннелей через защищенное SSH-подключение.

Передача файлов по SSH-протоколу на сервер, или с сервера.

-i путь — путь к ключу авторизации.

-P порт — порт для подключения.

-r — рекурсивное копирование каталогов.

-p — сохранить дату модификации и доступ исходного файла.

-C — использовать gzip-сжатие.

При передаче одного файла с сервера кавычки не требуются.

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

Получить всю доступную информацию от SNMP-агента.

-v — версия SNMP-протокола: 1, 2с, 3.

-Cp — отобразить общее число полученных переменных.

-c public — строка сообщества, она же пароль.

Требуется установка порта net-snmp.

Samba

Требуется установка порта samba.

Проверка файла конфигурации.

Получить список пользователей Samba.

-v — отобразить подробную информацию о пользователях.

Предварительно пользователь должен быть зарегистрирован в системе командой adduser .

Копирование текущей папки на удаленный SMB сервер, с предварительной очисткой удаленной папки.

2>/dev/null — отключает вывод сообщений при использовании в сценарии.

Требуется установка порта samba-smbclient.

SMB-протокол

Команды входят в базовую поставку FreeBSD, установка пакета Samba не требуется. Подробнее о настройке SMB-клиента читаем FreeBSD. Подробное руководство: FreeBSD и CIFS.

Подключить сетевой диск Windows.

-I=адрес — использовать заданный IP-адрес или DNS, минуя разрешение имен NetBIOS.

Подключение производится по устаревшему SMB-протоколу на 139 порт.

Получить IP-адрес по NetBIOS-имени хоста.

Отобразить список сетевых дисков хоста.

Требует ручной загрузки модуля ядра, командой: kldload smbfs.ko

Мониторинг системы

Отобразить недавние сообщения ядра. -a — отобразить весь буфер сообщений системы, включая записи syslog и сообщения консоли.

Мониторинг нагрузки сетевых интерфейсов.

Мониторинг текущих сетевых подключений.

Мониторинг загрузки процессора и дисковой подсистемы.

Мониторинг загрузки дисковой подсистемы.

Мониторинг статистики IP протокола.

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

Список активных пользовательских сессий.

Список последних пользовательских сессий.

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

Отобразить все открытые файлы, сокеты, сетевые подключения и открывшие их процессы.

Требуется установка порта lsof.

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

Процессы

Мониторинг нагрузки системы и процессов.
-P — раздельное отображение нагрузки для каждого ядра процессора.

Мониторинг нагрузки на процессор, память, дисковую подсистему и сеть. Отображение списка активных процессов. Возможность фонового сбора статистики.

Требуется установка порта atop.

Отобразить список процессов.

Параметры команды ps:
-a — отображать процессы всех пользователей.
-x — отображать процессы не связанные с терминалами.
-j , -l , -u , -v вывод различного набора столбцов.
-d — отобразить процессы в виде дерева родитель-потомок.
-r — упорядочить список по текущей нагрузке на процессор.
-ww — отображать команду запуска полностью.


Отображение информации о процессе c заданным PID или именем.

Найти процессы с именем, соответствующим заданному шаблону. Проверить, запущен ли процесс.
-l — отображать имя процесса в дополнение к идентификатору.

Отправить сигнал завершения всем процессам с заданным именем, либо именем, соответствующим заданному шаблону.

Отправить сигнал завершения процессу с заданным PID.

Отобразить путь к исполняемому файлу процесса.

Отобразить командную строку запуска процесса.

Отобразить список файлов, открытых процессом.

Отобразить параметры безопасности процесса: идентификаторы пользователя и группы, umask, флаги.

Отобразить потоки процесса.

Выполнить команду с минимальным приоритетом.

Выполнить команду с минимальным приоритетом. Вариант для csh

Задать приоритет процессу.

Приоритет задается в диапазоне от -20 до 20, отрицательные значения увеличивают приоритет, положительные — уменьшают.

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

Выполнять команду или процесс в реальном времени.
15 — приоритет среди других процессов реального времени.

Файловые системы

Отобразить таблицу разделов на диске ada0.
-p — отобразить имена устройств, вместо индексов разделов.

Создать таблицу разделов формата GPT на диске ada5.

Создать загрузочный раздел, -s размером 64Кб, -a 8 — выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
Записать загрузчик системы, -i — индекс раздела для записи загрузчика.

Создать swap-раздел, -s — размером 4Гб , -a 8 — выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.

Создать UFS-раздел, -s — размером 10Гб, -a 8 — выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.

Создать UFS-раздел, занимающий все доступное пространство, -a 8 — выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.

Удалить раздел на диске ada5. -i — индекс раздела.

Удалить таблицу разделов на диске ada5. -F — вместе с имеющимися разделами.

Создать новую файловую систему, оно же форматирование раздела. Все данные на указанном устройстве будут уничтожены.
-U — включить Soft Updates.
-j — включить журналирование Soft Updates (версия FreeBSD 9 и выше), при использовании этого режима в FreeBSD 9.1 не поддерживаются снапшоты, вследствие чего не работает dump для смонтированных файловых систем.
-L — метка тома. Позволяет монтировать файловую систему из /dev/ufs/метка, без привязки к имени контроллера и номеру порта.

Задать параметры файловой системы. Файловая система должна быть размонтирована, либо смонтирована в режиме чтения. -n enable — включить Soft Updates. -j enable — включить журналирование Soft Updates (версия FreeBSD 9 и выше), при использовании этого режима в FreeBSD 9.1 не поддерживаются снапшоты, вследствие чего не работает dump для смонтированных файловых систем.

Начиная с FreeBSD 7.2, поддерживаются метки на основе уникальных идентификаторах файловых систем, называемых ufsid. Что позволяет монтировать файловую систему из /dev/ufsid/идентификатор, без необходимости присвоения меток.

Задать метку на уровне GEOM. Работает для swap-раздела, и любых других файловых систем, включая UFS2. Позволяет монтировать файловую систему из /dev/label/метка, без привязки к имени контроллера и номеру порта.

Получить список меток, ufsid и соответствующих им устройств.

Отобразить параметры файловой системы.

Проверка файловой системы, исправление ошибок. -y — отвечать «да» на все запросы (лечить всё). -n — отвечать «нет» на все запросы.

Низкоуровневое редактирование файловой системы. Использовать с осторожностью, можно убить файловую систему. -r — запуск в режиме чтения, команды модификации будут недоступны.

Отобразить смонтированные устройства и параметры монтирования.
-p — вывод в формате fstab.
-v — вывод дополнительной информации о файловых системах.

Перевод смонтированной файловой системы в режим чтения.

Перевод смонтированной на чтение файловой системы в режим записи.

Монтировать флешку в формате FAT32.

Монтировать NTFS-раздел, на чтение и запись. Начиная с версии 2009.1.1, перекодировка кириллицы в KOI8-R больше не поддерживается. Настройка UTF-8 в FreeBSD.

Требуется установка порта fusefs-ntfs и запуск демона fusefs.

Демонтировать устройство.
-f — демонтировать принудительно, если устройство используется.

Монтировать iso-образ диска.

Команда «mdconfig -f образ.iso» создает виртуальный диск и возвращает имя устройства.

Затем команда «mount -t cd9660 /dev/устройство /media» монтирует созданный диск в /media.

Демонтировать виртуальный диск.

После размонтирования необходимо отключить виртуальный диск командой mdconfig -d. Параметр «-u 0» задает номер md-устройства.

Отобразить список подключенных виртуальных дисков.

Резервное копирование файловой системы (раздела).
-a — отключить разбивку архива по лентам, разбивать только при исчерпании дискового пространства.
-C — размер кэша в мегабайтах.
-L — бэкап файловой системы, смонтированной на запись, использовать снапшот (не работает в FreeBSD 9.1 при использовании журналирования Soft Updates).
-f — путь к архиву.
/ — точка монтирования копируемой файловой системы.

Резервное копирование файловой системы с gzip-сжатием. -9 — степень сжатия от 1 до 9.

Восстановление файловой системы из резервной копии в текущую папку. Перед восстановлением файловую систему необходимо отформатировать (newfs), смонтировать (mount), сделать текущей папкой (cd). При загрузке с LiveCD, также необходимо смонтировать раздел /tmp, либо задать путь в переменной окружения TMPDIR, при нехватке свободного пространства в /tmp возникнет ошибка.

Восстановление файловой системы из сжатого gzip-архива.

Извлечение файлов в текущую папку. Путь задает папки или файлы для извлечения.

Список файлов в архиве с фильтром по заданному пути.

Извлечение данных в интерактивном режиме.

Отобразить свободное место на дисках.
-g — в гигабайтах.
-m — в мегабайтах.

Рассчитать объем дискового пространства, занимаемое папкой и ее подпапками. Сортировать список по возрастанию.
-k — отображать объем в килобайтах.
-x — игнорировать точки монтирования.
-d 1 — отображать размер подпапок с уровнем вложенности не более 1.

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

Файлы

Список файлов в папке.
-T — отображать полную дату и время модификации.
-i — отображать номер индексного дескриптора файла (inode).

Список файлов в папке.
-U — в качестве даты использовать дату создания,
-t — сортировать список по убыванию даты,
-r — сортировать в обратном порядке.

Отображение информации о файле.
-x — в развернутом формате с заголовками полей. В этом режиме не отображается дата создания файла.

Копировать файлы в заданную папку.

Копировать заданные папки в папку назначения либо копировать содержимое папки источника в папку назначения.
-R — включая вложенные папки,
-p — копировать атрибуты и права доступа,
-x — исключить файлы с других файловых систем.

Переименование либо перемещение файлов.

Создать символическую ссылку.

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

Создать папку, -p создавать родительские папки, если отсутствуют.

Удалить файл либо удалить папку, включая вложенные папки и файлы. -P — уничтожение файлов путем тройной перезаписи содержимого.

Смена владельца файлов.

Смена группы-владельца файлов

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

Доступ определяется восьмеричными значениями, каждое из которых соответственно задает разрешения для владельца файла, группы-владельца и остальных пользователей. Права доступа определяются суммой следующих значений: 4 — чтение, 2 — запись, 1 — исполнение файла. В рассмотренном примере, режим 755 разрешает чтение, запись и исполнение владельцу; чтение и исполнение для одногруппников и прочих пользователей

Особый режим запуска двоичного исполняемого файла: 4 — setuid, запускать от имени владельца вместо текущего пользователя; 2 — setgid, запускать от имени группы-владельца. Использование данных флагов для файлов с владельцем root, представляет собой риск повышения привилегий. Система уведомляет об обнаружении таких файлов в ежедневном отчете безопасности.

1 — sticky bit, задается для папок, разрешает удаление и переименование файла только его владельцу, либо владельцу папки. Обычно используется для папки /tmp.

Сжать файлы в файл1.bz2, файл2.bz2 с удалением исходных файлов.

Отобразить содержимое сжатого файла, оно же распаковка на стандартный вывод. Имеется также bzgrep.

Распаковать файлы с удалением сжатой версии.

Архивация файлов и папок в tar.bzip2-архив.

Архивация файлов и папок в tar.gzip-архив.

Отобразить список файлов в tar-архиве.

Извлечь все файлы из tar-архива в заданную папку.

Архивация папки в cpio-архив. Список файлов, сформированный командой find, подается на ввод cpio. -y включает bzip2-сжатие, также доступные алгоритмы сжатия: -J — xz, -lzma — LZMA, -z — gzip, -Z — compress.

Отобразить список файлов в cpio-архиве.

Извлечь все файлы из cpio-архива в текущую папку.

Рассчитать контрольные суммы, MD5 и SHA-256 хеши для файлов в указанной папке. Сохранить полученную спецификацию в файле mtree.out. -x — пропускать точки монтирования.

Сравнить две спецификации, отобразить различия.

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


Рассчитать MD5 или SHA-256 хеши для заданных файлов. -r — вывод в формате: «хеш файл».

Создать список хешей для всех файлов в текущей папке, и сохранить в files.md5.
-r — включая подпапки.
-e — отображать прогресс.
-l — выводить относительные пути.
-o f — обсчитывать только файлы (исключить символьные ссылки).

Требуется установка порта md5deep.

Сравнить все файлы в текущей папке со списком: -x /path/to/files.md5, созданным ранее и отобразить различия, Для частичной проверки файлов можно указать путь к папке.

CFV — программа с тем же функционалом.

AIDE — контроль целостности системы путем сравнения хешей файлов с рассчитанными ранее.

Работа с текстом

Отобразить содержимое файла.

Объединить текстовые файлы.

Отобразить первые десять строк файла.

Отобразить последние десять строк файла.

Отобразить последние десять строк файла, ожидать и отображать последующие добавляемые в файл строки. Удобно для мониторинга логов в реальном времени.

Вернуться в программу, приостановленную по Ctrl+Z.

Поиск текста во всех файлах текущей папки, включая вложенные папки.

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

Сравнить файлы, отобразить различия.

Сравнить файлы, отобразить различия с выводом в два столбца. -s — отображать только несовпадающие строки.

Сравнение файлов двух папках. -r — включая вложенные папки.

Отобразить определенные столбцы файла, в данном примере — имена и идентификаторы пользователей. Ключ «-d :» задает разделитель столбцов — двоеточие, ключ -f задает вывод первого и третьего столбца.

Отобразить определенный столбец файла средствами awk, в данном примере — список имен пользователей. Ключ -F: задает разделитель столбцов — двоеточие, команда print($1); отображает первый столбец. Описание языка.

Поиск и замена текста в файле. Ключ -i — править исходный файл, сохранить копию, добавив к имени файла .bak. Строка поиска является регулярным выражением. Флаги: g — заменять все найденные вхождения, I — поиск без учета регистра.

Перекодировать файл из KOI8-R в кодировку Windows-1251.

В FreeBSD 10 входит в базовую систему, для предыдущих версий потребуется установка порта iconv.

Дата и время

Отобразить текущую дату и время.

Установить дату и время в 20.02.2009 03:51.

Установить время в 03:51 без изменения даты.

Синхронизировать время с NTP-сервером.

Выбор часового пояса.

Преобразовать время в формате год, месяц день, часы, минуты в UNIX-время.

Отобразить календарь на текущий или заданный месяц.

Порты и пакеты

Получить список доступных для установки пакетов.

Деинсталлировать заданные пакеты или порты, -f — принудительное удаление, если имеются зависимые пакеты.

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

Список установленных пакетов.

Информация об установленном пакете:
-d — список пакетов, от которых зависит данный пакет;
-r — список пакетов, которые зависят от данного пакета;
-l — список установленных файлов.

Определить пакет, которому принадлежит указанный файл.

Проверить целостность установленных пакетов, отобразить измененные файлы.

Проверить целостность системы, отобразить измененные файлы.

Заблокировать или разблокировать операции с пакетом и его зависимостями.

Блокировка необходима для предотвращения автоматического обновления программ, собранных из портов с нестандартными параметрами.

Для удаления заблокированного пакета, его необходимо разблокировать.

—show-locked — отобразить список заблокированных пакетов.

Обновить установленные пакеты.

Ранее загруженные версии пакетов сохраняются в папке /var/cache/pkg . В случае проблем после обновления, можно переустановить предыдущую версию пакета из этой папки.

Список установленных пакетов, с сортировкой по дате установки пакета.

pkg query запрашивает следующие данные:
%t — дата установки в формате UNIX-времени, расшифровать значение можно командой date -r число
%#d — число зависимостей пакета
%n — наименование пакета
%v — версия пакета

Получить коллекцию портов, используя portsnap.

Обновить коллекцию портов, используя portsnap.

Получить коллекцию портов, используя Subversion.

При переходе на Subversion, для исключения конфликтов, необходимо удалить имеющуюся коллекцию портов:

Команда svnlite доступна начиная с FreeBSD 10. В предыдущих версиях требуется установка полной версии из порта subversion.

Обновить коллекцию портов, используя Subversion.

Получить журнал ревизий порта.
-l — число получаемых записей
-q — список ревизий в кратком формате

Откатить порт к заданной ревизии.

Справка по параметрам.

Найти путь к заданному порту.

Кроме коллекции портов, выполняется поиск системных исполняемых файлов, man-страниц, исходных файлов системы.

Поиск по индексу коллекции портов с частичным совпадением имени.

Создать пакет для порта.

В процессе создания пакета выполняется установка порта.

Удалить исходники порта.

Получить и собрать свежую версию порта, в случае успеха, удалить предыдущую версию и установить новую.
-o категория/портV2 — обновление с заменой порта.
-f — принудительная пересборка текущей версии порта, например, после обновления зависимостей.

Требуется установка порта portupgrade.

Восстановить целостность базы пакетов: поиск дубликатов, восстановление зависимостей после принудительного удаления зависимых пакетов и др.).

Требуется установка порта portupgrade.

Проверка установленных портов и пакетов на наличие известных уязвимостей.
-F — получить свежую базу уязвимостей,
-d — отобразить дату создания базы,
-a — отобразить список уязвимостей в установленных портах.

В первой команде аудит выполняется средствами pkgng. Для работы второй команды, потребуется установка порта portaudit.

Список динамических библиотек, необходимых для запуска программы.

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

Требуется установка порта libchk.

Отобразить порядок загрузки служб и ошибки при анализе зависимостей.

Полезно при нарушении порядка старта служб.

Shell-скрипты

Перенаправить вывод команды в файл, включая ошибки.

Отправить вывод команды на почту заданному адресату. -E не выполнять отправку, если вывод пуст.

Выполнить действие в зависимости от того, запущен или не запущен процесс.

Проверка наличия файла.
-e — любой файл,
-d — папка,
-f — обычный файл
-L — символическая ссылка,
-s — файл ненулевого размера,
-r — файл доступен для чтения,
-w — доступен для записи,
-x — исполняемый файл,
-b — блочное устройство,
-c — символьное устройство и др.

Извлечение информации о файле в переменные скрипта.

Строковое сравнение.
Доступны операторы: =, !=, .
-n — строка ненулевого размера,
-z — пустая строка.

Числовое сравнение.
-eq — равно, -ne — не равно,
-gt — больше,
-ge — больше или равно,
-lt — меньше,
-le — меньше или равно.

Получить текущую дату и время в формате 2009-02-20-03_51 в переменную shell-скрипта. Полезно для скриптов архивации.

Получить версию системы в переменную $ver.

Получить версию системы с преобразованием прописных букв в строчные в переменную $ver.

Приостановка выполнения скрипта на заданное число секунд.


Завершение выполнения скрипта. Код завершения: 0 — в случае успеха, номер ошибки от 1 до 255.

Разное

Терминальный мультиплексор, или терминальный оконный менеджер.

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

Первая команда создает новый сеанс. Вторая выполняет подключение к сеансу, запущенному ранее.

Требуется установка порта tmux.

Комбинации клавиш:
Ctrl+b — переход в режим управления Tmux, все команды, указанные ниже, вызываются с данным префиксом.
c — создать новое окно.
n, p, l — переход к следующему, предыдущему или предыдущему активному окну.
0 . 9 — переход к окну с заданным номером.
w — выбор окна в меню.
& — закрыть окно.
«, % — разбивка окна на две панели, вертикальная или горизонтальная.
o — переход к следующей панели.
стрелки — переход панели расположенной сверху, снизу, слева, справа.
пробел, Alt+1 . 5 — переключение схемы расположения панелей.
Ctrl+o, Alt+o — ротация панелей по часовой и против часовой стрелки.
z — развернуть или свернуть текущую панель.
d — выход с сохранением сессии.
? — отобразить все клавиатурные комбинации.

Интерактивная настройка системы: управление пользователями, разметка диска, параметры консоли, сетевые параметры и другие настройки.

Получение и изменение параметров в rc.conf.
-a — отобразить все измененные параметры.

Команда доступна начиная с FreeBSD 9.2.

Запуск и остановка служб.
-e — отобразить все включенные службы в порядке их запуска.

scale=7 — число знаков после запятой.

ibase=16 — задает шестнадцатеричную систему для ввода. Шестнадцатеричные значения вводятся заглавными буквами.

obase=10 — задает систему счисления для вывода. Если для ввода была задана шестнадцатеричная система счисления, то в качестве значения задаем «A» для выбора десятичной системы, или «10» — для шестнадцатеричной.

Быстрая конвертация шестнадцатеричного числа в десятичное средствами bash.

Тест производительности процессора. Дополнительная фишка известного архиватора.

Требуется установка порта p7zip.

Сохранить копию вывода команды в файл, включая ввод пользователя.

Дублировать вывод команды 1 в файл и передать на ввод команды 2.

Завершение работы

Выход из командного интерпретатора, завершение сеанса.

Завершение работы системы с отключением компьютера.

Отложенная перезагрузка системы.
+15 — через заданное число минут.
ГГММДДЧЧММ — дата и время перезагрузки в формате: год, месяц, день, час, минута.

Пригодится для тестирования новых правил брандмауэра и других сетевых настроек, если в случае ошибки доступ к системе будет утерян. Перезагрузка вернет рабочие параметры, если конфигурация загрузки системы не была изменена.

Запланированную перезагрузку можно отменить, завершив процесс командой: pkill ^shutdown$

Быстрое отключение или перезагрузка системы, без выполнения остановки служб. Для нормальной перезагрузки следует использовать команду shutdown.

ЗАПИСКИ АДМИНИСТРАТОРА FREEBSD

FreeBSD для обслуживания 100-200 тысяч соединений

FreeBSD хранит сетевые данные в mbuf clusters, размер каждого 2Кб, но из них используется только около 1500 байт (по размеру Ethernet пакета).

Для каждого mbuf кластера нужен «mbuf», который имеет размер 256 байт и нужен для организации связи цепочек из mbuf кластеров. В mbuf можно поместить полезную информацию в районе 100 байт, но это не всегда используется.

Если в машине 1Гб и больше памяти, то по умолчанию будет создано 25 тыс. mbuf кластеров, что не всегда достаточно.

При ситуации исчерпания числа свободных mbuf кластеров FreeBSD попадает в состояние zonelimit и перестает отвечать на запросы по сети, в top это выглядит как «zoneli». Единственная возможность как-то повлиять на ситуацию — это зайти с локальной консоли и перезагрузить систему, уничтожить процесс находящийся в состоянии «zoneli» невозможно. Для Linux 2.6.x данная проблема тоже характерна, причем работать переставала даже консоль.

PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND

13654 nobody 1 4 0 59912K 59484K zoneli 209:26 0.00% nginx

Для выхода из этой ситуации существует патч возвращающий приложению ошибку ENOBUFS, сигнализирующий о попадании в состояние «zoneli», после чего программа может закрыть лишние соединения. К сожалению патч пока не принят в состав FreeBSD.

Состояние задействованных mbuf кластеров можно посмотреть командой:

4/1421/1425 mbufs in use (current/cache/total)

0/614/614/25600 mbuf clusters in use (current/cache/total/max)

Увеличение числа mbuf кластеров во FreeBSD 6.2 можно произвести в любой момент через параметр kern.ipc.nmbclusters:

Для более ранних версий FreeBSD число mbuf кластеров можно было установить толькона этапе загрузки:

FreeBSD — что это? Преимущества FreeBSD перед Linux Windows

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

В соответствии с данными, полученными от IOSC, в 1999 году практически треть всех машин, которые были подключены к интернету, работали на основе операционной системы Linux, в то время как практически 15% применяли операционную систему FreeBSD. Что это за система, и по сегодняшний день знают лишь немногие современные пользователи ПК, несмотря на все ее преимущества и широкое распространение в свое время. Стоит отметить тот факт, что многие мировые лидеры в сфере Web-услуг активно работают на данной системе. В частности, стоит отметить, что на сегодняшний день система Yahoo основана на FreeBSD. Что это дает пользователям, сами они вряд ли знают и даже задумываются, но владельцы системы уверены, что это правильное решение.

Что представляет собой BSD?

BSD расшифровывается как Berkeley Software Distribution. Именно так в своем время называлось программное обеспечение, которое Калифорнийский университет в Беркли распространял в исходных кодах. При этом стоит отметить тот факт, что изначально дополнение к стандартной операционной системе UNIX – это единственное, что представляло собой FreeBSD. Что это было по сравнению с нынешней версией системы?

На основе версии 4.4 BSD-Lite создавалось несколько операционных систем, имеющих открытые исходные коды. В частности, состав этих систем включал в себя разработки других проектов, среди которых отдельного внимания заслуживает проект GNU.

Структура

Преимущества и особенности, которые имеет данная система, отличаются структурой FreeBSD. Что это за структура:

  • Ядро, которое предназначается для тщательной планировки всех процессов, управления памяти, работы с различными устройствами, а также поддержки многопроцессорных систем. При этом следует отметить тот факт, что, в отличие от ОС Linux, в данном случае есть несколько типов ядер BSD, которые отличаются разными особенностями.
  • Библиотека С, которая используется в качестве основного системного интерфейса программирования, причем основывается на коде из Беркли, а не из проекта GNI.
  • Всевозможные файловые утилиты, компиляторы, оболочки, редакторы связей, а также другие программы конечного пользователя, при этом некоторые из них основываются на коде GNU.
  • FreeBSD UNIX — операционная система, включающая в себя X Window, которая отвечает непосредственно за графический интерфейс. Данная система применяется в преимущественном большинстве версий BSD и официально поддерживается проектом X.Org. Данная система позволяет пользователю делать выбор из нескольких графических оболочек, а также целого ряда легких оконных менеджеров.
  • Большое количество других системных и прикладных программ.

Что такое настоящий UNIX?

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

BSD — это UNIX?

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

Первоначально дистрибутивы BSD, а также графический интерфейс операционных систем представлял собой комплексы пользовательских программ, и такая ситуация продолжалась ровно до тех пор, пока компания не заключила контракт с DARPA, подчиненным Министерству обороны США. Цель данного контракта – это обновление различных коммуникационных протоколов, на которых поддерживалась компьютерная сеть агентства.

В течение 80-х годов сформировалось несколько компаний, занимающихся производством рабочих станций, при этом стоит отметить, что многие из них приобретали лицензии на использование UNIX вместо того, чтобы пробовать разрабатывать с нуля собственное программное обеспечение. В частности, стоит выделить компанию Sun, которая поступила таким образом и решила на основе версии 4.2BSD в конечном итоге выпустить собственную операционку, которая называлась SunOSTM. Когда же компания AT&T, занимающаяся разработкой UNIX, в конечном итоге решила заняться коммерческой продаже собственной операционной системы, появилась довольно аскетичная реализация — System III, за которой с течением времени последовал также выход системы System V.

По какой причине эта операционная система остается невостребованной?

Есть некоторый ряд причин, по которым сегодня FreeBSD 10 пользуется не таким широким спросом:

  • Разработчики чаще всего интересуются качеством собственного кода, причем больше его шлифовкой, а не рекламой.
  • По большому счету, популярность Linux является следствием целого ряда внешних факторов относительно данного проекта, в частности, это касается средств массовой информации, а также компаний, которые решили сформировать собственный бизнес, предоставляя услуги пользователям этой операционной системы.
  • Разработчики BSD в преимущественном своем большинстве являются более опытными по сравнению с разработчиками Linux, в связи с чем они гораздо меньше внимания уделяют тому, чтобы облегчить жизнь простым пользователям. Другими словами, настройка FreeBSD для обычного пользователя является более сложной, чем настройка Linux.
  • В 1992 году разработчик UNIX решил подать в суд на компанию BSDI, которая занималась поставкой операционной системы BSD/386. Основной пункт обвинения в данном случае был тем, что в ОС содержался закрытый код, принадлежавший истцу, и вроде бы дело в конечном итоге было улажено за пределами суда в 1994-м, но целый комплекс вторичных тяжб даже в наши дни отравляет жизнь многим людям.
  • Есть мнение, что сами по себе проекты BSD различаются и при этом могут даже конфликтовать между собой. Данное мнение основывается на событиях, которые происходили достаточно давно.

Что лучше – Linux или BSD?

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

Кому принадлежит BSD?

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

Что все-таки выбрать?

Выбор между этими операционными системами является действительно достаточно сложным, поэтому можно выделить несколько советов, которые позволяют выбрать, какой вариант является оптимальным – Linux или FreeBSD. Команды в обоих случая являются довольно схожими, поэтому выбор чаще всего может строиться на основе следующего:

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

Обеспечивает техническую поддержку, а также обслуживает FreeBSD — порты и системы — компания FreeBSD Mall, Inc.

FreeBSD — основные команды

Andrew | Posted on 20.07.2020 |

Краткий справочник наиболее используемых полезных команд:

Прервать выполняющуюся команду:

^C (Ctrl-C)

Выйти из shell:
exit

Показать документацию к команде ls. Вместо ls можно подставить любую другую команду:
man ls

Описание структур каталогов:
man hier

Показать текущую дату и время:
date

Показать продолжительность того, сколько времеи включена система:
uptime

Показать кто залогинен:
w

Показать последние 10 входов:
last -10

Показать директорию, в которой сейчас находимся:
pwd

Перейти в директорию /usr/local/etc/:
cd /usr/local/etc/
Вместо /usr/local/etc/ можно указать любую другую директорию, в которую есть доступ.

Перейти в каталог на один уровень вверх:
cd ..

Перейти в свою домашнюю директорию:
cd


Перейти в корневую директорию:
cd /

Узнать размер папки:
du -hsx /путь/до/папки

Показать содержимое текущей директории:
ls

Показать подробно содержимое текущей директории (в выводе команды указаны даты, права на файлы/директории):
ls -l

Показать список всех файлов, включая скрытые файлы:
ls -a

Показать права доступа к файлу filename:
ls -l filename

Показать права доступа к директории directory:
ls -ld directory

Создать даректорию newdir в папке tmp:
mkdir /tmp/newdir/

Создаём директорию subdir, даже если у нас отсутствует папка newdir. Все папки создадутся автоматически:
mkdir -p /tmp/newdir/subdir/

Удалить директорию /tmp/newdir/ . Вместо /tmp/newdir/ можете указать нужную вам папку:
rmdir /tmp/newdir/

Удалить непускую директорию newdir. Вместо «newdir» у вас может быть другая папка:
rm -rd /tmp/newdir/

Список частовводимых комманд:
history | awk ‘END>’ | sort -rn | head

Колличество активных соединений tcp:
netstat -an|grep tcp | wc -l

Колличество активных соединений udp:
netstat -an|grep udp | wc -l

Прочитать несколько байт файла и определить тип файла:
file filename
Пример 1:
file /etc/rc.conf
/etc/rc.conf: ASCII English text
Пример 2:
file /bin/cp
/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 7.1, dynamically linked (uses shared libs), FreeBSD-style, stripped

Вывести на экран содержимое файла filename:
less filename
space(пробел) = следующая страница, b = предыдущая страница,
q = выйти, / = искать далее, ? = искать в предыдущем, n = повторить поиск.

Вывести на экран содержимое файла filename. -M = показывать название файла:
less -Mi filename

Показать количество строк в файле filename:
wc -l filename

Показать первые 5 строк файла filename (количество строк можно указать самостоятельно):
head -5 filename

Показать последние 5 строк файла filename (количество строк можно указать самостоятельно):
tail -5 filename

Показать последние 10 строк файла, подождать и показать новые линии по мере их добавления (^ C для выхода). Особенно полезено для лог-файлов:
tail -f filename

Создать файл filename, если он не существует или обновить время создания, если такой файлик имеется:
touch filename

Удалить файл filename:
rm filename

Копировать файл filename и присвоить ему новое имя — newname:
cp filename newname

Копировать файл или файлы в директорию /tmp/ ,название файлов и директорию укажите самостоятельно:
cp file1 file2 … /tmp/

Копировать директорию /tmp/ в директорию /home/ ,название директорий укажите самостоятельно:
cp -R /tmp/ /home/

Перенести файл oldname в туже директорию, где он находится, но под другим названием — newname. Проще говоря, переименовать файл oldname в newname:
mv oldname newname

Перенести файл или файлы в директорию /tmp/ , название файлов и директорию укажите самостоятельно:
mv file1 file2 … /tmp/

Сделать жёсткую ссылку newname на файл filename:
ln filename newname

Найти все файлы в директории /etc/ , или в любой другой указанной вами директории (/etc/ -для примера):
find /etc/ -type f

Найти все файлы в директории /etc/, начинающиеся с rc. Вместо /etc/ и rc укажите свои данные:
find /etc/ -type f -name ‘rc*’

Читать сжатый текстовый файл, без распаковки его на диск:
gzip -dc filename.gz | less
bzip2 -dc filename.bz2 | less

Показать содержимое сжатого архива:
tar -tzf filename.tgz или .tar.gz
tar -tjf filename.tbz2 или .tar.bz2

Извлеч содержимое архива filename.tgz в директорию /tmp/:
tar -xvzf filename.tgz -C /tmp/
Извлеч содержимое архива filename.tbz2 в директорию /tmp/:
tar -xvjf filename.tbz2 -C /tmp/

Извлеч содержимое архива filename.tgz в текущую директорию:
tar -xvzf filename.tgz
Извлеч содержимое архива filename.tbz2 в текущую директорию:
tar -xvjf filename.tbz2

Показать все процессы:
ps auxw

Показать все процессы «sshd»:
ps auxw | grep sshd

Постоянно показывать наиболее активные процессы (q — выход):
top

Отправить сигнал для остановки процесса, идентификатором которого является его pid:

kill pid
или
kill -TERM pid

Послать сигнал всем процессам, чье имя «httpd»:
killall httpd

Искать команду cp в PATH и показать, где она была найдена:
which cp

Показать 20 последних введённых команд:
history 20

Показать все переменные окружения:
printenv

Показать одну переменную окружения ‘PATH’:
printenv PATH
или
echo $PATH
Переменные среды можно установить в

/.bash_profile для bash, или

Показать текущие uid, gid и дополнительные groups:
id

Показать текущее имя пользователя:
whoami

Стать root’ом (пользователь должен быть в группе «wheel»):
su

Изменить uid на username:
su username

Показать все учётные записи (выводится содержимое файла /etc/passwd, где они перечислены):
cat /etc/passwd

Показать все группы (выводится содержимое файла /etc/group, где они перечислены):
cat /etc/group

Создать пользователя username; — m = создать домашную директорию:
pw useradd username -m

Изменить свой пароль:
passwd

Изменить пароль пользователя username (имеет право только root):
passwd username

Добавить пользователя username в группу «wheel» (или отредактируйте /etc/group):
pw usermod username -G wheel

Удалить пользователя username; -r = удалить домашную директорию:
pw userdel username -r

Показать все учётные записи с зашифрованными паролями:
cat /etc/master.passwd

Показать примонтированные файловые системы:
mount

Показать используемое и свободное место на всех примонтированных файловых системах (-h = для большей читабельности для людей, -m = если надо узнать размер в Мб):
df
df -h
df -m

Список процессов с открытыми файлами:
fstat

Показать файловую таблицу:
cat /etc/fstab

Показать слайсы устройства ad0:
fdisk /dev/ad0

Показать статистику дисковых операций ввода/вывода каждые 2 секунды:
iostat 2 gstat -I 2s

Показать список установленных пакетов:
pkg_info

Показать подробное описание пакета «zip» (вместо zip укажите любой установленный у вас пакет):
pkg_info zip\*

Показать список файлов, включенных в пакет «zip»:
pkg_info -L zip\*

Установить пакет foo-1.2.3.tbz:
pkg_add foo-1.2.3.tbz

Установить пакет foo из FTP сервера, используемого по умолчанию:
pkg_add -r foo

Установить пакет foo из альтернативного FTP сервера:
PACKAGEROOT=»ftp://ftp.freebsd. org» pkg_add -r foo

Удалить пакет foo-1.2.3:
pkg_delete foo-1.2.3

Выполнять после установки пакетов, для повторного сканирования PATH. (Необходимо только если используете csh):
rehash

Показать загруженные модули:
kldstat

Загрузить модуль:
kldload название_модуля

Выгрузить модуль:
kldunload название_модуля

Показать все сетевые интерфейсы:
ifconfig -a

Показать таблицу маршрутизации:
netstat -r -n

Добавить статический маршрут по умолчанию:
route add default 192.168.0.254

Отправить ping пакеты на адрес 1.2.3.4, проверка доступности хоста (^C для выхода):
ping 1.2.3.4

Отправка пакетов до адреса 1.2.3.4 и отображение промежуточных найденных маршрутизаторов:
traceroute -n 1.2.3.4

Показать все пакеты, переданные и принятые на интерфейсе em0:
tcpdump -i em0 -n -s1500 -X

Показать только заголовки tcp пакетов приходящих/уходящих на 80 порт:
tcpdump -i em0 -n tcp port 80

Открыть TCP соединение на порт 80 хоста с адресом 1.2.3.4:
telnet 1.2.3.4 80

Инициализация настроек сетевых интерфейсов в /etc/rc.conf:
/etc/rc.d/netif start

Инициализация настроек статических маршрутов из /etc/rc.conf:
/etc/rc.d/routing start


Настройка интерфейса с пометкой «DHCP» в /etc/rc.conf:
/etc/rc.d/dhclient start

Показать активные сетевые подключения:
netstat -finet -n

Показать процессы слушающие на IPv4 sockets:
sockstat -4 -l

Перезагрузить ОС:
reboot

Выключить ПК, немедленно
shutdown -p now

Права на файлы/папки:
права на файлы и папки обозначаются в виде цифр или букв:
4 = read (разрешение на чтение)
2 = write (разрешение на запись)
1 = execute (разрешение на выполнение)
Права представлены тремя цифрами:
первая цифра — разрешения для вас
вторая цифра — разрешения для группы
третяя цифра — разрешения для всех остальных

Сложение цифр можно добиться установления прав. Например:
3 (2+1) — разрешение на запись и выполнение файла (каталога);
5 (4+1) — разрешение на чтение и выполнение;
6 (4+2) — разрешение на чтение и запись;
7 (4+2+1) — разрешение на чтения, запись и выполнение

Для установления прав доступа используется команда CHMOD.
На примере нагляднее:
chmod 777 /tmp/file.sh -разрешить читать, изменять, выполнять файл file.sh всем
chmod 766 /tmp/file.sh -разрешить себе читать, изменять, выполнять файл file.sh, а группе и всем остальным только читать, изменять.
Если надо дать права всем файлам в папке и всему содержимому включая подпапки(рекурсивно), надо использовать параметр -R, т.е.:
chmod -R 766 /tmp/

Узнать погоду из консоли (должен быть установлен curl, Вместо Moscow напишите свой город):
curl -s «http://www.google.com/ig/api?weather=Moscow» | sed ‘s|.*.*|\1|’

Узнать количество установленной физической памяти:
cat /var/run/dmesg.boot | grep «real memory»

Узнать переменные окружения (PATH) в языке csh (по умолчанию во FreeBSD):
setenv | grep PATH

Перестартовать сеть (сетевое подключение по ssh сохранится)
/etc/rc.d/netif restart

Остановить сетевую карту:
ifconfig network-interface down
здесь network-interface — это интерфейс сетевой карты, который можно посмотреть командой ifconfig

Аналогично запуск сетевой карты:
ifconfig network-interface up

Получить список поднятых сетевых интерфейсов:
ifconfig -u

Получить список выключенных сетевых интерфейсов:
ifconfig -d

Посмотреть размер директории:
du -h

Перезапустить ipfw:
/etc/rc.d/ipfw restart

Информация об установленном CPU:
sysctl -a | egrep -i ‘hw.machine|hw.model|hw.ncpu’

Узнать все IP-адреса сайта:
host -t a mediaunix.com

Создать дамп базы mysql:
mysqldump -u ЛогинАдминаБД -pПарольАдминаБД -B ИмяБД > /путь/куда/сохранить/дамп/базы/ИмяБазы.sql

Настроить дату и время на freebsd:
date yymmddhhss
где
yy -сокращённо год (две последние цифры)
mm -месяц
dd -день
hh -час
ss -минуты

Основные команды FreeBSD для начинающих. Работа с пакетами и портами.

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

Работа с пакетами в FreeBSD

Package (Пакет) — это архив типа *.tgz (tar-архив, сжатый zip’ом), в котором лежат уже собранные исполняемы файлы программ, описания и руководства к ним, необходимые конфигурационные файлы и т.п.
В директории /var/db/pkg создается директория с тем же названием, что и пакет, в которую помещаются несколько файлов.
Установить пакет из интернета:

Посмотреть все установленные пакеты в системе:

Удалить пакеты соответствующие регулярному выражению:

Удалить все пакеты:

REHASH

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

Работа с портами в FreeBSD

Ports — это описание процесса «сборки» пакета (package). То есть пакет не скачивается из интернет (не берется с диска CD-ROM или репозитория) в готовом для использования виде, а предварительно «собирается из исходников» на вашем сервере, а потом устанавливается.
Получить и разпаковать свежее дерево портов (один раз при первом запуске)

Обновить дерево портов

При первом запуске утилите portsnap потребуется загрузить упакованный снэпшот полного дерева портов в каталог /var/db/portsnap/
Дерево портов будет развернут в каталог /usr/ports/
Для установки приложения из коллекции портов сначала надо найти его директорию, то есть папочку где все лежит. К примеру установим приложение zoo, для чего в начале выполним команду:

на которую интерпретатор ответит:

теперь перейдем в каталог программы и произведем установку, а по окончании очистим папку от «мусора»:

Для переустановки приложения zoo:

Для удаления приложения zoo:

Если удалить приложение с помощью make deinstall не удается, то следует помнить что FreeBSD не важно как Вы ставили приложение через порты или пакеты. То есть если приложение существует в системе и выдается в списке по команде pkg_info, то его всегда можно удалить командой pkg_delete.

Настройка Freebsd 10

В первой части мы установили свежую версию Freebsd 10.1. Теперь нам необходимо сделать некоторые минимальные системные настройки, которые позволят эффективно, удобно и в некотором смысле безопасно пользоваться сервером.

Настройка SSH сервера

Перво наперво нужно настроить sshd для удаленного подключения. Если сейчас попробовать подключиться к серверу, то ничего не выйдет. Мы увидим окно приветствия, но залогиниться не получится. Это из-за того, что в системе у нас нет ни одного пользователя, кроме root. А этому пользователю по-умолчанию запрещено подключаться через ssh. Соответственно, у нас два пути, либо разрешить подключаться руту, либо добавить других пользователей. Сделаем и то, и другое. Сначала разрешаем пользователю root подключаться по ssh. Для этого редактируем файл /etc/ssh/sshd_config. Пока у нас голая система, воспользуемся для этого редактором ee. Открываем файл на редактирование:

Находим строчку PermitRootLogin, раскомментируем ее и ставим напротив yes. По-умолчанию там стоит no.

Здесь же я рекомендую изменить стандартный порт ssh 22 на что-то более экзотическое. Делается это для того, чтобы роботы, которые постоянно сканируют интернет и пытаются залогиниться на серваки, остались не у дел. На 22 порт постоянно кто-то ломится с несуществующими учетками и подбирает пароли. Все это отражается в логах и может мешать. Сменив порт на нестандартный, мы частично избавляемся от этой проблемы. Ищем строчку со словом Port и меняем значение с 22, например, на 11222.

Сохраняем изменения и выходим из редактора. Теперь нам необходимо перезапустить sshd для принятия изменений. Делаем это командой:

Демон sshd перезапустится. Можно пробовать подключаться по ssh, должно получиться зайти под root.

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

Заполняем необходимые данные пользователя. Обязательно в качестве добавочной группы укажите wheel. Если пользователя не добавить в эту группу, то он не сможет зайти потом рутом. После добавления пользователя, подключаемся им по ssh. После логина используем команду:

Вводим пароль рута и оказываемся в учетной записи root.

Как подключаться и работать решайте для себя сами.

Установка Midnight Commander

Следующим шагом я всегда устанавливаю MC и делаю редактором по-умолчанию mcedit. Мне так удобно и проще делать дальнейшие настройки сервера. Установить можно как из портов, так и из пакетов. На вопрос, как лучше, однозначного ответа нет, каждый решает для себя сам. Я обычно MC ставлю из пакетов, а все остальное уже из портов. Почему именно так, да потому, что Midnight Commander ставится очень долго из портов, тянет кучу зависимостей, а у нас в настоящий момент порты даже не обновлены. На все про все уйдет минут 15-20. Так что я предпочитаю поставить сразу из пакетов. Делаем это командой:

Так как у нас система голая, увидим сообщение:

Соглашаемся. После установки pkg начнется установка MC. Перед этим будет выведен список зависимостей, отмечено, сколько места все это займет. Со всем соглашаемся и начинаем установку. После окончания запускаем файловый менеджер:

Если у вас вместо прямых линий крякозябры, то закрываем putty и в ее настройках меняем кодировку. Идем в Windows -> Translation и выбираем KOI8-U, сохраняем и заходим снова. Теперь все должно быть в порядке.

Дальше устанавливаем редактор по умолчанию mcedit. Если этого не сделать, то в качестве редактора будет выступать vi. Если вы случайно окажетесь в нем, то не сразу сможете банально выйти из него, я не говорю уже о том, что бы что-то там отредактировать и сохранить. Так что идем в домашнюю директорию пользователя, находим там файл .cshrc, открываем, ищем строку

меняем vi на mcedit, сохраняем, закрываем.

Настройка ntp для синхронизации времени

Минимально необходимый инструментарий для настройки мы получили, продолжаем работу. Чтобы время на сервере всегда было актуальным, его надо регулярно синхронизировать. Можно пойти двумя путями. Либо запускать через определенные промежутки времени утилиту ntpdate с ключами, либо настроить и запустить службу ntpd, которая будет постоянно работать и синхронизировать время. Более правильный вариант, использовать службу, но он чуть сложнее в настройке. Чтобы синхронизировать время через ntpdate, достаточно просто ввести команду:

и время будет синхронизировано. Можно запускать эту команду через cron с определенной периодичностью. Если у вас уже запущена служба ntpd, то ntpdate не сработает, выдаст ошибку:

Настроим в таком случае ntpd. Если она у вас уже запущена, то в файле /etc/rc.conf уже есть строчка

если ее нет, добавьте.

Дальше отредактируем файл /etc/ntp.conf В качестве серверов синхронизации укажем:

и добавим две строчки в конец:

Сохраняем, перезапускаем ntpd командой:

Теперь наш сервер будет автоматически синхронизировать свое время.

Установка и настройка ipfw

Настройка фаервола сервера это тема отдельной статьи, тут я подробно останавливаться на этом не буду. Мы просто запустим фаервол на нашей freebsd 10, установим скрипт для безопасного редактирования правил. А дальше каждый уже сам по своему желанию сможет безопасно настраивать удаленно фаервол, не боясь потерять доступ к серверу.

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

Если нам не нужен NAT, forward портов, то больше ничего делать не нужно, ipfw подключится во время загрузки сервера. Если мы оставим только эту строку и перезагрузим сервер, то удаленно мы к нему больше не подключимся, фаервол заблокирует все соединения. Чтобы того не произошло, указываем путь к файлу с правилами:

Идем в указанную папку и создаем файл следующего содержания:

Это полностью открытый фаервол, который разрешает все подключения. Делаем файл исполняемым. Перезагружаем сервер. После перезагрузки подключаемся удаленно. Проблем не должно возникнуть, фаервол у нас ничего не блокирует. Убеждаемся в этом, запустив команду:

В ответ получаем:

На первом месте наше правило, которое все разрешает, на втором, запрещающее. Все пакеты попадают под первое правило. В Freebsd есть замечательный скрипт, с помощью которого можно безопасно настраивать ipfw. Работает он просто. Вы запускаете скрипт, редактируете правила, потом сохраняете их и принимаете изменения. Скрипт после применения правил выводит сообщение о том, что все ли в порядке, записываем правила или нет. Если вы где-то ошиблись и вас отключило от сервера, вы не сможете положительно ответить на вопрос. Скрипт ждет 30 секунд ответа и если его не получает, откатывается на предыдущую версию правил. Вы спокойно подключаетесь и смотрите, где ошиблись.

Копируем себе скрипт:

и делаем его исполняемым:

Теперь можно экспериментировать. При запуске скрипта будет открываться файл с правилами ipfw. После сохранения файла и выхода из него, скрипт спросит, применить или нет новые правила. Дальше я уже описал его логику.

Обновление портов

Основные настройки сделали. Теперь подготовим нашу систему к установке софта. обновим дерево портов с помощью утилиты portsnap. При первом запуске используем команду:

Утилита скачает и распакует порты в папку /usr/ports. Последующее обновление будет производиться командой:

Добавим ее в cron для регулярного обновления портов раз в сутки. Для этого идем в /var/cron/tabs и создаем там файл root.

Файл должен быть следующего содержания:

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

На этом наша настройка системы закончена, переходим к следующей части, в которой займемся настройкой непосредственно компонентов web-сервера.

Цукерберг рекомендует:  Будущее уже здесь! React Native один код для iOS и Android
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих