obsidian/wiki/dotfiles/terminal-cheatsheet.md
2026-04-16 19:45:11 +01:00

7.3 KiB

title tags created updated aliases
Terminal Cheatsheet
fish
zsh
wezterm
terminal
cheatsheet
lsd
bat
fzf
zoxide
lazygit
claude-code
2026-04-15 2026-04-16
Terminal Stack Cheatsheet
Shell Cheatsheet

Terminal Cheatsheet

Reference for the daily terminal stack: WezTerm + fish (default) / zsh, with modern CLI replacements (lsd, bat, fd, rg, zoxide, fzf, lazygit) and Claude Code shortcuts.

[!tip] Live cheatsheet on disk Mirrored to ~/.cheatsheet.txt and printed automatically on every new interactive shell (both fish and zsh). Type cheat or help at any prompt to reprint it.

See also: wiki/dotfiles/linux-terminal-ricing.


Git — quick aliases

Alias Command
gs git status
ga <files> git add
gc git commit
gd git diff
gl git log --oneline
gp / gpl git push / git pull
lg lazygit (TUI)

Git + fzf (forgit plugin)

Interactive fuzzy-finder versions of git commands — pick files / commits / branches visually with diff previews.

Abbr Action
fga interactive git add — pick files via fzf
fgd interactive diff picker
glo git log picker with diff preview
gi generate .gitignore for any language
gco checkout commit from fzf list
gcb / gsw checkout / switch branch (fzf)
gbd delete branch (fzf multi-select)
gcf checkout single file (fzf)
grh reset HEAD (fzf on staged files)
gss / gsp stash show / push (fzf)
gcp cherry-pick from branch (fzf)
grb / gsq / gfu interactive rebase / squash / fixup
grc revert commit (fzf)
gclean clean untracked (fzf multi-select)

[!info] Conflict resolution forgit's default ga and gd conflict with the quick-aliases above. Renamed to fga / fgd via set -U forgit_add fga and set -U forgit_diff fgd.

lazygit shortcuts

Key Action
Tab switch panels
Space stage / unstage file
a stage / unstage all
c commit
P / p push / pull
b / n branches / new branch
Enter file diff
? help · q quit

Docker

Alias Command
d docker
dc docker compose
dps docker ps
dex <id> docker exec -it <id>
dlog <id> docker logs -f

Modern CLI replacements

ls               # lsd
ll               # lsd -la
lsd --tree       # tree view
cat file.txt     # bat (syntax highlighting)
bat -n file.txt  # with line numbers
find kitty.conf  # fd (fd-find)
fd -e md         # all .md files
grep 'TODO' .    # rg (ripgrep)
rg -i 'error'    # case-insensitive
rg --type=ts 'useState'

zoxide — smart cd

z kitty     # jumps to any dir matching "kitty" in frecency db
z -         # back
zi          # interactive fzf picker

fzf — fuzzy finder

fzf              # pick a file
nvim (fzf)       # open picked file in nvim
cd (fzf)         # cd into picked dir
Ctrl+R           # fuzzy history search

Python / Node

Alias Command
py python3
venv python3 -m venv .venv && activate
nvm use <ver> switch Node.js version

SSH servers

Alias Host
ssh-optical / ssh-optical-dev / ssh-optical-prod Optical stack
ssh-librechat-dev / ssh-librechat-prod LibreChat
ssh-modcomms ModComms dev
ssh-baic BAIC
ssh-box Box CLI jump host
ssh-aimpress Aimpress

Claude Code

Command Action
claude launch Claude Code
clauded claude --dangerously-skip-permissions (fish function)
/help in-session help
/fast toggle fast mode (Opus 4.6)
/loop <interval> <cmd> recurring task
/schedule cron-based triggers

WezTerm hotkeys

Key Action
⌘T / ⌘W new tab / close pane
⌘D / ⌘⇧D split horizontal / vertical
⌘⏎ zoom current pane
⌘⌥ hjkl navigate panes
⌘⇧ hjkl resize panes
⌘1..9 jump to tab N
⌘F / ⌘⇧P search / command palette
⌘⇧Space QuickSelect — copy URL/path in one keystroke
⌘⇧U emoji / unicode picker
⌘K clear screen + scrollback
⌘⇧R reload config
⌃A + s workspace launcher
⌃A + n / p next / prev workspace
⌃A + c create workspace
⌃A + r rename current tab

Fish shell basics

Key Action
accept autosuggestion
Alt+→ accept one word
Ctrl+R fuzzy history search
Ctrl+A / Ctrl+E start / end of line
Ctrl+L clear screen
Ctrl+C interrupt

fzf.fish bindings (plugin)

Key Action
Ctrl+R history search with preview
Ctrl+Alt+F find files in cwd (bat preview)
Ctrl+Alt+S git status files
Ctrl+Alt+L git log picker (diff preview)
Ctrl+Alt+P kill process picker
Ctrl+V shell variables picker
Ctrl+Alt+D cd into any subdir (tree preview)

Fun / visual

Command Action
poke random Pokémon ASCII art
fastfetch system info (prints on shell start)

Fish plugin sugar

Installed via fisher: autopair, puffer-fish, sponge, colored_man_pages, done, forgit, fzf.fish, tide.

Input Effect
(, [, {, ", ' autopair.fish — auto-closes the matching pair
...../.. puffer-fish — dot expansion (add more dots for more levels)
!! / !$ last command / last arg (puffer-fish bang expansion)
$x$(x) puffer-fish variable expansion
man <cmd> colored_man_pages — syntax-highlighted manpages
long cmd (>5s) finishes in background done — macOS notification pops up
typo / failed command sponge — removes it from history automatically

superfile (spf)

Key Action
↑↓ / jk navigate
Enter open
Backspace parent dir
Space select
d / r delete / rename
c / x / v copy / cut / paste
n / N new file / folder
/ search · ? help · q quit

btop

Key Action
k kill process
f filter
1-4 sort column
q quit

Neovim / LazyVim

Key Action
Space leader (main menu)
Space e file tree
Space ff find files
Space fg grep project
Space gg lazygit inside nvim
i / Esc insert / normal
:w / :q / :wq save / quit / save+quit

Key Takeaways

  • The shell stack is fish (default) + zsh (fallback), both wired to the same aliases and the same ~/.cheatsheet.txt greeting.
  • Modern CLI tools shadow the classics: lslsd, catbat, findfd, greprg, cdz.
  • WezTerm uses a tmux-style leader (⌃A) for workspaces, plus Cmd-based tab/pane navigation — see wiki/dotfiles/linux-terminal-ricing for the philosophy.
  • Type cheat or help to reprint this cheatsheet anywhere.