Чтобы поделиться с коллегами, я почистил и обновил свой приватный репозиторий со скриптами и различными конфигами, что собирал какое-то время, и выложил его на гитхаб под названием dev-scritps.
dev-scritps (Linux) — это набор полезных настроек для профиля пользователя, терминала, vim, git. Репо также содержит набор общих скриптов, команд и хоткеев.
Это не абсолютно исчёрпывающий туториал по конфигурации Всего, но настройки, которые я применяю при каждой новой установке Linux. Горячие клавиши (и в vim тоже), которые я нажимаю каждый день; скрипты, которые я писал для разных проектов так много раз, что в конце-концов они превратились в общие, и осели в этом репозитории.
Я думаю, по этой причине репо и является полезным: каждый скриптик и мини-мануал любовно сделаны ручками, нажиты в течении долгих лет и проверены временем.
Про репозиторий я сделал презентацию, в которой кратко рассказано про все разделы, кое-где даже с картинками.
Что лежит в каждой директории
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/
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-commands.md
— Сборник команд гита на разные случаиhooks.md
— Мини-справка по хукам
hotkeys/
terminal.md
— Горячие клавиши для терминалаvim.md
— Наиболее часто используемые хоткеи для вима
php/
db
— В директории лежит скриптdump-db-structure.php
+ конфиг и справка. Я написал этот дампер для того, чтобы получать дампы процедур/функций/представлений и прочее отдельно от дампов структур таблиц, которыеmysqldump
не умеет разделять.symfony/symfony-form-type-gen.php
— Бутстраппер для Symfony, умеет генерировать типы форм и некоторые другие структуры на основе указанных опций.