Рубрики
FreeBSD

FreeBSD работа с пакетами

REHASH

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

старые команды ( почти не актуально для FreeBSD12 ):

/var/db/pkg - создается директория с тем же названием, что и пакет, в которую помещаются несколько файлов.

pkg_info - посмотреть все установленные пакеты в системе
pkg_add -r <название_пакета> - установить пакет из интернета
pkg_delete <название_пакета> - удалить пакет
pkg_delete -x <название> - удалить пакеты соответствующие регулярному выражению
pkg_delete -a - удалить все пакеты:

Управление пакетами:

pkg - при первом запуске pkg без параметров предложит установить себя
pkg help - посмотреть справку
pkg help update - посмотреть справку по конкретной команде update

pkg info - смотрим список установленных пакетов
pkg update - обновляем информацию о доступных пакетах
pkg upgrade - обновляем установленные пакеты

pkg search xorg - ищем пакет по названию
pkg install xorg - установка пакета/пакетов и всех его/их зависимостей
pkg install git-lite vim-lite sudo - установка пакета/пакетов и всех его/их зависимостей

pkg delete xorg - удаляем пакет

pkg autoremove - удаляем пакеты, которые больше не нужны

pkg which /usr/local/bin/git - смотрим, к какому пакету относится файл

pkg info -l cowsay - посмотреть полный список файлов в пакете можно так

pkg audit -F - загружаем базу известных уязвимостей
pkg audit - проверяем установленные пакеты на предмет наличия известных уязвимостей, с ссылками на подробные отчеты

pkg check -s -a - проверяем все установленные пакеты на предмет валидности контрольных сумм входящих в пакеты файлов
pkg check -d -a - проверяем все установленные пакеты на предмет отсутствия требуемых зависимостей

pkg clean - удаляем из кэша старые пакеты

pkg stats - смотрим статистику

pkg lock syncthing - запрещаем/разрешаем обновление конкретного пакета
pkg unlock syncthing - разрешаем обновление конкретного пакета
pkg lock -l - посмотреть список «залоченых» пакетов

Откатиться к более старой версии пакета:
sudo pkg remove chromium - удаляем пакет
sudo pkg install /var/cache/pkg/chromium-51.0.2704.106_2.txz - ставим пакет

Рубрики
FreeBSD

FreeBSD мониторинг производительности / uptime / ps / top / vmstat / iostat

Откуда:

МОНИТОРИНГ ПРОИЗВОДИТЕЛЬНОСТИ И РАБОТОСПОСОБНОСТИ BSD
Кардиограф для чертенка ЕВГЕНИЙ ЗОБНИН АКА J1M (J1M@LIST.RU)

Вступление:

В поставку BSD-систем входит несколько программ, позволяющих провести анализ работоспособности отдельных компонентов ядра и всей системы в целом.
Большинство из них являются представителями семейства утилит  *stat (vmstat, iostat, pstat, fstat, netstat, systat) и предназначены 
для сбора статистики, другие служат несколько иным целям, но так же занимают почетное место в инструментальном наборе системного администратора. 
И те и другие являются незаменимыми помощниками системного администратора (и часто - пользователя домашнего ПК).

uptime:

Традиционно, в UNIX-системах для выявления средней загруженности системы используют команду /usr/bin/uptime.

$ uptime
14:05:06 up 41 min, 4 users, load average: 0.03, 0.08, 0.03

В выводе этой команды присутствует информация о текущем времени. 
Времени, пройденном с момента загрузки системы, числе зарегистрированных пользователей и средней загруженности системы. 
Причем уровень нагрузки представлен не в процентах, а в усредненном количестве процессов, ждущих своего исполнения за последние 5, 10 и 15 минут. 
В слабо загруженной системе эти значения не поднимаются выше единицы. 
Внимательно следя за этими значениями, можно выявить момент, когда нагрузка на систему станет чрезмерной и предпринять соответствующие меры. 
Значения нагрузки 5.0-6.0 говорят о том, что система загружена на 100%, и пора искать виновников проблемы. 

ps:

Для выявления подозрительного процесса можно использовать команду /bin/ps с флагами '-aux'. 
В колонке %CPU для каждого процесса будет указано время использования процессора в процентах. 
Таким способом достаточно легко выявить проблемный процесс. 
Недостаток данного подхода - в том, что с его помощью можно увидеть только моментальный снимок состояния процессов.

top:

Для получения полной картины происходящего в реальном времени лучше использовать программу /usr/bin/top. 
Top, наверное, чаще всех остальных программ используется для выявления проблем с нагрузкой на процессор и память. 
Она выводит на экран список самых «прожорливых» процессов и регулярного его обновляет. 
Используя top, легко определить, какие из процессов наиболее требовательны к ресурсам.

Окно top разделено на две зоны: 
в верхней отображается различная системная статистика, 
в нижней - таблица «особо требовательных» процессов. 

Рассмотрим эти зоны подробнее. 
В первой строке отображается различная информация:
последний PID, назначенный процессу, загруженность системы, время, прошедшее  с момента загрузки и системное время. 

Вторая строка содержит информацию о процессах: 
общее количество и количество процессов, находящихся в каждом из пяти состояний: 
спячка (sleeping), 
исполнение (running), 
готов к запуску (starting), 
зомби (zombies), 
приостановлен (stopped). 

Третья строка сообщает нам о времени (в процентах), 
затрачиваемом процессором на выполнение кода программ (user), 
выполнение кода программ с повышенным приоритетом (nice), 
обработку системных вызовов (system), 
обработку прерываний (interrupt), 
время простоя (idle).

Четвертая строка предназначена для отображения информации о памяти: 
объем используемых станиц памяти (Active), 
объем неиспользуемых страниц памяти (то есть тех страниц, которые могут быть выгружены на диск, Inact), 
объем выгруженных страниц (не обязательно в своп, - нужная страница может находиться в исполняемом файле, Wired), 
объем страниц, используемых для хранения дискового кэша (Cache), 
объем страниц, содержащих буферы (Buf) и объем свободных страниц. 

Пятая строка сообщает об объеме своп-области и степени его заполненности.

Нижняя часть экрана отведена под таблицу процессов. 
Поля таблицы отображают следующую информацию: 
PID процесса (PID), 
имя владельца процесса (USERNAME), 
приоритет процесса, назначенный ядром (PRI), 
приоритет процесса, назначенный пользователем (NICE), 
общий размер процесса (SIZE), 
размер процесса в оперативной памяти (RES), 
состояние процесса (STATE), 
количество секунд процессорного времени ушедшее на исполнение процесса (TIME), 
прогнозируемая загрузка процессора в процентах (WCPU), 
загрузка процессора (CPU).

Процесс, наиболее интенсивно использующий процессор, будет отображаться в первой строке. 
Самые «прожорливые» процессы обычно имеют высокие значения в колонках TIME и CPU. 
Не стоит доверять значениям колонки WCPU, они используются планировщиком задач и могут показывать совершенно дикие числа вроде 1000%.

Поведением top можно управлять с помощью интерактивных команд. 
Например, после нажатия Ctrl+L информация на экране немедленно обновиться, команда i убирает с экрана все спящие процессы и на экране остается только информация о процессе, выполняющимся в данный момент. 
Отличный способ быстрого выявления негодяев. Существует еще несколько других команд, многие из которых имеют аналог в виде флага командной строки. 

Рассмотрим эти флаги:
Флаги '-q' и '-u' очень полезны в тех случаях, когда нагрузка на систему столь велика, что top не в состоянии быстро загрузиться.

Опции командной строки top
s - показывать системные процессы (команда s)
i - не показывать спящие процессы (команда i)
t - не показывать самого себя (команда t)
mcpu - статистика cpu
mio - статистика ввода/вывода (команда m)
q - установить процессу top наивысший приоритет
u - показывать uid вместо имени пользователя
s - временной промежуток между обновлениями (команда s, значение по умолчанию - 2)
u - показывать процессы только данного юзера (команда u)
h - показывать нити (команда h)

vmstat:

