КОНСАЛТИНГ | IT-АУТСОРСИНГ | РЕШЕНИЯ | КЕЙСЫ | БЛОГ
Когда ты двадцать лет работаешь в консоли FreeBSD — набор инструментов, которые ты открываешь каждый день, становится таким же привычным, как клавиши на клавиатуре. Не нужно запоминать всё сразу. Нужно знать костяк — и он будет работать на любом *BSD сервере, от маршрутизатора до кластера.
Навигация и работа с файлами
Базовые команды, которые ты используешь сотни раз в день:
Просмотр файлов и логов
Самый частый сценарий в работе админа — смотреть что происходит в системе прямо сейчас:
# Просмотр файла
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
# История команд
history
history | grep "pkg install"
# Быстрый поиск в истории — Ctrl+R
# Набираешь часть команды — находит последнее вхождение
# Повторить последнюю команду
!!
# Последний аргумент предыдущей команды
!$
# Пример: ls /etc/nginx/ → vim !$ (откроет /etc/nginx/)
# Повторить команду из истории по номеру
!142
# Размер буфера истории в .profile или .cshrc
set history=5000Работа с процессами
# Найти процесс по имени
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 cleanTmux — обязательный инструмент
Если не используешь tmux — срочно начинай. Он позволяет оставлять сессии живыми после разрыва соединения и работать с несколькими терминалами в одном окне:
pkg install tmuxВизуализация: карта инструментов
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
Комментарии