乐趣区

关于ide:10-款-Linux-环境下的开源替代工具

在 Linux 操作系统下,咱们常常应用 cat 命令去连贯多个文件并打印到规范输入,合成几个文件为一个指标文件,追加几个文件到指标文件中。

最近我在 GitHub 上发现了一个具备类似作用的命令叫做“Bat”,它是 cat 命令的替代品,具备一些例如语法高亮、Git 集成和主动分页等十分酷的个性。

在这篇文章中,就来给大家介绍下如何在 Linux 中装置和应用 bat 命令。

01 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 文件,可执行如下命令进行下载和装置。

sudo apt-get install wget
wget https://github.com/sharkdp/bat/releases/tag/v0.18.3/bat_0.18.3_amd64.deb
sudo dpkg -i bat_0.18.3_amd64.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 命令将主动传输逾越多个页面的文件的输入。

bat jiaoben3.sh

比照下 cat 命令,查看 jiaoben3.sh 跨多个页面文件内容时,提示符会间接跳到文件的最初一页,将无奈看到跨多个页面文件结尾及两头局部的内容。

cat jiaoben3.sh

如果你想要通过 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 batbat --help

除此之外,也能够通过 bat 我的项目的 GitHub 库查看更多详细信息,我用过 bat 后就不会再想用回 cat 了!

02 duf

在 Linux 环境下,咱们晓得 df 命令是用于显示磁盘分区上可应用的磁盘空间,默认显示单位为 KB,你还能够利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       18439940 4943264  12559972  29% /
tmpfs             506176      76    506100   1% /dev/shm
/dev/sda1          99150   30003     64027  32% /boot
/dev/sr0         4363088 4363088         0 100% /media/CentOS_6.5_Final

除此之外,du 命令也是查看应用空间的,但与 df 命令不同的是 Linux du 命令是对文件和目录磁盘应用的空间的查看,和 df 命令还是有一些区别的。

# du
4    ./.abrt
8    ./.dbus/session-bus
12    ./.dbus
4    ./.nautilus
40    ./.local/share/gvfs-metadata
24    ./.local/share/applications
68    ./.local/share
72    ./.local

接下来就跟大家介绍一款终端工具,你能够了解为传统的 Linux 命令 df 和 du 整合版 —— duf。

duf 是一个用 Golang 编写的跨平台磁盘应用状况工具,能够让你轻松地查看可用磁盘空间,对输入进行分类,并以用户敌对的形式进行出现,实用于 Linux、Windows、macOS、Android、FreeBSD;

Ubuntu 装置形式:

$ sudo apt install gdebi
#如果报错,Failed to fetch http://security.ubuntu.com......
# sudo apt-get update

$ sudo gdebi duf_0.5.0_linux_amd64.deb
#要先在下载 duf_0.5.0_linux_amd64.deb,下载地址为:https://github.com/muesli/duf/releases/download/v0.5.0/duf_0.5.0_linux_amd64.deb

MacOS 装置形式:

# 先装置 Homebrew,依照提醒装置即可。/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

#装置 duf
brew install duf

#或者
sudo port selfupdate && sudo port install duf

Windows 装置形式:

choco install duf

#或者

scoop install duf

装置结束后,可间接应用 duf,办法也非常简单。

不增加任何参数,会输入所有本地设施、已挂载的任何云存储设备以及任何其余非凡设施(包含长期存储地位等)的详细信息;

$ duf

如果你只想查看本地连接设施的详细信息,而不想看其余的,可执行:

$ duf --only local

如果你只想依据大小按特定程序对输入信息进行排序,可执行:

$ duf --sort size

更多参数应用形式:

duf /home /some/file 依据参数,则 duf 将仅列出特定的设施和装置点
duf --all 列出所有内容
duf --hide-network 暗藏网络文件系统,与之对应的 --hide-fuse --hide-special --hide-loops --hide-binds
duf --inodes 列出 inodes
duf --output mountpoint,size,usage 指定输入的格局 对应的还有(mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem)
duf --json 以 json 格局输入
duf --theme light 如果 duf 无奈正确检测终端的色彩,能够设置一个主题
duf --help 查看所有 duf 的可用命令

03 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,而后依据下述装置形式操作:

sudo apt-get install nodejs

sudo apt-get install npm

sudo npm install -g tldr

执行完上述三条命令后,还须要再执行 tldr –update,更新 tldr 至最新的状态,而后就能够间接应用了;

tldr --update

tldr 的应用:

tldr 命令的应用也非常简单,只需 tldr + 你所要查问的命令即可;

04 htop

在 Linux 操作系统上显示过程运行状态信息最常用工具是咱们相熟的 top,它是每位系统管理员的好帮手。

htop 能够说是 top 的绝佳替代品,它是用 C 写的,是一个跨平台的交互式的过程监控工具,具备更好的视觉效果,高深莫测更容易了解以后零碎的情况,容许垂直和程度滚动过程列表以查看它们的残缺命令行和相干信息,如内存和 CPU 耗费。还显示了零碎范畴的信息,例如均匀负载或替换应用状况。