Статистика виртуальной памяти
Если треск жесткого диска стал очень частым и надоедливым, то это свидетельствует об одном - о высокой интенсивности операций подкачки. 
При острой нехватке оперативной памяти подсистема VM ядра начинает лихорадочно работать со swap-областью, выгружая и вновь загружая не умещающиеся в основной памяти данные. 
Чтобы убедиться в правоте этого высказывания, достаточно выполнить команду /usr/sbin/swapinfo или /usr/sbin/pstat -s и посмотреть на степень заполненности swap-области.
Для получения подробной статистики о работе подсистемы виртуальной памяти обычно используют команду /usr/bin/vmstat. 
Ее можно найти практически в любой UNIX-системе, начиная с HP-UX и заканчивая Linux. 

Vmstat печатает информацию, разбивая ее на шесть тематических разделов: 
procs - информация о процессах, 
memory - количество доступной памяти,
page - активность страничной подкачки, 
disks - операции с диском, 
faults - переключения контекста и прерывания, 
cpu - использование процессора. 
Не вся эта информация связана напрямую с подсистемой виртуальной памяти, но печатается для того, чтобы можно было получить полную картину происходящего и быстро определить причины возникновения той или иной ситуации. 

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

Информация в разделах page, fault и disks представлена в форме «числов секунду», в остальных разделах значения приводятся на момент снятия информации. 

По умолчанию vmstat печатает данные один раз, и чтобы увидеть статистику в реальном времени, следует запускать программу так: «vmstat <интервал> <количество повторов>». 
Понаблюдав некоторое время за листингом, можно определить, все ли в порядке, или что-то идет не так. 
Например, если значение в колонке w раздела procs часто становится больше нуля, значит, готовые к работе процессы перемещаются в своп, и это говорит о нехватке памяти. 
О том, что памяти не хватает, так же можно узнать, понаблюдав за полем fr раздела page. 

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

Полную статистику за все время непрерывной работы ОС можно узнать, указав флаг '-s'. 
В выводе будет присутствовать информация не только о количестве занятых и освобожденных страниц, но так же общее число системных вызовов, вызовов fork(2) и другой статистической информации. 
Статистика количества прерываний, поступивших от устройств, выводится после указания флага '-i'. 
Любопытной для интересующихся внутренностями ядра может оказаться информация о памяти, выделенной ядром для своих нужд (флаг '-m'). 

iostat:

Статистика ввода/вывода
Для наблюдения за пропускной способностью жесткого диска в BSD (да и в большинстве UNIX-систем) используют команду /usr/bin/iostat. 
Формат выходной информации этой команды сходен с форматом команды vmstat. 
Данные так же разбиты на разделы. 
В первых двух колонках tin и tout (раздел tty) содержится информация о числе символов, введенных и выведенных терминалами и псевдо-терминалами за секунду (практически бесполезная информация). 
Каждый из последующих разделов соответствует конкретному блочному устройству.

За устройством закрепляется три колонки: 
KB/t - объем информации (в килобайтах), переданный за одну пересылку данных, 
tps - количество пересылок данных в секунду, 
MB/S - объем данных (в мегабайтах), переданных за секунду. 

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

Iostat показывает столько разделов устройств, сколько умещается на дисплей 80 на 25 символов (причем независимо от реального размера терминала). 
К счастью, можно указать программе не показывать разделы tty и cpu, запустив ее с флагом '-d'. 
Просматривая листинги vmstat, можно определить, работает ли жесткий диск с полной скоростью, или его что-то ограничивает (например, PIO-режим вместо DMA).

Запустив команду с флагом '-I', можно так же просмотреть статистику за все время работы системы, а не только данные о количестве переданной информации в секунду. 
В этом случае, к каждому устройству будут привязаны такие колонки: 
KB/t - объем информации (в килобайтах), переданный за одну пересылку данных, xfrs - общее количество пересылок данных, MB - общий объем переданных данных.

systat:

-----------------------------------------
Sysstat содержит следующие утлиты: (для debian \ apt install sysstat)
* iostat: отчеты об использовании процессора и дискового ввода/вывода
* mpstat: отчеты об использовании процессора как полностью так поядерно
* pidstat: отчеты об задачах (процессах)
* sadf: отчёты by sar в различных форматах
* sar: отчеты с информацией о системе
* cifsiostat: отчёты об операциях ввода-вывода для файловой системы CIFS
* nfsiostat-sysstat: (устаревшее) отчёты об операциях ввода-вывода для сетевых файловых систем
-----------------------------------------

Один за всех
В стандартную поставку BSD-систем входит программа, аккумулирующая возможности всех рассмотренных выше программ. 
Имя ей , и она не только может представить нам практически все возможности таких программ как vmstat, iostat и netstat, но и делает это в более понятной форме в реальном времени. 
Будучи основанной на библиотеке ncurses, systat не печатает данные последовательно на терминале, а создает собственное окно (окно не в терминологии X Window, а в терминологии ncurses) и регулярно обновляет его.

При запуске systat делит экран на две области. 
В верхней всегда отображается степень нагрузки на систему (та самая, о которой сообщает команда uptime), содержимое нижней зависит от режима, в котором работает программа. 
При запуске без флагов в нижней части отобразится лишь информация о процессе, наиболее интенсивно использующем процессор. 
Для смены режима работы следует перейти в командный режим (ввести ':' как в vi и less) и ввести его имя, либо указать имя в командной строке (не забыв про знак '-').

Всего существует 11 режимов: 
pigs - стандартный, 
swap - информация о swap-областях, 
iostat - статистика ввода/вывода, 
vmstat - статистика виртуальной памяти, 
netstat - сетевая статистика, icmp, ip, icmp6, 
ip6, tcp - количество переданных/посланных сообщений по определенному  протоколу, 
ifstat - количество переданного трафика по каждому из сетевых интерфейсов.

Статистика vmstat:


procs:
r - количество готовых к запуску процессов
b - количество заблокированных в ожидании ресурсов процессов
w - количество готовых к запуску, но перемещенных в своп, процессов

memory:
avm - объем доступной виртуальной памяти
fre - объем свободной памяти

page:
flt - количество «промахов» (обращений к страницам, которых нет в данный момент в оперативной памяти)
re - число возвращенных (восстановленных из списка неиспользуемых) страниц
pi - количество подкаченных страниц
po - количество выгруженных страниц
fr - количество освобожденных страниц
sr - число страниц, обработанных по алгоритму «часы» (алгоритм «часы» используется для пометки давно не использовавшихся страниц)

faults:
in - число прерываний
sy - число системных вызовов
cs - число переключений контекста

disks:
число операций с дисками

cpu:
us - время, истраченное на исполнение кода программ
sy - время, истраченное на исполнения кода ядра (системные вызовы, ввод/вывод)
id - время простоя
top-like программы

терминология vm:
active - используемая страница памяти
inactive - занятая, но неиспользуемая страница (может быть выгружена в swap-область)
wired out - выгруженная страница памяти
cache - страница используется для хранения дискового кэша
buf - страница используется для хранения буфера ввода/вывода
free - свободная страница

софт:

xtop - версия программы для x-window
ktop - top для kde
htop - дружелюбный top
ntop - мониторинг сетевой активности
mytop & mtop - мониторинг запросов к mysql
dnstop - мониторинг dns-запросов
itop - мониторинг генерации прерываний
apachetop - мониторинг популярного web-сервера
Рубрики
FreeBSD

FreeBSD подборка гайдов / установка / краткий обзор

Введение:

Источник: http://www.xakep.ru/articles/common/tips.asp?page=7

1. Установка
2. Конфигурирование
3. Сборка ядра и окружения
4. Развертка портов и установка софта 
5. Краткий обзор
6. Виртуальные консоли и терминалы
7. Права доступа
8. Структура каталогов
9. Монтирование и размонтирование файловых систем
10. Обзор X
11. Основы X
12. Установка XFree86
13. Конфигурация XFree86
14. Свои сценарии в FreeBSD

З.Ы. Все эксперименты проводились на "голой" FreeBSD 5.2, 
т.е. была проведена только основная установка. 
+ Все файлы конфигов моей системы можно посмотреть в архиве perenna.tgz. 

1. Установка

