Три буфера обмена в Linux
Разбираемся, чем в Linux отличаются Clipboard, Primary Selection и внутренний буфер приложения. На практическом примере проверяем копирование и вставку через Ctrl+Shift+C, среднюю кнопку мыши, Ctrl+W и Ctrl+Y.
BashDays / инженерное медиа
Статьи об администрировании Linux, инфраструктуре, информационной безопасности, автоматизации и разработке — с реальными примерами и без пересказа документации.
Главная статья
Разбираемся, чем в Linux отличаются Clipboard, Primary Selection и внутренний буфер приложения. На практическом примере проверяем копирование и вставку через Ctrl+Shift+C, среднюю кнопку мыши, Ctrl+W и Ctrl+Y.
Форум Bashdays
Читают сейчас
Разбираемся, чем в Linux отличаются Clipboard, Primary Selection и внутренний буфер приложения. На практическом примере проверяем копирование и …
Условия авторского конкурса технических статей: самостоятельный материал, публикация в формате канала и выбор победителей по реакции аудитории. …
Разбираемся, зачем в awk появилась недокументированная опция --nostalgia и почему она аварийно завершает программу. Заодно смотрим на GNU-синтаксис -W …
Разбираем формат обучения в Linux Factory для будущих DevOps-инженеров: более 40 уроков и домашних заданий, Docker, Git, пайплайны, мониторинг и …
Разбираем fork-бомбу на Bash: как рекурсивный запуск процессов приводит к отказу в обслуживании и почему используется конвейер. Показываем читаемую …
Проверяем из Bash, работает скрипт на хосте или внутри Docker-контейнера. Рассматриваем файл /.dockerenv, проверку процесса kthreadd через …
Создаём генератор псевдослучайных строк в Bash с помощью /dev/urandom, tr и head. Разбираем набор допустимых символов, длину результата и ключи -c и …
Тестируем платформу Terminator с бесплатными сессиями Debian 12 и Windows Server 2016 прямо в браузере. Рассматриваем ограничения 15-минутной сессии и …
Знакомимся с Shell Script Compiler и превращаем Bash-скрипт в C-код и готовый ELF-бинарник. Разбираем установку shc, команду shc -f, созданные файлы и …
Краткий FAQ о формате наставничества Linux Factory: разбор резюме, помощь с поиском работы, текстовое общение вместо созвонов и возраст при смене …
Обсуждаем компромисс между удобством и защитой приватного SSH-ключа паролем. Разбираем модель угроз, гигиену рабочей станции и ситуации, в которых …
Устанавливаем двухпанельный файловый менеджер FAR в современных дистрибутивах Linux через пакет far2l. Сравниваем его с Midnight Commander, проверяем …
Настраиваем каталог /etc/skel как шаблон домашней директории нового пользователя Linux. Создаём структуру папок и конфигурационные файлы, используем …
Разбираем файловые дескрипторы stdout и stderr и синтаксис перенаправления 2>&1 в Bash. Объясняем роль амперсанда, отличие от записи 2>1 и сокращённый …
Разбираемся, как работают self-hosted PaaS-платформы и чем Dokploy и Coolify могут заменить Heroku на собственном сервере. Рассматриваем сборку …
Используем встроенную команду compgen для просмотра команд, алиасов, функций, ключевых слов, файлов и пользователей в Bash. Показываем генерацию …
Восстанавливаем логику сборки Docker-образа, когда исходный Dockerfile потерян или недоступен. Используем docker history и ключ --no-trunc, изучаем …
Изучаем дерево процессов Linux с помощью pstree и разбираем ключи -c, -p и -a. Показываем объединение одинаковых ветвей, вывод PID и аргументов …
Знакомимся с HexSpeak — способом составлять слова из допустимых шестнадцатеричных цифр. Разбираем популярные комбинации, культуру магических чисел и …
Показываем, как вывод переменной без кавычек запускает разбиение по словам и глоббинг в Bash. На примерах с шаблоном *.zip разбираемся, чем отличаются …
Ищем причину многоминутной задержки при подключении к старому SSH-серверу. Проверяем UseDNS, UsePAM и модули в /etc/pam.d/sshd, чтобы локализовать …
Разбираем конструкцию !#:3 из механизма history expansion в Bash и Zsh. Показываем, как сослаться на третий аргумент ещё не выполненной команды и …
Знакомимся с shfmt — форматтером и синтаксическим анализатором shell-скриптов для POSIX, Bash и mksh. Показываем базовый запуск, перезапись файла …
Разбираемся, как последовательности Zero Width Joiner позволяют кодировать данные внутри одного видимого эмодзи или символа Unicode. Рассматриваем …
Настраиваем построчный вывод программы в файл с помощью stdbuf -oL, чтобы наблюдать за логом в реальном времени. Дополнительно разбираем сочетание с …
Знакомимся с Bash-утилитой Kill Port, которая находит и завершает процесс, занявший указанный TCP-порт. Разбираем сценарий локальной разработки, …
Показываем аварийный способ найти фрагменты удалённого текстового файла непосредственно на разделе диска с помощью grep. Разбираем ключи -a, -C и -F, …
Разбираемся, откуда команды Linux берут допустимые варианты подтверждения y, n, Д, Н, 0, 1, плюс и минус. Изучаем выражения yesexpr и noexpr в …
Разбираемся, почему Bash воспринимает 08 как некорректное восьмеричное число и как безопасно получить номер месяца без ведущего нуля. Сравниваем …
Разбираем ошибочную конструкцию while с pgrep, command substitution, test и перенаправлением в файл 0. Упрощаем цикл Bash до проверки кода возврата …
Сравниваем условия [ ] и [[ ]] в shell-скриптах: переносимость между POSIX sh, Bash и ksh, доступные операторы, экранирование и регулярные выражения. …
Устанавливаем редактор Zed в Windows через пакетный менеджер Scoop без многочасовой компиляции из исходников. Настраиваем WSL как встроенный терминал, …
Используем atool как единый консольный интерфейс для распаковки и создания архивов ZIP, tar.gz, 7z и RAR. Разбираем простые команды извлечения и …
Пишем исполняемый sed-скрипт, который проверяет повторяющуюся последовательность строк в файле и выводит номер первого нарушения. Разбираем адресацию, …
Используем strace и системный вызов execve, чтобы увидеть, какие внешние программы запускает команда и с какими аргументами. На примере man разбираем …
Настраиваем отдельный SFTP-сервер MySecureShell поверх OpenSSH и ограничиваем пользователей файловой подсистемой. Разбираем установку в Debian, смену …
Настраиваем mirrored networking в WSL 2 через файл .wslconfig, чтобы Linux использовал сетевой стек Windows и адрес хоста. Разбираемся, как зеркальный …
Восстанавливаем доступ по SSH, когда ошибка в .bashrc ломает интерактивную оболочку удалённого сервера. Показываем два способа входа через …
Разбираемся, зачем в конфигурации Nginx указывают server_name _ и как обрабатываются запросы с неизвестным Host. Сравниваем соглашение с …
Сравниваем команды service и systemctl для управления службами Linux. Через strace проверяем вызов systemctl, вспоминаем SysVinit и Upstart и …
Пятиминутка стабильности
Из логов айтишной жизни
xx: Ефремов писал, что у женщины жировая прослойка расходуется для сохранения беременности и ГВ, если вдруг наступил голодный месяц. Про эстрогены он то ли не знал, то ли застеснялся. уу: Ефремов и застеснялся два непересекающихся понятия. хх: Ну был же случай, когда он описал лечение аппендицита роботом-зондом через задницу, но потом передумал и пустил робота через рот, потому что "так эстетичнее" ))) хх: Это не застеснялся, это про красивенькое! Красивенькое он очень любил. А где это у него такое? уу: В "Сердце Змеи". Где-то есть еще комментарий самого Ефремова, что когда он поменял точку входа, то забыл переписать последовательность кишок, по которым ползет робот, и так оно и ушло в печать к недоумению читателей, в письмах деликатно указавших автору на ошибку.
Разбираемся, чем в Linux отличаются Clipboard, Primary Selection и внутренний буфер приложения. На практическом примере проверяем копирование и вставку через Ctrl+Shift+C, среднюю кнопку мыши, Ctrl+W и Ctrl+Y.
Разбираемся, зачем в awk появилась недокументированная опция --nostalgia и почему она аварийно завершает программу. Заодно смотрим на GNU-синтаксис -W long_option и эквивалентные команды для nostalgia и copyright.
Разбираем fork-бомбу на Bash: как рекурсивный запуск процессов приводит к отказу в обслуживании и почему используется конвейер. Показываем читаемую форму функции и ограничение числа процессов через ulimit и limits.conf.
Проверяем из Bash, работает скрипт на хосте или внутри Docker-контейнера. Рассматриваем файл /.dockerenv, проверку процесса kthreadd через /proc/2/status и сохранение изменённого контейнера командой docker commit.
Создаём генератор псевдослучайных строк в Bash с помощью /dev/urandom, tr и head. Разбираем набор допустимых символов, длину результата и ключи -c и -d команды tr.
Тестируем платформу Terminator с бесплатными сессиями Debian 12 и Windows Server 2016 прямо в браузере. Рассматриваем ограничения 15-минутной сессии и сценарии для проверки программ, скриптов, команд и доступности сайтов.
Знакомимся с Shell Script Compiler и превращаем Bash-скрипт в C-код и готовый ELF-бинарник. Разбираем установку shc, команду shc -f, созданные файлы и ограничения переносимости между Linux-системами.
Устанавливаем двухпанельный файловый менеджер FAR в современных дистрибутивах Linux через пакет far2l. Сравниваем его с Midnight Commander, проверяем запуск в WSL и по SSH и вспоминаем эволюцию консольных файловых менеджеров.
Настраиваем каталог /etc/skel как шаблон домашней директории нового пользователя Linux. Создаём структуру папок и конфигурационные файлы, используем альтернативный шаблон через useradd -k и меняем расположение домашнего каталога …
Разбираем файловые дескрипторы stdout и stderr и синтаксис перенаправления 2>&1 в Bash. Объясняем роль амперсанда, отличие от записи 2>1 и сокращённый оператор |& на примере отправки общего потока в tee.
Используем встроенную команду compgen для просмотра команд, алиасов, функций, ключевых слов, файлов и пользователей в Bash. Показываем генерацию динамических массивов и практический способ изучать возможности Linux небольшими …
Изучаем дерево процессов Linux с помощью pstree и разбираем ключи -c, -p и -a. Показываем объединение одинаковых ветвей, вывод PID и аргументов запуска, а также установку пакета psmisc в разных системах.
Знакомимся с HexSpeak — способом составлять слова из допустимых шестнадцатеричных цифр. Разбираем популярные комбинации, культуру магических чисел и происхождение сигнатуры CAFEBABE в class-файлах Java.
Показываем, как вывод переменной без кавычек запускает разбиение по словам и глоббинг в Bash. На примерах с шаблоном *.zip разбираемся, чем отличаются echo $var, echo "$var" и безопасный вывод через printf.
Ищем причину многоминутной задержки при подключении к старому SSH-серверу. Проверяем UseDNS, UsePAM и модули в /etc/pam.d/sshd, чтобы локализовать тормозящий этап аутентификации и вернуть PAM после вдумчивой настройки.
Разбираем формат обучения в Linux Factory для будущих DevOps-инженеров: более 40 уроков и домашних заданий, Docker, Git, пайплайны, мониторинг и Infrastructure as Code. Внутри — личное наставничество, код-ревью, свободный темп и …
Проверяем из Bash, работает скрипт на хосте или внутри Docker-контейнера. Рассматриваем файл /.dockerenv, проверку процесса kthreadd через /proc/2/status и сохранение изменённого контейнера командой docker commit.
Обсуждаем компромисс между удобством и защитой приватного SSH-ключа паролем. Разбираем модель угроз, гигиену рабочей станции и ситуации, в которых passphrase действительно снижает риск кражи ключа.
Разбираемся, как работают self-hosted PaaS-платформы и чем Dokploy и Coolify могут заменить Heroku на собственном сервере. Рассматриваем сборку приложений из Git, запуск контейнеров, маршрутизацию трафика и место таких решений …
Восстанавливаем логику сборки Docker-образа, когда исходный Dockerfile потерян или недоступен. Используем docker history и ключ --no-trunc, изучаем слои через Dive, извлекаем файлы командой docker cp и проверяем образ с помощью …
Ищем причину многоминутной задержки при подключении к старому SSH-серверу. Проверяем UseDNS, UsePAM и модули в /etc/pam.d/sshd, чтобы локализовать тормозящий этап аутентификации и вернуть PAM после вдумчивой настройки.
Настраиваем mirrored networking в WSL 2 через файл .wslconfig, чтобы Linux использовал сетевой стек Windows и адрес хоста. Разбираемся, как зеркальный режим упрощает доступ к портам, локальной сети, корпоративным прокси и сервисам …
Разбираемся, зачем в конфигурации Nginx указывают server_name _ и как обрабатываются запросы с неизвестным Host. Сравниваем соглашение с подчёркиванием и параметр default_server, а также показываем заглушку с кодом 444.
Разбираемся с ограничениями длины SPF-записи и количеством DNS-запросов при её проверке. Заменяем длинный перечень IP-адресов сетями CIDR, проверяем запись валидатором и наблюдаем результат через DMARC.
Используем whois и ipcalc для определения сетей владельца IP-адреса и преобразования диапазонов NetRange или inetnum в CIDR. Готовим подсети для правил iptables и проверяем результат на практических примерах.
Отключаем getty на локальных TTY Linux, сохраняя удалённый SSH-доступ по ключам. Показываем команды systemctl, последствия для физической консоли и восстановление служб через Recovery mode.
Практическое руководство по nethogs для мониторинга сетевого трафика Linux в реальном времени. Разбираем установку, поиск процессов, перегружающих канал, контроль интерфейсов и режим трассировки.
Скачиваем файл без curl и wget через встроенное устройство `/dev/tcp` в Bash. Разбираем HTTP-запрос, файловый дескриптор и ограничения прямого сокетного соединения без TLS.
Практический опыт файловых серверов на FreeNAS, TrueNAS, OMV и чистой Samba. Разбираем различия прав Windows и Linux, сложности ACL и ограничения Samba в небольших и средних организациях.
Настраиваем policy-based routing в pfSense, чтобы группы хостов выходили в интернет через разные внешние IP. Создаём интерфейсы, алиасы, шлюзы и правила firewall, которые не допустят утечки трафика через маршрут по умолчанию.
Разбираем fork-бомбу на Bash: как рекурсивный запуск процессов приводит к отказу в обслуживании и почему используется конвейер. Показываем читаемую форму функции и ограничение числа процессов через ulimit и limits.conf.
Обсуждаем компромисс между удобством и защитой приватного SSH-ключа паролем. Разбираем модель угроз, гигиену рабочей станции и ситуации, в которых passphrase действительно снижает риск кражи ключа.
Разбираемся, как последовательности Zero Width Joiner позволяют кодировать данные внутри одного видимого эмодзи или символа Unicode. Рассматриваем онлайн-кодер Paul Butler, устройство кодовых точек, сценарии маркировки утечек и …
Настраиваем отдельный SFTP-сервер MySecureShell поверх OpenSSH и ограничиваем пользователей файловой подсистемой. Разбираем установку в Debian, смену оболочки, конфигурацию, управление скоростью и совместимость с SSHFS и rsync.
Разбираемся, зачем в конфигурации Nginx указывают server_name _ и как обрабатываются запросы с неизвестным Host. Сравниваем соглашение с подчёркиванием и параметр default_server, а также показываем заглушку с кодом 444.
Проверяем Linux-сервер с помощью LinPEAS и ищем ошибки конфигурации, SUID-файлы и другие пути повышения привилегий. Показываем запуск без установки через curl или Python и объясняем, почему скрипту не нужен root.
Знакомимся с vlock для блокировки виртуальной консоли Linux без графического окружения. Разбираем блокировку одной или всех консолей, защиту от SysRq, скринсейверы и риск потерять доступ, если пароль пользователя забыт.
Разбираем, почему перенос SSH с порта 22 редко повышает безопасность и лишь усложняет подключения. Вместо security through obscurity используем SSH-ключи, запрет root-входа, отключение паролей и fail2ban.
Разбираем ошибку `bad ownership or modes` при входе по SSH-ключу и роль параметра `StrictModes`. Показываем безопасную диагностику прав `authorized_keys` и объясняем риски временного отключения проверки.
Разбираем необычные права 330 для каталога Linux и их применение на SFTP-сервере. Показываем, как разрешить запись и удаление файлов, но скрыть список содержимого от пользователей одной учётной записи.
Показываем, как strace может раскрыть пароль пользователя при входе по SSH на скомпрометированном сервере. Разбираем параметры трассировки sshd, формат полученного вывода и риск для систем после захвата root-доступа.
Утилита cruft находит файлы, которые появились в Linux в обход пакетного менеджера. Настраиваем исключения для Docker и пользовательских каталогов, сохраняем отчёт и ищем забытые скрипты или подозрительные артефакты.
Пошагово подключаем зашифрованный BitLocker-раздел в Linux с помощью dislocker. Разбираем пароль и ключ восстановления, режим только для чтения, NTFS и exFAT, а также автоматическое монтирование через fstab.
Разбираем практический ответ на блокировку публичного Docker-реестра без сомнительных прокси. Переносим официальные образы во внутреннюю инфраструктуру, фиксируем версии и сохраняем контроль над цепочкой поставки.
Bash-скрипт фотографирует человека при попытке аутентификации Linux через PAM и отправляет снимок в Telegram. В примере используются ffmpeg, curl, pam_exec и настройка optional или required.
Знакомимся с Shell Script Compiler и превращаем Bash-скрипт в C-код и готовый ELF-бинарник. Разбираем установку shc, команду shc -f, созданные файлы и ограничения переносимости между Linux-системами.
Восстанавливаем логику сборки Docker-образа, когда исходный Dockerfile потерян или недоступен. Используем docker history и ключ --no-trunc, изучаем слои через Dive, извлекаем файлы командой docker cp и проверяем образ с помощью …
Изучаем дерево процессов Linux с помощью pstree и разбираем ключи -c, -p и -a. Показываем объединение одинаковых ветвей, вывод PID и аргументов запуска, а также установку пакета psmisc в разных системах.
Знакомимся с HexSpeak — способом составлять слова из допустимых шестнадцатеричных цифр. Разбираем популярные комбинации, культуру магических чисел и происхождение сигнатуры CAFEBABE в class-файлах Java.
Разбираемся, как последовательности Zero Width Joiner позволяют кодировать данные внутри одного видимого эмодзи или символа Unicode. Рассматриваем онлайн-кодер Paul Butler, устройство кодовых точек, сценарии маркировки утечек и …
Знакомимся с Bash-утилитой Kill Port, которая находит и завершает процесс, занявший указанный TCP-порт. Разбираем сценарий локальной разработки, простую ручную установку, запуск через killport и ограничения для процессов уровня …
Разбираем ошибочную конструкцию while с pgrep, command substitution, test и перенаправлением в файл 0. Упрощаем цикл Bash до проверки кода возврата процесса и объясняем, почему лишние квадратные скобки только запутывают условие.
Устанавливаем редактор Zed в Windows через пакетный менеджер Scoop без многочасовой компиляции из исходников. Настраиваем WSL как встроенный терминал, проверяем плагины, удалённую разработку и подключение ИИ-агентов.
Используем strace и системный вызов execve, чтобы увидеть, какие внешние программы запускает команда и с какими аргументами. На примере man разбираем ключи трассировки, сохранение лога и практическую отладку скриптов и приложений.
Восстанавливаем доступ по SSH, когда ошибка в .bashrc ломает интерактивную оболочку удалённого сервера. Показываем два способа входа через принудительный запуск /bin/sh и SFTP, а также объясняем риск простых ограничивающих …
Сравниваем команды service и systemctl для управления службами Linux. Через strace проверяем вызов systemctl, вспоминаем SysVinit и Upstart и перечисляем альтернативы для OpenRC, runit, s6 и Supervisor.
Тестируем изменения systemd-юнитов через временное переопределение `systemctl edit --runtime`. Показываем выбор редактора, расположение override в `/run/systemd/` и замену ExecStart для nginx только до перезагрузки.
Ищем причины отказа SSH-аутентификации по ключам через журнал сервера и `tail`. Разбираем права на authorized_keys, неверные ключи, типовые сообщения auth.log и безопасное восстановление конфигурации.
Решаем классическую задачу о восьми ферзях средствами AWK и вложенных циклов. Разбираем проверку горизонталей и диагоналей, ограничение оператора break и полученные 92 варианта.
Разбираем массив FUNCNAME и получаем имя текущей функции внутри Bash-скрипта. Показываем стек вызовов, аналог funcstack в Zsh и связанные переменные BASH_SOURCE и BASH_LINENO для отладки.
Разбираемся, чем в Linux отличаются Clipboard, Primary Selection и внутренний буфер приложения. На практическом примере проверяем копирование и вставку через Ctrl+Shift+C, среднюю кнопку мыши, Ctrl+W и Ctrl+Y.
Условия авторского конкурса технических статей: самостоятельный материал, публикация в формате канала и выбор победителей по реакции аудитории. Главный приз — баланс-борд, дополнительные места получают денежные награды.
Разбираем формат обучения в Linux Factory для будущих DevOps-инженеров: более 40 уроков и домашних заданий, Docker, Git, пайплайны, мониторинг и Infrastructure as Code. Внутри — личное наставничество, код-ревью, свободный темп и …
Краткий FAQ о формате наставничества Linux Factory: разбор резюме, помощь с поиском работы, текстовое общение вместо созвонов и возраст при смене профессии. Объясняем, когда начинается работа над резюме и как устроена рекомендация …
Знакомимся с shfmt — форматтером и синтаксическим анализатором shell-скриптов для POSIX, Bash и mksh. Показываем базовый запуск, перезапись файла ключом -w и применение инструмента перед публикацией кода в открытых репозиториях.
Настраиваем Git-хук pre-commit для автоматической проверки Bash-скриптов через ShellCheck. В качестве бонуса адаптируем тот же подход для Ansible-плейбуков и ansible-lint.
Знакомимся с chezmoi для управления `.bashrc`, `.vimrc`, `.gitconfig` и другими dotfiles на нескольких устройствах. Добавляем и редактируем конфиги, смотрим diff, восстанавливаем файлы и синхронизируем репозиторий через Git.
Разговор о бессмысленных задачах на технических собеседованиях, давлении рекрутеров и праве кандидата требовать проверку по будущей роли. Финансовая подушка и практика интервью помогают спокойнее отказываться от неподходящих …
История абсурдного собеседования, где кандидатов в бэкенд-разработчики отбирали по скорости сборки кубика Рубика. Разбираемся, как такая проверка подменяет оценку профессиональных навыков и превращает найм в эксперимент над …
Настраиваем общую историю команд Bash для нескольких одновременно открытых терминалов. Разбираем `history -a/-c/-r`, `histappend`, `HISTCONTROL` и `PROMPT_COMMAND`, чтобы новые команды сразу появлялись во всех сессиях.
Третья часть заметок о переговорах посвящена эмоциональному состоянию участников встречи. Разбираем, как заметить позицию жертвы, прочитать настроение собеседника и найти компромисс без взаимной агрессии.
История неожиданной посылки от Selectel с баланс-бордом, приглашением на Day-Off и отсылками к облачной инфраструктуре. Распаковка подарка, фотографии комплекта и впечатления DevOps-инженера.
Подборка полезных горячих клавиш Bash для навигации, редактирования команд, поиска по history и управления терминалом. Разбираем сочетания Ctrl и Alt, которые помогают быстрее работать в командной строке.
Практический опыт подготовки большого самоучителя по Bash сначала в Markdown и Pandoc, а затем в LibreOffice. Разбираем ограничения таблиц, кириллицы, UTF-символов и PDF-вёрстки, которые стали заметны после девятнадцати глав.
Разбираемся, почему тяжёлые бинарники не стоит хранить прямо в Git-репозитории и как вынести их в Git LFS. Настраиваем LFS в Gitea, подключаем git-lfs и отслеживаем отдельные файлы или целые группы по маске.
Тестируем платформу Terminator с бесплатными сессиями Debian 12 и Windows Server 2016 прямо в браузере. Рассматриваем ограничения 15-минутной сессии и сценарии для проверки программ, скриптов, команд и доступности сайтов.
Устанавливаем двухпанельный файловый менеджер FAR в современных дистрибутивах Linux через пакет far2l. Сравниваем его с Midnight Commander, проверяем запуск в WSL и по SSH и вспоминаем эволюцию консольных файловых менеджеров.
Устанавливаем редактор Zed в Windows через пакетный менеджер Scoop без многочасовой компиляции из исходников. Настраиваем WSL как встроенный терминал, проверяем плагины, удалённую разработку и подключение ИИ-агентов.
Используем atool как единый консольный интерфейс для распаковки и создания архивов ZIP, tar.gz, 7z и RAR. Разбираем простые команды извлечения и упаковки, которые избавляют от необходимости помнить синтаксис каждого архиватора.
Сравниваем пакетные менеджеры Snap и APT в Linux. Разбираем переносимость пакетов между дистрибутивами, песочницу, автоматические обновления, зависимости и ситуации, где важнее системная интеграция и производительность.
Ищем одинаковые файлы в Linux с помощью fdupes и удаляем дубликаты в интерактивном или автоматическом режиме. Разбираем ключи `-r`, `-d`, `-N` и сравниваем скорость fdupes с findup и jdupes.
Пошаговый способ зарегистрировать новую учётную запись GitLab из России через постоянный ящик Putsbox и Tor Browser. Разбираем подтверждение почты, повторную верификацию и альтернативу в виде локального GitLab.
Добавляем в чистый Bash автоподсказки и подсветку команд с помощью BLE.sh. Затем устанавливаем oh-my-posh, подключаем темы оформления через профиль оболочки и получаем удобный терминал без Zsh.
Автоматизируем запись терминала с помощью VHS и сценария `.tape`. Настраиваем размер кадра и команды, запускаем генерацию GIF в Docker и публикуем готовую анимацию.
Показываем, как ограничить время работы systemd-сервиса через `RuntimeMaxSec` и управлять завершением с помощью `TimeoutStopSec`. Разбираем сигналы SIGTERM и SIGKILL, перезапуск через `Restart` и практические шаблоны юнитов.
Утилита pv добавляет прогресс-бар, скорость и оценку времени к операциям в конвейере Linux. Показываем сжатие логов, импорт SQL-дампа с ограничением скорости и наблюдение за потоком данных.
Личный опыт замены официального WireGuard-клиента в Windows на связку TunnlTo и WireSock. Разбираем импорт туннелей, автозапуск КВН и маршрутизацию только выбранных приложений.
Включаем Vim mode в Obsidian, чтобы писать заметки и одновременно поддерживать мышечную память команд редактора. Практический опыт совмещения базы знаний и привычного клавиатурного управления.
Настраиваем выпадающий терминал Quake Mode в Windows Terminal через settings.json. Разбираемся с глобальной клавишей вызова, вкладками, переключением между ними и режимом фокуса.
Знакомимся с утилитой bat — улучшенным просмотрщиком файлов с подсветкой синтаксиса, нумерацией строк и интеграцией Git. В статье собраны установка, alias для batcat и основные примеры команд.
Сравниваем вероятность неисправимых ошибок чтения у WD Blue, WD Gold, SAS Toshiba и SSD Micron. Объясняем, почему RAID не всегда защищает от повреждённых данных и как контрольные суммы ZFS помогают обнаруживать ошибки.
Практический опыт подготовки большого самоучителя по Bash сначала в Markdown и Pandoc, а затем в LibreOffice. Разбираем ограничения таблиц, кириллицы, UTF-символов и PDF-вёрстки, которые стали заметны после девятнадцати глав.
Личный опыт постепенного отказа от алкоголя без рекомендаций и универсальных рецептов. Автор рассказывает, какие последствия употребления заставили изменить привычки и почему одна рюмка со временем стала не нужна.
Настраиваем разные правила sshd для пользователей и адресов через блок Match. Рассматриваем парольную аутентификацию последнего шанса, шаблоны условий и проверку итоговой конфигурации командой sshd -T -C.
Показываем, как отфильтровать строки одного текстового файла по списку из другого с помощью конструкции NR == FNR и массива awk. Разбираем работу NR, FNR и next, выбор столбцов и ограничение по памяти без обязательной …
Личный опыт постепенного снижения веса со 130 до 85 килограммов без краткосрочной диеты. Автор рассказывает об изменении питания, размере порций, периодах стабилизации веса и безопасном темпе похудения.
Строим связку из SSH-бастиона и изолированной машины без выхода в интернет для удалённых пользователей. Настраиваем ключи, принудительную оболочку и автоматический переход на внутренний сервер.
Пишем Bash-watchdog, который проверяет доступность интернета и наращивает интервалы попыток восстановления связи. Для физической перезагрузки роутера подключаем недорогое USB-реле и управляем им через последовательный порт.
Сравниваем X11 Forwarding и RDP в Docker для удалённой работы с графическими приложениями на Linux-сервере. Разбираем подключение GPU NVIDIA и AMD, необходимые устройства контейнера и безопасный SSH-туннель.
Разбираем обработку стрелок, Home, End и F1–F12 в интерактивном Bash-скрипте. Функция GET_KEY переводит многобайтные управляющие последовательности терминала в hexadecimal-коды.
Личный опыт снижения веса со 130 до 85 килограммов и его дальнейшего контроля. Ежедневное взвешивание, режим питания и сна, физическая нагрузка и наблюдения о колебаниях веса.
Сценарий отката сетевой конфигурации удалённого Linux-сервера без IPMI и локального администратора. Резервная копия /etc, задание cron после перезагрузки и проверка успешного входа по SSH.
Личный опыт отказа от курения после нескольких неудачных попыток. Автор рассказывает о собственных ошибках, первых тяжёлых месяцах и приёмах, которые использовал в 1998 году.
Автор превращает безвентиляторный Celeron N2840 в домашний роутер и сравнивает pfSense, Debian и IPFire. В материале — проблемы Wi-Fi, реальные замеры iperf3, нагрев корпуса и итог эксперимента.
Знаешь это чувство, когда ждёшь регресс дольше, чем сам работаешь? У меня рантайм был 34 минуты, и две трети времени уходило на очистку QA-стенда. Решение пришло через Docker и Testcontainers — теперь тесты летят за 14 минут, а …
Навигация по знаниям
Скрипты, однострочники, awk, cron, mapfile и практическая автоматизация рутины.
→ DevOps и рабочие процессыCI/CD, инфраструктура, Ansible, пайплайны, рабочие практики и инженерная рутина.
→ Docker, Podman и контейнерыВсе про контейнеры: Docker, Podman, сборки, окружение, управление и смежные инструменты.
→ Linux и администрированиеСистемное администрирование Linux, диагностика, утилиты, права, systemd, файловые системы и сеть.
→
Загружаем свежие комментарии…