显示的信息可通过图形设置进行配置,并且能够交互排序和过滤,与过程相干的工作(例如终止和重新处理)能够在不输出其 PID 的状况下进行实现。

装置也很简略,只需执行命令:apt install htop即可实现。

htop 比起 top,劣势很显著,除了性能更加欠缺以外,它的色调搭配也很丰盛,整体上应用起来更加敌对。

05 glances

Glances 是用 Python 写的一个跨平台的监控工具,旨在通过 curses 或基于 Web 的界面出现大量系统监控信息,该信息依据用户界面的大小动静调整,是 GNU/Linux、BSD、Mac OS 和 Windows 操作系统的 top/htop 替代品。

它能够在客户端 / 服务器模式下工作,近程监控能够通过终端、Web 界面或 API(XML-RPC 和 RESTful)实现,统计数据也能够导出到文件或内部工夫 / 值数据库。

除了列出所有过程及其 CPU 和内存应用状况之外,它还能够显示无关零碎的其余信息,比方:

  • 网络及磁盘应用状况
  • 文件系统已应用的空间和总空间
  • 来自不同传感器(例如电池)的数据
  • 以及最近耗费过多资源的过程列表

06 exa

提到 ls 命令,大家都不生疏,在 Linux 环境下,其次要作用:列出当前目录下所蕴含的文件及子目录,如果当前目录下文件过多,则应用命令 ls 不是很好,因为这输入进去的后果跟你所要查找的文件未能达成统一,第一:须要进行二次过滤查找;第二:文件过多时,终端输入后果较慢;

EXA 是 Unix 和 Linux 操作系统附带的命令行程序的 ls 古代替代品,赋予它更多功能和更好的默认值。它应用色彩来辨别文件类型和元数据。它理解符号链接、扩大属性和 Git。它体积小、速度快,而且只有一个二进制文件。

EXA 与 LS 有什么不同之处?

  • 终端屏幕不再是瓶颈:exa 功能强大,比 ls 要敌对,输入后果会更快;
  • 色彩:exa 大量应用色彩;
  • 不与 ls 命令抵触

EXA 的特色

  • 色调:文件类型列表以及如何辨别文件;
  • 网格视图:在与终端窗口大小雷同的网格中显示文件;
  • 久远:在表中显示文件及其元数据;
  • 树视图:在树中显示文件及其子代;
  • Git 集成:在存储库中时,查看文件的 Git 状态;
  • 筛选:暗藏列表中的文件,显示不可见的文件,并对输入进行排序;
  • Xattrs:列出文件的扩大属性;

Ubuntu 21.10 装置只需执行命令:apt install exa即可。

显示选项

  • -1,–oneline:每行显示一个条目
  • -G,–grid:将条目显示为网格(默认)
  • -l,–long:显示扩大细节和属性
  • -R,–recurse:递归到目录
  • -T,–tree:作为树递归到目录中
  • -x,–across:对网格进行排序,而不是向下排序
  • -F,–classify:按文件名显示类型指示器
  • –colo[u]r:何时应用终端色彩
  • –colo[u]r-scale : 分明地突出显示文件大小的级别
  • –icons : 显示图标
  • –no-icons : 不显示图标(总是笼罩 –icons)

过滤选项

  • -a,–all:显示暗藏和“点”文件
  • -d,–list-dirs:像一般文件一样列出目录
  • -L,–level=(depth):限度递归深度
  • -r,–reverse:反转排序程序
  • -s,–sort=(field):按哪个字段排序
  • –group-directories-first:在其余文件之前列出目录
  • -D,–only-dirs:只列出目录
  • –git-ignore:疏忽中提到的文件.gitignore
  • -I,–ignore-glob=(globs):要疏忽的文件的全局模式(管道分隔)

传递该 –all 选项两次以同时显示. 和.. 目录。

07 fd

fd 是一个在文件系统中查找条目标程序,它是 find 命令的一个简略、疾速且用户敌对的替代品,fd 目标不是取代 find 命令所提供的全副性能,而是在少数用例中提供了正当的默认值,在某些状况下十分有用。

fd 输入是黑白的,相似于某些 ls 模式,它是递归的,在蕴含 Git 存储库的目录中搜寻源代码文件时,fd 会主动排除暗藏的文件和目录,包含.、.git 目录,并疏忽.gitignore 文件中的模式。一般来说,搜寻速度更快,而且第一次搜寻时会提供了更多相干后果。

默认状况下,fd 在当前目录中执行不辨别大小写的模式搜寻,然而,如果你的搜寻模式蕴含一个大写字母,fd 将以辨别大小写的模式进行执行。当然,也能够重写默认值,但在许多状况下还是无利的。同样应用 find 进行雷同的搜寻须要你提供额定的命令行参数。

fd 可用于许多 Linux 发行版,执行以下命令,能够应用规范存储库在 Ubuntu 中装置:

sudo apt install fd-find