Итак, вы таки решили поставить Фрюху себе. Что ж, тогда читайте. 
Надеюсь, что Фря вам попалась на 4 дисках одним комплектом, 
а не так как мне. У меня тоже 4 диска, но первый - установочный 5.2, остальные содержали порты и дистфайлы и сырцы ядра. 
Ставится все достаточно просто. 
Диск должен быть бутовый, иначе вам придется сделать дискетки для бута, 
все это уже описано на русском еще под систему 4.4, но технология та же.

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

Я выделили системе что-то около 20 гигов, разделив так: 
/ 300Mb
/var 300Mb
/tmp 300Mb
swap 600Mb
/usr 18980Mb

По идее, своп должен быть в два раза больше оперативной памяти. 
Выбираем откуда будем ставить ОСь, 
т.е. в разделе "Media" выбираем CD (ставим-то с CD).
Далее все просто, система ставиться, а мы пьем кофе (ну или пиво, но не советую =) 

2. Конфигурирование

Итак, система подгрузилась и показывает кучу каких-то надписей. Какой кошмар! 
Вот оно поле "login", набираем "root", если пасс был дан при установке, 
то набираем его, иначе уже в системе =) 
Теперь пишем "pwd" и узнаем где мы. 
Скорее всего мы в директории /root, пишем "ls -la" 
и видим файло с именем .profile и .cshrc - редактим оные под себя.

Теперь монтируем CD командой "mount /cdrom", выгружаем оттуда порты в директорию /usr/ports/ 
и сырцы в /usr/src/ и затем "umount /cdrom". Что-то уже есть. 
Теперь будем пересобирать ядро под себя =) 

3. Сборка ядра и окружения

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

Сначала правим файл /etc/make.conf там указываем: 
CPUTYPE?=i686 - здесь надо указать тип вашего процессора, т.е. вместо i686 может быть: 
Для AMD CPUs - athlon-mp athlon-xp athlon-4 athlon-tbird athlon k6-3 k6-2 k6 k5,
для Intel CPUs - p4 p3 p2 i686 i586/mmx i586 i486 i386, 
для Alpha/AXP - ev67 ev6 pca56 ev56 ev5 ev45 ev4, 
для Intel ia64 - itanium 
KERNEL=PERENNA - здесь название вашего ядра. 
У меня по названию машины, т.е. PERENNA.

Так же, надо раскомментировать строку: COMPAT4X= yes , 
т.е. удалить стоящий перед ней символ "#"
и еще в конце файла дописать: CUPS_OVERWRITE_BASE = yes
Итак, сохраняем, закрываем и идем дальше. 

Переходим в /usr/src/sys/ (cd /usr/src/sys/) там видим несколько разделов.
У меня архитектура i386, так что если у вас такая же, то заходим в "i386/conf/" (cd /i386/conf/), 
делаем ls и видим несколько фалов. Там должен быть файл GENERIC - это пример ядра, 
в данный момент работающего на вашей машине. Советую не править его, а юзать только как пример. 
Файл NOTES покажет вам весь список оборудования. Его тоже юзаем как пример. 

Создаем новый файл, который прописали в make.conf (у меня PERENNA). 
Заюзаем с консоли "demesg" и видим все, что система у нас нашла. 
Правим файл нашего ядра. 

Итак, вы написали ядро =) Теперь его надо собрать. 
Однако надо так же собрать окружение, в котором ядро будет работать. 
Только ОБЯЗАТЕЛЬНО зайдите в директория /boot и сделайте копию всех фалов в /root/boot/ и,
так же, скопируйте файлы из папки /boot/kernel в /boot/kernel.work 
Это избавит вас от нервотрепки. 

Делаем следующие команды:
1) cd /usr/src/
2) make buildworld 
3) make buildkernel KERNCONF=PERENNA (прим. здесь название вашего ядра)
4) make installkernel KERNCONF=PERENNA (прим. здесь название вашего ядра)
5) reboot 

Затем, если все получилось (что сомнительно =), при загрузке выберите режим Single User 
или введите boot -s при загрузке из строки. 

Далее делаем:
6) mergemaster -p
7) make installworld
8) mergemaster
9) reboot 
И если все правильно, то у нас новая система. =) Посмотреть можно командой "uname -a". 

ЕСЛИ что-то было сделано НЕ правильно и у вас проблемы, то всегда можете грузануть работающее ядро. 
Для этого в командной строке загрузки пишем "boot /boot/kernel.work" 

4. Развертка портов и установка софта

Теперь будем ставить софт. Переходим в /usr/ports/ (cd /usr/ports/). 
Там большое количество директорий с огромным кол-вом поддиректорий. 
Заходим в /usr/ports/shell/bash2/ и делаем "make", а затем "make install". 
После чего у нас появляется более продвинутый шелл - bash (это действительно рулез =).

Теперь делаем "chfn" (вроде так =) и меняем все что нам нужно. 
В частности "/bin/sh" на "/usr/local/bin/bash". 
Делаем "logout" или нажимаем CTRL-D и заходим вновь. 
Кстати, пока не забыл, в конфиге юзера есть поле "class"... 
Пропишите там "russian" и все будет путем =), тока не забудьте шрифты с портов поставить ;) 
Собственно так можно ставить всю софтину, через порты. 
Удобная система, при отсутствии исходного кода для сборки сама достает его из сети. 
Если же вы достали сырцы руками, то киньте архив в "/usr/ports/distfiles/".

Думаю, если все было сделано правильно, то система будет работать достаточно устойчиво. 
В общем, удачи тебе, BSD-шник!

5 Краткий обзор

Работать во FreeBSD можно разными способами. 
Один из них - набор команд в текстовом терминале. 
Как написано в handbook: "Используйте этот способ, 
и вся гибкость и мощь систем UNIX будет в ваших руках." 

Если графическую систему Вы не настраивали на авто запуск, то можно увидеть нечто вроде: 
[..skip..]
FreeBSD/i386 (perenna.localdomain) (ttyv0) 

login: 
Отсюда мы можем узнать, что это консоль FreeBSD, 
работающая на Intel или совместимом процессоре x86 архитектуры. 
Имя машины "perenna" и она входит в поддомен "localdomain". 
Еще становится ясно, что это консоль "ttyv0". 
Поскольку в системе могут работать несколько людей, 
вход во FreeBSD осуществляется при помощи цепочки имя-пароль. 
В поле "login" вы должны ввести свое имя пользователя, 
а затем в появившееся поле "password" свой пароль. 
Войдя, вы увидите сообщение дня (MOTD, или message of the day) 
за которым последует командная строка (с символом #, $, или %). 

6 Виртуальные консоли и терминалы

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

Из handbook по FreeBSD:
"Вы можете переключаться с одной виртуальной консоли на другую, 
нажимая соответствующие сочетания клавиш на клавиатуре.
У каждой консоли есть свой канал вывода и FreeBSD заботится о том, 
чтобы правильно перенаправить ввод с клавиатуры 
и вывод на монитор как только вы переключитесь с одной консоли на другую. 

Для переключения между консолями зарезервированы специальные комбинации клавиш. 
Вы можете использовать сочетания Alt-F1, Alt-F2, до Alt-F8 чтобы переключаться 
между различными виртуальными консолями в FreeBSD. 

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

Чтобы настроить виртуальные консоли, достаточно отредактировать файл /etc/ttys. 
Давайте немного разберемся с данным файлом. Выглядит он примерно так: 
# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure

Возьмем первую не комментированную строку.
"ttyv0 "/usr/libexec/getty Pc" cons25 on secure"

Для русскоязычных юзверей поведаю такую штуку. Исправьте строку на:
"ttyv0 "/usr/libexec/getty Pc" cons25r on secure"
и консолька "русифицируется" =)

О безопасности: если исправить " secure" на " insecure", 
то система будет спрашивать пароль на root 
даже при загрузке в одно пользовательском режиме. 
Но (!) не спешите исправлять, т.к. если Вы забыли пароль 
на root и переключились в single mode, то Вам может обломиться. 

7 Права доступа

