跳转至

Linux 命令行工具

约 879 个字 130 行代码 预计阅读时间 5 分钟

介绍


命令行工具

概览

lsd、ripgrep、sd、bat、git-delta、gitui 等由 Rust 编写的 CLI 均可通过 cargo 安装

系统相关


Markdown 相关


文件相关


编程相关

  • 命令纠正:thefuck

  • 统计代码行数:cloc

  • 统计目录中的代码行数:scc(类似 cloc)


图片相关


其他

  • sshx:通过链接共享终端(可创建多个终端画布)

  • 富文本:rich

  • 字符 logo 制作:figlet、toilet:Linux 运维相关 — OnlineNote latest documentation

  • 文本编辑器(类似 Vim):helix

  • 趣味小工具

    • cowsay(牛说)
    • sl(火车)
    • fortune(幸运饼干;格言)
    • lolcat
    • boxes
    • cmatrix(黑客帝国类似的矩阵效果)
    • asciiquarium(水族馆)

具体使用

# 搜索整个 apt package;回车安装
apt-cache search '' | sort | cut --delimiter ' ' --fields 1 | fzf --multi --cycle --reverse \ --preview-window=right:70%:wrap \ --preview 'apt-cache show {1}' | xargs -r sudo apt install -y

# 用 bat 作为 previewer
fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"
  • 用 fzf-tab 替代 zsh 的自动补全:GitHub - Aloxaf/fzf-tab
    • 需将 fzf-tab 写在 zsh-autosuggestions、fast-syntax-highlighting 插件前,compinit 后
# 安装
git clone --depth 1 https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM}/plugins/fzf-tab

# fzf-tab 配置;写入 ~/.zshrc
# disable sort when completing `git checkout`
zstyle ':completion:*:git-checkout:*' sort false
# set descriptions format to enable group support
# NOTE: don't use escape sequences here, fzf-tab will ignore them
zstyle ':completion:*:descriptions' format '[%d]'
# set list-colors to enable filename colorizing
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# force zsh not to show completion menu, which allows fzf-tab to capture the unambiguous prefix
zstyle ':completion:*' menu no
# preview directory's content with eza when completing cd
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
# switch group using `<` and `>`
zstyle ':fzf-tab:*' switch-group '<' '>'

# z 安装与配置
git clone https://github.com/rupa/z.git

# 将以下内容添加至 ~/.{bash,zsh}rc
. /path/to/z.sh


# turm 安装
cargo install turm

# peco 安装与使用
brew install peco  # 安装

cat file | peco    # 基本使用


ncdu -o ncdu.txt   # 输出信息到文件中


# navi 使用
navi repo browse   # 按需添加 cheatsheet git repo 以增加丰富性


# fzf 安装、升级
# 安装
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
# 升级
cd ~/.fzf && git pull && ./install


# rg 使用
# -g 过滤搜索
rg 'content' -g '!docs/'  # 排除
rg 'content' -g '*.py'    # 包含


# ripgrep-all 安装与使用
brew install pandoc poppler ffmpeg  # 需提前安装
brew install rga

rga 'XXX' file.pdf  # 使用;文件后缀可以是 docx、zip、epub 等

# 与 fzf 集成;写入 ~/.{bash,zsh}rc 中
rga-fzf() {
    RG_PREFIX="rga --files-with-matches"
    local file
    file="$(
        FZF_DEFAULT_COMMAND="$RG_PREFIX '$1'" \
            fzf --sort --preview="[[ ! -z {} ]] && rga --pretty --context 5 {q} {}" \
                --phony -q "$1" \
                --bind "change:reload:$RG_PREFIX {q}" \
                --preview-window="70%:wrap"
    )" &&
    echo "opening $file" &&
    xdg-open "$file"
}


# eg 安装
pip install -U eg
brew install eg-examples


# figlet toilet 相关用法
showfigfonts      # 查看可用字体
figlet spt        # 生成字符 logo
figlet -c spt     # 居中
figlet spt | toilet -f term --gay  # 彩色输出


# mcfly 安装与配置
brew install mcfly        # macOS
# Linux/macOS
curl -LSfs https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh | sh -s -- --git cantino/mcfly

eval "$(mcfly init zsh)"  # 配置


# fastfetch Ubuntu 安装
sudo add-apt-repository ppa:zhangsongcui3371/fastfetch
sudo apt update

sudo apt install fastfetch


# starship
# 安装
curl -sS https://starship.rs/install.sh | sh  # Linux
brew install starship  # macOS

# 配置
eval "$(starship init zsh)"   # zsh
eval "$(starship init bash)"  # bash
Invoke-Expression (&starship init powershell) # PowerShell


# rename 文件重命名
brew install rename
sudo apt install rename


# primitive 安装与使用
go install github.com/fogleman/primitive@latest

export PATH=$(go env GOPATH)/bin:$PATH

primitive -i input.png -o output.png -n 100