130 lines
5.0 KiB
Markdown
130 lines
5.0 KiB
Markdown
# CLI Tools
|
|
|
|
Scripts and tools to set up and manage the terminal environment across systems.
|
|
|
|
**Entry point:** `cli-tools`
|
|
|
|
---
|
|
|
|
## Install
|
|
|
|
```bash
|
|
git clone <repo> && cd cli-tools
|
|
source init.sh # installs uv if needed, syncs deps, activates venv
|
|
```
|
|
|
|
```bash
|
|
cli-tools install bootstrap # install everything (first-time setup)
|
|
cli-tools install apt-packages # git, curl, ripgrep, fd, btop, tldr, ...
|
|
cli-tools install uv # uv package manager
|
|
cli-tools install fzf # fzf + bat
|
|
cli-tools install zoxide # zoxide (z navigation)
|
|
cli-tools install eza # modern ls replacement
|
|
cli-tools install lazygit # terminal UI for git
|
|
cli-tools install docker # Docker + add user to group
|
|
cli-tools install claude # Claude Code
|
|
cli-tools install helpers # symlink bash_helpers.sh + aliases.sh into ~
|
|
```
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
cli-tools docker build # build python-dev image
|
|
cli-tools docker build --tag v1.2 --push # build and push with tag
|
|
```
|
|
|
|
## Credentials
|
|
|
|
```bash
|
|
cli-tools credentials encrypt-env # .env → .env.gpg
|
|
cli-tools credentials decrypt-env # .env.gpg → .env
|
|
```
|
|
|
|
---
|
|
|
|
## Installed Tools
|
|
|
|
### [eza](https://github.com/eza-community/eza) — modern `ls` replacement
|
|
|
|
Fast, colorized file listing with Git integration and icons.
|
|
|
|
| Command | Description |
|
|
|--------------------|------------------------------------------|
|
|
| `ls` | list files (aliased to `eza`) |
|
|
| `ll` | long list with git status (`eza -la --git`) |
|
|
| `eza --tree` | tree view of directory |
|
|
| `eza -la --sort=modified` | sort by modification time |
|
|
|
|
---
|
|
|
|
### [fzf](https://github.com/junegunn/fzf) — fuzzy finder
|
|
|
|
Interactive fuzzy search for files, history, and more. Integrates with shell key bindings.
|
|
|
|
| Shortcut / Command | Description |
|
|
|-------------------------|------------------------------------------|
|
|
| `Ctrl+R` | fuzzy search shell history |
|
|
| `Ctrl+T` | fuzzy find file and insert path |
|
|
| `Alt+C` | fuzzy cd into a directory |
|
|
| `fzf` | pipe any list into interactive selector |
|
|
| `vim $(fzf)` | open fuzzy-selected file in editor |
|
|
|
|
---
|
|
|
|
### [lazygit](https://github.com/jesseduffield/lazygit) — terminal UI for Git
|
|
|
|
Full-featured Git UI in the terminal. Run `lazygit` in any repo.
|
|
|
|
| Key (inside lazygit) | Description |
|
|
|----------------------|--------------------------------------|
|
|
| `space` | stage / unstage file |
|
|
| `c` | commit |
|
|
| `P` (cap) | push |
|
|
| `P` | pull |
|
|
| `?` | help / key bindings |
|
|
| `q` | quit |
|
|
|
|
---
|
|
|
|
### [zoxide](https://github.com/ajeetdsouza/zoxide) — smarter `cd`
|
|
|
|
Tracks your most-visited directories and lets you jump to them with partial names.
|
|
|
|
| Command | Description |
|
|
|----------------|--------------------------------------------------|
|
|
| `z foo` | jump to the most frecent dir matching `foo` |
|
|
| `z foo bar` | match multiple terms |
|
|
| `zi` | interactive selection with fzf |
|
|
| `z -` | jump to previous directory |
|
|
|
|
---
|
|
|
|
## Shell aliases (`aliases.sh`)
|
|
|
|
| Alias | Expands to |
|
|
|------------------|-----------------------------------|
|
|
| `reload` | `source ~/.bashrc` |
|
|
| `venv` | `source .venv/bin/activate` |
|
|
| `uvs` | `uv sync --all-extras` |
|
|
| `cat` | `batcat` (syntax-highlighted cat) |
|
|
| `bat` | `batcat` |
|
|
| `ls` | `eza` |
|
|
| `ll` | `eza -la --git` |
|
|
| `fd` | `fdfind` |
|
|
| `clip` | `xclip -selection clipboard` |
|
|
| `open_ports` | `sudo ss -tulwn \| grep LISTEN` |
|
|
| `docker_stop_all`| stop all running containers |
|
|
| `claude-allow` | claude --dangerously-skip-permissions |
|
|
|
|
## Shell functions (`bash_helpers.sh`)
|
|
|
|
| Function | Usage |
|
|
|------------------|--------------------------------------------|
|
|
| `attach <name>` | exec into a running Docker container |
|
|
| `python-dev` | start/attach python-dev container (`-p` pull, `-n` fresh) |
|
|
| `mount_ssh <host>`| mount remote dir via SSHFS |
|
|
| `canview` | launch CAN bus viewer (uses `$CAN_CHANNEL`) |
|
|
| `repl` | connect to serial device via picocom (uses `$AMPY_PORT`) |
|
|
| `find_and_cat <file>` | find file by name and print contents |
|
|
| `record_window` | record a window to mp4 via ffmpeg |
|