类 Unix 体系开展多年,不少老古董指令还在占有终端的绝大部分时间,而运用体会上却仍然差强人意。

从本文开端,我将用一系列文章介绍提高终端功率的一系列指令,这些指令更具现代风格,期望能让你眼前一亮。

前语

正式开端前,先引荐一个 github 库房modern-unix,其中收录了大量的更具现代风格的指令,可用于替换一大波老古董指令,在这个系列的最后一篇,我将会全体过下该库房中的所有指令。

本系列即将介绍的指令,我大概可将其分为三个大类,分别是:文件目录查看相关的指令 – exazoxidebat,文件目录搜索相关的指令 – fdripgrepfzf ,HTTP Web 开发的相关指令 – entrhttpiejq

期望经过这些指令的学习,进一步提高咱们的作业功率。

系列阅读:

更多待续…

本文是高效指令系列第一篇,将先介绍平常作业中最常用的与目录文件相关的指令:

  • exa,替换默许的 ls 指令;
  • zoxide,更智能地进行目录跳转,可替换默许的 cd 指令;
  • bat,与 cat 功能相似,但它支撑语法高亮,完成了 git 的集成;

这三个指令直接替换掉最常用体系内置指令:ls、cd 与 cat。

注:exa 已停止保护,可用 eza 替代,它是根据 exa 的 fork 版别。装置指令:brew install eza。

exa

这是一款可用于替换体系默许 ls 的指令,在平常作业中 ls 几乎运用最多的指令,而 exa 在支撑 ls 的根本才能基础上,供给了更丰富的特性。

快速装置

brew install exa

运用

事例 1 – exa 默许配色作用;

我的终端环境:高效 shell 指令(一)之目录文件操作指令 exa、zoxide 与 bat

事例 2 – exa –icons 显现文件类型图标;

我的终端环境:高效 shell 指令(一)之目录文件操作指令 exa、zoxide 与 bat

事例 3 – exa -alh –git 或 exa –all –long –header –git,显现文件列表概况,和 git 信息;

我的终端环境:高效 shell 指令(一)之目录文件操作指令 exa、zoxide 与 bat

事例 4 – exa –tree –icons,显现文件树;

我的终端环境:高效 shell 指令(一)之目录文件操作指令 exa、zoxide 与 bat

别号

经过别号将默许 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 的演示作用如下所示:

我的终端环境:高效 shell 指令(一)之目录文件操作指令 exa、zoxide 与 bat

{{< image 2023-10-28-high-productivity-shell-commands-part1-05.gif>}}

事例 4:cd examples <Space> <Tab>,进入交互挑选形式;

我的终端环境:高效 shell 指令(一)之目录文件操作指令 exa、zoxide 与 bat

除了经过 <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:语法高亮作用与行号;

我的终端环境:高效 shell 指令(一)之目录文件操作指令 exa、zoxide 与 bat

事例 2:集成 git 信息;

我的终端环境:高效 shell 指令(一)之目录文件操作指令 exa、zoxide 与 bat

事例 3:和 cat 相同,一次性无分页输出文本;

bat --pager='never' logger.go

对于习惯运用 cat 的形式,如期望默许不启用分页才能,可直接在装备文件添加 --paging=never

别号

觉得 bat 不错,想直接替换 cat 指令,在 zshrc 中装备别号即可,将默许 cat 指令,替换为 bat,如下所示:

alias cat='bat'

总结

本文介绍了三个指令,分别是 exa(eza)、zoxide 和 bat 的运用,让最常用最无聊的指令也能产生有趣的体会,完成运用功率的提高。

我的博文 – 我的终端环境:提高功率的 shell 指令(一)之目录文件指令 exa、zoxide 与 bat