Главная / Администиррование FreeBSD
Администиррование FreeBSD


Приложение PDF Печать E-mail
Статьи - Администиррование FreeBSD

Добавление диска к системе
sysinstall → confugure …
Получение информации о слайсах
[gX:~] # fdisk
******* Working on device /dev/ad0 *******
parameters extracted from incore
disklabel are:
cylinders=116301 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=116301 heads=16 sectors/track=63 (1008 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 63, size 10474317 (5114 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 1023/ head 3/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
Получение информации о разделах внутри слайса
[gX:~] # bsdlabel ad0s1
# /dev/ad0s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 1024000 0 4.2BSD 2048 16384 64008
b: 1024000 1024000 4.2BSD 2048 16384 64008
c: 10474317 0 unused 0 0 # "raw"
part, don't edit
d: 6291456 2048000 4.2BSD 2048 16384 28552
e: 2134861 8339456 4.2BSD 2048 16384 28552
76
Создание файла конфигурации описывающий слайс
[gX:~] # cat > addsliceconf
g c116301 h16 s63
p 2 165 10474381 40000000
a 1
Тестирование (-t) файла конфигурации
[gX:~] # fdisk t
f
addsliceconf /dev/ad0
******* Working on device /dev/ad0 *******
fdisk: WARNING line 1: number of cylinders (116301) may be outofrange
(must be within 11024
for normal BIOS operation, unless the
entire disk
is dedicated to FreeBSD)
fdisk: WARNING: adjusting start offset of partition 2
from 10474381 to 10474443, to fall on a head boundary
fdisk: WARNING: adjusting size of partition 2 from 40000000 to
39999141
to end on a cylinder boundary
parameters extracted from incore
disklabel are:
cylinders=116301 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=116301 heads=16 sectors/track=63 (1008 blks/cyl)
Information from DOS bootblock is:
1: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 63, size 10474317 (5114 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 1023/ head 3/ sector 63
2: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 10474443, size 39999141 (19530 Meg), flag 0
beg: cyl 151/ head 5/ sector 1;
end: cyl 920/ head 15/ sector 63
3: <UNUSED>
4: <UNUSED>
Внесение изменений
[gX:~] # fdisk f
addsliceconf /dev/ad0
******* Working on device /dev/ad0 *******
fdisk: WARNING line 1: number of cylinders (116301) may be outofrange
(must be within 11024
for normal BIOS operation, unless the
entire disk
is dedicated to FreeBSD)
77
fdisk: WARNING: adjusting start offset of partition 2
from 10474381 to 10474443, to fall on a head boundary
fdisk: WARNING: adjusting size of partition 2 from 40000000 to
39999141
to end on a cylinder boundary
Проверка таблицы слайсов
[gX:~] # ls /dev/ad0s2
/dev/ad0s2
[gX:~] # fdisk /dev/ad0
******* Working on device /dev/ad0 *******
parameters extracted from incore
disklabel are:
cylinders=116301 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=116301 heads=16 sectors/track=63 (1008 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 63, size 10474317 (5114 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 1023/ head 3/ sector 63
The data for partition 2 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 10474443, size 39999141 (19530 Meg), flag 0
beg: cyl 151/ head 5/ sector 1;
end: cyl 920/ head 15/ sector 63
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
Создание одного раздела (-w - по умолчанию) внутри слайса
[gX:~] # bsdlabel ad0s2
bsdlabel: /dev/ad0s2: no valid label found
[gX:~] # bsdlabel w
ad0s2
[gX:~] # bsdlabel ad0s2
# /dev/ad0s2:
8 partitions:
78
# size offset fstype [fsize bsize bps/cpg]
a: 39999125 16 unused 0 0
c: 39999141 0 unused 0 0 # "raw"
part, don't edit
Создание файловой системы в разделе
[gX:~] # newfs b
8192 f
1024 O
2 U
ad0s2a
/dev/ad0s2 : 19530.8MB (39999140 sectors) а block size 8192,
fragment size 1024
using 433 cylinder groups of 45.16MB, 5781 blks, 11584
inodes.
with soft updates
superblock
backups (for fsck b
#) at:
144, 92640, 185136, 277632, 370128, 462624, 555120, 647616,
740112, 832608,
925104, 1017600, 1110096, 1202592, 1295088, 1387584, 1480080,
1572576,
1665072, 1757568, 1850064, 1942560, 2035056, 2127552, 2220048,
2312544,
...
Монтирование нового раздела
[gX:~] # mkdir /data
[gX:~] # mount /dev/ad0s2a /data
[gX:~] # cat >> /etc/fstab
/dev/ad0s2a /data ufs rw 1
1
79
Резервное копирование и восстановление
Варианты резервного копирования
1. файлы данных программ (каталог /var)
2. файлы конфигураций (каталоги /etc /usr/local/etc /var/named/etc)
tar c
f
etc/
usr/local/etc/ var/named/etc/ | ssh uX@g50 \
“cat > gX.conf.tar”
1. файлы всей операционной системы (файл /etc/fstab)
План резервного копирования всей системы
part mount util file size
a / dump root.dmp 138Mb
d /var/ dump var.dmp 34Mb
e /usr/ tar usr.tgz 230Mb (без /usr/ports)
Создание резервной копии (backup)
[hostX:~] # rsh l
uX gZ "touch root.dmp"
[hostX:~] # dump 0 aLf
uX@gZ:root.dmp /
DUMP: Connection to gZ.class established.
...
DUMP: DUMP IS DONE
[hostX:~] # rsh l
uX gZ "touch var.dmp"
[hostX:~] # dump 0 aLf
uX@gZ:var.dmp /var
DUMP: Connection to gZ.class established.
...
DUMP: DUMP IS DONE
[hostX:~] # cd /usr
[hostX:/usr] # tar –czvf exclude
ports/ . | rsh l
uX gZ "cat
> usr.tgz"
Восстановление (restore)
Восстановление отдельных файлов
На backup сервере:
[g50:~u1] # restore xf
root.dmp /etc/fstab
You have not read any tapes yet.
If you are extracting just a few files, start with the last volume
and work towards the first; restore can quickly skip tapes that
80
have no further files to extract. Otherwise, begin with volume 1.
Specify next volume #: 1
set owner/mode for '.'? [yn] y
[g50:~u1] # cat etc/fstab
или
[g50:~u1] # restore if
root.dmp
restore > add etc
restore > extract
You have not read any tapes yet.
If you are extracting just a few files, start with the last volume
and work towards the first; restore can quickly skip tapes that
have no further files to extract. Otherwise, begin with volume 1.
Specify next volume #: 1
set owner/mode for '.'? [yn] y
restore > quit
[g50:~u1] # ls etc/
Восстановление всей системы
Загружаем систему с livecd
При использовании FreeBSD livefs диска выбираем пункты меню:
"Fixit" >
CDROM/DVD >
AltF4
При использовании frenzy livecd в процессе загрузки указываем опцию
nohdd
Настраиваем и тестируем сеть
Fixit# ifconfig rl0 inet 10.10.106.X/24
Fixit# ping 10.10.106.Z
...
Добавляем упоминание сервиса rsh в файл /etc/services
Fixit# cat >> /etc/services
shell 514/tcp
<Ctrl>D
Создаем файловую систему на новом диске
Используем sysinstall вместо утилит fdisk, bootmgr, bsdlabel и newfs
Fixit# sysinstall
Configure
Fdisk
C Create
Slise
S Set
Bootable
81
W Write
changes
BootMgr
Quit
Exit
Exit Install
Fixit# /stand/sysinstall
Configure
Label
C Create
500M
FS
/mnt/a (will be "/")
S Toggle
Softupdates
C Create
500M
FS
/mnt/b
C Create
3G
FS
/mnt/d (will be "/usr")
C Create
FS
/mnt/e (will be "/var")
W Write
Q Finish
Exit
Exit Install
Fixit# mount
/dev/md0 on / (ufs, local)
devfs on /dev (devfs, local)
/dev/acd0 on /dist (cd9660, local, readonly)
/dev/ad0s2d on /mnt/a (ufs, local)
/dev/ad0s2e on /mnt/b (ufs, local, softupdates)
/dev/ad0s2f on /mnt/d (ufs, local, softupdates)
/dev/ad0s2g on /mnt/e (ufs, local, softupdates)
Восстанавливаем файлы
/ раздел
Fixit# cd /mnt/a
Fixit# restore rf
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. .Z:root.dmp
При необходимости можно откорректировать востановленные файлы конфигурации
Fixit# ee /mnt/a/etc/rc.conf
Fixit# ee /mnt/a/etc/fstab
82
/var раздел
Fixit# cd ../e
Fixit# restore rf
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. .Z:var.dmp
/usr раздел
Fixit# cd ../d
Fixit# rsh l
uX 10.10.106.Z "cat usr.tgz" | tar xvf

Исправляем имена разделов
Fixit# umount /mnt/a
Fixit# umount /mnt/b
Fixit# umount /mnt/d
Fixit# umount /mnt/e
Fixit# bsdlabel ad0s2
# /dev/ad0s2:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 10474317 0 unused 0 0 # "raw"
part, don't edit
d: 1024000 0 4.2BSD 2048 16384 64008
e: 1024000 1024000 4.2BSD 2048 16384 64008
f: 6291456 2048000 4.2BSD 2048 16384 28552
g: 2X4861 8339456 4.2BSD 2048 16384 28552
Fixit# EDITOR=ee
Редактируем имена разделов
Fixit# bsdlabel e
ad0s2
# /dev/ad0s2:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 1024000 0 4.2BSD 2048 16384 64008
b: 1024000 1024000 4.2BSD 2048 16384 64008
c: 10474317 0 unused 0 0 # "raw"
part, don't edit
d: 6291456 2048000 4.2BSD 2048 16384 28552
e: 2X4861 8339456 4.2BSD 2048 16384 28552
Восстановливаем загрузчики boot0 и boot2
Fixit# sysinstall
Configure
Fdisk
Set bootable
Write
Boot Manager
Exit
Exit Install
83
Reboot in new system:
Fixit# exit
84
Локализация консоли
[hostX:~] # sysinstall
(клавиатура, шрифты, терминал)
[hostX:~] # cat /etc/rc.conf
...
font8x16="cp8668x16"
scrnmap="koi8r2cp866"
keymap="ru.koi8r"
[hostX:~] # /etc/rc.d/syscons start
[hostX:~] # rcsdiff /etc/ttys
35c35
< ttyv0 "/usr/libexec/getty Pc" cons25 on secure
>
ttyv0 "/usr/libexec/getty Pc" cons25r on secure
[hostX:~] # kill 1
1
[hostX:~] # date
[hostX:~] # setenv LANG ru_RU.KOI8R
[hostX:~] # date
[hostX:~] # pw usermod root L
russian
85
Редактор vi
Редактор vi (visual editor) является первым полноэкранным (визуальным)
редактором, получившим широкое распространение среди самых разнообразных аппаратных
платформ. В настоящее время он всегда присутствует в любой UNIX-системе общего
назначения (general purpose). Благодаря крайне низким требованиям к ресурсам и
неприхотливости в отношении устройств ввода текста, редактор vi позволяет пользователю
редактировать файлы даже, например, с сотового телефона или коммуникатора.
Этот редактор использует три различных режима:
• основной командный режим
• расширенный командный режим
• режим редактирования
Ниже приведены основные команды редактора в различных режимах:
Переключение режимов
ESC - переход в основной командный режим
ESC: - переход в расширенный командный режим
Команды основного командного режима
Навигация по тексту
h - влево
l - вправо
k - вверх
j - вниз
<Shift>^
- на начало строки
<Shift>$
- на конец строки
<Ctrl>B
- на страницу вверх
<Ctrl>F
- на страницу вниз
[[ - на начало процедуры (текста)
]] - на конец процедуры (текста)
<Ctrl>G
- вывести отчет о редактируемом тексте
Редактирование текста
i - ввод текста с текущей позиции
o - ввод текста с новой строки
J - склеить строки
x - удалить текст (DEL)
X - удалить текст слева (BACKSPACE)
yy - копировать строку в буфер
dd - вырезать строку в буфер
86
p - вставить строку из буфера
u - отменить последнее действие
Поиск текста
/регулярное_выражение - поиск по тексту вниз
/ - повтор поиска вниз
?регулярное_выражение - поиск по тексту вверх
? - повтор поиска вверх
Команды расширенного режима
(завершаются нажатием на <Enter>)
w - запись файла
q - выход из редактора
w! - запись файла с без установленного бита записи
q! - выход из редактора без сохранения
число - переход на указанную строку текста
set nu - включить режим отображения номеров строк
set nonu - выключить режим отображения номеров строк
set smd - отображать в статусной строке режим редактирования
set nosmd - не отображать в статусной строке режим редактирования
Примеры работы с текстом в расширенном режиме
номер_строки - перейти на указанную строку
1,.d - удалить строки с первой до текущей
g/шаблон/d - удалить строки, содержащие шаблон во всем тексте
1,20g/шаблон/d - удалить строки, содержащие шаблон c 1 по 20 строку
20,$s/шаблон/замена/ - произвести замены в тексте с 20 строки до конца
87
Редактор ee
Самым простым в изучении и использовании, по-видимому, можно назвать ee, что
расшифровывается как ''easy editor'', т.е. ''простой редактор''. Чтобы начать
редактировать какой-либо файл, наберите в командной строке ee filename, где
filename – имя редактируемого файла. Например, для редактирования файла
/etc/rc.conf, наберите ee /etc/rc.conf. В верхней части экрана вы увидите список
основных команд редактора. Символ каретки (^) означает клавишу Ctrl, таким образом, ^e
означает комбинацию клавиш Ctrl+e. Чтобы выйти из редактора, нажмите клавишу Esc,
затем Enter. Если остались какие-либо не сохраненные данные, вам потребуется
подтвердить выход, сохранив результат работы или оставив файл без изменения.
Управляющие клавиши для редактора ee:
^a – в начало строки
^b – влево на один символ
^c – выполнить команду (на экране сверху появится список команд)
^d – удалить символ
^e – в конец строки
^f – вправо на один символ
^g – на одну страницу назад
^h – удалить символ слева (аналогично клавише Backspace)
^[ или ESC – вызов дополнительного меню
^i – табуляция
^j – отменить удаление символа
^k – удалить строку
^l – восстановить строку
^m – добавить новую строку (аналогично клавише Enter)
^n – перейти на 1 строку ниже
^o – вставить символ, введя его ASCII код (десятичный)
^p – перейти на 1 строку выше
^r – восстановить слово
^t – в начало файла
^u – в конец файла
^v – перейти на 1 страницу вниз
^w – удалить слово
^x – повторить поиск (шаблон для поиска задается с помощью ^y)
88
^y – поиск по шаблону
^z – перейти к следующему слову
ESCEnter
– выход из ee
89
Редактор nano
Редактор nano разработан для эмуляции функциональности и простоты использования
оригинального редактора UW Pico. Редактор разбит на 4 основные части: верхняя строка
содержит версию программы, текущее имя файла, который редактируется, и были ли
внесены изменения в текущий файл. Вторая часть - это главное окно редактирования, в
котором отображен редактируемый файл. Строка состояния - 3 строка снизу - показывает
разные важные сообщения. Две строки внизу показывают наиболее часто используемые
комбинации клавиш.
Система обозначений комбинаций клавиш следующая: Комбинации с Control
обозначены символом (^) и вводятся при помощи нажатой кнопки (Ctrl) или двойном
нажатии Escape (Esc); Комбинации с Esc обозначены символом Meta (M) и могут быть
введены при помощи кнопкок Esc, Alt или Meta, в зависимости от используемой
клавиатуры. Также, нажатие Esc дважды и дальнейший ввод трёхзначного числа от 000 до
255 введёт соответствующий символ.
Следущие комбинации доступны в главном окне редактирования. Альтернативные
комбинации показаны в скобках:
^G (F1) Отобразить текст справки
^X (F2) Закрыть текущий буфер / Выйти из nano
^O (F3) Записать текущий файл на диск
^J (F4) Выровнять текущий абзац
^R (F5) Вставить другой файл в текущий
^W (F6) Использовать регулярные выражения
^Y (F7) Переместиться на предыдущий экран
^V (F8) Переместиться на следущий экран
^K (F9) Вырезать текущую строку и сохранить ее в буфере вырезки
^U (F10) Вставить содержимое буфера вырезки в текущую строку
^C (F11) Показать положение курсора
^T (F12) Выполнить проверку орфографии, если доступно
^_ (F13) (MG)
Перейти на указанный номер строки и ряд
^\ (F14) (MR)
Заменить строку или регулярное выражение
^^ (F15) (MA)
Отметить текст в текущей позиции курсора
(F16) (MW)
Повторить последний поиск
M^
(M6)
Копировать текущую строку и сохранить ее в буфере
вырезки
M}
Увеличить отступ строки
M{
Уменьшить отступ строки
^F Вперед на один символ
^B Назад на один символ
^Пробел Вперед на одно слово
MПробел
Назад на одно слово
90
^P Перейти на предыдущую строку
^N Перейти на следующую строку
^A Переместиться на начало текущей строки
^E Переместиться в конец текущей строки
M(
(M9)
Переместиться на начало текущего абзаца
M)
(M0)
Переместиться в конец текущего абзаца
M\
(M|)
Переместиться на первую строку файла
M/
(M?)
Переместиться на последнюю строку файла
M]
Переместиться на соответствующую скобку
M(
M_)
Прокрутить одну строку вверх не перемещая курсор
M+
(M=)
Прокрутить одну строку вниз не перемещая курсор
M<
(M,)
Переключить на предыдущий буфер
M>
(M.)
Переключить на следующий буфер
MV
Вставить следующую комбинацию клавиш как есть
^I Вставить табуляцию в позиции курсора
^M Вставить строку в позиции курсора
^D Удалить символ под курсором
^H Удалить символ слева от курсора
MT
Вырезать с текущей позиции до конца файла
MJ
Выровнять весь файл
MD
Подсчитать количество слов, строк и символов
^L Перерисовать текущий экран
MX
Режим справки разрешить/запретить
MC
Постоянное отображение положения разрешить/запретить
MO
Использование дополнительной строки для редактирования
разрешить/запретить
MS
Плавная прокрутка разрешить/запретить
MP
Отображение пробелов разрешить/запретить
MY
Подсветка синтаксиса разрешить/запретить
MH
Умная кнопка home разрешить/запретить
MI
Авто отступы разрешить/запретить
MK
Вырезать до конца разрешить/запретить
ML
Автоматическая разбивка строк разрешить/запретить
MQ
Преобразование ввода табуляций в пробелы разрешить/запретить
MB
Делать резервные копии разрешить/запретить
MF
Несколько файловых буферов разрешить/запретить
MM
Поддержка мыши разрешить/запретить
MN
Без преобразования из DOS/Mac формата разрешить/запретить
MZ
Приостановка разрешить/запретить
91
Система контроля версий rcs
RCS (Revision Control System) является одной из самых первых (разработана в
1985 году) систем управления версиями: для каждого файла, зарегистрированного в системе,
она хранит полную историю изменений, причём для текстовых файлов используется
эффективный алгоритм дельта-компрессии, когда хранится только последняя версия и все
межверсионные изменения. Система позволяет также хранить версии бинарных файлов, но
без использования этого механизма, то есть каждая версия бинарного файла хранится
полностью.
Система RCS не имеет средств для коллективной работы над набором файлов – эти
средства появились в системе-наследнице – CVS, использующей форматы и алгоритмы RCS
для учёта версий, но имеющей также интерфейсы для коллективной работы.
Отсутствие коллективной работы на практике выглядит так, что только тот пользователь,
который произвел действие «Lock» над файлом или файлами, может вносить изменения.
Другие пользователи запросить эти же файлы на редактирование не могут. Подробнее о RCS
можно прочитать на следующих справочных страницах: rcsintro(1), co(1),
ci(1), ident(1), rcs(1), rcsclean(1), rcsdiff(1), rcsmerge(1),
rlog(1), rcsfile(5)
Примеры:
$ ci –l filename
$ rlog
$ co –p1.1 filename
$ co –l1.1 filename
$ rcsdiff –r1.1 filename
$ rcsdiff –r1.1 –r1.2 filename
92
Потоковый редактор sed
sed (stream editor) — потоковый текстовый редактор (а также язык
программирования), применяющий различные предопределённые текстовые преобразования
к последовательному потоку текстовых данных.
sed получает входной поток (обычно файл) построчно, редактирует каждую строку
согласно правилам, определённым в sed-скрипте с использованием простого языка sed, и
затем выводит результат в выходной поток.
sed часто называют неинтерактивным текстовым редактором. Он отличается от обычных
текстовых редакторов «инвертированностью» по отношению к тексту и набору команд
редактирования. Обычные текстовые редакторы вначале загружают весь текст документа, а
затем применяют к нему команды по одной, в то время как sed вначале загружает в себя
набор команд, а затем применяет весь набор команд к каждой строчке текста. Так как
одновременно в памяти находится только одна строка, sed может обработать произвольно
большие текстовые файлы.
Шаблон вызова
sed команды_редактирования [имя_файла]
$ sed '' /etc/passwd
$ sed n
'' /etc/passwd
Команда редактирования -- p -- печать текста
$ sed n
'1p' /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.39 2004/08/01 21:33:47 markm
Exp $
$ sed n
'20,$p' /etc/passwd
pop:*:68:6:Post Office Owner:/nonexistent:/usr/sbin/nologin
www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
nobody:*:65534:65534:Unprivileged
user:/nonexistent:/usr/sbin/nologin
Команда редактирования -- a -- вставка после и -- i -- перед строкой
$ who | sed '/root/a\
SUPER USER
' root ttyv1 Oct 17 16:15
SUPER USER
user ttyp0 Oct 17 17:40 (195.19.32.14)
Команда редактирования -- c -- замена строк
$ cat /etc/defaults/rc.conf | sed '/^#/c\
93
COMMENT
'
Команда редактирования -- d -- удаление текста
$ sed '2,$d' /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.39 2004/08/01 21:33:47 markm
Exp $
$ sed e
'/^$/d' e
'/^#/d' /etc/defaults/rc.conf
Команда редактирования -- s -- замена элементов текста
$ sed 's/root/SUPERUSER/' /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.39 2004/08/01 21:33:47 markm
Exp $
# SUPERUSER:*:0:0:Charlie &:/root:/bin/csh
toor:*:0:0:Bourneagain
Superuser:/SUPERUSER:
...
$ sed 's/root/SUPERUSER/g' /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.39 2004/08/01 21:33:47 markm
Exp $
# SUPERUSER:*:0:0:Charlie &:/SUPERUSER:/bin/csh
toor:*:0:0:Bourneagain
Superuser:/SUPERUSER:
$ sed E
'/(^$)|(^#)/d' /etc/defaults/rc.conf
$ sed E
's/(^u[0123456789]+)/\1user/' /etc/passwd
или
$ sed E
's/(^u[[:digit:]]+)/\1user/' /etc/passwd
Аргумент -- i – непосредственное редактирование файла
$ cp /etc/passwd ~
$ cd
$ sed –i .bak E
's/(r.*t)/\1SUPERUSER/g' passwd
94
Генератор отчетов awk
AWK — интерпретируемый скриптовый C-подобный язык построчного разбора и
обработки входного потока (например, текстового файла) по заданным шаблонам.
AWK рассматривает входной поток как список записей. Каждая запись делится на поля. На
основе этой информации выполняется некоторый определённый программистом алгоритм
обработки. По умолчанию разделителем записей является символ новой строки (то есть
записи - это то же самое, что строки), разделителем полей — символ пробела или табуляции,
или последовательность таких символов. Символы-разделители можно явно определить в
программе. Символ-разделитель полей можно определить и в командной строке.
AWK-программа состоит из операторов (правил), имеющих вид:
шаблон {действие}
шаблон {действие}
. . .
Каждая запись поочерёдно сравнивается со всеми шаблонами, и каждый раз когда она
соответствует шаблону, выполняется указанное действие. Если шаблон не указан, то
действие выполняется для любой записи. Если не указано действие, то запись выводится. В
AWK также существует 2 предопределённых шаблона BEGIN и END. BEGIN выполняется до
начала обработки входного потока. END — после обработки последней записи входного
потока.
Действие может состоять из последовательности операторов, разделяемой точкой с
запятой, переводом строки или закрывающей скобкой.
Печать исходных данных без изменений
$ awk '{print}' /etc/passwd
$ awk '{print $0}' /etc/passwd
Фильтрация данных
$ awk '/root/ {print $0}' /etc/passwd
root:*:0:0:Charlie &:/root:/bin/csh
toor:*:0:0:Bourneagain
Superuser:/root:
daemon:*:1:1:Owner of many system
processes:/root:/usr/sbin/nologin
Использование разделителя полей и отрицательного условия
$ awk F:
'!/nologin/ {print $1}' /etc/passwd
# $FreeBSD
# root
toor
95
Использование заголовков и итогов в отчетах, использование
переменных
$ awk F:
'BEGIN {print "Users used csh"; count=0} /csh$/ {print
$1; count++} END {print count " users"}' /etc/passwd
Обработка файла почтового ящика пользователя
с какой строки начинается и от кого письмо
$ ee ex1.awk
$ cat ex1.awk
BEGIN {st=1}
/^$/ {st=1}
/^From/ {if (st==1)
{print "String " NR; print $0; st=0}
}
!/^$/ {st=0}
$ awk f
ex1.awk /var/mail/uX
String 1
From u0@server.class Tue Oct 18 10:05:44 2005
String 21
From u0@server.class Tue Oct 18 10:05:49 2005
Отчет по суммарному количеству товаров на складе
$ vi wares.txt
$ cat wares.txt
table:34
car:24
apple:23
car:12
$ vi ex2.awk
$ cat ex2.awk
{
M[$1]+=$2
}
END {
for (i in M) {
print "sum " i "=" M[i]
}
}
$ awk F:
f
ex2.awk wares.txt
96
sum apple=23
sum car=36
sum table=34
97
Инсталяция системы в конфигурации Desktop
Установка X-сервера
[hostX:~] # pkg_add r
xorg
Настройка X-сервера
[hostX:~] # Xorg configure
[hostX:~] # X config
/root/xorg.conf.new
[hostX:~] # cp /root/xorg.conf.new /etc/X11/xorg.conf
Настройка разрешения экрана и глубины цветности
[hostX:~] # cat /etc/X11/xorg.conf
… Section "
Monitor"
… HorizSync 30.0 82.0
VertRefresh 75.0 75.0
… EndSection
...
Section "Screen"
Identifier "Screen0"
Option "AllowEmptyInput" "false"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
# Modes "1280x1024"
EndSubSection
EndSection
Включение поддержки колеса прокрутки "мыши"
[hostX:/etc/X11] # ee xorg.conf
[hostX:/etc/X11] # cat xorg.conf
...
Section "InputDevice"
Identifier "Mouse0"
98
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection
...
Запуск X-сервера
[hostX:~] # X
CtlAltBackspace
[hostX:~] # cat .xinitrc
/usr/local/bin/twm
[hostX:~] # startx &
[hostX:~] # grep xdm /etc/ttys
ttyv8 "/usr/X11R6/bin/xdm nodaemon"
xterm on secure
[hostX:~] # cat .xsession
/usr/local/bin/twm
[hostX:~] # kill 1
1
99
Локализация системы
Локализация консоли
[hostX:~] # sysinstall
(клавиатура, шрифты, терминал)
[hostX:~] # cat /etc/rc.conf
...
font8x16="cp8668x16"
scrnmap="koi8r2cp866"
keymap="ru.koi8r"
[hostX:~] # /etc/rc.d/syscons start
[hostX:~] # rcsdiff /etc/ttys
35c35
< ttyv0 "/usr/libexec/getty Pc" cons25 on secure
>
ttyv0 "/usr/libexec/getty Pc" cons25r on secure
[hostX:~] # kill 1
1
[hostX:~] # date
[hostX:~] # setenv LANG ru_RU.KOI8R
[hostX:~] # date
[hostX:~] # pw usermod root L
russian
Локализация X сервера
Устанавливаем русскую локализацию пользователя
[hostX:~] # pw usermod root L
russian
[hostX:~] # logout
Включаем поддержку русских шрифтов
Штатные шрифты
[hostX:~] # cat xorg.conf
...
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
100
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/CID/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
...
TrueType шрифты
[hostX:~] # fetch http://koi8.pp.ru/dist/msttcorefonts.tgz
[hostX:~] # cd /usr/X11R6/lib/X11/fonts/
[hostX:lib/X11/fonts] # tar xvzf
~/msttcorefonts.tgz
# cat /etc/X11/xorg.conf
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/msttcorefonts/"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/CID/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Включаем поддержку русской клавиатуры
На лету:
[hostX:~] # setxkbmap layout
"us,ru" option
"grp:alt_shift_toggle"
Или в файле конфигурации:
[hostX:~] # cat xorg.conf
...
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:alt_shift_toggle"
EndSection
...
101
Управление оконными менеджерами
Инсталяция оконного менеджера
[gX:~] # pkg_add r
xfce4
Управление оконными менеджерами в скрипте startx
[gX:~] # cat .xinitrc
/usr/local/bin/xfce4session
Управление оконными менеджерами в менеджере дисплеев xdm
[gX:~] # cat ~uX/.xsession
/usr/local/bin/xfce4session
Работа в сетях Windows
Подключение к Microsoft терминал серверу
[gX:~] # pkg_add /usr/ports/packages/All/rdesktop.tbz
[gX:~] # rehash
[gX:~] # rdesktop 10.10.106.20
Монтирование файловых ресурсов Microsoft
root@shanti:~# mount t
cifs //195.19.32.31/IPTVMedia /mnt/ o
user=Administrator
Password:
root@shanti:~# ls /mnt/
Работа с Internet сервисами
Сервис http
[gX:~] # pkg_add /usr/ports/packages/All/opera.tbz
102
Сервисы электронной почты
Сервисы сообщений
P2P сервисы
Работа с офисными документами
Работа с текстом
[gX:~] # pkg_add /usr/ports/packages/All/abiword.tbz
Сервис проверки орфографии
[gX:~] # pkg_add /usr/ports/packages/All/ruaspell0.60.2.
tbz
Работа с мультимедийной информацией
Воспроизведение звука
Определяем драйвер звуковой карты
[gX:~] # kldload snd_driver
[gX:~] # cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH5 (82801EB)> at io 0xfc001000, 0xfc002000 irq 17
bufsz 16384 kld snd_ich (1p/1r/1v channels duplex default)
Прописываем его в автозагрузку
[gX:~] # cat /boot/loader.conf
...
snd_ich_load="YES"
...
103
Проверка работоспособности звуковой карты
[gX:~] # cat /usr/ports/addins/bird_1.au > /dev/audio0.0
Установка программы для воспроизведения аудиофайлов
[gX:~] # pkg_add /usr/ports/packages/All/mpg123.tbz
[gX:~] # rehash
[gX:~] # mpg123 /usr/ports/addins/KnockinonHeavensDoor.mp3
Воспроизведение видео
[gX:~] # pkg_add /usr/ports/packages/All/mplayer.tbz
[gX:~] # rehash
[gX:~] # mplayer fs
zoom
/usr/ports/addins/egik_v_tumane.avi
104
Система печати FreeBSD
Использование локального принтера
Рассматриваются принтеры HP
С некоторыми lpt принтерами приходилось:
# hw.intr_storm_threshold: 25000
# lptcontrol -s -d /dev/lpt0
Использование lpd
[gX:~] # pkg_add /usr/ports/packages/All/ghostscriptgplnox11.
tbz
[gX:~] # cat /etc/printcap
lp|local line printer:\
:sh:\
:lp=/dev/ulpt0:\
:sd=/var/spool/output/lpd:\
:if=/usr/share/examples/printing/ifhp:\
:lf=/var/log/lpderrs:
[gX:~] # chmod +x /usr/share/examples/printing/ifhp
[gX:~] # cat >> /etc/rc.conf
lpd_enable="YES"
[gX:~] # /etc/rc.d/lpd start
Starting lpd.
[gX:~] # lpr /etc/rc.conf
[gX:~] # gunzip c
/usr/share/man/man1/cat.1.gz | groff man
Tps
| lpr
[gX:~] # zcat /usr/share/man/man1/cat.1.gz | groff man
Tlj4
|
lpr
Печать из Unix на Unix принт-сервере
Настройка сервера печати
Фильтр печати предполагается на клиенте
[gZ:~] # cat /etc/hosts.lpd
...
gX
...
105
[gZ:~] # cat /etc/printcap
lp|local line printer:\
:sh:\
:lp=/dev/ulpt0:\
:sd=/var/spool/output/lpd:\
:lf=/var/log/lpderrs:
Настройка клиента
[gX:~] # cat /etc/printcap
lp|local line printer:\
:sh:\
:rm=gZ:\
:sd=/var/spool/output/lpd:\
:lf=/var/log/lpderrs:\
:if=/usr/share/examples/printing/ifhp:
[gX:~] # chmod +x /usr/share/examples/printing/ifhp
[gX:~] # cat /etc/rc.conf
...
lpd_enable="YES"
...
[gX:~] # /etc/rc.d/lpd start
Starting lpd.
[gX:~] # lpr /etc/rc.conf
Печать из Windows на Unix принт-сервере
Настройка сервера печати
Добавляем к конфигурации сервера печати:
[gX:~] # cat /usr/local/etc/smb.conf
[global]
...
printcap name = /etc/printcap
printing = bsd
...
[lp]
path = /tmp
printable = Yes
print command = lpr r
%s
use client driver = Yes
106
Печать из Unix на Windows принт-сервере
[gX:~] # pkg_info | grep 'cups\|samba\|ghost'
cupsbase1.3.9_
2 Common UNIX Printing System
cupspstoraster8.15.4_
2 Postscript interpreter for CUPS printing
to nonPS
printers
cupssmbbackend1.0_
2 A CUPS backend for printing to Windows
servers
ghostscript8nox118.62_
5 Ghostscript 8.x PostScript interpreter
gutenprintcups5.1.7_
3 GutenPrint Printer Driver
samba3.0.32_
2,1 A free SMB and CIFS client and server for UNIX
[gX:~] # cat /etc/rc.conf
...
cupsd_enable="YES"
...
Далее все через web интерфейс http://localhost:631
107
Использование эмуляторов
QEMU
[garant:~/qemu] % cat start_freebsd.sh
#!/bin/sh
# qemuimg
create qemu_freebsd.img 512M
# qemu cdrom
/dev/acd0 boot
d qemu_freebsd.img &
# qemu k
ru net
tap,script=tun_up_freebsd.sh net
nic
qemu_freebsd.img &
qemu net
tap,script=tun_up_freebsd.sh net
nic qemu_freebsd.img &
/etc/rc.d/named stop
sleep 3
/etc/rc.d/named start
[garant:~/qemu] % cat tun_up_freebsd.sh
#!/bin/sh
ifconfig $1 192.168.113.1 netmask 255.255.255.0

 
<< Начало < Предыдущая 1 2 3 4 5 6 7 8 9 10 Следующая > Последняя >>

Страница 1 из 15