内容提要
本文分享了一些在远程终端使用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可以快速跳转到常用目录,提升工作效率,支持模糊匹配目录名。