Полезные команды FreeBSD

Содержание

Команды добавленные недавно

service -r
rcorder /etc/rc.d/* /usr/local/etc/rc.d/*

Отобразить порядок загрузки служб и ошибки при анализе зависимостей.

Полезно при нарушении порядка старта служб.

man service
man rcorder

Справка

man [номер секции] страница

Отобразить страницу справки.

man man

apropos ключевое-слово
whatis ключевое-слово
man -k ключевое-слово
man -f ключевое-слово

Поиск по страницам справки. whatis и man -f - поиск слова целиком. apropos и man -k - поиск части слова.

man apropos
man whatis
man man

info [раздел] [подраздел]

Чтение документации в формате Info.

Пользователи и группы

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 переменная`

Отобразить значение переменной ядра. Либо задать значение переменной скрипта.

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: получение всевозможной информации о состоянии сети

iftop -i интерфейс

Мониторинг текущей загрузки сети.

Данные отображаются в реальном времени в формате: источник, получатель, средняя скорость (бит/с) за последние 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 - выход.

man iftop

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 байт.

-w файл - запись пакетов в файл. Полученный файл можно просмотреть в Tcpdump или загрузить в Wireshark.

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

-c число - максимальное количество захватываемых пакетов, выход при превышении заданного количества.

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

axel -a URL [зеркала]

Многопоточная загрузка файла по заданным URL с поддержкой докачки.

-a - отображать однострочный индикатор прогресса.

-n - число потоков загрузки, по умолчанию 4.

-o путь - путь и (или) имя сохраняемого файла

Требуется установка порта axel.

man axel

openssl s_client -connect адрес:порт

Тест SSL/TLS-подключения.

man openssl s_client

ssh [пользователь@]сервер

Установить SSH-подключение к серверу.

-i путь - путь к ключу авторизации.

-p порт - порт для подключения.

Параметры подключения к серверу могут быть заданы в файле конфигурации: ~/.ssh/config, или /etc/ssh/ssh_config.

Для завершения подключения, вводим комбинацию "~." в новой строке.

SSH также поддерживает форвардинг TCP-подключений и создание VPN-туннелей через защищенное SSH-подключение.

man ssh

scp файл1 файл2 ... [пользователь@]сервер:[путь-назначения]
scp [пользователь@]сервер:"файл1 файл2 ..." путь-назначения

Передача файлов по SSH-протоколу на сервер, или с сервера.

-i путь - путь к ключу авторизации.

-P порт - порт для подключения.

-r - рекурсивное копирование каталогов.

-p - сохранить дату модификации и доступ исходного файла.

-C - использовать gzip-сжатие.

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

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

man scp

snmpwalk -v 2c -Cp -c public адрес .iso

Получить всю доступную информацию от SNMP-агента.

-v - версия SNMP-протокола: 1, 2с, 3.

-Cp - отобразить общее число полученных переменных.

-c public - строка сообщества, она же пароль.

Требуется установка порта net-snmp.

man snmpwalk
Сайт проекта: www.net-snmp.org

Samba

Требуется установка порта samba.

testparm

Проверка файла конфигурации.

man testparm

pdbedit -L -v

Получить список пользователей Samba.

-v - отобразить подробную информацию о пользователях.

man pdbedit

smbpasswd -a логин

Добавить пользователя.

Предварительно пользователь должен быть зарегистрирован в системе командой adduser.

smbpasswd -x логин

Удалить пользователя.

smbpasswd логин

Сменить пароль.

smbpasswd -d логин

Отключить пользователя.

smbpasswd -e логин

Включить пользователя.

man smbpasswd

smbclient //server/share -U 'логин%пароль' -D ПапкаНаСервере -c 'prompt off;del *;mput *' 2>/dev/null

Копирование текущей папки на удаленный SMB сервер, с предварительной очисткой удаленной папки.

2>/dev/null - отключает вывод сообщений при использовании в сценарии.

Требуется установка порта samba-smbclient.

man smbclient

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(8)

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 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
Разметка диска с таблицей разделов MBR

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 -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 архив

Проверка архива.

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

stat файл
stat -x файл

Отображение информации о файле.
-x - в развернутом формате с заголовками полей. В этом режиме не отображается дата создания файла.

man stat

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
man strftime

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

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

freebsd-update IDS

Проверить целостность системы, отобразить измененные файлы.

man freebsd-update
Руководство FreeBSD: Сравнение состояния системы

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 порт-версия

Удаление порта.

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

service -r
rcorder /etc/rc.d/* /usr/local/etc/rc.d/*

Отобразить порядок загрузки служб и ошибки при анализе зависимостей.

Полезно при нарушении порядка старта служб.

man service
man rcorder

Shell-скрипты

man sh

команда >лог-файл 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 - символьное устройство и др.

man test

eval $(stat -s файл)

Извлечение информации о файле в переменные скрипта.

man stat

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
man strftime

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

Разное

tmux
tmux attach

Терминальный мультиплексор, или терминальный оконный менеджер.

Позволяет открыть несколько терминальных сессий на одном экране. При разрыве SSH-подключения, запущенные программы не завершаются.

Первая команда создает новый сеанс. Вторая выполняет подключение к сеансу, запущенному ранее.

Требуется установка порта tmux.

Комбинации клавиш:
Ctrl+b - переход в режим управления Tmux, все команды, указанные ниже, вызываются с данным префиксом.
c - создать новое окно.
n, p, l - переход к следующему, предыдущему или предыдущему активному окну.
0 ... 9 - переход к окну с заданным номером.
w - выбор окна в меню.
& - закрыть окно.
", % - разбивка окна на две панели, вертикальная или горизонтальная.
o - переход к следующей панели.
стрелки - переход панели расположенной сверху, снизу, слева, справа.
пробел, Alt+1 ... 5 - переключение схемы расположения панелей.
Ctrl+o, Alt+o - ротация панелей по часовой и против часовой стрелки.
z - развернуть или свернуть текущую панель.
d - выход с сохранением сессии.
? - отобразить все клавиатурные комбинации.

man tmux
Linux для всех: Терминальный оконный менеджер Tmux

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

Калькулятор.

Переменные калькулятора:

scale=7 - число знаков после запятой.

ibase=16 - задает шестнадцатеричную систему для ввода. Шестнадцатеричные значения вводятся заглавными буквами.

obase=10 - задает систему счисления для вывода. Если для ввода была задана шестнадцатеричная система счисления, то в качестве значения задаем "A" для выбора десятичной системы, или "10" - для шестнадцатеричной.

man bc

echo $((0x3ffe))

Быстрая конвертация шестнадцатеричного числа в десятичное средствами bash.

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

Комментарии:

RSS
  • Дмитрий Спикер.
    27.12.2016 23:53
    Спасибо. Помогло.
  • foxiys
    14.02.2014 11:52
    Спасибо автору!
    Отличная статья-заметка по командам, удобная и читабельная.
    Незаменима в повседневной консольной жизни :)
  • DAnatol
    05.01.2014 12:14
    СПАСИБО !!!
    Очень полезный сайт Ё
  • ollserg
    04.09.2013 15:44
    Спасибо. В гугле первая ссылка и отличный ресурс. Ставлю себе в закладки.

Ваш комментарий:


Вы не бот: