类 Unix 体系开展多年,不少老古董指令还在占有终端的绝大部分时间,而运用体会上却仍然差强人意。
从本文开端,我将用一系列文章介绍提高终端功率的一系列指令,这些指令更具现代风格,期望能让你眼前一亮。
前语
正式开端前,先引荐一个 github 库房 – modern-unix,其中收录了大量的更具现代风格的指令,可用于替换一大波老古董指令,在这个系列的最后一篇,我将会全体过下该库房中的所有指令。
本系列即将介绍的指令,我大概可将其分为三个大类,分别是:文件目录查看相关的指令 – exa、zoxide、bat,文件目录搜索相关的指令 – fd、ripgrep、fzf ,HTTP Web 开发的相关指令 – entr、httpie、jq。
期望经过这些指令的学习,进一步提高咱们的作业功率。
系列阅读:
- 我的终端环境:iTerm2 的装置与体会
- 我的终端环境:zsh 装置与主题,引荐 7 个提高功率的 zsh 插件
- 我的终端环境:6 个强壮的 zsh 插件
- 我的终端环境:异乎寻常的 zsh 主题 – powerlevel10k
- 我的终端环境:高效 shell 指令(一)之目录文件指令 exa、zoxide 与 bat
- 我的终端环境:高效 shell 指令(二)之高效查找与搜索 – fd ripgrep fzf
- 我的终端环境:高效 shell 指令(三)之提效 web 开发 – entr httpie jq
更多待续…
本文是高效指令系列第一篇,将先介绍平常作业中最常用的与目录文件相关的指令:
这三个指令直接替换掉最常用体系内置指令:ls、cd 与 cat。
注:exa 已停止保护,可用 eza 替代,它是根据 exa 的 fork 版别。装置指令:brew install eza。
exa
这是一款可用于替换体系默许 ls 的指令,在平常作业中 ls 几乎运用最多的指令,而 exa 在支撑 ls 的根本才能基础上,供给了更丰富的特性。
快速装置
brew install exa
运用
事例 1 – exa 默许配色作用;
事例 2 – exa –icons 显现文件类型图标;
事例 3 – exa -alh –git 或 exa –all –long –header –git,显现文件列表概况,和 git 信息;
事例 4 – exa –tree –icons,显现文件树;
别号
经过别号将默许 ls 和 tree 指令替换为 exa;
# 默许显现 icons:
alias ls="exa --icons"
# 显现文件目录概况
alias ll="exa --icons --long --header"
# 显现全部文件目录,包含躲藏文件
alias la="exa --icons --long --header --all"
# 显现概况的同时,附带 git 状态信息
alias lg="exa --icons --long --header --all --git"
# 替换 tree 指令
alias tree="exa --tree --icons"
如此一来,就将 exa 设置为体系默许 ls。
特别阐明:别号收效后,如果还期望运用原始指令,可经过类似于
command
的形式完成,如ls
将无效别号设置,直接运用体系内置 ls 指令。
zoxide
提早问自己一个问题,Linux 默许指令 cd 好不好用?我的答案是,相当难用,无论多么丝滑的操作,一旦遇到 cd,只能说一句 fuck。
cd ../
cd ../
cd ../
cd ../../../
cd x/
cd y/
cd z/
如果不想被 cd 摧残的话,我强烈引荐这个工具:zoxide。
zoxide 是一款遭到 z 和 autojump 启示而来的指令,它会记载访问过的目录,完成以 最最最最 少按键就能完成目录跳转。
注:前面的教程介绍了 oh-my-zsh 供给的 z 插件,zoxide 与 z 相比更易于运用。一份对比报告:zoxide vs zsh-z。
装置
brew install zoxide
装备
在 zsh 中运用 zoxide,经过一行指令将 zoxide 初始化指令追加到 ~/.zshrc
中,如下所示:
## 经过 z 运用 zoxide
echo 'eval "$(zoxide init zsh --cmd z)"' >> ~/.zshrc
## 或直接替换 cd 指令
echo 'eval "$(zoxide init zsh --cmd cd)"' >> ~/.zshrc
我将会运用 zoxide 直接替换 cd 指令,即第二种装备方法。
运用
假定,有如下目录结构:
~/Hello
|_ ./golang-examples
|_ ./python-examples
|_ ./rust-examples
|_ ./trading-strategies
因为 zoxide 是经过前史访问途径的方法完成快速跳转的,要先准备数据。
如下指令初始化 zoxide 数据库:
cd ~/Hello/golang-examples
cd ~/Hello/python-examples
cd ~/Hello/rust-examples
cd ~/Hello/trading-strategies
事例 1:cd golang-examples – 全名匹配;
事例 2:cd golang – 部分匹配;
事例 3:cd examples – 重名按算法挑选最优目录;
事例 1、2、3 的演示作用如下所示:
{{< image 2023-10-28-high-productivity-shell-commands-part1-05.gif>}}
事例 4:cd examples <Space> <Tab>,进入交互挑选形式;
除了经过 <Space> <Tab> 完成交互挑选形式,还可直接运用 cdi 指令完成,直接看事例 5;
事例 5:cdi examples 直接进入交互挑选形式;
bat
bat 是一款支撑语法高亮与集成 GIT,功能与 cat 相似的指令。
装置
brew install bat
装备
bat 的默许作用在我的 Macos 体系下的 tmux 形式下主题显现不行友好,每次要在选项上要装备主题,类似 bat --theme=TwoDark main.py
。实际上,bat 指令供给了装备文件的才能。
可经过 bat –list-themes 查看 bat 支撑的主题列表。
首先,在 .zshrc
中设置 bat 装备文件位置环境变量。
export BAT_CONFIG_PATH="${XDG_CONFIG_HOME:-~/.config}/bat.conf"
收效后,履行如下指令将会生成装备文件:
bat --generate-config-file
装备 bat 默许选项,将主题装备 --theme=TwoDark
启用,如下所示:
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
# for a list of all available themes
--theme=TwoDark
运用
事例 1:语法高亮作用与行号;
事例 2:集成 git 信息;
事例 3:和 cat 相同,一次性无分页输出文本;
bat --pager='never' logger.go
对于习惯运用 cat 的形式,如期望默许不启用分页才能,可直接在装备文件添加 --paging=never
。
别号
觉得 bat 不错,想直接替换 cat 指令,在 zshrc
中装备别号即可,将默许 cat 指令,替换为 bat,如下所示:
alias cat='bat'
总结
本文介绍了三个指令,分别是 exa(eza)、zoxide 和 bat 的运用,让最常用最无聊的指令也能产生有趣的体会,完成运用功率的提高。