Для самых маленьких и для меня, вдруг че забуду
Будет о:
1. Справка и где получить помощь
2. Работа с файлами
3. Утилиты поиска
4. Программы пейджеры
1. Справка
Руководство по FreeBSD состоит из девяти разделов. Эти разделы выглядят так:
1.General commands (Основные команды)
2.System calls and error numbers (Системные вызовы и коды ошибок)
3.The С libraries(Библиотеки С)
4.Devices and device drivers (Устройства и драйверы устройств)
5.File formats(Форматы файлов)
6.Game instructions (Инструкции к играм)
7.Miscellaneous information(Всякая всячина)
8.System maintenance commands(Команды обслуживания системы)
9.Kernel system interfaces(Системные интерфейсы ядра)
Для того чтобы читать man в конкретном разделе нужно использовать синтаксис:
man N name
Где N номер раздела справки, а name название программы
Пример:
man 4 pf
Секции страницы помощи:
NAME – имя страницы с очень кратким описанием предмета (одна строка)
SYNOPSIS – синопсис, краткий обзор
DESCRIPTION – полное описание предмета справки
ENVIRONMENT – используемые переменные окружения
EXIT STATUS – коды возврата программ
EXAMPLES – примеры использования
SEE ALSO – рекомендуемые man страницы для получения дополнительной информации
apropos – отыщет все стр в названии или описании которых встречается искомое слово
whatis – отыщет все стр в названии или описании которых встречается искомое слово ЦЕЛИКОМ
Эти 2 утилитки ищут по индексу составленному из секции NAME
Если вы вдруг поменяли страницы мана, для нормального поиска нужно перестроить индекс makewhatis
Сайтики где можно поискать:
1. www.google.com/bsd
поиск по сайту site:freebsd.org
2. freebsd.rambler.ru
3. http://www.daemonnews.org
4. http://www.onlamp.com/bsd
[email protected], рассылка посвященная проблемам безопасности
2. Основные команды для работы с файлами
Во Фре все это ФАЙЛЫ!!! устройства это тоже файлы:)
В UNIX существуют различные виды файлов, информация о которых содержится атрибутах файловой системы для этих файлов. Всего в UNIX существует 6 различных видов файлов:
• Обычный файл (regular file)
• Каталог (directory)
• Специальный файл устройства (special device file)
• FIFO, или именованный канал (named pipe)
• Символьная ссылка (symbol link)
• Сокет (socket)
Для фри неважно расширение. Она ориентируется на основании магии! Вернее magic numbers.
Узнать тип файла можно с помощью утилиты file:
%file /etc/rc.conf
/etc/rc.conf: ASCII text
%file /bin/sh
/bin/sh: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.0 (900044), stripped
ls (list files) предназначена для просмотра содержимого каталогов и получения информации о файлах.
ls -a вывод полностью ( со скрытыми файлами и папками )
ls -l вывод в подробной форме ( с правами, размером, датами и т.д.);
ls -i выводит также inode файла
Примеры:
%ls
f1 f2 f3
%ls -la
total 12
drwxr-xr-x 2 root bos 512 16 мар 19:14 .
drwxr-xr-x 5 bos bos 512 29 апр 13:36 ..
-rw-r--r-- 2 root bos 19 16 мар 19:15 f1
-rw-r--r-- 1 root bos 0 16 мар 19:10 f2
-rw-r--r-- 1 root bos 0 16 мар 19:10 f3
pwd (print working directory) показывает текущий рабочий каталог.
%pwd
/usr/home/bos/A
cd (change directory) меняет текущий рабочий каталог.
Путь может быть относительным, а может и абсолютным(начинаться с / )
cd - перейти в домашний каталог
cd .. - подняться на каталог выше
cd ~root - перейти в домашний каталог заданного пользователя
cd - - перейти в предыдущий каталог
touch меняет временные метки файла и имеет побочное действие, которое используется гораздо чаще, чем основное – если файла с указанным именем нет, создается пустой файл.
%ls -la | grep -E '[[:space:]]f.*'
-rw-r--r-- 1 bos bos 0 2 май 13:20 ft1
-rw-r--r-- 1 bos bos 0 2 май 13:20 ft2
%touch ft1
%touch ft3
%ls -la | grep -E '[[:space:]]f.*'
-rw-r--r-- 1 bos bos 0 2 май 13:22 ft1
-rw-r--r-- 1 bos bos 0 2 май 13:20 ft2
-rw-r--r-- 1 bos bos 0 2 май 13:22 ft3
mkdir (make directory) создает каталоги, если указана -p в том числе и промежуточные Примеры:
% mkdir /tmp/test
% mkdir -p /tmp/a/b/c
% mkdir ololo
rm
-r или -R удаляет файлы и каталоги, в т.ч. каталоги с содержимым
-f подавляет вывод запросов (например, при удалении файлов, доступных только для чтения) и ошибок при удалении,
-i выводит запрос при удалении каждого файла.
-P перезаписывает содержимое файла перед удалением
-W пытается восстановить удаленный файл(ufs only)
Примеры:
% rm -r /tmp/test
# rm -rf /* не делайте так:)
%rm ft3
%rm -i ft*
remove ft1? y
remove ft2? y
%ls -la | grep -E '[[:space:]]f.*'
rmdir удаляет только пустые каталоги.
-p удаляются и родительские каталоги целевого каталога, если они пусты.
% rmdir /tmp/test
% rmdir -p /tmp/a/b/c
cp позволяет копировать файли и каталоги (опция -r или -R).
При её использовании часто применяются шаблоны шелла. В общем случае, команда cp требует не менее двух параметров: что копировать и куда копировать.
% cp file1 dir1/
% cp -r dir1/ dir2/
mv предназначена для перемещения и переименования файлов и каталогов. При перемещении внутри одного каталога имя исходного файла/каталога меняется на новое, что эквивалентно переименованию. При перемещении внутри одного раздела (одной файловой системы) меняется только жесткая ссылка на объект и процесс перемещения происходит очень быстро. При перемещении данных между различными файловыми cистемами происходит копирование с последующим удалением источника, так что время выполнения команды зависит от объема данных.
%mv file2 file3 - переименовали файл
%mv file3 dir1/ - переместили файл в dir1
ln позволяет создавать символьные (с опцией -s) и жесткие (без опции -s) ссылки.
жесткая ссылка при удалении оригинала, данные все равно будут доступны
–s будет создана мягкая ссылка(как ярлык в винде) при удалении ярлыка с файлом ничего не случается, при удалении файла, ярлык ссылается на пустое место
%ln -s /etc/rc.conf file4
cat вывод содержимого файла
more less выводят содержимое файла с возможностью прокрутки и поиска
df Для получения статистики использования разделов дисков (смонтированных файловых
систем)
– h (human-readable, выводит числовые данные в виде, удобном для восприятия пользователем)
– t (выводит информацию только о файловых системах указанного типа)
%df -ht ufs
Filesystem Size Used Avail Capacity Mounted on
/dev/ada0a 1G 551M 375M 59% /
/dev/ada0d 5G 3.4G 1.2G 74% /usr
/dev/ada0e 1.9G 222M 1.6G 12% /var
du (disk usage) позволяет получить статистику использования дискового пространства не по разделам целиком, а для конкретных указанных каталогов.
– h выводит информацию в виде удобном для восприятия человеком
– s (summary) эквивалентна -d 0
– d число (depth) позволяют указать необходимую степень подробности (глубину) выводимой информации.
%du -h
8,0k ./A
8,0k ./B
4,0k ./.mc/cedit
28k ./.mc
116k .
which для поиска программ (исполняемых файлов), ищет указанные файлы в каталогах, перечисленных в переменной окружения PATH.
whereis аналогична по действию, но ищет также среди man страниц и в каталогах с исходными текстами программ. Примеры:
% which ls
/bin/ls
% whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
locate Поиск файлов по имени с помощью заранее созданной индексной БД.
/usr/libexec/locate.updatedb cоздание индексной базы
Аналог службы индексирования винды, индексировать нужно руками или по крону:)
tail выводит последние строки файла
-n выводится n строк
% tail -n 5 /var/log/messages
head выводит первые строки файла
-n выводится n строк
%head -n 5 /var/log/messages
cut вырезать из входного потока или файла фрагменты строк,
-с соответствующие определенным позициям символов в строке
-f соответствующие определенным полям, считается, что файл имеет табличную структуру (т. е. разбит на колонки)
-d указывает разделитель полей. По умолчанию табуляция
cut -d: f1,7 /etc/passwd вывести 1й и 7й столбик из файла
cut -c1-5 /etc/passwd вывести символы, в каждой строке, с первого по пятый
Paste противоположность cut, вставляет фрагменты строк и выводит на экран
-d указывает разделитель полей. По умолчанию табуляция
-s объединяет множество строк в файле в одну строку
%paste -d: b1 a1
b1:a1
b2:a2
b3:a3
b4:a4
%paste -s a1
a1 a2 a3 a4
sort позволяет сортировать данные в алфавитном порядке
-n в числовом порядке
-t задаем разделитель
-k начиная с позиции
% grep -v '^#' /etc/passwd | sort
Пример сортировки пользователей в системе по значению UID:
% grep -v '^#' /etc/passwd | sort -t: -k3 -n
diff выводит разницу между текстовыми файлами или оглавлениями каталогов в формате, который пригоден для последующего использования программой patch. При сравнении двоичных файлов программа diff только сообщает, совпадают или различаются между собой сравниваемые файлы.
% diff каталог1 каталог2 - сравниваем каталоги
% diff /bin/ls /usr/bin/lsvfs -сравниваем бинарные файлы
Binary files /bin/ls and /usr/bin/lsvfs differ
Патчинг проходит элементарно
% patch hello.c patch.txt
Hmm... Looks like a normal diff to me...
..
done
wc – подсчет числа строк, слов и символов
%cat test.sh
#!/bin/sh
X=10
while [ $X -gt 0 ]
do
echo $X
X=$(( $X-1 ))
done
exit 0
%wc test.sh
8 17 74 test.sh
tr замена символов по шаблону
Заменяет маленькие буквы в файле на большие и выводит на экран, сам файл остается без изменений
tr "[:lower:]" "[:upper:]" < file1
tee транслящия stdin в stdout c ведением лога(копированием в файл)
uniq – нахождение дублирующихся строк, если попадается повторяющаяся строка то она не будет выведена.
find осуществляет рекурсивный поиск файлов в файловой системе, не использует базы данных и переменные окружения.
Условия поиска:
-mount или -xdev – осуществлять поиск только в пределах одной физической файловой системы
-name шаблон – поиск файла по его имени
-iname шаблон – то же, но без учета регистра
-regex шаблон – то же, что и name, но шаблон – регулярное выражение
-type тип_файла – поиск файлов указанного типа
b block special
c character special
d directory
f regular file
l symbolic link
p FIFO
s socket
-user пользователь – искать файлы, принадлежащие пользователю
-group группа – искать файлы, принадлежащие группе
-atime N – искать файлы, доступ к которым был N суток назад
-mtime N – искать файлы, которые менялись N суток назад
-size N – искать файлы, размер которых N блоков
Команды:
-exec программа – выполнить указанную программу передав ей имя файла(с помощью {})
-ok программа – то же, что exec, но с запросом подтверждения для каждого файла
Пример:
% find /usr/share -name index.html
Поиск файлов, которые модифицировались за последние 2 дня и вывод полной информации про них
% find /var/log -ctime 2 -type f -ls
Удаляем записи с сервака, старше 35 дней
% find /var/spool/asterisk/monitor -ctime +35d -exec rm -f {} \;
% find /usr -user vasia -exec rm -f {} \;
TAR Программа предназначена для работы с архивами в формате tar
-c создать архив
-t просмотр содержимого тарбола
-x извлечение данных из архива
-d сравнивает исходные данные и архив, ищет различия
-f указывает файл архива для создания или извлечения
-v отображает ход работы программы
-z сжатие с помощью gzip
-Z сжатие с помощью compress, менее эффективно
-y сжатие bzip наиболее эффективно
-p восстанавливает владельцев извлекаемых файлов
если мы сжимаем наш архив, то при извлечении нам не стоит беспокоится о виде сжатия, tar сам выберет нужный формат
tar -cvf archive.tar file1 file2 folder1....
tar -xvf archive.tar
tar -tvf archive.tar