Из handbook по FreeBSD:
"FreeBSD является прямым потомком BSD UNIX и основывается на некоторых ключевых концепциях UNIX. 
В первую очередь это, конечно, тот факт, что FreeBSD - многопользовательская операционная система. 
Это означает, что несколько пользователей могут работать одновременно, 
решая различные задачи и совершенно не мешая друг другу. 
На системе лежит ответственность за правильное разделение и управление такими ресурсами как память, 
процессорное время, периферийные устройства и прочее. 

Многопользовательская среда предполагает наличие механизма регулирования 
прав доступа к любому ресурсу в системе. 
Существует три типа прав доступа: на чтение, запись и исполнение. 
Права сгруппированы три по три, соответственно чтение/запись/выполнение для владельца/группы/всех остальных. 

Численное представление:
Значение | Права                                       | Права
0        | Ничего не разрешено                         | ---
1        | Нельзя читать и писать, разрешено исполнять | --x
2        | Нельзя читать и исполнять, разрешено писать | -w-
3        | Нельзя читать, разрешено писать и исполнять | -wx
4        | Разрешено читать, нельзя писать и исполнятьr| --
5        | Разрешено читать и исполнять, нельзя писать | r-x
6        | Разрешено читать и писать, нельзя исполнять | rw-
7        | Разрешено все                               | rwx

Что бы посмотреть права на файл, можно к команде ls добавлять параметр -l, 
т.е. использовать "ls -l", для вывода полной информации юзайте "ls -a". 
Поскольку все устройства в данной системе представлены в виде файлов в директории /dir,
то и права на их использование можно регулировать, как и с файлами. 
Директории так же представлены как файлы и имеют такие же права, однако использовать 
в данном случае будет ничто иное как вход в каталог (например, при помощи команды "cd"). 

Из handbook по FreeBSD:
"Если же требуется получить список файлов в некотором каталоге, 
права доступа на него должные включать доступ на чтение. 
Для того, чтобы удалить из каталога какой-либо файл, имя которого известно, 
на этот каталог должны быть даны права на запись и на исполнение. 
Существуют и другие права доступа, но они как правило используются в особых случаях, например, 
setuid-бит на выполняемые файлы и sticky-бит на каталоги. 
За дополнительными сведениями по этому вопросу обращайтесь к chmod(1)." 
Так же, для удобства пользователя, могут быть использованы символические выражения. 

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

Опция     | Буква| Значение
(кто)     | u    | Пользователь (User)
(кто)     | g    | Группа (Group)
(кто)     | o    | Другие (Other)
(кто)     | a    | Все (All, ``world'')
(действие)| +    | Добавление прав
(действие)| -    | Удаление прав
(действие)| =    | Явная установка прав
(права)   | r    | Чтение (Read)
(права)   | w    | Запись (Write)
(права)   | x    | Выполнение (Execute)
(права)   | t    |Sticky бит
(права)   | s    | SUID или SGID
Эти значения используются командой chmod так же как и раньше, но с буквами. 

Например, вы можете использовать следующую команду для запрета доступа других пользователей к FILE: 
% chmod go= FILE 

Для изменения более чем одного набора прав можно применить список, разделенный запятыми. 
Например, следующая команда удалит права группы и ``всех остальных'' 
на запись в FILE, а затем добавит права на выполнение для всех: 
% chmod go-w,a+x FILE " 

8 Структура каталогов

Опять же обращусь к handbook (без нее никуда =):
"Файловая система FreeBSD является ключевым моментом в понимании устройства всей системы. 
Самым важным понятием является, несомненно, корневой каталог, обозначаемый символом "/". 
Корневой каталог монтируется самым первым на этапе загрузки и содержит все необходимое, 
чтобы подготовить систему к загрузке в многопользовательский режим. 
Корневой каталог также содержит точки монтирования всех других файловых систем. 

Точкой монтирования называется каталог, который будет соответствовать корню примонтированой файловой системы. 
Стандартные точки монтирования включают /usr, /var, /mnt и /cdrom. 

Эти каталоги обычно перечислены в файле /etc/fstab, 
в котором указаны файловые системы и их точки монтирования. 
Большинство файловых систем, описанных в /etc/fstab монтируются автоматически из скрипта rc, 
если только для них не указана опция noauto. 
Обратитесь к fstab за дополнительной информацией о формате файла /etc/fstab и различных опциях монтирования. 

Полное описание иерархии файловой системы есть в hier. 
Здесь же мы упомянем лишь наиболее важные каталоги. 
/ Корневой каталог файловой системы.
/bin/ Основные утилиты, необходимые для работы как в однопользовательском, 
      так и в многопользовательском режимах.
/boot/ Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы.
/boot/defaults/ Конфигурационные файлы с настройками по умолчанию, используемые в процессе загрузки 
                операционной системы (см. loader.conf). 
/dev/ Файлы устройств (см. intro). 
/etc/ Основные конфигурационные файлы системы и скрипты. 
/etc/defaults/ Основные конфигурационные файлы системы с настройками по умолчанию (см. rc). 
/etc/mail/ Конфигурационные файлы для систем обработки почты (например, sendmail). 
/etc/namedb/ Конфигурационные файлы для утилиты named (см. named). 
/etc/periodic/ Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно (см. cron и periodic). 
/etc/ppp/ Конфигурационные файлы для утилиты ppp (см. ppp). 
/mnt/ Пустой каталог, часто используемый системными администраторами как временная точка монтирования. 
/proc/ Виртуальная файловая система, отображающая текущие процессы (см. see procfs, mount_procfs). 
/root/ Домашний каталог пользователя root. 
/sbin/ Системные утилиты и утилиты администрирования, необходимые для работы как в 
       однопользовательском, так и в многопользовательском режимах. 
/stand/ Программы, необходимые для работы в автономном режиме (например, при установке системы). 
/tmp/ Временный каталог (часто монтируется как mfs; 
      обычно содержимое этого каталога теряется во время перезагрузки системы). 
/usr/ Большинство пользовательских утилит и приложений. 
/usr/bin/ Пользовательские утилиты и приложения общего назначения. 
/usr/include/ Стандартные заголовочные файлы для языка C. 
/usr/lib/ Файлы стандартных библиотек. 
/usr/libdata/ Файлы данных для различных утилит.
/usr/libexec/ Системные даемоны и утилиты (выполняемые другими программами). 
/usr/local/ Локальные пользовательские приложения, библиотеки, и т.д. 
            Также используется по умолчанию коллекцией портов. 
            Внутри /usr/local иерархия каталогов должна следовать hier для /usr. 
            Исключение составляют каталог man, 
            который расположен непосредственно в /usr/local, а не в /usr/local/share, 
            и документация портов,
            которая расположена в share/doc/port. 
/usr/obj/ Архитектурно-зависимые файлы и каталоги, образующиеся в процессе сборки системы 
          из исходных текстов в /usr/src.
/usr/ports/ Коллекция портов FreeBSD (опционально). 
/usr/sbin/ Системные утилиты и утилиты администрирования (исполняемые пользователем). 
/usr/share/ Архитектурно-независимые файлы. 
/usr/src/ Исходные тексты BSD и/или программ.
/usr/X11R6/ Утилиты, приложения и библиотеки X11R6 (X Window System; необязательно). 
/var/ Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей. 
/var/log/ Различные файлы системных журналов. 
/var/mail/ Почтовые ящики пользователей. 
/var/spool/ Файлы очередей печати, почты, и пр.
/var/tmp/ Временные файлы, которые необходимо сохранять между перезагрузками операционной системы. 
/var/yp/ Карты (maps) NIS. "

9 Монтирование и размонтирование файловых систем

Файловые системы, перечисленные в /etc/fstab, монтируются автоматически 
в процессе загрузки (если, конечно, для них не указана опция noauto). 
Формат файла такой: "устройство /точка-монтирования тип файловой системы опции 
частота дампов порядок проверки" 

Итак, тут:
устройство - имя устройства 
точка монтирования - каталог (уже существующий), куда следует смонтировать файловую систему. 
тип файловой системы - тип файловой системы, который передается программе mount. 
FreeBSD юзает ufs. 
опции - например, 
rw для монтирования файловой системы в режиме ``чтение-запись'', 
ro для режима ``только чтение'', за которыми могут следовать и другие опции. 

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

