🌟 终端工作环境配置
本文最后更新于 44 天前,其中的信息可能已经有所发展或是发生改变。

某些时候,有一个好用且功能强大的终端能极大地提高工作效率。🤔

🔔 阅读提示:

  • 本文提到的工具大多需要从 Github 上下载,需要有一个良好的网络环境。
  • 本文涉及到的安装方法不涉及所有平台的安装方法,具体安装方法可以参考工具的 📄 官方文档。
  • 遇到更多更好的插件会尽量在这个文档补充,也欢迎大家在评论区补充。😘

1️⃣ 命令行

常见的 Linux 发行版,如 Ubuntu,使用 Bash 作为默认的命令行。要完成本文的配置,更建议使用和 bash 非常相似的 Zsh 作为默认的命令行。此外,网红操作系统老师 jyy 使用的 Fish 作为默认命令行,插件生态也非常不错,也建议尝试。

Zsh

Zsh 可以使用 Linux 发行版的包管理器进行下载。如果想修改系统的默认 Shell,安装完 Zsh 后,可以使用以下命令:

sudo chsh -s `sudo which zsh`

📌 系统重启后生效。

Zsh 插件系统

ohmyzsh 是 Zsh 比较出名的插件系统,集成了众多插件和主题,且仅需简单的配置就可以生效。ohmyzsh 的仓库链接为 https://github.com/ohmyzsh/ohmyzsh,安装方式如下:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

📌 安装后重启命令行生效。

配置文件路径为 ~/.zshrc,其中 ZSH_THEME 变量可以配置主题, plugins 变量可以添加 ohmyzsh 支持的插件。具体支持的主题和插件请阅读官方文档,这里列出一些我推荐的插件:

  • git: 一些 git 的快捷操作,也建议将下面一条快捷操作添加至 ~/.zshrc 中:

    • alias gl="git log --all --decorate --oneline --graph"

      1

  • colored-man-pages: 每次看 man 的时候只有单调的黑白文本?这个让你 man 阅读的更加舒服。

  • tmux: 一些 tmux 的快捷操作。会在后续章节介绍 tmux。

  • web-search: 有了它,你就可以在终端百度或者必应或者谷歌,用法 google what-you-want-to-search

  • autojump: 结合 autojump 工具,让您更加方便地在文件夹之间进行跳转。autojump 工具会在后面章节介绍。

以下两个是非内置的插件,❗ 需要手动安装,然后在 .zshrc 中配置

❗ 别忘了把之前 bash 的 PATH 配置给拷贝到 zsh 中。

Zsh 主题

虽然 ohmyzsh 提供了大量的内置主题,但是都不是特别的美观好看😊。这里推荐比较好看的 PowerLevel10K,仓库链接为 https://github.com/romkatv/powerlevel10k。安装命令如下:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

❗ 前置要求安装 ohmyzsh,并在 ~/.zshrc 中设置主题为 powerlevel10k/powerlevel10k。重启命令行会引导你进行配置,也可以使用 p10k configure 命令配置。

最后的效果,我觉得巨好看。😍

p10k

2️⃣ 字体

🚀 完成上述配置之后,会发现主题的样式不能正常的显示。这是因为缺少相关的字体。

终端字体

这里推荐 Nerd Font 字体作为终端的字体。Nerd Font 不仅提供了大量的图标,还提供了很多编程用的字体,特别是等宽字体(我觉得等宽字体编码很舒服)。

nerd

nerd font 官网上,你可以预览所有字体。选择你喜欢的字体进行下载。📌 在桌面文件浏览器中双击字体文件,会提示你安装,选择为系统安装。安装后,就可以将终端的字体设置为新字体。具体每个终端的修改方法:https://github.com/romkatv/powerlevel10k#manual-font-installation

中文字体

对中文用户来说,原生 Linux 发行版的中文支持并不是很好☹️。这里推荐落霞文楷,仓库链接:https://github.com/lxgw/LxgwWenKai。下载后,安装方式和终端字体的安装方式一样。❗ 这里只需要修改一下系统字体就好了,不用修改终端字体。

img

3️⃣ 终端分屏

“宁愿开多个终端 / ssh 连接, 也不愿意花时间找找有没有 tmux,于是用鼠标来回切换,浪费不必要的时间。”——引用自“一生一芯”讲义

Tmux

从引语就知道为什么要用 tmux 了吧。Tmux 的 Wiki 界面:https://github.com/tmux/tmux/wiki。🔭 建议熟悉一下一些命令的使用,这样就可以做一个高级的展示页面出来(像 Hacker 的系统监视屏幕🤔)。

常见的 Linux 发行版的包管理器都可以下载!📌 下载后就可以使用。

ohmytmux

虽然这里写的是 ohmytmux,其实真名是 .tmux 😂。仓库地址:https://github.com/gpakosz/.tmux。ohmytmux 本质上是 tmux 的配置文件加上主题配置,效果图如下:

tmux

安装方法:

cd
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .

❗ 不要忘记最后的点号。

ohmytmux 会创建 ~/.tmux.conf.local 的配置文件。配置文件已经有非常详细的注释,可以根据自己的需求修改一些配置,比如:

  • 默认的操作方式是类 EMACS 的,你可能需要修改 mode-keys 变量为 vi
  • 默认的快捷键操作前缀是 Ctrl+a,你需要找到 prefix 所在相关行,修改 C-aC-b
  • 默认的状态栏的分割符是三角,你可以修改 seperator 变量为其他形状。其他形状的代码见:https://github.com/ryanoasis/powerline-extra-symbols

4️⃣ 编辑器

🔰 纯 Neovim 用户,其他编辑器如 Emacs,请搜索其他博客😁。

🎁 也可以通过 nvim +Tutor 命令学习怎么使用 Neovim。

