Домой Гайды Автоматизация рабочего процесса в Linux с помощью bash-скриптов

Автоматизация рабочего процесса в Linux с помощью bash-скриптов

Использование bash-скриптов позволяет автоматизировать ежедневные рутинные задачи в Linux, от обновления системы до запуска рабочего окружения и мониторинга ресурсов.

1
0

Освоение терминала в Linux открывает широкие возможности не только для выполнения отдельных команд, но и для полноценной автоматизации рутинных процессов. Использование bash-скриптов позволяет существенно сократить время на настройку системы и запуск приложений, превращая повседневные задачи в серию простых и эффективных действий. Все приведенные ниже решения протестированы на дистрибутивах Linux Mint и Debian.

Сценарий bash в терминале Linux

Основы создания и запуска скриптов

Любой bash-скрипт должен начинаться с так называемой «шебанг»-строки: #!/bin/bash. Для добавления комментариев, поясняющих назначение команд, используется символ #. Если необходимо выводить текст в терминал в процессе выполнения, применяется команда echo. После написания кода файл сохраняется с расширением .sh, а для получения прав на запуск используется команда chmod +x filename.sh. Исполнение скрипта осуществляется через ./script-name.sh.

Автоматизация обновлений и настройки параметров

Одной из самых затратных по времени задач является обслуживание пакетов. Вместо ручного ввода команд можно использовать цепочку: sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean && sudo apt autopurge. Однако потенциал скриптов гораздо шире.

В рабочий скрипт можно добавить:

  • Получение прогноза погоды через curl wttr.in.
  • Вывод исторических событий дня с помощью утилиты calendar.
  • Автоматическую настройку параметра swappiness (например, снижение до 10 или 20 вместо стандартных 60).
  • Проверку состояния Docker и просмотр последних снимков Timeshift.

Такой комплексный подход позволяет подготовить систему к рабочему дню за считанные секунды.

автоматизация рабочего процесса в Linux — иллюстрация 2 к материалу

Мониторинг ресурсов через Tmux

Для постоянного контроля за состоянием системы удобно использовать терминальный мультиплексор Tmux. Скрипт может автоматически распределять инструменты мониторинга по разным окнам. Например, запуск htop в одном окне и ncdu в другом осуществляется следующим образом:

автоматизация рабочего процесса в Linux — иллюстрация 3 к материалу
  • tmux new-session -d -s monitor ‘htop’
  • tmux split-window -h -t monitor ‘ncdu’
  • tmux attach-session -t monitor

Для добавления третьего инструмента, такого как bmon, используются команды tmux split-window -v -t monitor ‘bmon’ и tmux select-layout -t monitor tiled. Это позволяет сгруппировать btop, bmon и ncdu для визуального контроля ресурсов в реальном времени.

Запуск рабочей среды одним нажатием

Автоматизация запуска набора приложений — самый простой способ сэкономить время. Вместо поочередного открытия Firefox, Obsidian, Albert, Konsole, Clementine, Nemo и Thunderbird можно создать скрипт, содержащий список нужных программ с символом & в конце каждой строки. Например:

автоматизация рабочего процесса в Linux — иллюстрация 4 к материалу

firefox & albert & clementine & flatpak run md.obsidian.Obsidian & thunderbird & konsole & nemo

Это обеспечивает немедленную готовность рабочего пространства, при этом список приложений легко редактируется под текущие нужды пользователя. Изучение bash-скриптов не только оптимизирует время, но и дает ценный практический опыт в управлении системой Linux.

автоматизация рабочего процесса в Linux — иллюстрация 5 к материалу

Тонкости настройки и творческий подход

Bash — это сокращение от Bourne Again Shell, стандартной командной оболочки, с которой знаком практически каждый пользователь Linux. При создании скриптов не обязательно ограничиваться только сухой функциональностью. Автор материала активно использует творческий подход: например, сопровождает выполнение скриптов вызовом утилиты cowsay, которая выводит ASCII-арт прямо в окно терминала, или добавляет с помощью команды echo шутливые фразы. Хотя это не влияет на работоспособность кода, такие элементы превращают рутинную работу в более увлекательный процесс.

Важным аспектом написания скриптов является их документирование. Размещение символа # перед строкой комментария позволяет сделать скрипт понятным для себя в будущем или для других пользователей. Например, можно добавить пояснение: # Этот набор команд создает ASCII-глаза с фразой «Я вижу тебя».

автоматизация рабочего процесса в Linux — иллюстрация 6 к материалу

Глубокая настройка системы

Помимо стандартной цепочки команд для обновления и очистки системы (apt update/upgrade/autoremove/autoclean/autopurge), автор скрипта интегрирует инструменты, помогающие «разбудить мозг» перед началом работы. Получение данных о погоде через curl wttr.in и краткие исторические справки из утилиты calendar позволяют получить порцию полезной информации или интеллектуальной разминки еще до того, как открыты рабочие файлы.

автоматизация рабочего процесса в Linux — иллюстрация 7 к материалу

Отдельного внимания заслуживает работа с параметром swappiness. Несмотря на возможность постоянного изменения этого значения через конфигурационные файлы системы, автор предпочитает динамический подход. Скрипт принудительно устанавливает значение на уровне 10 или 20, что дает пользователю больше контроля над поведением системы в зависимости от текущих задач. Также автоматизация включает быструю проверку активности Docker-контейнеров и состояние снимков Timeshift, что избавляет от необходимости открывать соответствующие менеджеры вручную.

Продвинутый мониторинг в Tmux

Использование Tmux позволяет не просто запускать утилиты, но и управлять пространством терминала. Автор отмечает, что его метод включает предварительную остановку всех работающих Docker-контейнеров (команда docker stop или аналогичные), что позволяет освободить существенный объем оперативной памяти перед запуском мониторинга. Хотя результат сильно зависит от аппаратного обеспечения, этот шаг делает процесс подготовки системы чище.

автоматизация рабочего процесса в Linux — иллюстрация 8 к материалу

Гибкость Tmux позволяет адаптировать среду под любые нужды:

автоматизация рабочего процесса в Linux — иллюстрация 9 к материалу
  • Масштабируемость: можно изменять размер панелей и их ориентацию.
  • Компоновка: используя split-window с флагами -h (горизонтально) и -v (вертикально), можно настроить рабочее пространство «под себя».
  • Организация: команда select-layout -t monitor tiled позволяет автоматически выровнять несколько окон, создавая упорядоченную сетку из btop, bmon и ncdu.

Для повседневных нужд, отличных от десктопных, автор рекомендует использовать связку htop и ncdu, которая отлично показывает себя на Android-устройствах.

Оптимизация рабочего пространства

Автоматический запуск приложений через скрипт — это самый простой, но при этом самый эффективный способ оптимизации времени. Использование амперсанда (&) в конце команды является критически важным: это позволяет приложению работать в фоновом режиме, не блокируя выполнение следующих строк скрипта. Таким образом, вся цепочка программ запускается практически мгновенно, превращая долгий процесс открытия окон в один клик. Возможность гибко редактировать этот файл позволяет добавлять или удалять приложения по мере изменения рабочих привычек, сохраняя порядок на рабочем столе.

Источник: https://www.howtogeek.com