Для корневой файловой системы установите его в 1. 
Для всех остальных - 2 или больше. 

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

Для монтирования используется команда "mount", для размонтирования "umount". 

Полные сведения и ключи этих команд можно узнать по:
#man mount

10 Обзор X

Xfree86 используется FreeBSD для обеспечения мощной графической среды. 
XFree86 является открытой реализацией X Window System. 
Официальный сайт Xfree86: http://www.xfree86.org/.

11 Основы X

Из handbook по FreeBSD:
"Первое знакомство с X может оказаться чем-то вроде шока для тех, 
кто работал с другими графическими системами, 
такими, как Microsoft Windows или Mac OS. 
Нет необходимости вникать во все детали различных компонентов X 
и их взаимодействия; однако некоторые базовые 
знания делают возможным использование сильных сторон X."
Х не первая графическая система, до нее была W (Window), 
а по заявлениям разработчиков - X это следующая буква в алфавите =)

Поскольку FreeBSD разрабатывается как сетевая ОС, т.е. для модели клиент-сервер, 
то и Иксы разрабатывались для такой же модели. 
Разделяются Х на два типа - клиент и сервер. 
Сервером является машина, у которой есть клавиатура, мышь и монитор, 
клиентом будут все приложения, которые пользователь запускает. 
Сервер отвечает за управление дисплеем, обработку ввода с клавиатуры, мыши и так далее. 
Если кому-то не понятно, то разруливаю. 

Клиент (программа) посылает серверу сигнал типа "нарисуй мне окно с координатами 15,56-25,87", 
а сервер посылает сообщения типа "пользователь кликнул на кнопке "Ok". Необходимо запомнить, 
что в Иксах модель клиент-сервер является обратной, чем это обычно представлено. 

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

Из handbook по FreeBSD:
"Философия построения X очень похожа на философию построения UNIX, "инструменты, не политика". 
Это значит, что X не пытаются диктовать то, как должна быть выполнена работа. 
Вместо этого пользователю предоставляются инструменты, а за пользователем остается принятие решения 
о том, как использовать эти инструменты. 

Этот подход расширен в X тем, что не задается, как окна должны выглядеть на экране, 
как их двигать мышью, какие комбинации клавиш должны использоваться для переключения между 
окнами (то есть Alt+Tab, в случае использования Microsoft Windows), 
как должны выглядеть заголовки окон, должны ли в них быть кнопки для закрытия, и прочее.

Вместо этого X делегирует ответственность за это приложению, 
которое называется "Window Manager" (Менеджер Окон). 

Есть десятки оконных менеджеров для X: 
AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, WindowMaker и другие. 

Каждый из этих оконных менеджеров предоставляет различные внешние виды и удобства; 
некоторые из них поддерживают "виртуальные рабочие столы"; 
некоторые из них позволяют изменять назначения комбинаций клавиш, 
используемых для управления рабочим столом; 
в некоторых есть кнопка "Start" или нечто подобное; 
некоторые поддерживают "темы", позволяя изменять внешний вид, поменяв тему. 
Эти оконные менеджеры, а также множество других, находятся в категории x11-wm коллекции Портов.

Кроме того, оболочки KDE и GNOME обе имеют собственные оконные менеджеры, 
которые интегрированы с оболочкой.
Каждый оконный менеджер также имеет собственный механизм настройки; 
некоторые предполагают наличие вручную созданного конфигурационного файла; 
некоторые предоставляют графические инструменты для выполнения большинства работ по настройке; 
по крайней мере один (sawfish) имеет конфигурационный файл, написанный на диалекте языка Lisp.

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

Широко известная политика фокусировки называется "click-to-focus". 
Эта модель используется в Microsoft Windows, 
когда окно становится активным после получения щелчка мыши.

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

Самыми популярными политики фокусирования являются:
focus-follows-mouse (фокус следует за мышью)

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

sloppy-focus (нечеткий фокус)

С политикой focus-follows-mouse если мышь помещается поверх корневого окна (или заднего фона), 
то никакое окно фокус не получает, а нажатия клавиш просто пропадают. 
При использовании политики нечёткого фокуса он меняется только когда курсор попадает на новое окно, 
но не когда уходит с текущего окна.
щелчок для выбора фокуса

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

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

12 Установка XFree86

Перед тем, как ставить Xfree86 решите - какую ветку вы будите юзать. 
На данный момент приемлемыми являются 3 и 4 ветки. 
Главное отличие в том, что 3 ветка больше не поддерживается, 
является стабильной и работает на огромном количестве адаптеров. 
4 ветка является разрабатываемой, немного не стабильна, работает на небольшом количестве адаптеров, 
но очень усилила свою мощь в плане графики. XFree86 4.X теперь является стандартно используемой 
во FreeBSD версией X Window System.

Установка XFree86 из коллекции портов происходит примерно так:
# cd /usr/ports/x11/XFree86
# make all install clean

Если Вы хотите поставить Xfree86 из бинарных фалов, то нужно выполнить:
# pkg_add -r XFree86
Это загрузит последнюю версию XFree86.

Для установки XFree86 4.X вы можете также воспользоваться Коллекцией Портов, 
для чего вам нужно просто набрать следующие команды:
# cd /usr/ports/x11/XFree86-4
# make install clean

13.1

Перед настройкой XFree86 4.X необходима следующая информация о конфигурируемой системе:
Характеристики монитора
Набор микросхем, используемый в видеоадаптере
Объём видеопамяти

Характеристики монитора используются в XFree86 для определения рабочего разрешения и частоты. 
Эти характеристики обычно могут быть получены из документации, 
которая прилагается к монитору или с сайта производителя. 
Тут нужны два диапазона значений, для частоты горизонтальной развёртки 
и для частоты вертикальной синхронизации.

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

Объём видеопамяти графического адаптера определяет разрешение и глубину цвета, 
с которым может работать система. 
Это важно, чтобы пользователь знал ограничения системы.

13.2

Конфигурирование XFree86 4.X

Процесс настройки XFree86 4.X является многошаговым. 
Первый шаг заключается в построении начального конфигурационного файла 
посредством запуска XFree86 с параметром -configure. 
Работая с правами суперпользователя, просто запустите:
# XFree86 -configure

При этом в каталоге /root будет создан скелет конфигурационного файла XFree86 
под именем XF86Config.new (на самом деле в качестве каталога используется тот, 
что задан в переменной окружения $HOME, а она зависит от способа получения прав суперпользователя). Программа XFree86 сделает попытку распознать графическое оборудование системы и запишет конфигурационный файл, загружающий правильные драйверы для обнаруженного оборудования в системе.

Следующим шагом является тестирование существующей конфигурации для проверки того, 
что XFree86 может работать с графическим оборудованием в настраиваемой системе. 
Для выполнения этой задачи пользователю нужно выполнить:
# XFree86 -xf86config XF86Config.new

Если появилась чёрно-белая сетка и курсор мыши в виде X, то настройка была выполнена успешно. 
Для завершения тестирования просто нажмите одновременно Ctrl+Alt+Backspace.

Note: Если мышь не работает, удостоверьтесь, что соответствующее устройство было отконфигурировано. 
Теперь выполните тонкую настройку в файле XF86Config.new по своему вкусу. 
Откройте файл в текстовом редакторе, таком, как emacs или ee. Сначала задайте частоты для монитора.
Они обычно обозначаются как частоты горизонтальной и вертикальной синхронизации. 
Эти значения добавляются в файл XF86Config.new в раздел "Monitor":

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSection

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

X позволяет использовать возможности технологии DPMS (Energy Star) с поддерживающими её мониторами. 
Программа xset управляет временными задержками и может явно задавать режимы ожидания, 
останова и выключения.
 
Если вы хотите включить использование возможностей DPMS вашего монитора, 
вы должны добавить следующую строку в раздел, описывающий монитор: 
Option "DPMS"

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

Они задаются в секции "Screen":
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection

Ключевое слово DefaultDepth описывает глубину цвета, с которой будет работа по умолчанию. 
Это значение может быть переопределено при помощи параметра командной строки -bpp для XFree86(1). 
Ключевое слово Modes описывает разрешение, с которым нужно работать при данной глубине цвета. 
Заметьте, что поддерживаются только те стандартные режимы VESA, 
что определены графическим оборудованием настраиваемой системы.
 