Neovim

Neovim 由 Vim 重构而来,Vim 由 Vi 重构而来🤔?安装方式建议使用 Neovim 建议的安装方式,❗ 发行版的包管理器安装的版本太老了。

Neovim 的配置

Neovim 的配置非常的自由,neovimcraft 集聚了优秀的插件和最新的插件,大家可以根据自己的需求选择适合自己的插件进行安装。

下面开始给我自己的配置文件打打广告了😊,Ynvim 包含了常见的插件,基本满足了我自己的需求,安装方式也非常简单,命令如下:

# Ubuntu example:
sudo apt install fzf fd-find ripgrep xclip tree-sitter-cli python3.$(python3 --version | cut -d ' ' -f2 | cut -d '.' -f2)-venv
git clone https://github.com/YEWPO/Ynvim ~/.config/nvim --depth=1
nvim

自己配置的效果图(⚒️ 年代久远了,现在效果远远好于这个截图):

image-20230207113218071

🎯 此外,有非常多的开源项目提供 Neovim 的配置文件,例如 NvChadLazyVim,效果肯定好于我的配置,建议大家首先尝试。

5️⃣ 终端模拟器

该博客之前的版本一直没有推荐 Alacritty 模拟器,但是经过我多次尝试,还是觉得这个更好用,启动速度快,简洁易用。

其他的模拟器也有推荐:

  • Tabby: UI 界面非常好看,Github 星星数很高,但是可能因为 UI 太多了,比较卡。项目链接:https://github.com/Eugeny/tabby
  • Kiity:还算简洁的一个终端模拟器,采用了 GPU 加速,提供了更多的设置选项,也提供了类似 tmux 的多路复用操作,便捷键要比 tmux 友好,但是 UI 不如自己配置的 tmux。项目链接:https://github.com/kovidgoyal/kitty

💡 以上模拟器都支持 Windows、Linux 以及 MacOS。

Alacritty

项目有 Rust 语言编写,所以安全性杠杠的🛡️。项目地址:https://github.com/alacritty/alacritty。📌 Alacritty 的安装有些繁琐,除了 Windows 平面提供了安装程序外,其他平台需要自己下载仓库并编译项目得到二进制文件。为了编译 Alacritty,还需要安装 Rust 的编译器。更多安装细节,请阅读相关文档。

🪄 虽然安装麻烦,但是真的好用,值得花点时间安装。

Alacritty 的配置

Alacritty 的配置文件是用 TOML 写的,文档直接用的命令行文档【辣眼睛】。其实不需要特别多的配置,希望下面的配置代码能满足你的要求:

[env]
TERM = "xterm-256color"

[window]
startup_mode = "Maximized"
opacity = 0.9

[font]
size = 13.0
normal = { family = "Cousine Nerd Font Mono", style = "Regular"}
bold = { family = "Cousine Nerd Font Mono", style = "Bold"}
italic = { family = "Cousine Nerd Font Mono", style = "Italic"}
bold_italic = { family = "Cousine Nerd Font Mono", style = "Bold Italic"}

突然想起,Alacritty 还可以配置颜色主题。颜色主题仓库为https://github.com/alacritty/alacritty-theme,可以参考文档中的讲解进行配置。

❗ Alacritty 文档中说的配置文件目录,在 Linux 下指 ~/.config/alacritty,Windows 下指 AppData/Roaming/alacritty 下。

6️⃣ 其他工具

tldr

tldr 是一个非常简洁的命令手册,提供了大量实际用例,对新手非常友好!安装方式如下:

npm install -g tldr

需要安装 npm 工具,下文会介绍怎么安装。

📌 使用方法,比如我要查 cat 命令怎么用:

tldr cat

lazygit

原生 git 命令工具非常难用。虽然 ohmytmux 提供 git 插件,但还有更好用的。🤩

Lazygit 提供了非常好看的 TUI 界面,也将很多操作简化为了快捷键。效果如下:

lg

不同系统有不同安装方法,请阅读官网文档。📌 进入 Lazygit 后,键入问号可以查看快捷键。为了简化 Lazygit 命令,可以在 ~/.zshrc 中加入 alias lg="lazygit",这样只需键入 lg 就可以进入 Lazygit 界面。

🎁 彩蛋:Docker 也有 Lazydocker。

nvm

用于管理 Node.js 的版本,可以使用 root 权限。项目链接:nvm,安装方法请查看文档(🔰 版本一直在更新,只有官方文档给的是最新的下载链接)。

pwndbg

原始的 gdb 的调试也不够人性化,试试 pwndbg,效果惊艳:

image-20230206213710490

安装方法也请查看文档。

ripgrep

grep 的加强版,使用和速度上都要好于 grep。可以通过 Linux 发行版的包管理器进行安装。

fdfind

find 的加强版,更加的好用和快捷。可以通过 Linux 发行版的包管理器进行安装, ❗安装名为 fd-find

autojump

如果我们想打开某个目录,一般做法是输入完整路径。autojump 通过匹配历史打开过的路径,只需要输入关键字母就可以打开目录(📌 前提需要之前用 cd 命令打开过)。可以通过 Linux 发行版的包管理器进行安装。

❗ autojump 原项目长时间未维护了,对于 Linux 内核版本大于 6.11 的系统,运行 autojump 有 bug。

✅ 为了替代 autojump,可以尝试 nnn 工具,一种以文件树的方式来打开目录的方式。可以通过 Linux 发行版的包管理器进行安装。(后面又发现了 yazi 可以代替 nnn 😎)

fzf

非常强大的模糊匹配工具,项目地址:https://github.com/junegunn/fzf。可以通过 Linux 发行版的包管理器进行安装。模糊搜索效果如下:

img

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