x-cmd pkg | bat: cat 命令现代化替代品,终端用户必备工具

目录

简介

bat 是由 github.com/sharkdp 用 Rust 开发的 cat 命令现代化替代品。它比 cat 命令扩展了更多的现代化功能,如语法高亮、自动分页、Git集成等,能为用户提供更为友好的显示和定制化选项,特别适合需要在终端中频繁查看文件内容的用户。

快速上手

安装

sh 复制代码
eval "$(curl https://get.x-cmd.com)"        # 安装 x-cmd
x env use bat                               # 使用 x-cmd 安装 bat

使用

  1. 从 stdin 读取内容。bat 会根据内容第一行的 shebang 标记(如 #!bin/sh)识别输入内容的语言,并自动为内容添加语法高亮。

    sh 复制代码
    curl -s https://sh.rustup.rs | bat
  2. 从一个文件或多个文件中读取内容。

    sh 复制代码
    bat README.md
    bat header.md content.md footer.md
    bat src/*.rs
  3. 常用功能选项,如去除样式、禁用分页器、显式指定内容的语言、仅显示行号和内容等。

    sh 复制代码
    x ascii | bat --style plain  # 去除样式
    x ascii | bat -P             # 禁用分页器
    x ascii | bat -l csv         # 显式指定内容的语言
    x ascii | bat -n             # 仅显示行号和内容
    x ascii | bat -A             # 不可打印(non-printable)字符可视化

与第三方工具组合使用

  1. 作为 fzf 的预览器,如:fzf --preview 'bat --color=always -n --line-range=:500 {}'

  2. 预览 find 或 fd 搜索的文件,如:find . -type f -exec bat {} +

  3. 为 git diff 提供一个适合快速预览的内容:

    sh 复制代码
    batdiff() {
        git diff --name-only --diff-filter=d | xargs bat --diff
    }
    batdiff

功能特点

  1. 语法高亮 :支持 170 多种编程和标记语言的语法高亮,使用 --list-languages 或 -L 命令选项可查看其支持的语言。
  2. 自动分页:当输出内容大于屏幕可显示范围时,会使用分页器分页显示内容,避免一次性显示大量文本导致屏幕滚动不可控。
  3. 智能输出 :当 bat 检测到当前环境为非可交互终端或管道时,会一次性以纯文本形式将所有内容输出,类似于 cat。
  4. 集成 Git: 默认与 Git 集成,能指示 Git 仓库的文件中被修改的部分内容。
  5. 个性化设置 :内置多种主题可,使用 --list-themes 命令选项可以列出所有可用的主题和预览主题样式。
  6. 跨平台性:能在主流平台上安装和运行,如 Windows、Linux、MacOS。

竞品和相关作品

  1. cat:用于读取文件或 stdin 的内容并写入到 stdout 的工具,是标准的 Unix 实用程序。
  2. zcat:用于查看压缩文件内容的工具,专门用于处理经过 gzip 压缩的文件(即 .gz 文件),能在不将文件解压到磁盘的情况下读取压缩文件内容并写入到 stdout。
  3. eth-p/bat-extras:将 bat 与各种命令行工具集成的 Bash 脚本。

进一步阅读

  • bat 源代码 - bat 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 bat 和参与社区贡献。
  • bat 与相关程序的比较 - 由 bat 官方给出的 bat 同类程序对比表格,可据此寻找像 bat 这样的程序。

更多内容请查阅 : pkg/bat

转载请标明原文链接 :https://www.x-cmd.com/pkg/bat


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法

相关推荐
夏天拐跑了西瓜7 小时前
一文入门LangChain:从框架认知到构建你的第一个AI Agent
python·langchain·conda·agent
Lsetea7 小时前
curl指定CA目录仍报证书不受信任:--capath与OpenSSL rehash排查
运维·https·ssl·openssl·curl
魔猴疯猿8 小时前
从0到1用Python开发第一个智能体
人工智能·python·深度学习·神经网络·机器学习
优化Henry8 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
代码方舟9 小时前
数据科学风控实战:基于天远全能消金报告构建自动化信用评估网关
运维·人工智能·自动化
xiaoqi01959 小时前
机器学习因子分析实战:从量化特征到可视化决策
人工智能·python·机器学习
科力锐品牌君9 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
KaiwuDB9 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
Escalating_xu9 小时前
【Python】基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
happylifetree9 小时前
Python14:核心语法-数据存储与运算-字符串定义
python