Shell Daily 2026-01-23: 直观对比 (Diff Side-by-Side)

Shell Daily 2026-01-23: 直观对比 (Diff Side-by-Side)

你是否因为看不懂 diff file1 file2 输出的 <> 符号而感到头大?
默认的 diff 输出格式对人类极其不友好,尤其是在对比两个几百行的配置文件时,脑补“删除了这行、添加了那行”的过程非常痛苦。其实,你根本不需要安装图形化的 Beyond Compare,标准的 GNU Diff 自带了并排对比模式

怎么用

使用 -y (side-by-side) 参数,将差异以左右分栏的形式展示,并在中间用简单的符号标记变化。

  • diff -y [file1] [file2]:开启并排模式。

  • 关键参数

  • -W [num]:指定宽度(默认 130 列),防止大屏幕上内容折行。

  • --suppress-common-lines神技。只显示有差异的行,隐藏相同的行,让视线聚焦重点。

  • 兼容性Linux (GNU Diffutils) 标配。macOS 原生支持。

适用场景

  • 配置审计:对比 nginx.confnginx.conf.bak 到底改了哪几行。
  • 代码检视:快速查看本地脚本与服务器版本的微小差异。

示例 1:清爽的差异报告

对比两个版本,且不看那些没变的内容(降噪)。

# | 表示修改,< 表示左边独有,> 表示右边独有
$ diff -y -W 120 --suppress-common-lines config_v1.yaml config_v2.yaml

db_host: 192.168.1.10                 | db_host: 10.0.0.5
timeout: 30                           <
                                      > retries: 5

示例 2:全量对比与管道结合

结合 colordiff (如果已安装) 或直接输出,查看完整上下文。

# 这种视图在宽屏终端上阅读体验极佳
$ diff -y /etc/ssh/sshd_config /etc/ssh/sshd_config.default

(注:加上 --suppress-common-lines 后,diff 的可读性提升了至少 10 倍,是终端里最接近 GUI 体验的文本对比方式。)

posted @ 2026-01-23 12:58  Terrasse  阅读(2)  评论(0)    收藏  举报