В примере выше глубина цвета по умолчанию равна двадцати четырём битам на пиксель. 
При такой глубине цвета принимается разрешение в одну тысячу двадцать четыре 
на семьсот шестьдесят восемь точек.

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

Обычно это /etc/X11/XF86Config или /usr/X11R6/etc/X11/XF86Config.
# cp XF86Config.new /etc/X11/XF86Config



После того, как конфигурационный файл будет помещён в общедоступное место, настройка завершена. 
Для запуска XFree86 посредством startx установите порт x11/wrapper. 
XFree86 4.X можно также запустить через xdm.
Note: Имеется также графический инструмент для настройки, xf86cfg, 
который включён в дистрибутив XFree86 4.X. 
Он позволяет выполнить настройку в интерактивном режиме посредством выбора 
соответствующих драйверов и настроек. 
Эту программу можно использовать и в консольном режиме, 
просто нужно запустить её как xf86cfg -textmode. 
Для получения более полной информации обратитесь к странице справочной системы xf86cfg.

13.3

Тонкие вопросы настройки
Конфигурирование при работе с графическими чипсетами Intel(r) i810
Конфигурирование при работе с интегрированными наборами микросхем Intel i810 требует наличия agpgart, 
программного интерфейса AGP, посредством которого XFree86 будет управлять адаптером. Драйвер agp присутствует
в ядре GENERIC с момента выпуска 4.8-RELEASE и 5.0-RELEASE. 
Для предшествующих релизов вам нужно добавлять такую строку:
device agp в конфигурационный файл вашего ядра и перестраивать новое ядро.
 
Однако вместо этого вы можете подгружать модуль ядра agp.ko автоматически во время загрузки системы при помощи loader. 

Для этого просто добавьте следующую строку в файл /boot/loader.conf:
agp_load="YES"

Затем, в случае использования FreeBSD 4.X или более ранних её версий, 
для программного интерфейса должен быть создан файл устройств.
Для создания файла устройств для AGP запустите MAKEDEV(8) в каталоге /dev:
# cd /dev
# sh MAKEDEV agpgart

Note: Во FreeBSD 5.X и более поздних версиях будет использоваться devfs 
для выделения файлов устройств в прозрачном режиме, поэтому шаг с MAKEDEV не нужен.

Это позволит конфигурировать графическое оборудование точно так же, как и любой другой графический адаптер. 
Заметьте, что для систем, у которых драйвер agp в ядро не вкомпилирован, попытка погрузить модуль с помощью kldload окончится неудачно. 
Этот драйвер должен оказаться в ядре во время загрузки, либо вкомпилированным, 
либо подгруженным посредством /boot/loader.conf.

Если вы используете XFree86 4.1.0 (или более позднюю версию), 
и выдаются сообщения о неразрешённых ссылках типа fbPictureInit, 
попробуйте добавить такую строчку после Driver "i810" в конфигурационном файле XFree86:
Option "NoDDC"

14 Свои сценарии в FreeBSD

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

Вот самые простые примеры:
Создаем в домашней директории директорию bin:
$> mkdir ~/bin
тут будут лежать скрипты, (которые ты потом сможешь копить, дарить друзьям, или выложить на своем хомяке).

Для того чтобы система в эту диру заглядывала, и выполняла твои скрипты\команды, 
добавляем адрес диры в переменную окружения $PATH. 
Открываем в txt редакторе файл .bash_profile, лежащий в твоей домашней дире. 
Ищем в нем:
export PATH=$HOME/sbin:/ usr/local/bin:/usr/bin:/ bin:/usr/X11R6/bin 
или что-то наподобие этого, но именно "export PATH=". 
Добавляем в эту строку: $HOME/bin. 
Заметь, что адреса в этой строке указаны через двоеточие! Сохраняем.

Создаем в этой дире bin файл:
$> touch часы
Даем ему права на исполнение:
$> chmod +x часы

В любимом txt редакторе пишем в него примерно следующее:
#!/bin/sh
xdaliclock -transparent -cycle
Сохраняем.

Да, xdaliclock это часы для Xwindows. 
Если их нет у тебя в системе, 
то попробуй другие, например xclock.

Теперь раскидываем пальцы и в командной строке:
$>часы &
С помощью скриптов в unix можно сделать почти все. 
Например, когда я пересел с линя на FreeBSD,
то не нашел там любимой команды eject. 
Огорчившись, я написал скрипт eject:
#!/bin/sh
cdcontrol -f /dev/acd0c eject
Более подробную инфу о командах языка оболочки bash смотри в man bash.
Рубрики
FreeBSD

FreeBSD конфигурационные файлы

Источник: http://microsin.ru/content/view/485/43/


Основные настройки системы располагаются в /etc/rc.conf - например, имя машины, использование DHCP, тип мыши. 
Изначально этот файл очень маленький - большинство установок берется из /etc/defaults/rc.conf - файла установок по умолчанию. 
Администратор должен сделать записи в rc.conf, чтобы переопределить строки по умолчанию из /etc/defaults/rc.conf (непосредственно /etc/defaults/rc.conf редактировать нельзя).

В файле /boot/device.hints находятся настройки оборудования, которые FreeBSD применяет при загрузке (номера прерываний, диапазон портов и проч.).  
Файлы конфигурации приложений обычно устанавливаются в /usr/local/etc. 
В случае, если приложению нужно большое количество конфигурационных файлов, для их хранения будет создан подкаталог. 
Обычно, вместе с установкой портов и пакетов, устанавливаются и примеры конфигурационных файлов. 
Обычно они имеют расширение .default.  
Если не существует конфигурационных файлов для этого приложения, они будут созданы путём копирования .default файлов.

Также автонастройка производится скриптами, которые находятся в каталоге /usr/local/etc/rc.d (они запускаются при старте системы). 
Каталог прописан в строке local startup="/usr/local/etc/rc.d" файла /etc/rc.conf.

Рубрики
FreeBSD

FreeBSD подключение к сетевым папкам Windows / smbclient

Источник: http://microsin.ru/content/view/481/43/

В мире *nix для работы с сетями Windows есть пакет Samba.

Для подключения к расшаренному каталогу Windows-машины можно использовать smbclient (samba-клиент):

# smbclient //имя_компьютера/рашаренный_каталог
smb: \>

Становятся доступны определенные команды манипулирования файлами (список команд можно получить, введя ?). 
Для распознавания имен в сети FreeBSD не использует браузинг сети NetBIOS, а использует DNS. 
Поэтому, если вам не хочется вместо //имя_компьютера/... вбивать //IP_компьютера/..., 
то на сервере DNS надо прописать A-записи хостов сети.
Рубрики
FreeBSD

FreeBSD / rc.d / перезапуск подсистемы сети без перезагрузки

Описание:

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

FreeBSD

Версии FreeBSD 5.x/6.x и выше - запуск или остановка сети делается скриптом netif
и используемыми с ним командами start, restart, stop. 
Вам нужно для этого залогиниться под root, тогда станут доступны команды:

/etc/rc.d/netif start - для запуска службы сети 

/etc/rc.d/netif stop - для остановки службы сети

/etc/rc.d/netif restart - для перезапуска службы сети 

/etc/rc.d/netif restart - для перезапуска сети
 
/etc/rc.d/routing restart - для перезапуска маршрутизации

Ручной метод, с использованием ifconfig


ifconfig network-interface down - для остановки сетевого адаптера (NIC) на лету:

ifconfig network-interface up - для запуска сетевого адаптера (NIC) на лету:

ifconfig -d - для просмотра остановленных сетевых интерфейсов

ifconfig -u - для просмотра работающих сетевых интерфейсов
Рубрики
FreeBSD

FreeBSD / начальная настройка / хост / сеть / время

date

pw usermod root -L russian
echo $LANG
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
setenv LANG ru_RU.KOI8-R
setenv LANG ru_RU.UTF-8
ee /etc/login.conf
man 5 loader.conf

kldconfig -r
sysctl -a | wc-l
sysctl -a | wc -l

