我的Shell技巧

我的Shell技巧

💡 原文约1600字/词,阅读约需6分钟。
📝

内容提要

本文分享了一些在远程终端使用bash的技巧,包括多行编辑、历史记录自定义、进程替代、tmux使用和fzf命令历史搜索。这些技巧可以提高工作效率,方便管理命令和文件,特别是tmux可以并行处理多个任务,fzf提供模糊搜索历史命令的功能。

🔎

延伸解读

远程终端下的编辑与历史管理

文章针对远程终端场景,指出多行命令编辑不便时可用 C-x C-e 调出 vim 临时编辑,保存退出后 bash 自动执行。同时建议通过 HISTSIZE、HISTFILESIZE 扩大历史容量,并用 PROMPT_COMMAND 配合 history -a 实现每条命令后即时保存,避免 SSH 断开导致历史丢失。这些设置直接回应远程工作中断连、编辑困难等常见痛点。

tmux 在远程工作中的实际价值

文章强调 tmux 能将会话置于后台,SSH 断开后可重新 attach 恢复现场,适合运行前台服务程序。它还支持多会话、多窗口、共享屏幕,并可通过 choose-tree 树状视图快速跳转窗口。配合 tmux-resurrect 插件,甚至能在重启后恢复整个环境。这些能力让远程终端从单次连接变为可持久化的工作空间。

模糊搜索与目录跳转的效率提升

bash 自带历史搜索不支持模糊匹配,文章引入 fzf 实现交互式模糊查找,并可通过配置让选中命令先进入编辑而非直接执行。zoxide 则弥补 cd 无历史、无模糊跳转的不足,根据访问频率快速跳转目录,支持多段路径和交互选择。两者都针对高频操作减少输入成本,但需要额外安装和配置。

SSH 转发与 git 配置的实用场景

文章展示了 SSH 的两种用法:用 -D 建立 socks5 代理让流量走安全连接,用 -L 做端口转发以模拟不同 IP 绑定,还可用 ProxyJump 经跳板机直连内网主机,避免在网关存储私钥。git 方面则通过别名生成提交树、临时忽略文件、缓存凭证和 diff-so-fancy 美化差异。这些配置适合需要频繁跨机操作或审查代码的读者。

❓

Q&A

如何在bash中进行多行编辑?

可以通过设置EDITOR为vim,并使用C-x C-e进入vim进行多行编辑。

如何自定义bash的历史记录?

可以通过设置HISTSIZE和HISTFILESIZE来增加历史记录的大小,并使用PROMPT_COMMAND在每次执行命令后自动保存历史。

tmux有什么主要功能?

tmux支持多个会话和窗口,可以在SSH连接断开后恢复工作,并允许并行处理多个任务。

fzf如何提升bash命令历史的搜索效率?

fzf可以实现模糊搜索bash命令历史,用户可以通过C-r进行交互式搜索。

如何使用ssh进行端口转发?

可以使用ssh -N -L命令进行端口转发,以便在安全的SSH连接中访问不同的机器。

zoxide工具有什么优势?

zoxide可以快速跳转到常用目录,提升工作效率,支持模糊匹配目录名。

🏷️

标签

➡️

继续阅读