在 Ubuntu 操作系统中,命令是 fdfind,防止与其余现有的实用程序名称发生冲突,如果心愿它是 fd,能够设置一个别名:

alias fd=fdfind

要使别名放弃不变,在重启后依然可用,请将其放入 “.bashrc”“.bash_aliases”文件中。

应用不带参数选项的 fd,则相似于 ls,不同之处在于它默认状况下也会将子目录中的文件进行列出。

fd
bat_0.18.3_amd64.deb
fd_8.3.0_amd64.deb
jiaoben1.sh
jiaoben2.sh
jiaoben3.sh
snap
snap/firefox
snap/firefox/631
snap/firefox/731
snap/firefox/common
snap/firefox/current
snap/snap-store
snap/snap-store/557
snap/snap-store/558
snap/snap-store/common
snap/snap-store/current
test.md

在当前目录中搜寻所有的 markdown 文件(.md 或.MD),find 命令如下:

find . -iname "*.md"
./test.md

应用 fd 进行同样的搜寻:

fd *.md
test.md

在某些状况下,fd 须要额定的选项;例如,如果你想蕴含暗藏文件和目录,则必须应用选项 -H,而这在 find 中是不须要的,对于 fd 更多命令行参数选项的应用办法,可查阅 fd GitHub 存储库。

08 ag

ack 和 ag 是两个文本搜寻工具,比自带的 grep 要好用得多。

在指定目录下搜寻文本时,不须要像 grep 那样指定各种命令行选项,输入后果也会蕴含文件名和行号,并且会高亮显示搜寻关键字。

ag 是能够比 grep、ack 更快的递归搜寻文件内容。

Ubuntu 21.10 装置 ag 和 ack

apt-get install silversearcher-ag
apt install ack

ag 命令罕用参数

  • ag -g(文件名):相似于 find . -name(文件名)
  • ag -i sed:疏忽大小写搜寻含 sed 文本
  • ag -A sed:搜寻含 sed 文本,并显示匹配内容之后的 n 行文本
  • ag -B sed:搜寻含 sed 文本,并显示匹配内容之前的 n 行文本
  • ag -C sed:搜寻含 sed 文本,并同时显示匹配内容以及它前后各 n 行文本的内容
  • ag -w sed:全匹配搜寻,只搜寻与所搜内容齐全匹配的文本
  • ag –java sed:在 java 文件中搜寻含 sed 的文本
  • ag –xml sed:在 XML 文件中搜寻含 sed 的文本

ag 命令的应用

依据文件名进行搜寻对应的文件,可应用- g 参数选项。

ag -g jiaoben
jiaoben2.sh
jiaoben1.sh
jiaoben3.sh

搜寻当前目录下无关 sed 关键字的文本。

ag -w sed
jiaoben1.sh
10:                sed -i '2d' "$new_filename"

更多参数选项,大家可依据本身理论场景进行使用。

09 axel

axel 是命令行多线程下载工具,下载文件时能够代替 curl、wget。

Ubuntu 21.10 装置 axel

apt-get install axel

axel 参数选项

  • -n:指定线程数
  • -o:指定另存为目录
  • -s:指定每秒的最大比特数
  • -q:静默模式

案例

# axel -n 10 -o /tmp/ http://mirrors.163.com/ubuntu/ls-lR.gz
# exa /tmp/ls-lR.gz
/tmp/ls-lR.gz

能够看出,咱们通过 axel 也是能够把 ls-lR.gz 这个文件失常下载到 /tmp 目录下的。

10 pydf

在 Linux 零碎下,咱们能够应用 df 命令来显示磁盘的相干信息。

# df
文件系统          1K- 块     已用    可用 已用 % 挂载点
tmpfs            199180     1660  197520    1% /run
/dev/sda3      19946096 10317864 8589692   55% /
tmpfs            995884        0  995884    0% /dev/shm
tmpfs              5120        4    5116    1% /run/lock
/dev/sda2        524252     5344  518908    2% /boot/efi
tmpfs            199176      100  199076    1% /run/user/1000
/dev/sr0        3043440  3043440       0  100% /media/jacktian/Ubuntu 21.10 amd64
tmpfs            199176       60  199116    1% /run/user/0

Ubuntu 21.10 装置 pydf

apt install pydf

pydf 能够说是 df 的替代品,它以更简洁的形式显示磁盘应用状态。

参考

bat:https://github.com/sharkdp/bat
duf:https://github.com/muesli/duf
tldr:https://github.com/tldr-pages…
htop:https://github.com/htop-dev/htop
glances:https://github.com/nicolargo/…
exa:https://github.com/ogham/exa
fd:https://github.com/sharkdp/fd/

最初

尽管咱们在日常工作中,大多数还都是用的默认根本命令工具,当如果你替换成上述所介绍的 10 款替代品工具时,置信在许多场景中还是十分有用的。当然了,可能还有更多的 Linux 命令行代替工具,也欢送大家在上面的留言区补充。

开源前哨 日常分享热门、乏味和实用的开源我的项目。参加保护 10 万 + Star 的开源技术资源库,包含:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

退出移动版