kldstat
ee /etc/rc.conf
history

Сеть:

#cat /etc/rc.conf - главный конфигурационный файл
-----------------
hostname="freebsd" - имя хоста
#ifconfig_em0="DHCP" - получать IP автоматом
ifconfig_em0="inet 192.168.13.251 netmask 255.255.255.0" - получать ip вручную
ifconfig_em0="inet 192.168.17.2/24"   - получать ip вручную можно записывать так
defaultrouter="192.168.13.1" - задать маршрут по умолчанию 
sshd_enable="YES" - включить SSH
----------------

Перезапуск сети:

/etc/rc.d/netif restart
/etc/rc.d/routing restart

NAT

/etc/rc.conf - настроим конфиг
------------
...
gateway_enable="YES" - включили и разрешили форвард (forward)
ifconfig_em0="inet 10.1.8.200/24" - internet
ifconfig_le0="inet 192.168.0.1/24" - lan
pf_enable=yes - включили фаервол (firewall)
named_enable=yes - сервер имен DNS
------------


/etc/pf.conf - включим NAT
------------
nat on em0 from le0:network -> (em0)
------------

pf - packet filter
/etc/rc.d/pf check - проверка файла конфигурации pf
/etc/rc.d/pf start - запуск pf
pfctl -sn - проверка правил

DNS

/etc/resolv.conf
----------------
domain xxx.un
#nameserver 192.168.0.1
nameserver 127.0.0.1 - так если сами являемся dns сервером
-----------------

/etc/rc.d/named start  - запускаем
Рубрики
FreeBSD

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

Источник:

http://blog.sozinov.eu/2007/02/freebsd.html
 

Обновление:

Прежде чем что-либо делать с портами в FreeBSD их необходимо обновить:

# cat >> /etc/make.conf
SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS=-g -L 2
SUPHOST=cvsup.uk.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile
Ctrl + C
# cd /usr/ports
# make update

Найти в портах (/usr/ports) порт portupgrade (/usr/ports/ports-mgmt/portupgrade), 
установить его

cd /usr/ports/ports-mgmt/portupgrade
make && make install

После этого можно с помощью утилиты portupgrade уже возможно обновлять установленные
 порты (ключ -R говорит о том, что нужно обновить не только порт, но и все его зависимости)

portupgrade -R имя_порта

Чтобы узнать список портов, нуждающихся в обновлении, существует команда

pkg_version -v

Для наведения порядка (удаление неиспользуемых портов, дубликатов версий)
в реестре установленных портов (/var/db/pkg) можно воспользоваться командой

pkgdb -F
Рубрики
FreeBSD

FreeBSD Tools / мини-справочник

Основное:

cd /usr/ports - тут все порты
whereis nameprog - поиск нужного
make configure make install - установка
ee - редактор
/etc/rc.conf - главный файл
/etc/login.conf - права для пользователей
service netif restart /etc/rc.d/netif

Мини-справочник:


quit и exit - используются для выхода из программы. Можно также использовать Ctrl+C или Ctrl+Break

more - основное средство для постраничного вывода на экран текста (содержимое файла или вывода команды). Синтаксис more файл. См. также less и cat.

grep - фильтр для отображения текста и результатов вывода другой программы. Может использовать регулярные выражения. См. также fgrep и egrep

find -  программа поиска файла. Пример поиска файла crontab рекурсивно по всем директориям, начиная с корневого каталога: find / -name crontab

locate -  быстрый поиск файла по предварительно сформированной базе данных. См. также updatedb

updatedb -  обновляет базу данных о файлах для работы команды locate. В новой версии FreeBSD 7.2 для обновления базы данных служит скрипт /usr/libexec/locate.updatedb 

man - система справки по командам. Синтаксис man [раздел] команда или man команда. Раздел указывается в виде номера.

pwd - показывает текущую директорию (каталог)

ls - показывает список содержимого директории (каталога). 
     Позволяет просматривать права и владельцев, делать мягкие ссылки 
     (soft или symbolic link) на файлы и папки. Синтаксис ls [-опции] [каталог]. 
     Примеры опций: -F, -laF, -s, -l. См. также команду ln.

ln - делает жесткие ссылки (hard link), а также мягкие (с опцией -s) ссылки. См. также команду ls.

cd -  меняет текущую директорию. Синтаксис cd каталог. 
      В качестве каталога может быть также / (корневой каталог),
      .. (родительский каталог), 
      . (текущий каталог, хотя его указывать для команды cd нет смысла).

halt - команда для остановки системы. Команда halt -n подавляет системный вызов sync при останове.
shutdown - команда для остановки системы. 
   Примеры: shutdown -h now (выключить компьютер сейчас), 
            shutdown -r 09:30 "Reboot for maintenance" 
           (перегрузить в 9.30 и разослать сообщение пользователям)

reboot - команда для перезагрузки. Аналог shutdown -h now

echo - вывод содержимого переменной или сообщения. Частый гость в скриптах.

dmesg - выдаёт список сообщений загрузки. 
        Очень полезно для просмотра в консоли ssh тех сообщений, 
        которые вываливаются по умолчанию на tty при подключении новых устройств (например USB)

clear - очищает экран консоли

vi - де-факто текстовый редактор. Не для простых пользователей, 
     только для фанатов. Намного приятнее использовать mcedit 
     или на худой конец cat. См. также ee и touch

boot0cfg - конфигуратор начального загрузчика FBSD

ifconfig - конфигурирование параметров сетевого интерфейса, 
           получение параметров сетевых интерфейсов (имени, состояния, MAC-адреса)

dhclient - DHCP клиент. Его вызов без параметров 
           пытается переконфигурировать все сетевые интерфейсы. 
           Чтобы не поломать систему, в качестве параметра нужно 
           как минимум указывать имя сетевого интерфейса 
           (их узнать можно командой ifconfig без параметров).

fsck - проверка дисков

cp - копирование, mv - перемещение файла, rm - удаление файла, 
папки или группы файлов и папок, rmdir - удаление пустого каталога (-p с подкаталогами).

touch - создание пустого нового файла, или изменение даты/времени 
        последнего доступа для существующего файла, 
        или модификация существующего файла.

wc -  подсчёт в файле строк, слов и символов

sort - сортировка текстового файла

tr -  замена/удаление символов в файле (строки, к сожалению, менять нельзя)

cut -  вывод частей строк из текстовых файлов. 
       Пример вырезания только второго поля из строки, 
       разделитель полей - пробел: cut -f2 --delimiter=" " file1.txt > file2.txt

 

fmt - простое форматирование и обработка текста. Более сложная обработка текста - sed и awk.

uniq -c file1 - подсчёт в файле file1 одинаковых строк и вывод только разных строк с количеством их вхождений
uniq nouniq.txt > uniq.txt - оставляет в файле uniq.txt только уникальные строки (только при условии, если он предварительно отсортирован, например командой sort)

chmod - изменение прав на файлы

killall - посылка сигналов демонам и программам. См. также kill

pkg_add - установка пакета. См. также pkg_info, pkg_delete

ftp - ftp-клиент

make - программа для сборки и установки пакетов

whereis - поиск пакетов и приложений. См. также which и locate 

which - показывает, прописана ли программа в переменной среды PATH

mount - монтирование файла устройства в нужную папку. См. также mount_cd9660

smbclient -  подключение к общим сетевым папкам Windows (Samba-клиент)

cmp - сравнение файлов. См. также diff

uname -  выводит версию операционной системы

tcpdump - снифер. См. также tethereal 

tail - вывод хвоста файла. Чрезвычайно удобно следить за изменениями файла, например, логами. Пример: tail -f файл. См. также head

head - вывод первых строк файла

mail -  консольный почтовый клиент. Часто используется для чтения системной почты с разными предупреждающими сообщениями, которую FreeBSD отправляет пользователю root

dd - клонирование дисков

df - просмотр смонтированных дисков. Пример просмотра сколько осталось свободного места: df -m. См. также du 

mkdir - создает папку

ssh - ssh-клиент

telnet - telnet-клиент

perl -  запуск скриптов на выполнение на языке Perl (расширение .pl)

