fc: редактирование и повтор команд из истории bash

fc (fix command) — встроенная команда bash для просмотра, редактирования и повторного выполнения команд из истории. Менее известна, чем !! или стрелка вверх, но решает то, что им не под силу. Без аргументов fc открывает последнюю команду в $FCEDIT (или $EDITOR), даёт поправить и сразу выполняет отредактированный вариант — удобно, когда опечатка не в конце команды, а где-то в середине длинной строки. Основные варианты: fc -l — список последних 16 команд с номерами fc -l -20 — последние 20 команд fc 15 20 — открыть диапазон команд 15–20 в редакторе одним блоком fc -s old=new — быстрая замена подстроки в последней команде и повтор, без редактора fc -s — просто повторить последнюю команду #bash #linux

12 июля 2026 г. · llexa

Две кнопки sysadmin'а

Знакомый выбор в пятницу вечером. #linux #sysadmin #юмор

12 июля 2026 г. · llexa

dd: образ диска и тест скорости

dd копирует байты блоками напрямую, минуя файловую систему — поэтому им снимают образы дисков побайтово и меряют реальную скорость I/O в обход кэша. Снять образ диска целиком: dd if=/dev/sda of=/mnt/backup/sda.img bs=4M status=progress Восстановить из образа: dd if=/mnt/backup/sda.img of=/dev/sda bs=4M status=progress Тест скорости записи в обход page cache: dd if=/dev/zero of=testfile bs=1M count=1024 oflag=direct status=progress Размер блока (bs) сильно влияет на результат — мелкий блок вроде 512 занижает скорость, 4M ближе к реальной пропускной способности диска. Тестовый файл после проверки не забыть удалить. #linux #disks

11 июля 2026 г. · llexa

nohup, disown, setsid: процесс без терминала

Закрыл SSH-сессию — и долгий процесс упал вместе с ней, получив SIGHUP. nohup, disown и setsid решают эту проблему по-разному: один игнорирует сигнал заранее, другой отвязывает уже запущенный процесс от shell, третий сразу создаёт для процесса отдельную сессию. Заранее защитить процесс от SIGHUP: nohup ./long-task.sh & Если процесс уже запущен в фоне текущего шелла: disown -h %1 Полная изоляция — без управляющего терминала с самого начала: setsid ./long-task.sh < /dev/null &> /tmp/task.log & setsid создаёт новую сессию, поэтому даже disown не нужен — процесс изначально не привязан к терминалу. Это то, что systemd и tmux используют под капотом для демонизации. ...

11 июля 2026 г. · llexa

xxd, hexdump, base64: бинарная инспекция из терминала

Иногда файл нужно смотреть не как текст, а как последовательность байт — определить формат по сигнатуре, найти повреждение или передать бинарник туда, где ждут только текст. Первые байты файла — обычно там сигнатура формата: xxd -l 16 file.bin Канонический hex-дамп: hexdump -C file.bin | head Бинарный файл текстом — например, для JSON или email-вложения: base64 -w0 file.bin > file.b64 base64 -d file.b64 > file.bin xxd дополнительно умеет обратное преобразование (xxd -r) — удобно поправить пару байт прямо в hex-дампе и собрать файл обратно. ...

11 июля 2026 г. · llexa

borg: дедупликация вместо голого tar

tar + cron работает, но каждый полный бэкап занимает столько же места, сколько предыдущий, а инкременты вручную собирать неудобно. borg дедуплицирует контент на уровне блоков — повторяющиеся куски между снапшотами не хранятся дважды, при этом каждый снапшот выглядит как полный. apt install borgbackup borg init --encryption=repokey /mnt/backup/repo borg create /mnt/backup/repo::'{hostname}-{now}' /etc /var/www /home borg list /mnt/backup/repo borg extract /mnt/backup/repo::myhost-2026-07-10T09:00:00 borg prune --keep-daily=7 --keep-weekly=4 /mnt/backup/repo Ключ шифрования (repokey) хранится внутри репозитория — держи отдельную копию passphrase, без неё восстановление невозможно. ...

10 июля 2026 г. · llexa

nethogs: кто жрёт канал прямо сейчас

iftop и nload показывают трафик по соединениям и интерфейсам, но не отвечают на вопрос “какой процесс это жрёт”. nethogs группирует трафик именно по PID — сразу видно виновника, без ручного сопоставления портов через ss. apt install nethogs # по умолчанию слушает все интерфейсы sudo nethogs # конкретный интерфейс sudo nethogs eth0 # несколько интерфейсов sudo nethogs eth0 wg0 Горячие клавиши внутри интерфейса: m — переключить единицы (KB/s ↔ MB/s) s — сортировка по отправленному r — сортировка по принятому q — выход Требует root (или CAP_NET_ADMIN) — читает трафик напрямую с интерфейса. ...

10 июля 2026 г. · llexa

sqlite3: работа с базой из терминала

SQLite часто прячется внутри других инструментов (та же tmux-workbench из недавней серии хранила индекс сессий в SQLite-файле). Открыть такую базу и посмотреть, что внутри, можно прямо из терминала — без GUI-клиентов вроде DB Browser. sqlite3 app.db .tables -- список таблиц .schema sessions -- структура конкретной таблицы .headers on -- показывать заголовки колонок .mode column -- вывод в столбик, а не через | SELECT * FROM sessions LIMIT 5; .dump > backup.sql -- полный дамп базы в SQL .import data.csv table -- импорт CSV в существующую таблицу .quit Файл базы — это просто файл на диске: cp app.db app.db.bak — тоже валидный бэкап, если в момент копирования нет активных транзакций. ...

10 июля 2026 г. · llexa

vnstat: история трафика без Grafana

nethogs и iftop показывают трафик здесь и сейчас, но не отвечают на вопрос “сколько утекло за сутки/месяц”. vnstat работает как демон в фоне, копит статистику по интерфейсам и хранит её после перезагрузки — без полноценного стека мониторинга. apt install vnstat # демон стартует сам и начинает копить статистику systemctl status vnstat # общая сводка по всем интерфейсам vnstat # по часам / дням / месяцам vnstat -h vnstat -d vnstat -m # live-график в реальном времени vnstat -l -i eth0 Конфиг — /etc/vnstat.conf: там задаются интерфейсы, единицы измерения и глубина хранения истории. ...

10 июля 2026 г. · llexa

Новые версии: 3 июля — 10 июля

Новые релизы за неделю — только то, что важно для сервера. prometheus v3.5.5 — [SECURITY] UI: обновили sanitize-html до v2.17.5, закрыли CVE-2026-53606. keycloak 26.7.0 — новые возможности для пользователей и администраторов Keycloak. syncthing v2.1.2 — поддержка HTTP/HTTPS-прокси с CONNECT, в дополнение к существующему SOCKS. patroni v4.1.4 — плановый релиз с фиксами. alertmanager v0.33.1 — фикс отсутствующего поля notification_reason в webhook-документации. immich v3.0.1 — фикс бага с альбомами, не отображавшимися в мобильном приложении. skim v5.0.0 — крупный релиз после v4: добавлена поддержка Windows. #linux #sysadmin #releases

10 июля 2026 г. · llexa