# Server CLI Tools Interactive installer for setting up a consistent shell environment on Ubuntu/Debian servers. Clone to any server, run the installer, pick what you need. ## Quick start ```sh git clone ~/server_cli_tools cd ~/server_cli_tools ./install.sh # interactive menu ./install.sh --all # install everything ./install.sh --update # pull latest + re-run menu ./install.sh --uninstall # remove installed configs ``` ## What's included | # | Component | What it does | |---|-----------|-------------| | 1 | **Core packages** | `vim`, `bat`, `eza`, `fzf`, `htop`, `tmux`, `zsh`, `ripgrep`, `fd-find`, `zoxide`, `yazi`, `git-delta` | | 2 | **Zsh + Oh-My-Zsh** | Shell, plugins (`zsh-autosuggestions`, `zsh-syntax-highlighting`, `z`), custom prompt theme | | 3 | **Aliases + tools** | General, git, and docker aliases with a self-documenting help system (`h`) | | 4 | **Terminal configs** | `bat` theme (base16), `yazi` file manager config | | 5 | **Docker aliases** | Start/stop toggle, bulk stop/remove, image management | | 6 | **Git config** | `git-delta` as pager with side-by-side diffs | ## Alias highlights Type `h` after installation to see all aliases with descriptions. Some highlights: ``` ll — eza with icons, groups, timestamps pf — fzf + bat file preview cdf — fuzzy cd into any subdirectory mkcd — mkdir + cd in one command twd — tar current directory gdn — numbered git diff (then gdn 3 to diff file #3) gcpm — git add -u + commit + push in one command gstm — git stash with mandatory message ds — toggle docker container start/stop da — docker ps -a ``` ## How it works - **Idempotent** — safe to run multiple times; skips already-installed packages - **Non-destructive** — existing configs are backed up to `~/.server_cli_tools_bkp//` - **Selective** — interactive menu lets you toggle individual components - **Ubuntu/Debian** — uses `apt`; warns on other distros (configs still work) ## Repo structure ``` server_cli_tools/ install.sh # main installer configs/ aliases/ .aliases # general aliases (server-adapted) .functions.sh # helper functions + alias help system .git_aliases # git shortcuts + stash management .docker_aliases # docker management aliases .git_bash_autocomplete # bash git completion custom_tools/ backup_dotfiles.sh # backup conflicting dotfiles bat/config # bat theme yazi/yazi.toml # yazi file manager config zsh/zhann-elvis.zsh-theme # custom zsh prompt (git-aware) zshrc # .zshrc with oh-my-zsh + plugins ``` ## Customization After installation, create local overrides that won't be tracked: - `~/.config/aliases/.local_aliases` — machine-specific aliases - `~/.config/aliases/.custom_aliases` — temporary/personal aliases Use `ea l` to edit local aliases, `ea c` for custom, `sa` to re-source.