ps - просмотр запущенных процессов. Опция -ax выводит также список запущенных демонов. Команду ps -ax удобно использовать совместно с grep или more

top - просмотр запущенных процессов, а также сколько они занимают места в памяти. 
      Программа top после выполнения остается загруженной, и постоянно обновляет 
      список процессов. Кроме того, программа показывает загруженность процессора, 
      использование памяти, использование swap-файла.

script -  сохранить в файл работу в консоли

ping -  определение доступности хоста по IP

traceroute - построение маршрута до хоста по IP

fdformat - форматирование floppy-дисков

bash - более удобный командный интерпретатор, чем использующийся по умолчанию, стандартный sh

hostname - позволяет узнать имя текущей машины

sockstat -4 - показывает открытые TCP сокеты

history - просмотр листинга ранее введённых в консоли команд

du - просмотр статистики по использованию диска. Например (-h показать в человеческом формате с глубиной подпапок 2): du -h -d2 | more

passwd - смена пароля. Команда chpass запускает vi с открытым файлом информации для root

tar - объединение файлов и каталогов в один файл (обычно для архивирования или записи на ленту)

gzip - архиватор, см. также bzip2

netstat - просмотр информации по сетевой подсистеме. Часто используется для просмотра маршрутов 
          и состояния сетевых интерфейсов. Например, netstat -a показывает статистику сетевых 
          соединений, с адресами и портами. С опцией netstat -na без символьных имен 
          (работает намного быстрее). Просмотр маршрутов netstat -rn.

route - управление маршрутами

date -  получение текущей даты и/или времени. Часто используется в скриптах для 
        генерации уникального имени файла, или имени, содержащего информации о дате

mc - Midnight Commander - аналог файлового менеджера Norton Commander. Для новичка - это первейшая программа, которую следует установить

mcedit - удобный текстовый редактор, который устанавливается вместе с Midnight Commander

host - несет в себе функции nslookup от Windows.

nslookup - проверка работы серверов DNS - можно посылать DNS запросы в интерактивном режиме

nmap - сканер портов и хостов. Это вторая программа, которую стоит поставить.

mpd - демон, обслуживающий PPP-соединения. Позволяет устанавливать VPN-соединения, например, с провайдерами Интернет.

logger - средство для занесения записей в syslog с командной строки

sysctl - нужна для просмотра и установки переменных системы

ipnat - утилита, реализующая подсистему NAT

who - посмотреть, кто работает и за какими консолями

whoami - посмотреть, под каким именем я залогинен

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

w - посмотреть, кто залогинен, когда, с какого IP, какая программа выполняется в консоли

time - позволяет измерить время работы скрипта или программы

iconv - мощный перекодировщик (из одной кодировки в другую) текстовых файлов

cat - мощная команда как для вывода файлов на экран (альтернатива more), так и для создания новых файлов. Намного удобнее, чем паленый текстовый редактор vi.

ldd full_path_to_binary_program_file - показывает зависимости для программы - какие библиотеки или модули использует программа, и где они находятся


adduser - добавление нового пользователя в систему

rmuser - удаление пользователя из системы

service - скрипт в Red Hat Linux, который позволяет посмотреть статус сервисов (service --status-all), 
          а также остановить, запустить и перезапустить их (например service smb restart). 
          Под сервисами понимаются демоны.

scp - secure copy program - утилита для защищенного копирования файлов по протоколу SSH. 
      Как пользоваться - см. статью "pscp: как передавать файлы по протоколу ssh".

tee - перенаправление клавиатурного ввода в файл. Удобная замена текстовому редактору в том случае, 
      когда нужно в putty что-то скопировать из буфера обмена Windows в файл на *nix. 
      Пример: tee имя_файла.txt, после чего жмем Ctl+V (вставка из буфера обмена в консоль putty) 
      и потом Ctrl+C (окончание работы для tee). В результате получаем в текущем 
      каталоге файл имя_файла.txt с содержимым буфера обмена.

chgrp chown chmod - три команды, меняющие у файлового объекта (файла, папки, вложенных папок и файлов) 
                    соответсвенно группу (group), владельца (owner), прав доступа (mode). Для того, чтобы команда 
                    применялась на вложенные файлы и папки, нужно вызывать команды с опцией -R. Пример смены группы: chgrp -R <группа>. 
                    Напомню, что права, группу и владельца на файлы и каталоги можно посмотреть командой ls -l.
Рубрики
FreeBSD

FreeBSD настройка сети

rc.conf

ee /etc/rc.conf - главный конфиг FreeBSD
defaultrouter="IP_адрес_вашего_маршрутизатора(default_gateway)"
hostname="полное имя этой машины"
ifconfig_ed0="inet   netmask <сетевая маска>"
ifconfig_re0="inet  192.168.0.3 netmask 255.255.255.0"
ifconfig_en0="192.168.0.4/24"
defaultrouter="192.168.0.1"

Все эти изменения вступят в силу после перезагрузки.
/etc/rc.d/netif restart
/etc/rc.d/routing restart

resolv.conf

Конфигурирование адресов DNS сервера вручную
ee /etc/resolv.conf 
Посмотрите на следующий пример и создайте такой файл на свой файловой системе. 
IP адреса необходимо заменить на те ip  адреса, которые вам дал ваш провайдер. 
Вы можете указать любой количество DNS серверов здесь.

nameserver             192.168.64.68
nameserver             192.168.64.65

hosts

Дополнительно необходимо добавить свой IP и имя данной машины в /etc/hosts. 
В этом файле должен быть записан ваш IP адрес и имя вашего компьютера. 

Обыкновенно localhost тоже записывают в этом файле, чтоб у вас нормально работала бы система 
и могла бы находить IP установленный на локальном логическом интерфейсе lo0 
(loopback. петля, через него взаимодействуют локально установленные приложения).

ee  /etc/hosts
127.0.0.1 localhost. localhost
192.168.0.3 xxx.com

Вы можете добавлять сюда любые пары IP имя компьютера, которые должны работать БЕЗ участия DNS.

Рубрики
FreeBSD

PPTP

1. http://myfreebsd.ru/freebsd_as_server/server-pptpd
Простой pptp-сервер на FreeBSD можно поднять на базе надстройки над ppp уровня пользователя. Это pptpd, ставим из портов:
# cd /usr/ports/net/ptpd
# make install clean
В файл /etc.rc.conf добавляем строки
pptpd_enable="YES"
pptpd_flags="-l 192.168.0.1"

Опция -l указывает на то, что порт 1723 следует слушать только на IP-адресе 192.168.0.1. В файл /usr/local/etc/pptpd.conf вносим строки
options /etc/ppp/options.pptpd
debug
noipparam

В файл /etc/ppp/options.pptpd вносим такие строки
name pptpd
+MSChap-V2 mppe-128 mppe-stateless
lcp-echo-interval 5
lcp-echo-failure 3
debug
dump
lock
novj
logfile /var/log/pppd.log

В файл /etc/ppp/ppp.conf добавляем секцию

pptp:

enable MSChapV2
set mppe 128 stateless
disable deflate pred1
deny deflate pred1
set timeout 0
set ifaddr 10.63.1.1 192.168.1.32-192.168.1.63 255.255.255.255
accept dns
set dns 8.8.8.8
disable proxy

    10.63.1.1 — адрес, который получит PPTP-сервер при установлении соединения точка-точка;
    192.168.1.32-192.168.1.63 — пул адресов, получаемых клиентами.

И, наконец, в файл /etc/ppp/ppp.secret добавляем строку
username        userpass    192.168.1.2

username — логин;
userpass — пароль
192.168.1.2 — IP-адрес, который получает клиент, можно не указывать, тогда адрес выдается из пула автоматом динамически.

Запускаем сервер
# /usr/local/etc/rc.d/pptpd start

Проверяем работу:
# netstat -an |grep 1723
tcp4       0      0 192.168.0.1.1723      *.*                    LISTEN

После установки соединения ifconfig покажет появление интерфейса tun0:

tun0: flags=8051 metric 0 mtu 1498

inet 192.168.1.1 —> 192.168.1.2 netmask 0xffffffff
Opened by PID 8267

Вот и вся настройка PPTP-сервера.