Linux: скрипты и настройки

Чтобы поделиться с коллегами, я почистил и обновил свой приватный репозиторий со скриптами и различными конфигами, что собирал какое-то время, и выложил его на гитхаб под названием dev-scritps.

dev-scritps (Linux) — это набор полезных настроек для профиля пользователя, терминала, vim, git. Репо также содержит набор общих скриптов, команд и хоткеев.

Это не абсолютно исчёрпывающий туториал по конфигурации Всего, но настройки, которые я применяю при каждой новой установке Linux. Горячие клавиши (и в vim тоже), которые я нажимаю каждый день; скрипты, которые я писал для разных проектов так много раз, что в конце-концов они превратились в общие, и осели в этом репозитории.

Я думаю, по этой причине репо и является полезным: каждый скриптик и мини-мануал любовно сделаны ручками, нажиты в течении долгих лет и проверены временем.

Про репозиторий я сделал презентацию, в которой кратко рассказано про все разделы, кое-где даже с картинками.

Смотреть репозиторий

Что лежит в каждой директории

terminator — замена стандартного терминала Ubuntu

terminator — замена стандартного терминала Ubuntu

bash/

  • lib.sh — Общие утилиты, которые подключают другие скрипты
  • lib-text-colors-tools.sh — Утилиты для работы с текстом, удобные переменные для форматированного вывода в терминал
  • bump-module-version.sh — Используется для изменения версий в указанном файле (1.4 => 1.5, 1.4 => 2 и т.п.). Использует bumpversion.
  • file-permissions.sh — Скрипт меняет права на файлы и папки для работы под Apache
  • generate-changelog.sh — Генерировать changelog на основе тегов гита
  • useful-commands.sh — Обновлённый сборник разных полезных команд на баше. Писал статью про эти команды здесь.

bash/db/

  • dump-db-routine.sh — Старая версия скрипта-дампера структуры ДБ
  • dump-db.sh — Обёртка для mysqldump, умеет архивировать файлы и добавлять таймстамп в название

bash/examples/

Скрипты с примерами.

bash/symfony/

  • run-test.sh — Запускает тесты, линтеры и статический анализ для проекта на Symfony

bash/git/

  • commit-test-artifacts.sh — Скрипт, который делает коммит с настроенным сообщением. Использую после того, как обновил какие-то частообновляемые и незначительные файлы (например, дампы для snapshot-тестирования с Jest), чтобы не писать руками однотипное сообщение каждый раз.
  • hooks/prepare-commit-msg — Пример хука на коммит, пишет в сообщение номер тикета, если он записан в названии текущей ветки

env/

vim и встроенный файловый менеджер

vim и встроенный файловый менеджер

  • tunings.md — Настройки профиля и терминала. Умная история, цветная командная строка (prompt), ветка гита в текущей директории, другое.
  • git/aliases.md — Алиасы для гита. Кроме общеизвестных git st/git co/etc., я использую укороченные версии: ga (git add), gc (git commit) и другие. Чтобы работала автоподстановка названий веток и файлов, нужно правильно настроить bash-completion, конфиг лежит в конце файла.
    Со включения умной истории я начинаю настройку каждого линукса.
  • git/vim.md — Настройки для вима. Кроме более-менее общеизвестных, есть настройка встроенного в редактор файлового менеджера (в боковой панели, как в IDE), открытие файлов в табах или сплитах вместо окон, прочее.

git/

git: семантические коммиты и changelog на основе тегов

git: семантические коммиты и changelog на основе тегов

  • git-commands.md — Сборник команд гита на разные случаи
  • hooks.md — Мини-справка по хукам

hotkeys/

  • terminal.md — Горячие клавиши для терминала
  • vim.md — Наиболее часто используемые хоткеи для вима

php/

  • db — В директории лежит скрипт dump-db-structure.php + конфиг и справка. Я написал этот дампер для того, чтобы получать дампы процедур/функций/представлений и прочее отдельно от дампов структур таблиц, которые mysqldump не умеет разделять.
  • symfony/symfony-form-type-gen.php — Бутстраппер для Symfony, умеет генерировать типы форм и некоторые другие структуры на основе указанных опций.