作者:JackTian
来源:公众号「杰哥的IT之旅」
ID:Jake_Internet
转载请联系授权(微信ID:Hc220088)
原文地址:10 款你不知道的 Linux 环境下的替代工具!
大家好,我是杰哥。
在 Linux 操作系统下,我们经常使用 cat 命令去连接多个文件并打印到标准输出,合成几个文件为一个目标文件,追加几个文件到目标文件中。
最近我在 GitHub 上发现了一个具有相似作用的命令叫做 “Bat”,它是 cat 命令的替代品,具有一些例如语法高亮、 Git 集成和自动分页等非常酷的特性。
在这篇文章中,就来给大家介绍下如何在 Linux 中安装和使用 bat 命令。 1、bat 安装 bat Arch Linux
bat 可以在 Arch Linux 操作系统的默认软件源中进行获取,可直接使用 pacman 命令在任何基于 Arch 的系统上来安装它。
pacman -S bat
Fedora
dnf install bat
macOS
brew install bat
Ubuntu 21.10
我是通过 Ubuntu 环境下安装的 bat,从 bat 的发布页面下载.deb文件,可执行如下命令进行下载和安装。
对于其他系统,也许需要从软件源编译并安装,或参考 GitHub 上 bat 的其他操作系统安装方式。 bat 命令的使用
bat 命令的使用与 cat 命令的使用非常相似。
使用 bat 命令创建一个新文件:
bat > jiaoben1.sh
使用 bat 命令查看文件内容:
bat jiaoben1.sh
使用 bat 命令同时查看多个文件:
bat jiaoben1.sh jiaoben2.sh
使用 bat 命令将多个文件的内容合并到一个单独的文件中:
bat jiaoben1.sh jiaoben2.sh > test.txt
上述介绍了 bat 创建新文件、查看文件内容、将多个文件的内容合并到一个单独的文件中的方式。
接下来,我们就来看一下 bat 命令一些非常酷的特性。
bat 命令支持大多数编程和标记语言的语法高亮,那么我们就来使用 cat 和 bat 命令展示下 jiaoben1.sh 里面的内容做个鲜明的对比。
可以看出,cat 命令以纯文本格式显示文件的内容,而 bat 命令显示了语法高亮和整齐的文本对齐格式。
从上面 bat 命令的输出,可以看出是有表格线的,如果你只想显示行号(而没有表格)可以使用-n参数来实现,虽然 cat 执行也会显示行号,但还是没有 bat 执行输出后的效果美观。
bat -n jiaoben2.sh
bat 命令支持 Git 集成,可以轻松查看和编辑 Git 存储库中的文件,bat 与 Git 连接可显示关于索引的修改。
bat 支持自动分页,这点特性也是需要值得注意的。
支持分页意思也就是说,当文件的输出内容超出屏幕显示的时候,bat 命令会自动将自己输出的内容传到 less 命令中,你将可以使用回车键一页一页的查看输出内容,使用空格键可直接跳转至文末最后一行。
当你使用 bat 命令时这些都是不必要的,bat 命令将自动传输跨越多个页面的文件的输出。
如果你想要通过 cat 来实现 bat 命令的效果,则需要去使用 cat 的输出传输到 less 命令中去,这样就可以从开头部分一页一页的查看内容了。
cat jiaoben3.sh | less
同样,这种方式也是可以使用回车键一页一页的查看输出内容以及使用空格键可直接跳转至文末最后一行。
bat 定制主题
目前 bat 定制主题有 24 种,包括:Coldark-Cold、GitHub、Monokai Extended Light、OneHalfDark、Solarized (light)、TwoDark、Visual Studio Dark+、base16、zenburn 等;
如果你不喜欢默认主题,也是可以根据自己的风格进行修改,只需执行:bat --list-themes命令,即可显示可用的主题。
# bat --list-themes
Theme: 1337
// Output the square of a number.
fn print_square(num: f64) {
let result = f64::powf(num, 2.0);
println!("The square of {:.2} is {:.2}.", num, result);
}
......
例如你要选择Dracula主题,可直接执行:bat --theme=Dracula 文件名
如果你想永久改变某一个主题,可使用export BAT_THEME="Dracula"在你的 shell 启动文件,以使更改为永久。
您可以使用--style参数选项来控制bat输出的外观,配置元素包括:行号、文件头、网格边框、Git修改来显示除文件内容之外的东西,参数是一个逗号分隔的列表。
--style=numbers,changes可以使用仅显示 Git修改和行号,而不显示网格和文件标题,设置BAT_STYLE环境变量以使这些更改为永久。
关于更多 bat 的使用方法可通过执行命令man bat或bat --help。
除此之外,也可以通过 bat 项目的 GitHub 库查看更多详细信息,我用过 bat 后就不会再想用回 cat 了! 2、duf
在 Linux 环境下,我们知道 df 命令是用于显示磁盘分区上可使用的磁盘空间,默认显示单位为 KB,你还可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
3、tldr
对于初学者学习 Linux 来说,遇到最多的问题就是在 Linux 操作系统下有记不完的命令以及包括各种参数的使用方法,其实你根本不用死记硬背它,当你用到时去查找相关资料或通过man命令来查看相关文档,man手册输出的信息也比较多,而对于参数较多的命令来说,翻看man手册也非常吃力。
这次就给大家介绍一款工具:tldr,它的全称是:Too Long, Don't Read,中文意思:太长不看的意思。
其实跟man命令的结果基本上就是太长不看,tldr这个工具你可以理解为简化了 man 命令的帮助文档,把 Linux 命令最常用的一些命令用法列举出来,非常容易看懂。
同时,tldr包括非常多语言编写的客户端,比如:C、Go、iOS、Python、nodejs 等等,你可以使用不同的客户端来安装;
我这里的环境是 Ubuntu,需要先安装 Node.js,然后根据下述安装方式操作:
tldr 的使用:
tldr 命令的使用也非常简单,只需 tldr + 你所要查询的命令即可; 4、htop
在 Linux 操作系统上显示进程运行状态信息最常用工具是我们熟悉的 top,它是每位系统管理员的好帮手。
htop 可以说是 top 的绝佳替代品,它是用 C 写的,是一个跨平台的交互式的进程监控工具,具有更好的视觉效果,一目了然更容易理解当前系统的状况,允许垂直和水平滚动进程列表以查看它们的完整命令行和相关信息,如内存和 CPU 消耗。还显示了系统范围的信息,例如平均负载或交换使用情况。
显示的信息可通过图形设置进行配置,并且可以交互排序和过滤,与进程相关的任务(例如终止和重新处理)可以在不输入其 PID 的情况下进行完成。
安装也很简单,只需执行命令:apt install htop即可完成。
htop 比起 top,优势很明显,除了功能更加完善以外,它的色彩搭配也很丰富,整体上使用起来更加友好。 5、glances
Glances 是用 Python 写的一个跨平台的监控工具,旨在通过 curses 或基于 Web 的界面呈现大量系统监控信息,该信息根据用户界面的大小动态调整,是 GNU/Linux、BSD、Mac OS 和 Windows 操作系统的 top/htop 替代品。
它可以在客户端/服务器模式下工作,远程监控可以通过终端、Web 界面或 API(XML-RPC 和 RESTful)完成,统计数据也可以导出到文件或外部时间/值数据库。
除了列出所有进程及其 CPU 和内存使用情况之外,它还可以显示有关系统的其他信息,比如:
网络及磁盘使用情况
文件系统已使用的空间和总空间
来自不同传感器(例如电池)的数据
以及最近消耗过多资源的进程列表
6、exa
提到 ls 命令,大家都不陌生,在 Linux 环境下,其主要作用:列出当前目录下所包含的文件及子目录,如果当前目录下文件过多,则使用命令 ls 不是很好,因为这输出出来的结果跟你所要查找的文件未能达成一致,第一:需要进行二次过滤查找;第二:文件过多时,终端输出结果较慢;
EXA 是 Unix 和 Linux 操作系统附带的命令行程序的 ls 现代替代品,赋予它更多功能和更好的默认值。它使用颜色来区分文件类型和元数据。它了解符号链接、扩展属性和 Git。它体积小、速度快,而且只有一个二进制文件。 EXA 与 LS 有什么不同之处?