Содержание
- Справка
man, apropos, whatis, info. - Пользователи и группы
adduser, rmuser, passwd, pw, vipw, id. - Устройства и ядро
/var/run/dmesg.boot, kenv, dmidecode, devinfo, pciconf, vmstat, camcontrol, atacontrol, diskinfo, smartctl, usbconfig, usbdevs, acpiconf, cu, kldstat, kldload, kldunload, sysctl, vidcontrol. - Сеть
ifconfig, wpa_passphrase, wpa_supplicant.conf, wpa_supplicant, wpa_cli, netstat -r, route, ping, arping, traceroute, drill, host, dig, nslookup, sockstat, netstat, iftop, arp, tcpdump, fetch, axel, openssl s_client, ssh, scp, snmpwalk, wake. - Samba
testparm, pdbedit, smbpasswd, smbclient. - SMB-протокол
mount, smbutil. - Мониторинг системы
dmesg, systat, gstat, vmstat, w, who, last, fstat, lsof, truss. - Процессы
top, atop, ps, pgrep, killall, pkill, kill, procstat, nice, renice, idprio, rtprio. - Файловые системы
gpart, newfs, tunefs, glabel, dumpfs, fsck, fsdb, mount, ntfs-3g, umount, mdconfig, dump, restore, df, du. - Файлы
ls, stat, cp, mv, ln, truncate, mkdir, rm, chown, chgrp, chmod, bzip2, bzcat, tar, find, cpio, mtree, md5, md5deep. - Работа с текстом
cat, more, less, head, tail, ee, fg, grep, egrep, diff, sdiff, cut, awk, sed, iconv. - Дата и время
date, ntpdate, tzsetup, ncal. - Порты и пакеты
pkg, freebsd-update, portsnap, svnlite, svn, whereis, make, portupgrade, pkgdb, portaudit, ldd, libchk, service, rcorder. - Shell-скрипты
2>&1, mail, pgrep, test, stat, date, uname, sleep, exit. - Разное
tmux, bsdconfig, sysinstall, sysrc, service, bc, echo $, 7z b, script, tee. - Завершение работы
exit, shutdown, poweroff, halt, reboot. - Ссылки
Справка
Отобразить страницу справки.
whatis ключевое-слово
man -k ключевое-слово
man -f ключевое-слово
Поиск по страницам справки. whatis и man -f - поиск слова целиком. apropos и man -k - поиск части слова.
Чтение документации в формате Info.
Поиск в info-документации.
man info
Руководство FreeBSD: Системный справочник (man)
FreeBSD. Подробное руководство: Страницы руководства
Пользователи и группы
Добавить пользователя в интерактивном режиме.
man adduser
Руководство FreeBSD: Пользователи и основы управления учетными записями
FreeBSD. Подробное руководство: Безопасность и пользователи
Удалить пользователя.
Заблокировать пользователя.
Разблокировать пользователя.
Создать группу.
Удалить группу.
Добавить пользователей в группу.
Удалить пользователей из группы.
Отобразить пользователей группы.
Отобразить принадлежность пользователя к группам.
Устройства и ядро
less /var/run/dmesg.boot
Отобразить сообщения ядра при загрузке системы. Файл /var/run/dmesg.boot содержит информацию о текущем ядре, процессе его запуска и список обнаруженных ядром устройств.
Отобразить параметры загрузки ядра, модель материнской платы и версию BIOS.
Отобразить информацию из DMI/SMBIOS о материнской плате, процессоре и памяти.
Требуется установка порта dmidecode.
Дерево устройств с информацией об используемых ресурсах (IRQ, DMA, Memory).
Список устройств с группировкой по типу ресурса.
Информация о PCI устройствах.
Информация о количестве прерываний (IRQ) и использующих их устройств.
Полезно для решения проблемы высокой нагрузки процессора обработчиками прерываний (% interrupt, отображаемый командой top).
atacontrol list
Список подключенных SCSI/ATA дисков.
atacontrol cap ad0
Информация о SCSI/ATA диске.
atacontrol mode ad0
Текущий режим обмена данными с диском.
Информация о диске, тест производительности.
Список устройств поддерживаемых smartctl.
Требуется установка порта smartmontools.
Информация о дисковом устройстве и поддержке SMART.
Включение SMART на устройстве.
Получить SMART-атрибуты с устройства.
smartctl -x /dev/ada0
Отобразить всю доступную smartctl информацию об устройстве.
Управление USB устройствами. Версия FreeBSD 8 и выше.
Информация о USB устройствах. Версии FreeBSD 7 и более ранние.
Информация о батарее ноутбука.
Подключение терминалом к устройству на COM-порте N. Для завершения сессии ввести "~." с новой строки.
Список динамически загруженных драйверов.
Список драйверов, статически скомпилированных в ядро.
Загрузить драйверы.
Для постоянной загрузки драйвера при старте системы, необходимо добавить параметр: драйвер_load="YES" в /boot/loader.conf.
kldunload -i id1 id2 ...
Выгрузить драйверы с заданными именами или идентификаторами.
-f - выгрузить драйвер принудительно, в случае если он используется.
Отобразить список переменных ядра.
-d - отображать описания переменных, вместо их значений.
var=`sysctl -n переменная`
Отобразить значение переменной ядра. Либо задать значение переменной скрипта.
vidcontrol MODE_режим
Задать разрешение экрана физической консоли.
-i mode
- отобразить список доступных видеорежимов.
Для автоматической смены разрешения при старте системы, необходимо задать параметр allscreens_flags="MODE_режим"
в /etc/rc.conf
Руководство FreeBSD: Виртуальные консоли и терминалы
man rc.conf
Получить содержимое первой физической консоли.
-H
- включая буфер истории.
Для записи сообщений выводимых на консоль в лог-файл, необходимо раскомментировать строчку в /etc/syslog.conf:
console.info /var/log/console.log
Создать лог-файл и задать права доступа:
touch /var/log/console.log chmod 600 /var/log/console.log
Сеть
Отобразить список сетевых интерфейсов, соответствующие им IP и MAC-адреса, статус и параметры подключения.
ifconfig ifn inet 192.168.0.1/24
Задать IP-адрес и маску сети для интерфейса ifn. Адрес действителен до перезагрузки системы.
Постоянный адрес задается в /etc/rc.conf строкой:
ifconfig_интерфейс="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig ifn inet 192.168.0.2 netmask 0xffffffff add
Задать дополнительный IP-адрес для интерфейса ifn. Если дополнительный адрес находится в той же подсети, что и основной адрес, в качестве маски подсети задаем: 255.255.255.255.
Постоянный адрес задается в /etc/rc.conf параметром ifconfig_интерфейс_aliasN. Где N - порядковый номер дополнительного адреса:
ifconfig_интерфейс_alias0="inet 192.168.0.2 netmask 255.255.255.255" ifconfig_интерфейс_alias1="inet 192.168.0.3 netmask 255.255.255.255"
man rc.conf
Руководство FreeBSD: Настройка карт сетевых интерфейсов
FreeBSD. Подробное руководство: Настройка подключения к Ethernet
ifconfig ifn inet 192.168.0.2 delete
Удалить IP-адрес для интерфейса ifn.
Задать MAC-адрес для интерфейса ifn.
Для постоянной подмены MAC-адреса, необходимо создать стартовый скрипт /etc/start_if.интерфейс, и прописать данную команду.
Принудительно задать стандарт передачи данных для интерфейса ifn, в случае, если при автосогласовании скорость определена неверно.
Для постоянного переопределения скорости, корректируем параметр ifconfig_интерфейс в /etc/rc.conf:
ifconfig_интерфейс="inet 192.168.0.1 netmask 255.255.255.0 media 100baseTX mediaopt full-duplex"
Отобразить список поддерживаемых стандартов передачи данных интерфейсом ifn.
Включить интерфейс ifn.
Отключить интерфейс ifn.
ifconfig wlan0 up scan
Создать псевдоустройство wlan0 на базе ath0. Сканировать и отобразить доступные точки доступа Wi-Fi.
Создать конфиг для подключения к беспроводной сети: /etc/wpa_supplicant.conf.
Если пароль не задан в параметрах, будет выдан запрос на ввод пароля.
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
dhclient wlan0
1. Создать псевдоустройство wlan0 на базе ath0.
2. Подключиться к беспроводной сети.
Дополнительные параметры для wpa_supplicant:
-B
- запуск в фоновом режиме.
-s
- отправлять сообщения в syslog вместо текущего терминала.
3. Получить сетевые реквизиты с DHCP-сервера.
Для автоматического подключения при старте системы добавим в /etc/rc.conf следующие параметры:
wlans_ath0="wlan0" ifconfig_wlan0="DHCP WPA"
man wpa_supplicant
man rc.conf
Руководство FreeBSD: Wireless Networking
Статус текущего беспроводного подключения.
Для работы команды необходимо настроить интерфейс управления в wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=wheel
Отобразить таблицу маршрутов.
Добавить маршрут к сети 192.168.1.0, маска /24, шлюз 192.168.2.1.
Добавить маршрут к хосту 192.168.1.123, шлюз 192.168.2.1.
route change default 192.168.2.1
Задать шлюз по умолчанию 192.168.2.1.
Удалить маршрут к сети 192.168.1.0, маска /24.
Получить маршрут для заданного адреса.
-n
- не выполнять реверсный DNS-запрос имени узла.
Проверка связи до заданного узла, оценка задержек и потерь.
-s
- размер пакета без учета ICMP-заголовка (8 байт для TCP/IPv4).
-c
- количество запросов. Если ключ -c не задан, пинг выполняется до остановки вручную по Ctrl+C.
Пинг ARP-пакетами. Полезно если внутрисетевой хост не отвечает на ICMP-запросы.
Требуется установка порта arping.
Трассировка маршрута ICMP пакетами до заданного адреса. Если не указан ключ -I трассировка ведется UDP пакетами.
Трассировка маршрута TCP пакетами на фиксированный порт. Полезно для обнаружения вышестоящих брандмауэров, блокирующих порты.
host [-t типЗаписи] адрес [DNS-сервер]
dig [@DNS-сервер] адрес [типЗаписи]
nslookup [-query=типЗаписи] адрес [DNS-сервер]
Выполнение DNS-запросов.
Начиная с FreeBSD 10, dig
и nslookup
больше не входят в базовую поставку, но могут быть установлены из порта dns/bind-tools.
man drill
man host
man dig
man nslookup
FreeBSD. Подробное руководство: Основные инструменты DNS
Список открытых портов.
-4
- отображать только порты протокола TCP/IP v4 (не отображать UNIX-сокеты).
-L
- не отображать порты, открытые на локальных адресах: 127.0.0.0/8.
-u
- отображать только UNIX-сокеты.
Список установленных сетевых соединений.
-4
- отображать только соединения по протоколу TCP/IP v4 (не отображать UNIX-сокеты).
-p порт1,порт2,...
- фильтр соединений по заданным портам.
Также отображается пользователь и процесс, установивший соединение.
Список установленных сетевых соединений и открытых UDP-портов.
-n
- отображать адреса и порты в числовом формате.
-f inet
- отображать только соединения по протоколу TCP/IP v4 (не отображать UNIX-сокеты).
-x
- отображать статистику сокетного буфера и tcp-таймеров.
В полях Recv-Q и Send-Q отображается входящая и исходящая очередь пакетов. Ненулевое значение входящей очереди, сигнализирует о проблеме: локальное приложение не успевает обрабатывать входящий трафик. Наличие исходящей очереди, является нормой, локальное приложение формирует трафик быстрее, чем он отправляется по сети.
Состояние сетевых интерфейсов. Число полученных и отправленных пакетов, количество ошибок и коллизий.
-d
- отображать число отброшенных пакетов.
-b
- отображать число полученных и отправленных байт.
-h
- отображать данные в удобочитаемом формате.
Мониторинг числа полученных и отправленных пакетов, байт, количества ошибок и коллизий в заданном временном интервале.
-w
- итервал в секундах.
-I
- сетевой интерфейс для мониторинга. Если интерфейс не задан, отображаются суммарные данные по всем интерфейсам.
-q количество
- выход после заданного каличества интервалов.
-d
- отображать число отброшенных пакетов.
Мониторинг текущей загрузки сети.
Данные отображаются в реальном времени в формате: источник, получатель, средняя скорость (бит/с) за последние 2 секунды, 10 секунд, 40 секунд.
Требуется установка порта iftop.
Ключи запуска:
-F 192.168.0.0/16
- считать внешний трафик относительно заданной сети.
-t
- текстовый режим вывода, без использования ncurses.
Параметры запуска могут быть заданы в файле конфигурации, путь по умолчанию ~/.iftoprc
Горячие клавиши:
s, d
- агрегация по источнику или получателю.
S, D
- отображать порты для источника и получателя.
t
- режим отображения.
<, >, 1, 2, 3
- Сортировка по источнику, получателю или одной из трех колонок скорости.
P, o
- пауза или заморозка отображения.
j, k
- прокрутка списка.
q
- выход.
arp хост
Отобразить текущую ARP-таблицу или запись для заданного хоста.
-a
- отобразить все записи.
-n
- адреса в числовом формате.
-i
- на заданном сетевом интерфейсе.
Перехват и анализ сетевого трафика, для заданного IP-адреса.
-i
- сетевой интерфейс для захвата пакетов.
-n
- отображать адреса и порты в числовом формате, не выполнять реверсных DNS-запросов.
-e
- отображать данные канального уровня (MAC-адрес, протокол, длина пакета).
-A
- отображать данные пакета в текстовой форме.
-s размер
- число байт, захватываемых из пакета, по умолчанию начиная с FreeBSD 9 - 65535, в предыдущих версиях - 96 байт.
-w файл
- запись пакетов в файл. Полученный файл можно просмотреть в Tcpdump или загрузить в Wireshark.
-C размер
- максимальный размер сохраняемого файла, при превышении будет создан новый файл со следующим порядковым номером. Размер задается в миллионах байт.
-c число
- максимальное количество захватываемых пакетов, выход при превышении заданного количества.
Перехват сетевого трафика, по заданным портам.
Перехват сетевого трафика, для заданного MAC-адреса.
Перехват сетевого трафика, c фильтром по первым трем байтам MAC-адреса (идентификатору производителя устройства).
ether[0:4]
и ether[6:4]
- получаем старшие 4 байта MAC-адреса получателя и отправителя.
>> 8
- сдвигаем младший байт.
= 0x112233
- сравниваем оставшиеся 3 байта с искомым адресом: 11:22:33
man tcpdump
Википедия: tcpdump
Фильтры захвата для сетевых анализаторов (tcpdump, Wireshark, Paketyzer)
tcpdump - формат вывода
Загрузить файл по заданному URL.
-o имя
- задать имя локального файла.
-n
- не сохранять дату модификации файла.
Поддерживаются протоколы: HTTP, HTTPS, FTP.
При работе по HTTPS-протоколу возникнет ошибка: "Certificate verification failed", необходимо установить пакет корневых сертификатов ca_root_nss, поддерживаемый проектом Mozilla, и создать ссылку в /etc/ssl:
pkg install ca_root_nss ln -s /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem
Тест SSL/TLS-подключения.
Установить SSH-подключение к серверу.
-i путь
- путь к ключу авторизации.
-p порт
- порт для подключения.
Параметры подключения к серверу могут быть заданы в файле конфигурации: ~/.ssh/config
, или /etc/ssh/ssh_config
.
Для завершения подключения, вводим комбинацию "~.
" в новой строке.
SSH также поддерживает форвардинг TCP-подключений и создание VPN-туннелей через защищенное SSH-подключение.
scp [пользователь@]сервер:"файл1 файл2 ..." путь-назначения
Передача файлов по SSH-протоколу на сервер, или с сервера.
-i путь
- путь к ключу авторизации.
-P порт
- порт для подключения.
-r
- рекурсивное копирование каталогов.
-p
- сохранить дату модификации и доступ исходного файла.
-C
- использовать gzip-сжатие.
При передаче одного файла с сервера кавычки не требуются.
Для загрузки файлов в домашнюю папку пользователя на удаленном сервере или в текущую локальную папку, в качестве пути назначения, указываем точку.
Получить всю доступную информацию от SNMP-агента.
-v
- версия SNMP-протокола: 1, 2с, 3.
-Cp
- отобразить общее число полученных переменных.
-c public
- строка сообщества, она же пароль.
Требуется установка порта net-snmp.
man snmpwalk
Сайт проекта: www.net-snmp.org
Samba
Требуется установка порта samba.
Проверка файла конфигурации.
Получить список пользователей Samba.
-v
- отобразить подробную информацию о пользователях.
Добавить пользователя.
Предварительно пользователь должен быть зарегистрирован в системе командой adduser
.
Удалить пользователя.
Сменить пароль.
Отключить пользователя.
Включить пользователя.
Копирование текущей папки на удаленный SMB сервер, с предварительной очисткой удаленной папки.
2>/dev/null
- отключает вывод сообщений при использовании в сценарии.
Требуется установка порта samba-smbclient.
SMB-протокол
Команды входят в базовую поставку FreeBSD, установка пакета Samba не требуется. Подробнее о настройке SMB-клиента читаем FreeBSD. Подробное руководство: FreeBSD и CIFS.
mount -t smbfs -o -E=KOI8-R:CP866,-I=адрес //пользователь@сервер/ресурс /mnt
Подключить сетевой диск Windows.
-I=адрес
- использовать заданный IP-адрес или DNS, минуя разрешение имен NetBIOS.
Подключение производится по устаревшему SMB-протоколу на 139 порт.
Получить IP-адрес по NetBIOS-имени хоста.
Отобразить список сетевых дисков хоста.
Требует ручной загрузки модуля ядра, командой: kldload smbfs.ko
Мониторинг системы
Отобразить недавние сообщения ядра. -a - отобразить весь буфер сообщений системы, включая записи syslog и сообщения консоли.
Мониторинг нагрузки сетевых интерфейсов.
Мониторинг текущих сетевых подключений.
Мониторинг загрузки процессора и дисковой подсистемы.
Мониторинг загрузки дисковой подсистемы.
man gstat
FreeBSD. Подробное руководство: Дисковый ввод-вывод
Мониторинг статистики IP протокола.
vmstat
Комплексный мониторинг различных параметров системы: использование памяти, прерывания, нагрузку дисковой подсистемы.
man systat
man vmstat
FreeBSD. Подробное руководство: Выявление узких мест с помощью vmstat(8)
Список последних пользовательских сессий.
Отобразить все файлы, открытые на заданной файловой системе, а также открывшие их процессы. Полезно если не удается размонтировать файловую систему или перевести ее в режим чтения.
truss -p PID
Процессы
Мониторинг нагрузки системы и процессов.
-P
- раздельное отображение нагрузки для каждого ядра процессора.
man top
FreeBSD. Подробное руководство: Исследование процессора, памяти и операций ввода-вывода с помощью top(1)
procstat -a
Отобразить список процессов.
Параметры команды ps:
-a
- отображать процессы всех пользователей.
-x
- отображать процессы не связанные с терминалами.
-j
, -l
, -u
, -v
вывод различного набора столбцов.
-d
- отобразить процессы в виде дерева родитель-потомок.
-r
- упорядочить список по текущей нагрузке на процессор.
-ww
- отображать команду запуска полностью.
ps -axl | grep процесс
Отображение информации о процессе c заданным PID или именем.
man ps
man procstat
man grep
FreeBSD. Подробное руководство: Исследование процессов
Найти процессы с именем, соответствующим заданному шаблону. Проверить, запущен ли процесс.
-l
- отображать имя процесса в дополнение к идентификатору.
pkill regexp-шаблон
Отправить сигнал завершения всем процессам с заданным именем, либо именем, соответствующим заданному шаблону.
Отправить сигнал завершения процессу с заданным PID.
procstat -b PID
procstat -b `pgrep -a ^процесс$`
Отобразить путь к исполняемому файлу процесса.
procstat -c PID
procstat -c `pgrep -a ^процесс$`
Отобразить командную строку запуска процесса.
procstat -f `pgrep -a ^процесс$`
Отобразить список файлов, открытых процессом.
procstat -s `pgrep -a ^процесс$`
Отобразить параметры безопасности процесса: идентификаторы пользователя и группы, umask, флаги.
procstat -t `pgrep -a ^процесс$`
Отобразить потоки процесса.
Выполнить команду с минимальным приоритетом.
Выполнить команду с минимальным приоритетом. Вариант для csh
man csh
FreeBSD. Подробное руководство: Изменение приоритетов с помощью nice
Задать приоритет процессу.
Приоритет задается в диапазоне от -20 до 20, отрицательные значения увеличивают приоритет, положительные - уменьшают.
idprio 15 -PID
Выполнять команду или процесс только при простое системы.
15
- приоритет среди других процессов, работающих в режиме бездействия.
rtprio 15 -PID
Выполнять команду или процесс в реальном времени.
15
- приоритет среди других процессов реального времени.
Файловые системы
Отобразить таблицу разделов на диске ada0.
-p
- отобразить имена устройств, вместо индексов разделов.
Создать таблицу разделов формата GPT на диске ada5.
gpart bootcode -p /boot/gptboot -i 1 ada5
Создать загрузочный раздел, -s размером 64Кб, -a 8 - выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
Записать загрузчик системы, -i - индекс раздела для записи загрузчика.
Создать swap-раздел, -s - размером 4Гб , -a 8 - выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
Создать UFS-раздел, -s - размером 10Гб, -a 8 - выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
Создать UFS-раздел, занимающий все доступное пространство, -a 8 - выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
Удалить раздел на диске ada5. -i - индекс раздела.
Удалить таблицу разделов на диске ada5. -F - вместе с имеющимися разделами.
Создать новую файловую систему, оно же форматирование раздела. Все данные на указанном устройстве будут уничтожены.
-U - включить Soft Updates.
-j - включить журналирование Soft Updates (версия FreeBSD 9 и выше), при использовании этого режима в FreeBSD 9.1 не поддерживаются снапшоты, вследствие чего не работает dump для смонтированных файловых систем.
-L - метка тома. Позволяет монтировать файловую систему из /dev/ufs/метка, без привязки к имени контроллера и номеру порта.
Задать параметры файловой системы. Файловая система должна быть размонтирована, либо смонтирована в режиме чтения. -n enable - включить Soft Updates. -j enable - включить журналирование Soft Updates (версия FreeBSD 9 и выше), при использовании этого режима в FreeBSD 9.1 не поддерживаются снапшоты, вследствие чего не работает dump для смонтированных файловых систем.
Начиная с FreeBSD 7.2, поддерживаются метки на основе уникальных идентификаторах файловых систем, называемых ufsid. Что позволяет монтировать файловую систему из /dev/ufsid/идентификатор, без необходимости присвоения меток.
Задать метку на уровне GEOM. Работает для swap-раздела, и любых других файловых систем, включая UFS2. Позволяет монтировать файловую систему из /dev/label/метка, без привязки к имени контроллера и номеру порта.
glabel list
Получить список меток, ufsid и соответствующих им устройств.
Отобразить параметры файловой системы.
fsck ada0p2
Проверка файловой системы, исправление ошибок. -y - отвечать "да" на все запросы (лечить всё). -n - отвечать "нет" на все запросы.
Низкоуровневое редактирование файловой системы. Использовать с осторожностью, можно убить файловую систему. -r - запуск в режиме чтения, команды модификации будут недоступны.
Отобразить смонтированные устройства и параметры монтирования.
-p - вывод в формате fstab.
-v - вывод дополнительной информации о файловых системах.
Перевод смонтированной файловой системы в режим чтения.
Перевод смонтированной на чтение файловой системы в режим записи.
man mount
man fstab
Руководство FreeBSD: Монтирование и размонтирование файловых систем
FreeBSD. Подробное руководство: Таблица файловых систем /etc/fstab
Монтировать флешку в формате FAT32.
Монтировать NTFS-раздел, на чтение и запись. Начиная с версии 2009.1.1, перекодировка кириллицы в KOI8-R больше не поддерживается. Настройка UTF-8 в FreeBSD.
Требуется установка порта fusefs-ntfs и запуск демона fusefs.
Демонтировать устройство.
-f - демонтировать принудительно, если устройство используется.
mount -t udf -o -C=KOI8-R /dev/`mdconfig -f образ.iso` /mnt
Монтировать iso-образ диска.
Команда "mdconfig -f образ.iso" создает виртуальный диск и возвращает имя устройства.
Затем команда "mount -t cd9660 /dev/устройство /media" монтирует созданный диск в /media.
Демонтировать виртуальный диск.
После размонтирования необходимо отключить виртуальный диск командой mdconfig -d. Параметр "-u 0" задает номер md-устройства.
Отобразить список подключенных виртуальных дисков.
Резервное копирование файловой системы (раздела).
-a - отключить разбивку архива по лентам, разбивать только при исчерпании дискового пространства.
-C - размер кэша в мегабайтах.
-L - бэкап файловой системы, смонтированной на запись, использовать снапшот (не работает в FreeBSD 9.1 при использовании журналирования Soft Updates).
-f - путь к архиву.
/ - точка монтирования копируемой файловой системы.
Восстановление файловой системы из резервной копии в текущую папку. Перед восстановлением файловую систему необходимо отформатировать (newfs), смонтировать (mount), сделать текущей папкой (cd). При загрузке с LiveCD, также необходимо смонтировать раздел /tmp, либо задать путь в переменной окружения TMPDIR, при нехватке свободного пространства в /tmp возникнет ошибка.
Восстановление файловой системы из сжатого gzip-архива.
Извлечение файлов в текущую папку. Путь задает папки или файлы для извлечения.
Список файлов в архиве с фильтром по заданному пути.
Проверка архива.
Извлечение данных в интерактивном режиме.
man restore
Руководство FreeBSD: Основы технологии резервного копирования
FreeBSD. Подробное руководство: dump
HOTFREEBSD.RU: Резервное копирование FreeBSD при помощи DUMP и RESTORE
OpenNET: Резервное копирование и восстановление системного раздела FreeBSD с применением SMB-ресурса
Системный дамп FreeBSD
Отобразить свободное место на дисках.
-g
- в гигабайтах.
-m
- в мегабайтах.
Рассчитать объем дискового пространства, занимаемое папкой и ее подпапками. Сортировать список по возрастанию.
-k
- отображать объем в килобайтах.
-x
- игнорировать точки монтирования.
-d 1
- отображать размер подпапок с уровнем вложенности не более 1.
По умолчанию, символические ссылки и повторные жесткие ссылки не учитываются. Расчет ведется в занятых блоках на диске.
man du
man sort
FreeBSD. Подробное руководство: Насколько заполнен раздел?
Файлы
Список файлов в папке.
-T
- отображать полную дату и время модификации.
-i
- отображать номер индексного дескриптора файла (inode).
Список файлов в папке.
-U
- в качестве даты использовать дату создания,
-t
- сортировать список по убыванию даты,
-r
- сортировать в обратном порядке.
stat -x файл
Отображение информации о файле.
-x
- в развернутом формате с заголовками полей. В этом режиме не отображается дата создания файла.
Копировать файлы в заданную папку.
cp -Rpx папка-источник/ папка-назначение
Копировать заданные папки в папку назначения либо копировать содержимое папки источника в папку назначения.
-R
- включая вложенные папки,
-p
- копировать атрибуты и права доступа,
-x
- исключить файлы с других файловых систем.
mv файл1 файл2 папка-назначение
Переименование либо перемещение файлов.
ln -s файл1 файл2 папка
Создать символическую ссылку.
Усечь размер файла до нуля. Полезно для обнуления логов, в отличие от удаления, открытые ранее дескрипторы не устаревают, запись в лог-файл будет продолжена, перезапуск демона не требуется.
Создать папку, -p создавать родительские папки, если отсутствуют.
rm -r папка ...
Удалить файл либо удалить папку, включая вложенные папки и файлы. -P - уничтожение файлов путем тройной перезаписи содержимого.
Смена владельца файлов.
Смена группы-владельца файлов
chmod -R 755 папка ...
Задать права доступа к указанным файлам, или для всех файлов в заданной папке. -R - включая подпапки.
Доступ определяется восьмеричными значениями, каждое из которых соответственно задает разрешения для владельца файла, группы-владельца и остальных пользователей. Права доступа определяются суммой следующих значений: 4 - чтение, 2 - запись, 1 - исполнение файла. В рассмотренном примере, режим 755 разрешает чтение, запись и исполнение владельцу; чтение и исполнение для одногруппников и прочих пользователей
Особый режим запуска двоичного исполняемого файла: 4 - setuid, запускать от имени владельца вместо текущего пользователя; 2 - setgid, запускать от имени группы-владельца. Использование данных флагов для файлов с владельцем root, представляет собой риск повышения привилегий. Система уведомляет об обнаружении таких файлов в ежедневном отчете безопасности.
1 - sticky bit, задается для папок, разрешает удаление и переименование файла только его владельцу, либо владельцу папки. Обычно используется для папки /tmp.
man chmod
Статья Википедии
Руководство FreeBSD: Права доступа
Руководство FreeBSD: Списки контроля доступа файловой системы (ACL)
Сжать файлы в файл1.bz2, файл2.bz2 с удалением исходных файлов.
Распаковать файлы с удалением сжатой версии.
Архивация файлов и папок в tar.bzip2-архив.
Архивация файлов и папок в tar.gzip-архив.
Отобразить список файлов в tar-архиве.
Извлечь все файлы из tar-архива в заданную папку.
Архивация папки в cpio-архив. Список файлов, сформированный командой find, подается на ввод cpio. -y включает bzip2-сжатие, также доступные алгоритмы сжатия: -J - xz, -lzma - LZMA, -z - gzip, -Z - compress.
Отобразить список файлов в cpio-архиве.
Извлечь все файлы из cpio-архива в текущую папку.
man cpio
Смотри также: man pax
Руководство FreeBSD: Backup Basics
Рассчитать контрольные суммы, MD5 и SHA-256 хеши для файлов в указанной папке. Сохранить полученную спецификацию в файле mtree.out. -x - пропускать точки монтирования.
Сравнить две спецификации, отобразить различия.
Чтобы проверить целостность файлов с помощью mtree, рассчитываем текущую спецификацию файлов и сравниваем со спецификацией, созданной ранее.
man mtree
FreeBSD. Подробное руководство: Подготовка к вторжению с помощью mtree(1)
sha256 -r файл1 файл2 ...
Рассчитать MD5 или SHA-256 хеши для заданных файлов. -r - вывод в формате: "хеш файл".
Создать список хешей для всех файлов в текущей папке, и сохранить в files.md5.
-r - включая подпапки.
-e - отображать прогресс.
-l - выводить относительные пути.
-o f - обсчитывать только файлы (исключить символьные ссылки).
Требуется установка порта md5deep.
Работа с текстом
Объединить текстовые файлы.
Отобразить первые десять строк файла.
Отобразить последние десять строк файла.
Отобразить последние десять строк файла, ожидать и отображать последующие добавляемые в файл строки. Удобно для мониторинга логов в реальном времени.
Тесктовый редактор
Вернуться в программу, приостановленную по Ctrl+Z.
Поиск текста во всех файлах текущей папки, включая вложенные папки.
egrep -v '^ *[#]|^$' файл
Отобразить незакомментированные строки в файле конфигурации. Второй вариант корректно обрабатывает пробелы перед символом комментария.
Сравнить файлы, отобразить различия.
Сравнить файлы, отобразить различия с выводом в два столбца. -s - отображать только несовпадающие строки.
Сравнение файлов двух папках. -r - включая вложенные папки.
Отобразить определенные столбцы файла, в данном примере - имена и идентификаторы пользователей. Ключ "-d :" задает разделитель столбцов - двоеточие, ключ -f задает вывод первого и третьего столбца.
Отобразить определенный столбец файла средствами awk, в данном примере - список имен пользователей. Ключ -F: задает разделитель столбцов - двоеточие, команда print($1); отображает первый столбец. Описание языка.
Поиск и замена текста в файле. Ключ -i - править исходный файл, сохранить копию, добавив к имени файла .bak. Строка поиска является регулярным выражением. Флаги: g - заменять все найденные вхождения, I - поиск без учета регистра.
Перекодировать файл из KOI8-R в кодировку Windows-1251.
В FreeBSD 10 входит в базовую систему, для предыдущих версий потребуется установка порта iconv.
Дата и время
Отобразить текущую дату и время.
Установить дату и время в 20.02.2009 03:51.
Установить время в 03:51 без изменения даты.
Синхронизировать время с NTP-сервером.
man ntpdate
Руководство FreeBSD: Синхронизация часов через NTP
Выбор часового пояса.
Преобразовать время в формате год, месяц день, часы, минуты в UNIX-время.
Расшифровать UNIX-время.
Отобразить календарь на текущий или заданный месяц.
Порты и пакеты
Получить список доступных для установки пакетов.
Деинсталлировать заданные пакеты или порты,
-f
- принудительное удаление, если имеются зависимые пакеты.
Удалить пакеты, которые были установлены в качестве зависимостей и больше не требуются.
Список установленных пакетов.
pkg info -drl пакет
Информация об установленном пакете:
-d
- список пакетов, от которых зависит данный пакет;
-r
- список пакетов, которые зависят от данного пакета;
-l
- список установленных файлов.
Определить пакет, которому принадлежит указанный файл.
Проверить целостность установленных пакетов, отобразить измененные файлы.
Проверить целостность системы, отобразить измененные файлы.
man freebsd-update
Руководство FreeBSD: Сравнение состояния системы
pkg unlock пакет
pkg lock --show-locked
Заблокировать или разблокировать операции с пакетом и его зависимостями.
Блокировка необходима для предотвращения автоматического обновления программ, собранных из портов с нестандартными параметрами.
Для удаления заблокированного пакета, его необходимо разблокировать.
--show-locked
- отобразить список заблокированных пакетов.
Обновить установленные пакеты.
Ранее загруженные версии пакетов сохраняются в папке /var/cache/pkg
. В случае проблем после обновления, можно переустановить предыдущую версию пакета из этой папки.
Список установленных пакетов, с сортировкой по дате установки пакета.
pkg query
запрашивает следующие данные:
%t
- дата установки в формате UNIX-времени, расшифровать значение можно командой date -r число
%#d
- число зависимостей пакета
%n
- наименование пакета
%v
- версия пакета
man pkg-query
man pkg
man pkg.conf
Руководство FreeBSD: Использование pkgng для управления бинарными пакетами
Получить коллекцию портов, используя portsnap.
Обновить коллекцию портов, используя portsnap.
svn checkout svn://svn.FreeBSD.org/ports/head /usr/ports
Получить коллекцию портов, используя Subversion.
При переходе на Subversion, для исключения конфликтов, необходимо удалить имеющуюся коллекцию портов:
rm -r /usr/ports mkdir /usr/ports
Команда svnlite доступна начиная с FreeBSD 10. В предыдущих версиях требуется установка полной версии из порта subversion.
svn update /usr/ports
Обновить коллекцию портов, используя Subversion.
svn log -l 10 /usr/ports/категория/порт
Получить журнал ревизий порта.
-l
- число получаемых записей
-q
- список ревизий в кратком формате
svn update -r номер ревизии /usr/ports/категория/порт
Откатить порт к заданной ревизии.
svn help
Справка по параметрам.
Найти путь к заданному порту.
Кроме коллекции портов, выполняется поиск системных исполняемых файлов, man-страниц, исходных файлов системы.
Поиск по индексу коллекции портов с частичным совпадением имени.
Настройка порта.
Сборка порта.
Установка порта.
Создать пакет для порта.
В процессе создания пакета выполняется установка порта.
pkg_delete порт-версия
Удаление порта.
portupgrade -o категория/портV2 портV1
Получить и собрать свежую версию порта, в случае успеха, удалить предыдущую версию и установить новую.
-o категория/портV2
- обновление с заменой порта.
-f
- принудительная пересборка текущей версии порта, например, после обновления зависимостей.
Требуется установка порта portupgrade.
man portupgrade
Руководство FreeBSD: Обновление портов
FreeBSD. Подробное руководство: Обновление установленных «портов»
Восстановить целостность базы пакетов: поиск дубликатов, восстановление зависимостей после принудительного удаления зависимых пакетов и др.).
Требуется установка порта portupgrade.
portaudit -Fda
Проверка установленных портов и пакетов на наличие известных уязвимостей.
-F
- получить свежую базу уязвимостей,
-d
- отобразить дату создания базы,
-a
- отобразить список уязвимостей в установленных портах.
В первой команде аудит выполняется средствами pkgng. Для работы второй команды, потребуется установка порта portaudit.
man pkg-audit
man portaudit
FreeBSD. Подробное руководство: Обеспечение безопасности при работе с «портами» и пакетами
Настройка почтовых уведомлений
Список динамических библиотек, необходимых для запуска программы.
man ldd
FreeBSD. Подробное руководство: Управление разделяемыми библиотеками
Сканировать исполняемые файлы, отобразить ссылки на отсутствующие библиотеки.
Требуется установка порта libchk.
rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
Отобразить порядок загрузки служб и ошибки при анализе зависимостей.
Полезно при нарушении порядка старта служб.
Shell-скрипты
Перенаправить вывод команды в файл, включая ошибки.
Отправить вывод команды на почту заданному адресату. -E не выполнять отправку, если вывод пуст.
pgrep процесс >/dev/null || echo Процесс не запущен
Выполнить действие в зависимости от того, запущен или не запущен процесс.
test -e файл || echo Файл отсутствует
Проверка наличия файла.
-e
- любой файл,
-d
- папка,
-f
- обычный файл
-L
- символическая ссылка,
-s
- файл ненулевого размера,
-r
- файл доступен для чтения,
-w
- доступен для записи,
-x
- исполняемый файл,
-b
- блочное устройство,
-c
- символьное устройство и др.
Извлечение информации о файле в переменные скрипта.
test -n "$str1" && echo $str1
test -z "$str1" && echo Пустая строка
Строковое сравнение.
Доступны операторы: =, !=, <, >
.
-n
- строка ненулевого размера,
-z
- пустая строка.
Числовое сравнение.
-eq
- равно, -ne - не равно,
-gt
- больше,
-ge
- больше или равно,
-lt
- меньше,
-le
- меньше или равно.
Получить текущую дату и время в формате 2009-02-20-03_51 в переменную shell-скрипта. Полезно для скриптов архивации.
Получить версию системы в переменную $ver.
Приостановка выполнения скрипта на заданное число секунд.
Завершение выполнения скрипта. Код завершения: 0 - в случае успеха, номер ошибки от 1 до 255.
Разное
tmux attach
Терминальный мультиплексор, или терминальный оконный менеджер.
Позволяет открыть несколько терминальных сессий на одном экране. При разрыве SSH-подключения, запущенные программы не завершаются.
Первая команда создает новый сеанс. Вторая выполняет подключение к сеансу, запущенному ранее.
Требуется установка порта tmux.
Комбинации клавиш:
Ctrl+b
- переход в режим управления Tmux, все команды, указанные ниже, вызываются с данным префиксом.
c
- создать новое окно.
n, p, l
- переход к следующему, предыдущему или предыдущему активному окну.
0 ... 9
- переход к окну с заданным номером.
w
- выбор окна в меню.
&
- закрыть окно.
", %
- разбивка окна на две панели, вертикальная или горизонтальная.
o
- переход к следующей панели.
стрелки
- переход панели расположенной сверху, снизу, слева, справа.
пробел, Alt+1 ... 5
- переключение схемы расположения панелей.
Ctrl+o, Alt+o
- ротация панелей по часовой и против часовой стрелки.
z
- развернуть или свернуть текущую панель.
d
- выход с сохранением сессии.
?
- отобразить все клавиатурные комбинации.
sysinstall
Интерактивная настройка системы: управление пользователями, разметка диска, параметры консоли, сетевые параметры и другие настройки.
sysrc параметр
sysrc параметр=значение
Получение и изменение параметров в rc.conf.
-a
- отобразить все измененные параметры.
Команда доступна начиная с FreeBSD 9.2.
service rc.d-скрипт start
service rc.d-скрипт stop
service rc.d-скрипт restart
Запуск и остановка служб.
-e
- отобразить все включенные службы в порядке их запуска.
Калькулятор.
Переменные калькулятора:
scale=7
- число знаков после запятой.
ibase=16
- задает шестнадцатеричную систему для ввода. Шестнадцатеричные значения вводятся заглавными буквами.
obase=10
- задает систему счисления для вывода. Если для ввода была задана шестнадцатеричная система счисления, то в качестве значения задаем "A" для выбора десятичной системы, или "10" - для шестнадцатеричной.
Быстрая конвертация шестнадцатеричного числа в десятичное средствами bash.
Сохранить копию вывода команды в файл, включая ввод пользователя.
Дублировать вывод команды 1 в файл и передать на ввод команды 2.
Завершение работы
Выход из командного интерпретатора, завершение сеанса.
poweroff
Завершение работы системы с отключением компьютера.
Перезагрузка системы.
shutdown -r ГГММДДЧЧММ
Отложенная перезагрузка системы.
+15
- через заданное число минут.
ГГММДДЧЧММ
- дата и время перезагрузки в формате: год, месяц, день, час, минута.
Пригодится для тестирования новых правил брандмауэра и других сетевых настроек, если в случае ошибки доступ к системе будет утерян. Перезагрузка вернет рабочие параметры, если конфигурация загрузки системы не была изменена.
Запланированную перезагрузку можно отменить, завершив процесс командой: pkill ^shutdown$
reboot
Быстрое отключение или перезагрузка системы, без выполнения остановки служб. Для нормальной перезагрузки следует использовать команду shutdown.
Отличная статья-заметка по командам, удобная и читабельная.
Незаменима в повседневной консольной жизни :)
Очень полезный сайт Ё