Toolchain
sudo pacman -S mise zoxide bat eza fd ripgrep fzf television jq fx tldr \
dust duf bottom procs gping curlie doggo git-delta \
echo 'export EDITOR="nvim"' >> ~/.zshrc
echo 'export VISUAL="nvim"' >> ~/.zshrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
echo 'export RIPGREP_CONFIG_PATH="$HOME/.ripgreprc"' >> ~/.zshrc
echo 'export FZF_DEFAULT_COMMAND="fd --type f --strip-cwd-prefix --hidden --follow --exclude .git"' >> ~/.zshrc
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
echo 'eval "$(tv init zsh)"' >> ~/.zshrc
echo "source <(fzf --zsh)" >> ~/.zshrc
echo "source <(fx --comp zsh)" >> ~/.zshrc
echo "source <(procs --gen-completion-out zsh)" >> ~/.zshrc
cat << EOF >> ~/.zshrc
# Use fd for listing path candidates
_fzf_compgen_path() {
fd --hidden --follow --exclude ".git" . "\$1"
}
# Use fd for list directory candidates
_fzf_compgen_dir() {
fd --type d --hidden --follow --exclude ".git" . "\$1"
}
EOF
echo 'alias dot="chezmoi"' >> ~/.zshrc
echo 'alias open="xdg-open"' >> ~/.zshrc
echo 'alias ff="fastfetch --config examples/7.jsonc"' >> ~/.zshrc
echo 'alias cat="bat"' >> ~/.zshrc
echo 'alias ls="eza"' >> ~/.zshrc
echo 'alias find="fd --hidden --follow --exclude .git"' >> ~/.zshrc
echo 'alias grep="rg"' >> ~/.zshrc
echo 'alias man="tldr"' >> ~/.zshrc
echo 'alias du="dust"' >> ~/.zshrc
echo 'alias df="duf"' >> ~/.zshrc
echo 'alias top="btm"' >> ~/.zshrc
echo 'alias ps="procs"' >> ~/.zshrc
echo 'alias ping="gping"' >> ~/.zshrc
echo 'alias curl="curlie"' >> ~/.zshrc
echo 'alias dig="doggo"' >> ~/.zshrc
echo 'alias diff="delta"' >> ~/.zshrc
echo 'alias vi="nvim"' >> ~/.zshrc
echo 'alias vim="nvim"' >> ~/.zshrc
echo 'alias cc="claude"' >> ~/.zshrc
echo 'alias ccc="claude -c"' >> ~/.zshrc
echo 'alias ccr="claude -r"' >> ~/.zshrc
echo 'alias ccm="claude -p commit"' >> ~/.zshrc
echo 'alias cx="codex"' >> ~/.zshrc
echo 'alias cxr="codex resume"' >> ~/.zshrc
echo 'alias oc="opencode"' >> ~/.zshrc
echo 'alias occ="opencode -c"' >> ~/.zshrc
echo "source ~/.zshrc.local" >> ~/.zshrc
touch ~/.zshrc.local
cat << EOF >> ~/.ripgreprc
# Add 'web' type
--type-add
web:*.{html,css,js,jsx,ts,tsx,vue,svelte,astro}*
# Search hidden files / directories (e.g. dotfiles) by default
--hidden
# Using glob patterns to include/exclude files or folders
--glob
!**/.git/*
# Ignore case unless all caps
--smart-case
EOF
Change Mirror Source
sudo paru -S chsrc-bin
scoop install chsrc
winget install RubyMetric.chsrc
# Auto
chsrc set node
chsrc set python
chsrc set rust
chsrc set docker
chsrc set brew
chsrc set flatpak
chsrc set winget
sudo chsrc set arch
sudo chsrc set archlinuxcn
# Manual
chsrc ls ruby
chsrc set ruby rubychina
scoop
# Command-line installer for Windows
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
scoop search bat
scoop install eza
scoop info fzf
scoop bucket add extras
winget
winget search steam
winget install Microsoft.VisualStudioCode
winget show vscode
winget list
scoop vs
wingetScoop is command line installer, while WinGet is app installer.
Recommended software for Windows:
winget install BellSoft.LibericaJDK.11 Rustlang.Rustup Tencent.WeixinDevTools zig.zig
winget install Git.Git GitHub.cli Oven-sh.Bun CoreyButler.NVMforWindows astral-sh.uv
winget install Anthropic.ClaudeCode Microsoft.VisualStudioCode Neovim.Neovim ZedIndustries.Zed
winget install kangfenmao.CherryStudio Microsoft.WindowsTerminal ImageMagick.ImageMagick Gyan.FFmpeg
winget install ClashVergeRev.ClashVergeRev Google.Chrome Microsoft.OneDrive
winget install ByteDance.Feishu NetEase.CloudMusic Tencent.QQ.NT Tencent.WeChat Tencent.WeType Valve.Steam
mise
mise:
sudo pacman -S mise
brew install mise
scoop install mise
winget install jdx.mise
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
mise u -g node@lts
node -v
zoxide
sudo pacman -S zoxide
brew install zoxide
scoop install zoxide
winget install ajeetdsouza.zoxide
echo 'eval "$(zoxide init --cmd cd zsh)"' >> ~/.zshrc
Interactive fzf menu:
cdi
cd ambiguous-path <Tab>
Bat
bat:
sudo pacman -S bat
brew install bat
scoop install bat
winget install sharkdp.bat
echo 'alias cat="bat"' >> ~/.zshrc
eza
eza:
sudo pacman -S eza
brew install eza
scoop install eza
winget install eza-community.eza
echo 'alias ls="eza"' >> ~/.zshrc
fd
fd:
sudo pacman -S fd
brew install fd
scoop install fd
winget install sharkdp.fd
echo 'alias find="fd --hidden --follow --exclude .git"' >> ~/.zshrc
ripgrep
rg:
sudo pacman -S ripgrep
brew install ripgrep
winget install BurntSushi.ripgrep.MSVC
scoop install ripgrep
echo 'alias grep="rg"' >> ~/.zshrc
echo 'export RIPGREP_CONFIG_PATH="$HOME/.ripgreprc"' >> ~/.zshrc
$HOME/.ripgreprc:
cat << EOF >> ~/.ripgreprc
# Add 'web' type
--type-add
web:*.{html,css,js,jsx,ts,tsx,vue,svelte,astro}*
# Search hidden files / directories (e.g. dotfiles) by default
--hidden
# Using glob patterns to include/exclude files or folders
--glob
!**/.git/*
# Ignore case unless all caps
--smart-case
EOF
# Show file list with `-l`
rg -l text
fzf
fzf:
sudo pacman -S fzf
brew install fzf
winget install fzf
scoop install fzf
echo 'eval "$(fzf --bash)"' >> ~/.bashrc
echo "source <(fzf --zsh)" >> ~/.zshrc
cat << EOF >> ~/.zshrc
# Use fd for listing path candidates
_fzf_compgen_path() {
fd --hidden --follow --exclude ".git" . "\$1"
}
# Use fd for list directory candidates
_fzf_compgen_dir() {
fd --type d --hidden --follow --exclude ".git" . "\$1"
}
EOF
# Respecting `.gitignore`
echo 'export FZF_DEFAULT_COMMAND="fd --type f --strip-cwd-prefix --hidden --follow --exclude .git"' >> ~/.zshrc
Command line fuzzy finder:
ctrl-r: find commands.ctrl-t: find files and directories.alt-c:cdinto directory.code **<TAB>/code $(fzf -m): fuzzy completion for files and directories.ctrl-k/ctrl-j: move cursor up and down.- Multi-select(
-m):tabandshift-tabto mark multiple items.
See practical guide
for more fzf examples.
Television
sudo pacman -S television
brew install television
scoop bucket add extras
scoop install television
winget install alexpasmantier.television
echo 'eval "$(tv init zsh)"' >> ~/.zshrc
tv
tv files
tv text
tv git-repos
tv env
tv list-channels
Fetch community channels
like cargo-crates, gh-issues, pacman-packages:
tv update-channels
jq
jq:
sudo pacman -S jq
brew install jq
scoop install jq
winget install jqlang.jq
echo "version=$(jq -r '.devDependencies["@playwright/test"]' package.json | sed 's/^[^0-9]*//')"
fx
fx:
sudo pacman -S fx
brew install fx
scoop install fx
echo "source <(fx --comp bash)" >> ~/.bashrc
echo "source <(fx --comp zsh)" >> ~/.zshrc
Terminal JSON viewer and processor:
# Hello world
echo '{"name": "world"}' | fx 'x => x.name' 'x => `Hello, ${x}!`'
# Bump version
fx package.json 'x.version = x.version.replace(/\d+$/, n => +n + 1), x'
# Interactive JSON viewer
curl -i https://fx.wtf/example.json | fx
tldr
tldr:
sudo pacman -S tldr
brew install tlrc
scoop install tlrc
winget install tldr-pages.tlrc
echo 'alias man="tldr"' >> ~/.zshrc
Dust
dust:
sudo pacman -S dust
brew install dust
scoop install dust
winget install bootandy.dust
echo 'alias du="dust"' >> ~/.zshrc
duf
duf:
sudo pacman -S duf
brew install duf
scoop install duf
winget install muesli.duf
echo 'alias df="duf"' >> ~/.zshrc
Bottom
sudo pacman -S bottom
brew install bottom
scoop install bottom
winget install Clement.bottom
echo 'alias top="btm"' >> ~/.zshrc
procs
sudo pacman -S procs
brew install procs
scoop install procs
winget install dalance.procs
echo "source <(procs --gen-completion-out zsh)" >> ~/.zshrc
echo 'alias ps="procs"' >> ~/.zshrc
gping
sudo pacman -S gping
brew install gping
scoop install gping
winget install orf.gping
echo 'alias ping="gping"' >> ~/.zshrc
curlie
sudo pacman -S curlie
brew install curlie
scoop install curlie
echo 'alias curl="curlie"' >> ~/.zshrc
doggo
sudo pacman -S doggo
brew install doggo
scoop install doggo
winget install doggo
echo 'alias dig="doggo"' >> ~/.zshrc
doggo example.com
doggo MX github.com @9.9.9.9
doggo example.com --json | jq '.responses[0].answers[].address'
Delta
sudo pacman -S git-delta
brew install git-delta
scoop install delta
winget install dandavison.delta
echo 'alias diff="delta"' >> ~/.zshrc
git config --global core.pager delta
git config --global interactive.diffFilter 'delta --color-only'
git config --global delta.navigate true
git config --global delta.dark true
git config --global delta.line-numbers true
git config --global delta.side-by-side true
git config --global merge.conflictStyle zdiff3
git diff
git show
git add -p
git log -p
git stash show -p
git reflog -p
Developer
- MAS:
Microsoft
KMSactivation scripts. - 行书指南: 高质量免费与开源软件列表.
- IT: Collection of handy online toolkit for developers.
- Omni: Collection of powerful web-based toolkit for everyday tasks.
Miku: Lightweight toolkit collection.
Dotfiles
References
- Cross-platform Rust rewrite of the GNU core utils.
- Modern alternatives to common Linux commands.
- Terminal tool of the week.
- Animating ASCII art app.
fzfpractical guide.