Команды добавленные недавно
tcpdump -i интерфейс -n host 192.168.0.1
Перехват и анализ сетевого трафика, для заданного IP-адреса.
-i - сетевой интерфейс для захвата пакетов.
-n - отображать адреса и порты в числовом формате, не выполнять реверсных DNS-запросов.
-e - отображать данные канального уровня (MAC-адрес, протокол, длина пакета).
-A - отображать данные пакета в текстовой форме.
-s размер - число байт, захватываемых из пакета, по умолчанию начиная с FreeBSD 9 - 65535, в предыдущих версиях - 96 байт.
tcpdump -i интерфейс tcp port 80 or 443
Перехват сетевого трафика, по заданным портам.
tcpdump -i интерфейс ether host 11:22:33:44:55:66
Перехват сетевого трафика, для заданного MAC-адреса.
tcpdump -i интерфейс "ether[0:4] >> 8 = 0x112233 or ether[6:4] >> 8 = 0x112233"
Перехват сетевого трафика, c фильтром по первым трем байтам MAC-адреса (идентификатору производителя устройства):
ether[0:4] и ether[6:4] - получаем старшие 4 байта MAC-адреса получателя и отправителя.
>> 8 - сдвигаем младший байт.
= 0x112233 - сравниваем оставшиеся 3 байта с искомым адресом: 11:22:33
man tcpdump
Википедия: tcpdump
Фильтры захвата для сетевых анализаторов (tcpdump, Wireshark, Paketyzer)
tcpdump - формат вывода
arp -an
arp хост
Отобразить текущую ARP-таблицу или запись для заданного хоста.
-a - отобразить все записи.
-n - адреса в числовом формате.
-i - на заданном сетевом интерфейсе.
man arp
ntpdate pool.ntp.org
Синхронизировать время с NTP-сервером.
man ntpdate
Руководство FreeBSD: Синхронизация часов через NTP
tzsetup
Выбор часового пояса.
man tzsetup
fetch URL
Загрузить файл по заданному 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
man fetch
pkg info пакет
pkg info -drl пакет
Информация об установленном пакете:
-d - список пакетов, от которых зависит данный пакет,
-r - список пакетов, которые зависят от данного пакета,
-l - список установленных файлов.
man pkg-info
man pkg_info
pkg lock пакет
pkg unlock пакет
Заблокировать или разблокировать операции с пакетом и его зависимостями.
Блокировка пригодится для предотвращения автоматического обновления пакетов, собранных из портов с нестандартными параметрами.
Для удаления пакета, его необходимо разблокировать.
man pkg-lock
pkg query "%t %#d %n-%v" | sort
ls -lTtrU /var/db/pkg
Список установленных пакетов, с сортировкой по дате установки пакета.
pkg query запрашивает следующие данные:
%t - дата установки в формате UNIX-времени, расшифровать значение можно командой date -r число
%#d - число зависимостей пакета
%n - наименование пакета
%v - версия пакета
На устаревших системах похожий список можно получить командой ls, задав сортировку по дате создания папки пакета, которая обычно совпадает с датой установки.
Пригодится для переустановки и чистки устаревших пакетов, после обновления системы.
man pkg-query
man ls
man pkg
man pkg.conf
Руководство FreeBSD: Использование pkgng для управления бинарными пакетами
sysrc -a
sysrc параметр
sysrc параметр=значение
Получение и изменение параметров в rc.conf.
-a - отобразить все измененные параметры.
Команда доступна начиная с FreeBSD 9.2.
man sysrc
service -e
service rc.d-скрипт start
service rc.d-скрипт stop
service rc.d-скрипт restart
Запуск и остановка служб.
-e - отобразить все включенные службы в порядке их запуска.
man service
Справка
man [номер секции] страница
Отобразить страницу справки.
man man
apropos ключевое-слово
whatis ключевое-слово
man -k ключевое-слово
man -f ключевое-слово
Поиск по страницам справки. whatis и man -f - поиск слова целиком. apropos и man -k - поиск части слова.
man apropos
man whatis
man man
info [раздел] [подраздел]
Чтение документации в формате Info.
info --apropos=текст
Поиск в info-документации.
man info
Руководство FreeBSD: Системный справочник (man)
FreeBSD. Подробное руководство: Страницы руководства
Пользователи и группы
adduser
Добавить пользователя в интерактивном режиме.
man adduser
Руководство FreeBSD: Пользователи и основы управления учетными записями
FreeBSD. Подробное руководство: Безопасность и пользователи
rmuser пользователь
Удалить пользователя.
man rmuser
passwd [пользователь]
Сменить пароль пользователя.
Если пользователь не задан, сменить свой пароль.
man passwd
pw lock пользователь
Заблокировать пользователя.
pw unlock пользователь
Разблокировать пользователя.
man pw
vipw
Открыть файл паролей в текстовом редакторе.
Будет запущен редактор, заданный в переменной окружения EDITOR, по умолчанию vi. В скрипте запуска командной оболочки: "/root/.cshrc", в строке: "setenv EDITOR", можно задать другой редактор, например ее или mcedit.
man vipw
pw groupadd группа
Создать группу.
pw groupdel группа
Удалить группу.
pw groupmod группа -m пользователь1,пользователь2
Добавить пользователей в группу.
pw groupmod группа -d пользователь1,пользователь2
Удалить пользователей из группы.
pw groupshow группа
Отобразить пользователей группы.
man pw
id пользователь
Отобразить принадлежность пользователя к группам.
man id
Устройства и ядро
cat /var/run/dmesg.boot
less /var/run/dmesg.boot
Отобразить сообщения ядра при загрузке системы. Файл /var/run/dmesg.boot содержит информацию о текущем ядре, процессе его запуска и список обнаруженных ядром устройств.
kenv
Отобразить параметры загрузки ядра, модель материнской платы и версию BIOS.
man kenv
dmidecode
Отобразить информацию из DMI/SMBIOS о материнской плате, процессоре и памяти.
Требуется установка порта dmidecode.
man dmidecode
devinfo -r
Дерево устройств с информацией об используемых ресурсах (IRQ, DMA, Memory).
devinfo -u
Список устройств с группировкой по типу ресурса.
man devinfo
pciconf -lcv
Информация о PCI устройствах.
man pciconf
vmstat -i
Информация о количестве прерываний (IRQ) и использующих их устройств.
Полезно для решения проблемы высокой нагрузки процессора обработчиками прерываний (% interrupt, отображаемый командой top).
man vmstat
camcontrol devlist
atacontrol list
Список подключенных SCSI/ATA дисков.
camcontrol identify ada0
atacontrol cap ad0
Информация о SCSI/ATA диске.
camcontrol negotiate ada0 -v
atacontrol mode ad0
Текущий режим обмена данными с диском.
man camcontrol
man atacontrol
smartctl --scan
Список устройств поддерживаемых smartctl.
Требуется установка порта smartmontools.
smartctl -i /dev/ada0
Информация о дисковом устройстве и поддержке SMART.
smartctl -s on /dev/ada0
Включение SMART на устройстве.
smartctl --attributes /dev/ada0
Получить SMART-атрибуты с устройства.
smartctl -a /dev/ada0
smartctl -x /dev/ada0
Отобразить всю доступную smartctl информацию об устройстве.
man smartctl
Настройка постоянного мониторинга
usbconfig
Управление USB устройствами. Версия FreeBSD 8 и выше.
man usbconfig
usbdevs -dv
Информация о USB устройствах. Версии FreeBSD 7 и более ранние.
man usbdevs
acpiconf -i battery0
Информация о батарее ноутбука.
man acpiconf
cu -l cuadN
Подключение терминалом к устройству на COM-порте N. Для завершения сессии ввести "~." с новой строки.
man cu
kldstat
Список динамически загруженных драйверов.
kldstat -v -n kernel
Список драйверов, статически скомпилированных в ядро.
man kldstat
kldload драйвер1 драйвер2 ...
Загрузить драйверы.
Для постоянной загрузки драйвера при старте системы, необходимо добавить параметр: драйвер_load="YES" в /boot/loader.conf.
man kldload
man loader.conf
kldunload драйвер1 драйвер2 ...
kldunload -i id1 id2 ...
Выгрузить драйверы с заданными именами или идентификаторами.
-f - выгрузить драйвер принудительно, в случае если он используется.
man kldunload
FreeBSD. Подробное руководство: Модули ядра
sysctl -a
Отобразить список переменных ядра.
-d - отображать описания переменных, вместо их значений.
sysctl переменная
var=`sysctl -n переменная`
Отобразить значение переменной ядра. Либо задать значение переменной скрипта.
sysctl переменная=значение
Изменить значение переменной ядра.
man sysctl
Руководство FreeBSD: Настройка с помощью sysctl
FreeBSD. Подробное руководство: sysctl
FreeBSD. Подробное руководство: Некоторые полезные sysctl MIBS
vidcontrol -i mode | more
vidcontrol MODE_режим
Задать разрешение экрана физической консоли.
-i mode - отобразить список доступных видеорежимов.
Для автоматической смены разрешения при старте системы, необходимо задать параметр allscreens_flags="MODE_режим" в /etc/rc.conf
Руководство FreeBSD: Виртуальные консоли и терминалы
man rc.conf
vidcontrol -P -H < /dev/ttyv0
Получить содержимое первой физической консоли.
-H - включая буфер истории.
Для записи сообщений выводимых на консоль в лог-файл, необходимо раскомментировать строчку в /etc/syslog.conf:
console.info /var/log/console.log
Создать лог-файл и задать права доступа:
touch /var/log/console.log
chmod 600 /var/log/console.log
man vidcontrol
man syslog.conf
Сеть
ifconfig
Отобразить список сетевых интерфейсов, соответствующие им IP и MAC-адреса, статус и параметры подключения.
ifconfig ifn inet 192.168.0.1 netmask 255.255.255.0
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 255.255.255.255 alias
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 -alias
ifconfig ifn inet 192.168.0.2 delete
Удалить IP-адрес для интерфейса ifn.
ifconfig ifn ether 00:1D:7D:E5:E5:EF
Задать MAC-адрес для интерфейса ifn.
Для постоянной подмены MAC-адреса, необходимо создать стартовый скрипт /etc/start_if.интерфейс, и прописать данную команду.
ifconfig ifn media 100baseTX mediaopt full-duplex
Принудительно задать стандарт передачи данных для интерфейса ifn, в случае, если при автосогласовании скорость определена неверно.
Для постоянного переопределения скорости, корректируем параметр ifconfig_интерфейс в /etc/rc.conf:
ifconfig_интерфейс="inet 192.168.0.1 netmask 255.255.255.0 media 100baseTX mediaopt full-duplex"
ifconfig -m ifn
Отобразить список поддерживаемых стандартов передачи данных интерфейсом ifn.
ifconfig ifn up
Включить интерфейс ifn.
ifconfig ifn down
Отключить интерфейс ifn.
ifconfig wlan0 create wlandev ath0
ifconfig wlan0 up scan
Создать псевдоустройство wlan0 на базе ath0. Сканировать и отобразить доступные точки доступа Wi-Fi.
man ifconfig
wpa_passphrase ИдентификаторСети [Пароль] > /etc/wpa_supplicant.conf
Создать конфиг для подключения к беспроводной сети: /etc/wpa_supplicant.conf.
Если пароль не задан в параметрах, будет выдан запрос на ввод пароля.
man wpa_passphrase
man wpa_supplicant.conf
ifconfig wlan0 create wlandev ath0
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_cli status
Статус текущего беспроводного подключения.
Для работы команды необходимо настроить интерфейс управления в wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
man wpa_cli
netstat -r
Отобразить таблицу маршрутов.
man netstat
route add -net 192.168.1.0/24 192.168.2.1
Добавить маршрут к сети 192.168.1.0, маска /24, шлюз 192.168.2.1.
route add -host 192.168.1.123 192.168.2.1
Добавить маршрут к хосту 192.168.1.123, шлюз 192.168.2.1.
route add default 192.168.2.1
route change default 192.168.2.1
Задать шлюз по умолчанию 192.168.2.1.
route del -net 192.168.1.0/24
Удалить маршрут к сети 192.168.1.0, маска /24.
route -n get адрес
Получить маршрут для заданного адреса.
-n - не выполнять реверсный DNS-запрос имени узла.
man route
Руководство FreeBSD: Сетевые шлюзы и маршруты
ping -s 1470 -c 10 адрес
Проверка связи до заданного узла, оценка задержек и потерь.
-s - размер пакета без учета ICMP-заголовка (8 байт для TCP/IPv4).
-c - количество запросов. Если ключ -c не задан, пинг выполняется до остановки вручную по Ctrl+C.
man ping
arping 192.168.0.1
Пинг ARP-пакетами. Полезно если внутрисетевой хост не отвечает на ICMP-запросы.
Требуется установка порта arping.
man arping
traceroute -I адрес
Трассировка маршрута ICMP пакетами до заданного адреса. Если не указан ключ -I трассировка ведется UDP пакетами.
traceroute -P TCP -ep 443 адрес
Трассировка маршрута TCP пакетами на фиксированный порт. Полезно для обнаружения вышестоящих брандмауэров, блокирующих порты.
man traceroute
drill адрес [@DNS-сервер] [типЗаписи]
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
sockstat -l -4
Список открытых портов.
-4 - отображать только порты протокола TCP/IP v4 (не отображать UNIX-сокеты).
-L - не отображать порты, открытые на локальных адресах: 127.0.0.0/8.
-u - отображать только UNIX-сокеты.
sockstat -c -4
Список установленных сетевых соединений.
-4 - отображать только соединения по протоколу TCP/IP v4 (не отображать UNIX-сокеты).
-p порт1,порт2,... - фильтр соединений по заданным портам.
Также отображается пользователь и процесс, установивший соединение.
man sockstat
FreeBSD. Подробное руководство: Открытые порты
netstat -nf inet
Список установленных сетевых соединений и открытых UDP-портов.
-n - отображать адреса и порты в числовом формате.
-f inet - отображать только соединения по протоколу TCP/IP v4 (не отображать UNIX-сокеты).
-x - отображать статистику сокетного буфера и tcp-таймеров.
В полях Recv-Q и Send-Q отображается входящая и исходящая очередь пакетов. Ненулевое значение входящей очереди, сигнализирует о проблеме: локальное приложение не успевает обрабатывать входящий трафик. Наличие исходящей очереди, является нормой, локальное приложение формирует трафик быстрее, чем он отправляется по сети.
netstat -i
Состояние сетевых интерфейсов. Число полученных и отправленных пакетов, количество ошибок и коллизий.
-d - отображать число отброшенных пакетов.
-b - отображать число полученных и отправленных байт.
-h - отображать данные в удобочитаемом формате.
netstat -w секунды [-I интерфейс]
Мониторинг числа полученных и отправленных пакетов, байт, количества ошибок и коллизий в заданном временном интервале.
-w - итервал в секундах.
-I - сетевой интерфейс для мониторинга. Если интерфейс не задан, отображаются суммарные данные по всем интерфейсам.
-q количество - выход после заданного каличества интервалов.
-d - отображать число отброшенных пакетов.
man netstat
UnixSystem: Команда netstat: получение всевозможной информации о состоянии сети
arp -an
arp хост
Отобразить текущую ARP-таблицу или запись для заданного хоста.
-a - отобразить все записи.
-n - адреса в числовом формате.
-i - на заданном сетевом интерфейсе.
man arp
tcpdump -i интерфейс -n host 192.168.0.1
Перехват и анализ сетевого трафика, для заданного IP-адреса.
-i - сетевой интерфейс для захвата пакетов.
-n - отображать адреса и порты в числовом формате, не выполнять реверсных DNS-запросов.
-e - отображать данные канального уровня (MAC-адрес, протокол, длина пакета).
-A - отображать данные пакета в текстовой форме.
-s размер - число байт, захватываемых из пакета, по умолчанию начиная с FreeBSD 9 - 65535, в предыдущих версиях - 96 байт.
tcpdump -i интерфейс tcp port 80 or 443
Перехват сетевого трафика, по заданным портам.
tcpdump -i интерфейс ether host 11:22:33:44:55:66
Перехват сетевого трафика, для заданного MAC-адреса.
tcpdump -i интерфейс "ether[0:4] >> 8 = 0x112233 or ether[6:4] >> 8 = 0x112233"
Перехват сетевого трафика, c фильтром по первым трем байтам MAC-адреса (идентификатору производителя устройства):
ether[0:4] и ether[6:4] - получаем старшие 4 байта MAC-адреса получателя и отправителя.
>> 8 - сдвигаем младший байт.
= 0x112233 - сравниваем оставшиеся 3 байта с искомым адресом: 11:22:33
man tcpdump
Википедия: tcpdump
Фильтры захвата для сетевых анализаторов (tcpdump, Wireshark, Paketyzer)
tcpdump - формат вывода
fetch URL
Загрузить файл по заданному 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
man fetch
openssl s_client -connect адрес:порт
Тест SSL/TLS-подключения.
man openssl s_client
snmpwalk -v 2c -Cp -c public адрес .iso
Получить всю доступную информацию от SNMP-агента.
-v - версия SNMP-протокола: 1, 2с, 3.
-Cp - отобразить общее число полученных переменных.
-c public - строка сообщества, она же пароль.
Требуется установка порта net-snmp.
man snmpwalk
Сайт проекта:
www.net-snmp.orgSamba
testparm
Проверка файла конфигурации.
man testparm
smbclient //server/share -U 'логин%пароль' -D ПапкаНаСервере -c 'prompt off;del *;mput *' 2>/dev/null
Копирование текущей папки на удаленный SMB сервер, с предварительной очисткой удаленной папки, 2>/dev/null отключает вывод сообщений при использовании в сценарии.
man smbclient
smbpasswd -a логин
Добавить новый логин.
smbpasswd -x логин
Удалить логин.
smbpasswd логин
Сменить пароль.
smbpasswd -d логин
Отключить логин.
smbpasswd -e логин
Включить логин
man smbpasswd
SMB-протокол
Команды входят в базовую поставку FreeBSD, установка пакета Samba не требуется. Подробнее о настройке SMB-клиента читаем FreeBSD. Подробное руководство: FreeBSD и CIFS.
mount -t smbfs -o -E=KOI8-R:CP866 //пользователь@сервер/ресурс /mnt
mount -t smbfs -o -E=KOI8-R:CP866,-I=адрес //пользователь@сервер/ресурс /mnt
Подключить сетевой диск Windows.
-I=адрес - использовать заданный IP-адрес или DNS, минуя разрешение имен NetBIOS.
Подключение производится по устаревшему SMB-протоколу на 139 порт.
man mount_smbfs
smbutil lookup хост
Получить IP-адрес по NetBIOS-имени хоста.
smbutil view //пользователь@хост
Отобразить список сетевых дисков хоста.
Требует ручной загрузки модуля ядра, командой: kldload smbfs.ko
man smbutil
Мониторинг системы
dmesg -a
Отобразить недавние сообщения ядра. -a - отобразить весь буфер сообщений системы, включая записи syslog и сообщения консоли.
man dmesg
systat -ifstat
Мониторинг нагрузки сетевых интерфейсов.
systat -netstat
Мониторинг текущих сетевых подключений.
systat -iostat
Мониторинг загрузки процессора и дисковой подсистемы.
gstat
Мониторинг загрузки дисковой подсистемы.
man gstat
FreeBSD. Подробное руководство: Дисковый ввод-вывод
systat -ip
Мониторинг статистики IP протокола.
systat -vmstat
vmstat
Комплексный мониторинг различных параметров системы: использование памяти, прерывания, нагрузку дисковой подсистемы.
man systat
man vmstat
FreeBSD. Подробное руководство: Выявление узких мест с помощью vmstat(
w
who
Список активных пользовательских сессий.
man w
man who
last
Список последних пользовательских сессий.
man last
fstat -f /mnt/fs
Отобразить все файлы, открытые на заданной файловой системе, а также открывшие их процессы. Полезно если не удается размонтировать файловую систему или перевести ее в режим чтения.
man fstat
lsof
Отобразить все открытые файлы, сокеты, сетевые подключения и открывшие их процессы.
Требуется установка порта lsof.
man lsof
truss command
truss -p PID
Отобразить системные вызовы команды или запущенного процесса: операции с файлами и библиотеками, управление памятью, сигналы и пр.
Смотри также: ktrace, strace, DTrace.
man truss
Процессы
top -P
Мониторинг нагрузки системы и процессов.
-P - раздельное отображение нагрузки для каждого ядра процессора.
man top
FreeBSD. Подробное руководство: Исследование процессора, памяти и операций ввода-вывода с помощью top(1)
atop
Мониторинг нагрузки на процессор, память, дисковую подсистему и сеть. Отображение списка активных процессов. Возможность фонового сбора статистики.
Требуется установка порта atop.
man atop
ps -ax -l
procstat -a
Отобразить список процессов.
Параметры команды ps:
-a - отображать процессы всех пользователей.
-x - отображать процессы не связанные с терминалами.
-j, -l, -u, -v вывод различного набора столбцов.
-d - отобразить процессы в виде дерева родитель-потомок.
-r - упорядочить список по текущей нагрузке на процессор.
-ww - отображать команду запуска полностью.
ps -lp PID
ps -axl | grep процесс
Отображение информации о процессе c заданным PID или именем.
man ps
man procstat
man grep
FreeBSD. Подробное руководство: Исследование процессов
pgrep -l regexp-шаблон
Найти процессы с именем, соответствующим заданному шаблону. Проверить, запущен ли процесс.
-l - отображать имя процесса в дополнение к идентификатору.
man pgrep
killall имя-процесса
pkill regexp-шаблон
Отправить сигнал завершения всем процессам с заданным именем, либо именем, соответствующим заданному шаблону.
man killall
man pkill
kill PID
Отправить сигнал завершения процессу с заданным PID.
man kill
procstat -b -a
procstat -b PID
procstat -b `pgrep -a ^процесс$`
Отобразить путь к исполняемому файлу процесса.
procstat -c -a
procstat -c PID
procstat -c `pgrep -a ^процесс$`
Отобразить командную строку запуска процесса.
procstat -f PID
procstat -f `pgrep -a ^процесс$`
Отобразить список файлов, открытых процессом.
procstat -s PID
procstat -s `pgrep -a ^процесс$`
Отобразить параметры безопасности процесса: идентификаторы пользователя и группы, umask, флаги.
procstat -t PID
procstat -t `pgrep -a ^процесс$`
Отобразить потоки процесса.
man procstat
man pgrep
nice -n 20 команда
Выполнить команду с минимальным приоритетом.
man nice
nice +20 команда
Выполнить команду с минимальным приоритетом. Вариант для csh
man csh
FreeBSD. Подробное руководство: Изменение приоритетов с помощью nice
renice приоритет -p PID
Задать приоритет процессу.
Приоритет задается в диапазоне от -20 до 20, отрицательные значения увеличивают приоритет, положительные - уменьшают.
man renice
idprio 15 команда
idprio 15 -PID
Выполнять команду или процесс только при простое системы.
15 - приоритет среди других процессов, работающих в режиме бездействия.
man idprio
rtprio 15 команда
rtprio 15 -PID
Выполнять команду или процесс в реальном времени.
15 - приоритет среди других процессов реального времени.
man rtprio
Файловые системы
gpart show -p ada0
Отобразить таблицу разделов на диске ada0.
-p - отобразить имена устройств, вместо индексов разделов.
gpart create -s GPT ada5
Создать таблицу разделов формата GPT на диске ada5.
Таблица разделов GUID
gpart bootcode -b /boot/pmbr ada5
Установить загрузчик в таблицу разделов на диск ada5.
gpart add -t freebsd-boot -a 8 -s 64kb ada5
gpart bootcode -p /boot/gptboot -i 1 ada5
Создать загрузочный раздел, -s размером 64Кб, -a 8 - выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
Записать загрузчик системы, -i - индекс раздела для записи загрузчика.
gpart add -t freebsd-swap -a 8 -s 4gb ada5
Создать swap-раздел, -s - размером 4Гб , -a 8 - выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
gpart add -t freebsd-ufs -a 8 -s 10gb ada5
Создать UFS-раздел, -s - размером 10Гб, -a 8 - выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
gpart add -t freebsd-ufs -a 8 ada5
Создать UFS-раздел, занимающий все доступное пространство, -a 8 - выравнивание для дисков Advanced Format в режиме эмуляции 512 байтных секторов.
gpart delete -i 3 ada5
Удалить раздел на диске ada5. -i - индекс раздела.
gpart destroy ada5
Удалить таблицу разделов на диске ada5. -F - вместе с имеющимися разделами.
man gpart
newfs -j -L метка ada5p1
Создать новую файловую систему, оно же форматирование раздела. Все данные на указанном устройстве будут уничтожены.
-U - включить Soft Updates.
-j - включить журналирование Soft Updates (версия FreeBSD 9 и выше), при использовании этого режима в FreeBSD 9.1 не поддерживаются снапшоты, вследствие чего не работает dump для смонтированных файловых систем.
-L - метка тома. Позволяет монтировать файловую систему из /dev/ufs/метка, без привязки к имени контроллера и номеру порта.
man newfs
tunefs -j enable /dev/ada0p2
Задать параметры файловой системы. Файловая система должна быть размонтирована, либо смонтирована в режиме чтения. -n enable - включить Soft Updates. -j enable - включить журналирование Soft Updates (версия FreeBSD 9 и выше), при использовании этого режима в FreeBSD 9.1 не поддерживаются снапшоты, вследствие чего не работает dump для смонтированных файловых систем.
Руководство FreeBSD: Soft Updates
tunefs -L метка /dev/ada0p2
Задать метку для файловой системы. Позволяет монтировать файловую систему из /dev/ufs/метка, без привязки к имени контроллера и номеру порта. Файловая система должна быть размонтирована.
Начиная с FreeBSD 7.2, поддерживаются метки на основе уникальных идентификаторах файловых систем, называемых ufsid. Что позволяет монтировать файловую систему из /dev/ufsid/идентификатор, без необходимости присвоения меток.
man tunefs
glabel label метка /dev/ada0p1
Задать метку на уровне GEOM. Работает для swap-раздела, и любых других файловых систем, включая UFS2. Позволяет монтировать файловую систему из /dev/label/метка, без привязки к имени контроллера и номеру порта.
glabel status
glabel list
Получить список меток, ufsid и соответствующих им устройств.
man glabel
Руководство FreeBSD: Метки дисковых устройств
dumpfs ada0p2 | more
Отобразить параметры файловой системы.
man dumpfs
fsck /
fsck ada0p2
Проверка файловой системы, исправление ошибок. -y - отвечать "да" на все запросы (лечить всё). -n - отвечать "нет" на все запросы.
man fsck
FreeBSD. Подробное руководство: «Грязные» диски
fsdb -r /dev/ada0p2
Низкоуровневое редактирование файловой системы. Использовать с осторожностью, можно убить файловую систему. -r - запуск в режиме чтения, команды модификации будут недоступны.
man fsdb
mount
Отобразить смонтированные устройства и параметры монтирования.
-p - вывод в формате fstab.
-v - вывод дополнительной информации о файловых системах.
mount -ufr /usr
Перевод смонтированной файловой системы в режим чтения.
mount -uw /usr
Перевод смонтированной на чтение файловой системы в режим записи.
man mount
man fstab
Руководство FreeBSD: Монтирование и размонтирование файловых систем
FreeBSD. Подробное руководство: Таблица файловых систем /etc/fstab
mount -t msdosfs -o -L=ru_RU.KOI8-R,-D=CP866 /dev/da0 /mnt
Монтировать флешку в формате FAT32.
man mount_msdosfs
ntfs-3g /dev/da0s1 /mnt
Монтировать NTFS-раздел, на чтение и запись. Начиная с версии 2009.1.1, перекодировка кириллицы в KOI8-R больше не поддерживается. Настройка UTF-8 в FreeBSD.
Требуется установка порта fusefs-ntfs и запуск демона fusefs.
man ntfs-3g
umount /mnt
Демонтировать устройство.
-f - демонтировать принудительно, если устройство используется.
man umount
mount -t cd9660 -o -C=KOI8-R /dev/`mdconfig -f образ.iso` /mnt
mount -t udf -o -C=KOI8-R /dev/`mdconfig -f образ.iso` /mnt
Монтировать iso-образ диска.
Команда "mdconfig -f образ.iso" создает виртуальный диск и возвращает имя устройства.
Затем команда "mount -t cd9660 /dev/устройство /media" монтирует созданный диск в /media.
man mount_cd9660
man mount_udf
umount /media && mdconfig -d -u 0
Демонтировать виртуальный диск.
После размонтирования необходимо отключить виртуальный диск командой mdconfig -d. Параметр "-u 0" задает номер md-устройства.
mdconfig -lv
Отобразить список подключенных виртуальных дисков.
man mdconfig
dump -a -C 32 -L -f архив /
Резервное копирование файловой системы (раздела).
-a - отключить разбивку архива по лентам, разбивать только при исчерпании дискового пространства.
-C - размер кэша в мегабайтах.
-L - бэкап файловой системы, смонтированной на запись, использовать снапшот (не работает в FreeBSD 9.1 при использовании журналирования Soft Updates).
-f - путь к архиву.
/ - точка монтирования копируемой файловой системы.
dump -a -C 32 -L -f - / | gzip -9 > архив.gz
Резервное копирование файловой системы с gzip-сжатием. -9 - степень сжатия от 1 до 9.
man dump
man gzip
restore -rf архив
Восстановление файловой системы из резервной копии в текущую папку. Перед восстановлением файловую систему необходимо отформатировать (newfs), смонтировать (mount), сделать текущей папкой (cd). При загрузке с LiveCD, также необходимо смонтировать раздел /tmp, либо задать путь в переменной окружения TMPDIR, при нехватке свободного пространства в /tmp возникнет ошибка.
gunzip -c архив.gz | restore -rf -
Восстановление файловой системы из сжатого gzip-архива.
man gunzip
restore -xf архив [путь1 путь2 ...]
Извлечение файлов в текущую папку. Путь задает папки или файлы для извлечения.
restore -tf архив [путь1 путь2 ...]
Список файлов в архиве с фильтром по заданному пути.
restore -rNyf архив
Проверка архива.
restore -if архив
Извлечение данных в интерактивном режиме.
man restore
Руководство FreeBSD: Основы технологии резервного копирования
FreeBSD. Подробное руководство: dump
HOTFREEBSD.RU: Резервное копирование FreeBSD при помощи DUMP и RESTORE
OpenNET: Резервное копирование и восстановление системного раздела FreeBSD с применением SMB-ресурса
Системный дамп FreeBSD
df [-g]
Отобразить свободное место на дисках.
-g - в гигабайтах.
-m - в мегабайтах.
man df
du -kxd 1 папка | sort -n
Рассчитать объем дискового пространства, занимаемое папкой и ее подпапками. Сортировать список по возрастанию.
-k - отображать объем в килобайтах.
-x - игнорировать точки монтирования.
-d 1 - отображать размер подпапок с уровнем вложенности не более 1.
По умолчанию, символические ссылки и повторные жесткие ссылки не учитываются. Расчет ведется в занятых блоках на диске.
man du
man sort
FreeBSD. Подробное руководство: Насколько заполнен раздел?
Файлы
ls -lT [папка]
Список файлов в папке. -T - отображать полную дату и время модификации. -i - отображать номер индексного дескриптора файла (inode).
ls -lTUtr [папка]
Список файлов в папке. -U - в качестве даты использовать дату создания, -t - сортировать список по убыванию даты, -r - сортировать в обратном порядке.
man ls
cp файл1 файл2 ... папка
Копировать файлы в заданную папку.
cp -Rpx папка1 папка2 ... папка-назначение
cp -Rpx папка-источник/ папка-назначение
Копировать заданные папки в папку назначения либо копировать содержимое папки источника в папку назначения. -R включая вложенные папки, -p копировать атрибуты и права доступа, -x исключить файлы с других файловых систем.
man cp
mv источник назначение
mv файл1 файл2 папка-назначение
Переименование либо перемещение файлов.
man mv
ln -s файл ссылка
ln -s файл1 файл2 папка
Создать символическую ссылку.
man ln
truncate -s 0 файл
Усечь размер файла до нуля. Полезно для обнуления логов, в отличие от удаления, открытые ранее дескрипторы не устаревают, запись в лог-файл будет продолжена, перезапуск демона не требуется.
man truncate
mkdir -p путь
Создать папку, -p создавать родительские папки, если отсутствуют.
man mkdir
rm файл1 файл2 ...
rm -r папка ...
Удалить файл либо удалить папку, включая вложенные папки и файлы. -P - уничтожение файлов путем тройной перезаписи содержимого.
man rm
chown пользователь:группа файл1 файл2 ...
Смена владельца файлов.
man chown
chgrp группа файл1 файл2 ...
Смена группы-владельца файлов
man chgrp
chmod 755 файл1 файл2 ...
chmod -R 755 папка ...
Задать права доступа к указанным файлам, или для всех файлов в заданной папке. -R - включая подпапки.
Доступ определяется восьмеричными значениями, каждое из которых соответственно задает разрешения для владельца файла, группы-владельца и остальных пользователей. Права доступа определяются суммой следующих значений: 4 - чтение, 2 - запись, 1 - исполнение файла. В рассмотренном примере, режим 755 разрешает чтение, запись и исполнение владельцу; чтение и исполнение для одногруппников и прочих пользователей
chmod 6755 файл
Особый режим запуска двоичного исполняемого файла: 4 - setuid, запускать от имени владельца вместо текущего пользователя; 2 - setgid, запускать от имени группы-владельца. Использование данных флагов для файлов с владельцем root, представляет собой риск повышения привилегий. Система уведомляет об обнаружении таких файлов в ежедневном отчете безопасности.
chmod 1777 папка
1 - sticky bit, задается для папок, разрешает удаление и переименование файла только его владельцу, либо владельцу папки. Обычно используется для папки /tmp.
man chmod
Статья Википедии
Руководство FreeBSD: Права доступа
Руководство FreeBSD: Списки контроля доступа файловой системы (ACL)
bzip2 файл1 файл2 ...
Сжать файлы в файл1.bz2, файл2.bz2 с удалением исходных файлов.
man bzip2
bzcat файл.bz2
Отобразить содержимое сжатого файла, оно же распаковка на стандартный вывод. Имеется также bzgrep.
man bzcat
bzip2 -d файл1.bz2 файл2.bz2 ...
Распаковать файлы с удалением сжатой версии.
man bzip2
tar -cyf архив.tar.bz2 файл1 файл2 ...
Архивация файлов и папок в tar.bzip2-архив.
tar -czf архив.tar.gz файл1 файл2 ...
Архивация файлов и папок в tar.gzip-архив.
tar -tvvf архив.tar
Отобразить список файлов в tar-архиве.
tar -xf архив.tar -C папка-назначение
Извлечь все файлы из tar-архива в заданную папку.
man tar
find папка -depth -print0 | cpio -o0 -y -F архив.cpio
Архивация папки в cpio-архив. Список файлов, сформированный командой find, подается на ввод cpio. -y включает bzip2-сжатие, также доступные алгоритмы сжатия: -J - xz, -lzma - LZMA, -z - gzip, -Z - compress.
man find
cpio -itF архив.cpio
Отобразить список файлов в cpio-архиве.
cpio -idmF архив.cpio
Извлечь все файлы из cpio-архива в текущую папку.
man cpio
Смотри также: man pax
Руководство FreeBSD: Backup Basics
mtree -c -x -K cksum -K md5digest -K sha256digest -p папка > mtree.out
Рассчитать контрольные суммы, MD5 и SHA-256 хеши для файлов в указанной папке. Сохранить полученную спецификацию в файле mtree.out. -x - пропускать точки монтирования.
mtree -f список1 -f список2
Сравнить две спецификации, отобразить различия.
Чтобы проверить целостность файлов с помощью mtree, рассчитываем текущую спецификацию файлов и сравниваем со спецификацией, созданной ранее.
man mtree
FreeBSD. Подробное руководство: Подготовка к вторжению с помощью mtree(1)
md5 -r файл1 файл2 ...
sha256 -r файл1 файл2 ...
Рассчитать MD5 или SHA-256 хеши для заданных файлов. -r - вывод в формате: "хеш файл".
man md5
Википедия: алгоритм хеширования MD5
md5deep -rel -o f * >files.md5
Создать список хешей для всех файлов в текущей папке, и сохранить в files.md5.
-r - включая подпапки.
-e - отображать прогресс.
-l - выводить относительные пути.
-o f - обсчитывать только файлы (исключить символьные ссылки).
Требуется установка порта md5deep.
md5deep -erlx files.md5 -o f *
Сравнить все файлы в текущей папке со списком: -x /path/to/files.md5, созданным ранее и отобразить различия, Для частичной проверки файлов можно указать путь к папке.
CFV - программа с тем же функционалом.
AIDE - контроль целостности системы путем сравнения хешей файлов с рассчитанными ранее.
man md5deep
Работа с текстом
cat файл
more файл
less файл
Отобразить содержимое файла.
man cat
man more
man less
cat файл1 файл2 >файл3
Объединить текстовые файлы.
man cat
head
Отобразить первые десять строк файла.
man head
tail
Отобразить последние десять строк файла.
tail -f файл
Отобразить последние десять строк файла, ожидать и отображать последующие добавляемые в файл строки. Удобно для мониторинга логов в реальном времени.
man tail
ee
Тесктовый редактор
man ee
fg
Вернуться в программу, приостановленную по Ctrl+Z.
grep -R text *
Поиск текста во всех файлах текущей папки, включая вложенные папки.
man grep
egrep "^[^#]" файл
egrep -v '^ *
Отобразить незакомментированные строки в файле конфигурации. Второй вариант корректно обрабатывает пробелы перед символом комментария.
man egrep
diff файл1 файл2
Сравнить файлы, отобразить различия.
man diff
sdiff -s файл1 файл2
Сравнить файлы, отобразить различия с выводом в два столбца. -s - отображать только несовпадающие строки.
man sdiff
diff -r папка1 папка2
Сравнение файлов двух папках. -r - включая вложенные папки.
man diff
cut -d : -f 1,3 /etc/passwd
Отобразить определенные столбцы файла, в данном примере - имена и идентификаторы пользователей. Ключ "-d :" задает разделитель столбцов - двоеточие, ключ -f задает вывод первого и третьего столбца.
man cut
awk -F: '{print($1);}' /etc/passwd
Отобразить определенный столбец файла средствами awk, в данном примере - список имен пользователей. Ключ -F: задает разделитель столбцов - двоеточие, команда print($1); отображает первый столбец. Описание языка.
man awk
sed -i .bak "s/найти/заменить/gI" file
Поиск и замена текста в файле. Ключ -i - править исходный файл, сохранить копию, добавив к имени файла .bak. Строка поиска является регулярным выражением. Флаги: g - заменять все найденные вхождения, I - поиск без учета регистра.
man sed
iconv -f koi8-r -t cp1251 file.txt
Перекодировать файл из KOI8-R в кодировку Windows-1251.
В FreeBSD 10 входит в базовую систему, для предыдущих версий потребуется установка порта iconv.
man iconv
Википедия: iconv
Дата и время
date
Отобразить текущую дату и время.
date 200902200351
Установить дату и время в 20.02.2009 03:51.
date 0351
Установить время в 03:51 без изменения даты.
man date
ntpdate pool.ntp.org
Синхронизировать время с NTP-сервером.
man ntpdate
Руководство FreeBSD: Синхронизация часов через NTP
tzsetup
Выбор часового пояса.
man tzsetup
date -j 200902200351 '+%s'
Преобразовать время в формате год, месяц день, часы, минуты в UNIX-время.
date -r UNIX-время
Расшифровать UNIX-время.
man date
ncal [-my месяц год]
Отобразить календарь на текущий или заданный месяц.
man ncal
Порты и пакеты
pkg install пакет1 [пакет2 ...]
pkg_add -r пакет1 [пакет2 ...]
Установить пакет, с загрузкой из удаленного репозитория.
pkgng является основным пакетным менеджером в FreeBSD 10. В FreeBSD 9.1, 9.2 и 9.3 устанавливается автоматически при первом обращении. Может использоваться, начиная с FreeBSD 8.3, требуется установка порта ports-mgmt/pkg.
В более ранних версиях использовался pkg_tools.
man pkg
man pkg-install
Руководство FreeBSD: Использование pkgng для управления бинарными пакетами
man pkg_add
Руководство FreeBSD: Использование бинарных пакетов
FreeBSD. Подробное руководство: Применение пакетов
pkg search РегулярноеВыражение
Получить список доступных для установки пакетов.
man pkg-search
man uname
man awk
man ftp
pkg delete -f пакет1 [пакет2 ...]
pkg_delete -f пакет1 [пакет2 ...]
Деинсталлировать заданные пакеты или порты. -f - принудительное удаление, если имеются зависимые пакеты.
man pkg-delete
man pkg_delete
pkg autoremove
Удалить пакеты, которые были установлены для удовлетворения зависимостей и больше не требуются.
Выполняется после удаления пакета, для работы которого требовались дополнительные пакеты.
man pkg-autoremove
pkg info
pkg_info
Список установленных пакетов.
pkg info пакет
pkg info -drl пакет
Информация об установленном пакете:
-d - список пакетов, от которых зависит данный пакет,
-r - список пакетов, которые зависят от данного пакета,
-l - список установленных файлов.
man pkg-info
man pkg_info
pkg which /полный/путь/к/файлу
pkg_info -W файл
Определить пакет, которому принадлежит указанный файл.
man pkg-which
pkg check -s -a
cd /var/db/pkg && pkg_info -g *
Проверить целостность установленных пакетов, отобразить измененные файлы.
man pkg-check
man pkg_info
pkg lock пакет
pkg unlock пакет
Заблокировать или разблокировать операции с пакетом и его зависимостями.
Блокировка пригодится для предотвращения автоматического обновления пакетов, собранных из портов с нестандартными параметрами.
Для удаления пакета, его необходимо разблокировать.
man pkg-lock
pkg upgrade
Обновить все установленные пакеты.
man pkg-upgrade
pkg query "%t %#d %n-%v" | sort
ls -lTtrU /var/db/pkg
Список установленных пакетов, с сортировкой по дате установки пакета.
pkg query запрашивает следующие данные:
%t - дата установки в формате UNIX-времени, расшифровать значение можно командой date -r число
%#d - число зависимостей пакета
%n - наименование пакета
%v - версия пакета
На устаревших системах похожий список можно получить командой ls, задав сортировку по дате создания папки пакета, которая обычно совпадает с датой установки.
Пригодится для переустановки и чистки устаревших пакетов, после обновления системы.
man pkg-query
man ls
man pkg
man pkg.conf
Руководство FreeBSD: Использование pkgng для управления бинарными пакетами
portsnap fetch extract
Получить коллекцию портов, используя portsnap.
portsnap fetch update
Обновить коллекцию портов, используя portsnap.
man portsnap
man portsnap.conf
svnlite checkout svn://svn.FreeBSD.org/ports/head /usr/ports
svn checkout svn://svn.FreeBSD.org/ports/head /usr/ports
Получить коллекцию портов, используя Subversion.
При переходе на Subversion, для исключения конфликтов, необходимо удалить имеющуюся коллекцию портов:
rm -r /usr/ports
mkdir /usr/ports
Команда svnlite доступна начиная с FreeBSD 10. В предыдущих версиях требуется установка полной версии из порта subversion.
svnlite update /usr/ports
svn update /usr/ports
Обновить коллекцию портов, используя Subversion.
svnlite log -l 10 /usr/ports/категория/порт
svn log -l 10 /usr/ports/категория/порт
Получить журнал ревизий порта.
-l - число получаемых записей
-q - список ревизий в кратком формате
svnlite update -r номер ревизии /usr/ports/категория/порт
svn update -r номер ревизии /usr/ports/категория/порт
Откатить порт к заданной ревизии.
svnlite help
svn help
Справка по параметрам.
man svn
Книга о Subversion
whereis порт
Найти путь к заданному порту.
Кроме коллекции портов, выполняется поиск системных исполняемых файлов, man-страниц, исходных файлов системы.
man whereis
cd /usr/ports && make search name=имя
Поиск по индексу коллекции портов с частичным совпадением имени.
cd /usr/ports/категория/порт && make config
Настройка порта.
cd /usr/ports/категория/порт && make
Сборка порта.
cd /usr/ports/категория/порт && make install
Установка порта.
cd /usr/ports/категория/порт && make package
Создать пакет для порта.
В процессе создания пакета выполняется установка порта.
cd /usr/ports/категория/порт && make deinstall
pkg_delete порт-версия
Удаление порта.
cd /usr/ports/категория/порт && make clean
Удалить исходники порта.
man ports
Руководство FreeBSD: Использование Коллекции Портов
FreeBSD. Подробное руководство: Применение «портов»
portupgrade порт
portupgrade -o категория/портV2 портV1
Получить и собрать свежую версию порта, в случае успеха, удалить предыдущую версию и установить новую.
-o категория/портV2 - обновление с заменой порта.
-f - принудительная пересборка текущей версии порта, например, после обновления зависимостей.
Требуется установка порта portupgrade.
man portupgrade
Руководство FreeBSD: Обновление портов
FreeBSD. Подробное руководство: Обновление установленных «портов»
pkgdb -F
Восстановить целостность базы пакетов: поиск дубликатов, восстановление зависимостей после принудительного удаления зависимых пакетов и др.).
Требуется установка порта portupgrade.
man pkgdb
pkg audit -F
portaudit -Fda
Проверка установленных портов и пакетов на наличие известных уязвимостей.
-F - получить свежую базу уязвимостей,
-d - отобразить дату создания базы,
-a - отобразить список уязвимостей в установленных портах.
В первой команде аудит выполняется средствами pkgng. Для работы второй команды, потребуется установка порта portaudit.
man pkg-audit
man portaudit
FreeBSD. Подробное руководство: Обеспечение безопасности при работе с «портами» и пакетами
Настройка почтовых уведомлений
ldd программа
Список динамических библиотек, необходимых для запуска программы.
man ldd
FreeBSD. Подробное руководство: Управление разделяемыми библиотеками
libchk
Сканировать исполняемые файлы, отобразить ссылки на отсутствующие библиотеки.
Требуется установка порта libchk.
man libchk
Shell-скрипты
команда >лог-файл 2>&1
Перенаправить вывод команды в файл, включая ошибки.
echo текст | mail -E -s "Тема письма" user@domain.ru
Отправить вывод команды на почту заданному адресату. -E не выполнять отправку, если вывод пуст.
man mail
pgrep процесс >/dev/null && echo Процесс запущен
pgrep процесс >/dev/null || echo Процесс не запущен
Выполнить действие в зависимости от того, запущен или не запущен процесс.
man pgrep
test -e файл && echo Файл существует
test -e файл || echo Файл отсутствует
Проверка наличия файла. -e - любой файл, -d - папка, -f - обычный файл -L - символическая ссылка, -s - файл ненулевого размера, -r - файл доступен для чтения, -w - доступен для записи, -x - исполняемый файл, -b - блочное устройство, -c - символьное устройство и др.
test "$str1" = "$str2" && echo Равно
test -n "$str1" && echo $str1
test -z "$str1" && echo Пустая строка
Строковое сравнение. Доступны операторы: =, !=, <, >. -n - строка ненулевого размера, -z - пустая строка.
test $n1 -eq $n2 && echo Равно
Числовое сравнение. -eq - равно, -ne - не равно, -gt - больше, -ge - больше или равно, -lt - меньше, -le - меньше или равно.
man test
tm=`date "+%Y-%m-%d-%H_%M"`
Получить текущую дату и время в формате 2009-02-20-03_51 в переменную shell-скрипта. Полезно для скриптов архивации.
man date
ver=`uname -r`
Получить версию системы в переменную $ver.
ver=`uname -r | awk '{print(tolower($0));}'`
Получить версию системы с преобразованием прописных букв в строчные в переменную $ver.
man uname
man awk
sleep секунды
Приостановка выполнения скрипта на заданное число секунд.
man sleep
exit [код завершения]
Завершение выполнения скрипта. Код завершения: 0 - в случае успеха, номер ошибки от 1 до 255.
man sleep
Прочие
bsdconfig
sysinstall
Интерактивная настройка системы: управление пользователями, разметка диска, параметры консоли, сетевые параметры и другие настройки.
man bsdconfig
man sysinstall
sysrc -a
sysrc параметр
sysrc параметр=значение
Получение и изменение параметров в rc.conf.
-a - отобразить все измененные параметры.
Команда доступна начиная с FreeBSD 9.2.
man sysrc
service -e
service rc.d-скрипт start
service rc.d-скрипт stop
service rc.d-скрипт restart
Запуск и остановка служб.
-e - отобразить все включенные службы в порядке их запуска.
man service
bc
Калькулятор.
man bc
7z b
Тест производительности процессора. Дополнительная фишка известного архиватора.
Требуется установка порта p7zip.
man 7z
script файл команда
Сохранить копию вывода команды в файл, включая ввод пользователя.
man script
команда1 | tee файл | команда2
Дублировать вывод команды 1 в файл и передать на ввод команды 2.
man tee
Завершение работы
exit
Выход из командного интерпретатора, завершение сеанса.
shutdown -p now
poweroff
Завершение работы системы с отключением компьютера.
shutdown -r now
Перезагрузка системы.
shutdown -r +15
shutdown -r ГГММДДЧЧММ
Отложенная перезагрузка системы.
+15 - через заданное число минут.
ГГММДДЧЧММ - дата и время перезагрузки в формате: год, месяц, день, час, минута.
Пригодится для тестирования новых правил брандмауэра и других сетевых настроек, если в случае ошибки доступ к системе будет утерян. Перезагрузка вернет рабочие параметры, если конфигурация загрузки системы не была изменена.
Запланированную перезагрузку можно отменить, завершив процесс командой: pkill ^shutdown$
man shutdown
halt -p
reboot
Быстрое отключение или перезагрузка системы, без выполнения остановки служб. Для нормальной перезагрузки следует использовать команду shutdown.
man halt
man reboot
Ссылки
Книга: «FreeBSD. Подробное руководство», автор: Майкл Лукас.
Википедия: Программы UNIX-подобных операционных систем
Переводы man-страниц: muff.kiev.ua/menutree/menu-man, vds-admin.ru/unix-commands, frdp.rinet.ru/man/
commandlinefu.com