# Shell окружение и алиасы Как настроить ZSH, добавить alias и переменные окружения. ## Где окружение? Конфигурация ZSH находится в: ``` home/ada/zsh.nix ``` ## Добавить alias 1. Открыть `home/ada/zsh.nix` 2. Найти секцию `shellAliases` 3. Добавить новый alias: ```nix # Было: ls = "eza --icons --group-directories-first"; la = "eza -la --icons --group-directories-first --git"; # Стало: ls = "eza --icons --group-directories-first"; la = "eza -la --icons --group-directories-first --git"; lh = "eza -la --icons --group-directories-first --git | head -20"; # Первые 20 ``` 4. Собрать: ```bash nh os switch ``` ## Добавить переменную окружения Переменные находятся в секции `sessionVariables`: ```nix sessionVariables = { EDITOR = "micro"; VISUAL = "code --wait"; PAGER = "less"; # Добавить новую переменную: MY_CUSTOM_VAR = "value"; }; ``` ## Примеры alias ### Быстрая навигация ```nix dl = "cd ~/Downloads"; dt = "cd ~/Desktop"; dev = "cd ~/dev"; ``` ### Безопасность ```nix rm = "rm -i"; # Подтверждение удаления cp = "cp -i"; # Подтверждение копирования mv = "mv -i"; # Подтверждение перемещения ``` ### Работа с Git ```nix g = "git"; gs = "git status"; ga = "git add"; gp = "git push"; gl = "git log --oneline"; ``` ### Docker ```nix d = "docker"; dps = "docker ps"; dpsa = "docker ps -a"; dex = "docker exec -it"; ``` ## Организация алиасов В `zsh.nix` алиасы организованы по категориям: ``` Навигация (cd ...) Файлы (ls variants) Безопасность (rm, cp, mv) Система (grep, df, du) Сеть (ping, ports) NixOS (nixos-rebuild и т.д.) Git Docker Kubectl Lazy инструменты ``` ## История ZSH История настраивается в секции `history`: ```nix history = { size = 50000; # Размер истории save = 50000; # Сохранять 50000 команд ignoreDups = true; # Не сохранять дубликаты ignoreSpace = true; # Не сохранять команды начинающиеся с пробела share = true; # Делиться историей между сессиями }; ``` ## Интеграции ### Zoxide (быстрая навигация) ```bash z # Перейти в папку zi # Интерактивный выбор ``` ### Direnv (окружения) ```bash # .envrc файл в папке с переменными cat > .envrc << EOF export MY_VAR=value EOF direnv allow # Разрешить автоматическое применение ``` ### FZF (интерактивный поиск) ```bash Ctrl+R # Поиск по истории Ctrl+T # Поиск файлов ``` ## Проверка после изменения ```bash # Просто применить и проверить nh os switch # Потом проверить alias alias ls # Показать что это такое ``` ## Примеры полезных alias ```nix # Список процессов ps = "ps aux | grep"; # Размер папок du_sort = "du -sh * | sort -hr"; # Network ip_local = "ip -4 addr show | grep -oP '(?<=inet\\s)\\d+(\\.\\d+){3}' | grep -v 127.0.0.1"; # Поиск по типу файла find_py = "find . -name '*.py'"; ``` ## Переменные окружения ### Полезные переменные ```nix sessionVariables = { # Главный редактор EDITOR = "micro"; VISUAL = "code --wait"; # Пейджер PAGER = "less"; # Данные XDG_CONFIG_HOME = "$HOME/.config"; XDG_DATA_HOME = "$HOME/.local/share"; XDG_CACHE_HOME = "$HOME/.cache"; # Язык LANG = "en_US.UTF-8"; # Git GIT_AUTHOR_NAME = "Dmitry"; GIT_AUTHOR_EMAIL = "ada.dmitry@gmail.com"; }; ``` ## Часто изменяемое Самые частые изменения: 1. Добавить новый alias 2. Изменить EDITOR 3. Добавить PATH переменную Всё это делается в `zsh.nix` в соответствующих секциях.