⚙️FreeBSD CLI: инструменты, без которых не обходится ни один день

Автор: Raven2000 , 28 апреля 2026
cli

Когда ты двадцать лет работаешь в консоли FreeBSD — набор инструментов, которые ты открываешь каждый день, становится таким же привычным, как клавиши на клавиатуре. Не нужно запоминать всё сразу. Нужно знать костяк — и он будет работать на любом *BSD сервере, от маршрутизатора до кластера.


Навигация и работа с файлами

Базовые команды, которые ты используешь сотни раз в день:

КомандаЧто делает
ls -lahСписок файлов с размерами в человекочитаемом виде
pwdТекущая директория
cd - или cd ../Вернуться в предыдущую директорию
find / -name "*.conf"Найти все .conf файлы
locate filenameБыстрый поиск по базе (нужен updatedb)
which vimГде находится бинарник
file /bin/shТип файла
du -sh /var/log/*Размер директорий/файлов
df -hИспользование дисков

Просмотр файлов и логов

Самый частый сценарий в работе админа — смотреть что происходит в системе прямо сейчас:

# Просмотр файла
cat /etc/rc.conf

# Постраничный просмотр
less /var/log/messages

# Последние 50 строк
tail -n 50 /var/log/nginx/access.log

# Живой хвост — главная команда дежурного администратора (2-3 консоли открываю - удобно)
tail -f /var/log/messages

# Несколько файлов одновременно
tail -f /var/log/messages /var/log/auth.log

# Первые строки файла
head -n 20 /etc/pf.conf

# Поиск внутри файла
grep "error" /var/log/messages
grep -i "fail" /var/log/auth.log        # без учёта регистра
grep -r "listen" /usr/local/etc/nginx/  # рекурсивно
grep -v "^#" /etc/rc.conf               # убрать комментарии

# Объединить grep с tail
tail -f /var/log/messages | grep -i "error"

Мониторинг системы в реальном времени

# Интерактивный мониторинг процессов
top

# Расширенный top — показывает CPU, память, I/O (нужно ставить, не люблю, но нравиться)
htop          # pkg install htop

# Ввод-вывод дисков
iostat -x 1

# Использование памяти
vmstat 1

# Сетевая статистика
netstat -an
netstat -s    # статистика протоколов
sockstat -4   # открытые TCP/UDP сокеты

# Текущие соединения
netstat -an | grep ESTABLISHED | wc -l

# Трафик по интерфейсам (также пакет ставим)
bwm-ng        # pkg install bwm-ng
ifconfig vtnet0

# Системные ресурсы одной строкой
sysctl hw.physmem
sysctl vm.vmtotal

История команд и навигация в shell


Работа с процессами

# Найти процесс по имени
ps aux | grep nginx
pgrep nginx

# Дерево процессов
ps auxf          # BSD-стиль

# PID процесса
pidof nginx

# Убить процесс
kill PID
kill -9 PID      # принудительно
pkill nginx      # по имени

# Запустить в фоне
command &

# Посмотреть фоновые задачи
jobs

# Вернуть задачу на передний план
fg %1

# Отвязать от терминала
nohup command &

Архивирование и передача файлов

# Создать архив
tar -czf archive.tar.gz /path/to/dir

# Распаковать
tar -xzf archive.tar.gz

# Посмотреть содержимое без распаковки
tar -tzf archive.tar.gz

# Копирование файлов между серверами
scp file.conf user@192.168.1.10:/etc/
scp -r /local/dir user@host:/remote/

# Синхронизация директорий
rsync -avz /local/dir/ user@host:/remote/dir/
rsync -avz --delete /src/ /dst/   # с удалением лишних файлов

# Скачать файл
fetch https://example.com/file.tar.gz   # FreeBSD native
curl -O https://example.com/file.tar.gz

Сеть и диагностика

# Проверить доступность
ping -c 4 8.8.8.8

# Трассировка маршрута
traceroute 8.8.8.8

# DNS-запрос
host google.com
dig google.com
nslookup google.com

# Открытые порты
sockstat -4l

# Проверить порт
nc -zv 192.168.1.10 443

# Перехват трафика
tcpdump -i vtnet0 -n port 80
tcpdump -i vtnet0 -n host 192.168.1.10

# HTTP-запрос из консоли
curl -I https://ignix.ru
curl -v https://ignix.ru

Управление пакетами FreeBSD

# Установить
pkg install vim htop tmux

# Удалить
pkg delete vim

# Обновить всё
pkg upgrade

# Найти пакет
pkg search nginx

# Информация о пакете
pkg info nginx

# Что установлено
pkg info

# Зависимости пакета
pkg info -d nginx

# Очистить кэш
pkg clean

Tmux — обязательный инструмент

Если не используешь tmux — срочно начинай. Он позволяет оставлять сессии живыми после разрыва соединения и работать с несколькими терминалами в одном окне:

pkg install tmux
КомандаДействие
tmux new -s mainСоздать сессию с именем
Ctrl+B DОтсоединиться (сессия живёт)
tmux attach -t mainВернуться в сессию
tmux lsСписок сессий
Ctrl+B CНовое окно
Ctrl+B N / PСледующее / предыдущее окно
Ctrl+B %Вертикальный сплит
Ctrl+B "Горизонтальный сплит
Ctrl+B →←↑↓Переключение между панелями

Визуализация: карта инструментов

FreeBSD CLI Ecosystem
│
├── 📁 ФАЙЛЫ
│   ├── ls, pwd, cd, find, locate
│   ├── cp, mv, rm, mkdir, touch
│   └── chmod, chown, ln
│
├── 👁️ ПРОСМОТР
│   ├── cat, less, more
│   ├── head, tail, tail -f
│   └── grep, awk, sed, cut
│
├── 📊 МОНИТОРИНГ
│   ├── top, htop
│   ├── vmstat, iostat
│   ├── netstat, sockstat
│   └── ps, pgrep, kill
│
├── 🌐 СЕТЬ
│   ├── ping, traceroute
│   ├── dig, host, nc
│   ├── tcpdump
│   └── curl, fetch, scp, rsync
│
├── 📦 ПАКЕТЫ
│   └── pkg install/delete/upgrade/search/info
│
├── 🗜️ АРХИВЫ
│   └── tar, gzip, bzip2, xz
│
├── 🖥️ СЕССИИ
│   └── tmux, screen
│
└── 🔧 СИСТЕМНЫЕ
    ├── sysctl
    ├── dmesg
    ├── kenv
    ├── history, !!, Ctrl+R
    └── cron, service, rc.conf

Несколько приёмов, которые ускоряют работу

Пайп — сердце UNIX-философии:

# Топ-10 процессов по памяти
ps aux | sort -k4 -rn | head -10

# Уникальные IP в логах
cat /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -20

# Все открытые порты одной строкой
sockstat -4l | awk '{print $5}' | cut -d: -f2 | sort -n | uniq

Алиасы в ~/.cshrc или ~/.bashrc:

alias ll='ls -lah'
alias tailf='tail -f'
alias ports='sockstat -4l'
alias myip='curl -s ifconfig.me'
alias update='pkg upgrade -y'

Полезные сочетания в shell:

Ctrl+C    — прервать процесс
Ctrl+Z    — приостановить, вернуть через fg
Ctrl+L    — очистить экран
Ctrl+A    — начало строки
Ctrl+E    — конец строки
Ctrl+W    — удалить слово перед курсором
Ctrl+U    — удалить всю строку

Консоль FreeBSD — это не ограничение, это суперсила. Чем лучше ты владеешь этими инструментами, тем меньше времени тратишь на рутину и больше — на архитектуру и решение реальных задач. Эти команды я использую каждый день — двадцать лет назад и сегодня.


🔔 Подписывайтесь: CIO & UNIX со стратегией и архитектурой
🔹 Telegram CIO: https://t.me/ipsy_ignatiev
🔹 Telegram UNIX: https://t.me/unix_rus

Комментарии