工欲善其事,如何利其器?CLI 篇


工欲善其事,必先利其器,这篇文章将从 CLI 工具这个方面向你介绍“如何提高在 CLI 环境下的工作效率”。

Shell

Shell 是一个用来提供与操作系统内核(Kernel)交互的软件。

常见的 Shell 分为两种:

  • Command Line Interface (CLI) 命令行界面
  • Graphic User Interface (GUI) 图形用户界面

通常情况下,Shell 主要是指 CLI 程序,常见的 CLI shell 有 Bash、Zsh、Fish、PowerShell、Cmd 等。

为什么会有 CLI Shell ?

早期的计算机主机存放在专门的机房中,用户想要操作计算机需要通过终端(Terminal)连接,终端就是计算机的输入输出设备。最早的终端无法显示图像,只能通过屏幕跟键盘展示、输入字符,所以最早的 Shell 软件就以 CLI 的形式问世了。

随着技术的进步发展,只能用来传输文本的终端设备几乎都被显示器替代了,GUI 取代了 CLI 的在人机交互方面的主要地位。

CLI 优势

CLI 最大的优势在于可编程,CLI shell 通常也是一个脚本语言解释器,可以通过编写 Shell 脚本来自动化完成一些复杂、重复的操作,这是 GUI 难以比拟的。

在 GUI 成为主要人机交互界面的今天,终端模拟器(Terminal Emulator)是我们操作 CLI 的必备工具。一个优秀的终端模拟器通常会提供下面几个功能:

  • 多 Tab 切换
  • 窗口分屏
  • 搜索命令行输出(ScrollBack)
  • 自动识别链接

这些功能也是提高 CLI 使用效率的必备功能,如果你的终端模拟器不支持这些功能,我推荐你使用下面的这些软件:

  • Windows
    • Windows Terminal
    • ConEmu
  • macOS
    • iTerm2
  • Linux
    • Konsole
    • Kitty

我非常建议你设置 Tab 切换跟窗口分屏快捷键,这些操作可以极大地提升你使用 CLI 时的工作效率。

设置一个用户友好的 CLI Shell

Fish Shell 是一个智能的、用户友好的 Shell 程序。相比 Bash,它有如下优点:

  • 自动补全
  • 简单易学的脚本语法
  • 基于 Man 的智能提示与补全
  • 开箱即用,只要安装上就能够获得生产力的提升

安装 Fish

不建议将默认 Shell 修改为 Fish,因为 Fish 不遵循 POSIX Shell 规范,不一定跟其他的程序兼容,更好的做法是将兼容 POSIX 的 Shell 作为默认 Shell,然后在终端模拟器中将默认启动的 Shell 设置为 Fish。

CLI 好伙伴

  • man CLI 程序说明书
  • bat 文本文件查看工具
  • tldr man 手册太长不看,就看 TLDR
  • fd 文件搜索工具
  • fuck 智能的命令行纠错工具
  • exa 更加友好的 ls 替代品

进一步提升 Fish 的易用性

  • Fisher Fish 插件管理器
  • fzf fzf 命令行模糊搜索程序
  • z 智能的目录跳转工具
  • starship 高性能的 Shell 提示符

fzf

通过 fisher 安装 PatrickF1/fzf.fish

  • ctrl+r 搜索历史
  • ctrl+alt+f 从当前目录开始搜索文件,按 Tab 可以多选

更多快捷键可以查看 GitHub Readme

常用快捷键

function fish_user_key_bindings
    # 使用 Ctrl + F 补全整行
    bind -M insert \cf accept-autosuggestion
    bind \cf accept-autosuggestion
end
  • alt+. 将上个命令的最后一部分填到当前命令行末尾
  • alt+s 用 sudo 执行上条命令

更多快捷键请查看文档

私人订制,打造合适自己的 CLI 工具

alias 给常用的命令设置别名,方便快速输入。

funced/funcsave/function function 比 alias 更加完善,可以用来封装更加复杂的操作。

,

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

You can use markdown syntax in comment