SK 发布的文章

以下内容将向你介绍如何轻松对网络带宽做出限制,并在类 Unix 操作系统中对网络流量进行优化。通过限制网络带宽,可以节省应用程序不必要的带宽消耗,包括软件包管理器(pacman、yum、apt)、web 浏览器、torrent 客户端、下载管理器等,并防止单个或多个用户滥用网络带宽。在本文当中,将会介绍 Wondershaper 这一个实用的命令行程序,这是我认为限制 Linux 系统 Internet 或本地网络带宽的最简单、最快捷的方式之一。

请注意,Wondershaper 只能限制本地网络接口的传入和传出流量,而不能限制路由器或调制解调器的接口。换句话说,Wondershaper 只会限制本地系统本身的网络带宽,而不会限制网络中的其它系统。因此 Wondershaper 主要用于限制本地系统中一个或多个网卡的带宽。

下面来看一下 Wondershaper 是如何优化网络流量的。

在 Linux 中使用 Wondershaper 限制网络带宽

wondershaper 是用于显示系统网卡网络带宽的简单脚本。它使用了 iproute 的 tc 命令,但大大简化了操作过程。

安装 Wondershaper

使用 git clone 克隆 Wondershaper 的版本库就可以安装最新版本:

$ git clone https://github.com/magnific0/wondershaper.git

按照以下命令进入 wondershaper 目录并安装:

$ cd wondershaper
$ sudo make install

然后执行以下命令,可以让 wondershaper 在每次系统启动时都自动开始服务:

$ sudo systemctl enable wondershaper.service
$ sudo systemctl start wondershaper.service

如果你不强求安装最新版本,也可以使用软件包管理器(官方和非官方均可)来进行安装。

wondershaperArch 用户软件仓库(Arch User Repository,AUR)中可用,所以可以使用类似 yay 这些 AUR 辅助软件在基于 Arch 的系统中安装 wondershaper

$ yay -S wondershaper-git

对于 Debian、Ubuntu 和 Linux Mint 可以使用以下命令安装:

$ sudo apt-get install wondershaper

对于 Fedora 可以使用以下命令安装:

$ sudo dnf install wondershaper

对于 RHEL、CentOS,只需要启用 EPEL 仓库,就可以使用以下命令安装:

$ sudo yum install epel-release
$ sudo yum install wondershaper

在每次系统启动时都自动启动 wondershaper 服务。

$ sudo systemctl enable wondershaper.service
$ sudo systemctl start wondershaper.service

用法

首先需要找到网络接口的名称,通过以下几个命令都可以查询到网卡的详细信息:

$ ip addr
$ route
$ ifconfig

在确定网卡名称以后,就可以按照以下的命令限制网络带宽:

$ sudo wondershaper -a <adapter> -d <rate> -u <rate>

例如,如果网卡名称是 enp0s8,并且需要把上行、下行速率分别限制为 1024 Kbps 和 512 Kbps,就可以执行以下命令:

$ sudo wondershaper -a enp0s8 -d 1024 -u 512

其中参数的含义是:

  • -a:网卡名称
  • -d:下行带宽
  • -u:上行带宽

如果要对网卡解除网络带宽的限制,只需要执行:

$ sudo wondershaper -c -a enp0s8

或者:

$ sudo wondershaper -c enp0s8

如果系统中有多个网卡,为确保稳妥,需要按照上面的方法手动设置每个网卡的上行、下行速率。

如果你是通过 git clone 克隆 GitHub 版本库的方式安装 Wondershaper,那么在 /etc/conf.d/ 目录中会存在一个名为 wondershaper.conf 的配置文件,修改这个配置文件中的相应值(包括网卡名称、上行速率、下行速率),也可以设置上行或下行速率。

$ sudo nano /etc/conf.d/wondershaper.conf

[wondershaper]
# Adapter
#
IFACE="eth0"

# Download rate in Kbps
#
DSPEED="2048"

# Upload rate in Kbps
#
USPEED="512"

Wondershaper 使用前:

Wondershaper 使用后:

可以看到,使用 Wondershaper 限制网络带宽之后,下行速率与限制之前相比已经大幅下降。

执行以下命令可以查看更多相关信息。

$ wondershaper -h

也可以查看 Wondershaper 的用户手册:

$ man wondershaper

根据测试,Wondershaper 按照上面的方式可以有很好的效果。你可以试用一下,然后发表你的看法。


via: https://www.ostechnix.com/how-to-limit-network-bandwidth-in-linux-using-wondershaper/

作者:SK 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

有一天,我正在测试 Dosbox – 这是一个在 Linux 平台上运行 MS-DOS 游戏与程序的软件。当我在搜索一些常用的软件,例如 Turbo C++ 时,我意外留意到了一个叫做 WinWorld 的网站。我查看了这个网站上的某些内容,并且着实被惊艳到了。WinWorld 收集了非常多经典的,但已经被它们的开发者所抛弃许久的操作系统、软件、应用、开发工具、游戏以及各式各样的工具。它是一个以保存和分享古老的、已经被废弃的或者预发布版本程序为目的的线上博物馆,由社区成员和志愿者运营。

WinWorld 于 2013 年开始运营。它的创始者声称是被 Yahoo birefcases 激发了灵感并以此构建了这个网站。这个网站原目标是保存并且分享老旧软件。多年来,许多志愿者以不同方式提供了帮助,WinWorld 收集的老旧软件增长迅速。整个 WinWorld 仓库都是自由开源的,所有人都可以使用。

WinWorld 保存了大量的废弃操作系统、软件、系统应用以及游戏

就像我刚才说的那样, WinWorld 存储了大量的被抛弃并且不再被开发的软件。

Linux 与 Unix:

这里我给出了完整的 UNIX 和 LINUX 操作系统的列表,以及它们各自的简要介绍、首次发行的年代。

  • A/UX - 于 1988 年推出,移植到苹果的 68k Macintosh 平台的 Unix 系统。
  • AIX - 于 1986 年推出,IBM 移植的 Unix 系统。
  • AT &T System V Unix - 于 1983 年推出,最早的商业版 Unix 之一。
  • Banyan VINES - 于 1984 年推出,专为 Unix 设计的网络操作系统。
  • Corel Linux - 于 1999 年推出,商业 Linux 发行版。
  • DEC OSF-1 - 于 1991 年推出,由 DEC 公司开发的 Unix 版本。
  • Digital UNIX - 由 DEC 于 1995 年推出,OSF-1 的重命名版本。
  • FreeBSD 1.0 - 于 1993 年推出,FreeBSD 的首个发行版。这个系统是基于 4.3BSD 开发的。
  • Gentus Linux - 由 ABIT 于 2000 年推出,未遵守 GPL 协议的 Linux 发行版。
  • HP-UX - 于 1992 年推出,UNIX 的变种系统。
  • IRIX - 由硅谷图形公司(SGI)于 1988 年推出的操作系统。
  • Lindows - 于 2002 年推出,与 Corel Linux 类似的商业操作系统。
  • Linux Kernel - 0.01 版本于 90 年代早期推出,Linux 源代码的副本。
  • Mandrake Linux - 于 1999 年推出。基于 Red Hat Linux 的 Linux 发行版,稍后被重新命名为 Mandriva。
  • NEWS-OS - 由 Sony 于 1989 年推出,BSD 的变种。
  • NeXTStep - 由史蒂夫·乔布斯创立的 NeXT 公司于 1987 年推出,基于 Unix 的操作系统。
  • PC/IX - 于 1984 年推出,为 IBM 个人电脑服务的基于 Unix 的操作系统。
  • Red Hat Linux 5.0 - 由 Red Hat 推出,商业 Linux 发行版。
  • Sun Solaris - 由 Sun Microsystem 于 1992 年推出,基于 Unix 的操作系统。
  • SunOS - 由 Sun Microsystem 于 1982 年推出,衍生自 BSD 基于 Unix 的操作系统。
  • Tru64 UNIX - 由 DEC 开发,旧称 OSF/1。
  • Ubuntu 4.10 - 基于 Debian 的知名操作系统。这是早期的 beta 预发布版本,比第一个 Ubuntu 正式发行版更早推出。
  • Ultrix - 由 DEC 开发, UNIX 克隆。
  • UnixWare - 由 Novell 推出, UNIX 变种。
  • Xandros Linux - 首个版本于 2003 年推出。基于 Corel Linux 的专有 Linux 发行版。
  • Xenix - 最初由微软于 1984 推出,UNIX 变种操作系统。

不仅仅是 Linux/Unix,你还能找到例如 DOS、Windows、Apple/Mac、OS 2、Novell netware 等其他的操作系统与 shell。

DOS & CP/M:

  • 86-DOS
  • Concurrent CPM-86 & Concurrent DOS
  • CP/M 86 & CP/M-80
  • DOS Plus
  • DR-DOS
  • GEM
  • MP/M
  • MS-DOS
  • 多任务的 MS-DOS 4.00
  • 多用户 DOS
  • PC-DOS
  • PC-MOS
  • PTS-DOS
  • Real/32
  • Tandy Deskmate
  • Wendin DOS

Windows:

  • BackOffice Server
  • Windows 1.0/2.x/3.0/3.1/95/98/2000/ME/NT 3.X/NT 4.0
  • Windows Whistler
  • WinFrame

Apple/Mac:

  • Mac OS 7/8/9
  • Mac OS X
  • System Software (0-6)

OS/2:

  • Citrix Multiuser
  • OS/2 1.x
  • OS/2 2.0
  • OS/2 3.x
  • OS/2 Warp 4

于此同时,WinWorld 也收集了大量的旧软件、系统应用、开发工具和游戏。你也可以一起看看它们。

说实话,这个网站列出的绝大部分东西,我甚至都不知道它们存在过。其中列出的某些工具发布于我出生之前。

如果您需要或者打算去测试一个经典的程序(例如游戏、软件、操作系统),并且在其他地方找不到它们,那么来 WinWorld 资源库看看,下载它们然后开始你的探险吧。祝您好运!

WinWorld – A Collection Of Defunct OSs, Software, Applications And Games

免责声明:

OSTechNix 并非隶属于 WinWorld。我们 OSTechNix 并不确保 WinWorld 站点存储数据的真实性与可靠性。而且在你所在的地区,或许从第三方站点下载软件是违法行为。本篇文章作者和 OSTechNix 都不会承担任何责任,使用此服务意味着您将自行承担风险。(LCTT 译注:本站和译者亦同样申明。)

本篇文章到此为止。希望这对您有用,更多的好文章即将发布,敬请期待!

谢谢各位的阅读!


via: https://www.ostechnix.com/winworld-a-large-collection-of-defunct-oss-software-and-games/

作者:SK 选题:lujun9972 译者:thecyanbird 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 Linux 中遇到计划任务的时候,你首先会想到的大概就是 Cron 定时任务了。Cron 定时任务能帮助你在类 Unix 操作系统中计划性地执行命令或者任务。也可以参考一下我们之前的一篇《关于 Cron 定时任务的新手指导》。对于有一定 Linux 经验的人来说,设置 Cron 定时任务不是什么难事,但对于新手来说就不一定了,他们在编辑 crontab 文件的时候不知不觉中犯的一些小错误,也有可能把整个 Cron 定时任务搞挂了。如果你在处理 Cron 定时任务的时候为了以防万一,可以尝试使用 Crontab UI,它是一个可以在类 Unix 操作系统上安全轻松管理 Cron 定时任务的 Web 页面工具。

Crontab UI 是使用 NodeJS 编写的自由开源软件。有了 Crontab UI,你在创建、删除和修改 Cron 定时任务的时候就不需要手工编辑 Crontab 文件了,只需要打开浏览器稍微操作一下,就能完成上面这些工作。你可以用 Crontab UI 轻松创建、编辑、暂停、删除、备份 Cron 定时任务,甚至还可以简单地做到导入、导出、部署其它机器上的 Cron 定时任务,它还支持错误日志、邮件发送和钩子。

安装 Crontab UI

只需要一条命令就可以安装好 Crontab UI,但前提是已经安装好 NPM。如果还没有安装 NPM,可以参考《如何在 Linux 上安装 NodeJS》这篇文章。

执行这一条命令来安装 Crontab UI。

$ npm install -g crontab-ui

就是这么简单,下面继续来看看在 Crontab UI 上如何管理 Cron 定时任务。

在 Linux 上安全轻松管理 Cron 定时任务

执行这一条命令启动 Crontab UI:

$ crontab-ui

你会看到这样的输出:

Node version: 10.8.0
Crontab UI is running at http://127.0.0.1:8000

首先在你的防火墙和路由器上放开 8000 端口,然后打开浏览器访问 <http://127.0.0.1:8000>

注意,默认只有在本地才能访问到 Crontab UI 的控制台页面。但如果你想让 Crontab UI 使用系统的 IP 地址和自定义端口,也就是想让其它机器也访问到本地的 Crontab UI,你需要使用以下这个命令:

$ HOST=0.0.0.0 PORT=9000 crontab-ui
Node version: 10.8.0
Crontab UI is running at http://0.0.0.0:9000

Crontab UI 就能够通过 <http://IP-Address>:9000 这样的 URL 被远程机器访问到了。

Crontab UI 的控制台页面长这样:

从上面的截图就可以看到,Crontab UI 的界面非常简洁,所有选项的含义都能不言自明。

在终端输入 Ctrl + C 就可以关闭 Crontab UI。

创建、编辑、运行、停止、删除 Cron 定时任务

点击 “New”,输入 Cron 定时任务的信息并点击 “Save” 保存,就可以创建一个新的 Cron 定时任务了。

  1. 为 Cron 定时任务命名,这是可选的;
  2. 你想要执行的完整命令;
  3. 设定计划执行的时间。你可以按照启动、每时、每日、每周、每月、每年这些指标快速指定计划任务,也可以明确指定任务执行的具体时间。指定好计划时间后,“Jobs” 区域就会显示 Cron 定时任务的句式。
  4. 选择是否为某个 Cron 定时任务记录错误日志。

这是我的一个 Cron 定时任务样例。

如你所见,我设置了一个每月清理 pacman 缓存的 Cron 定时任务。你也可以设置多个 Cron 定时任务,都能在控制台页面看到。

如果你需要更改 Cron 定时任务中的某些参数,只需要点击 “Edit” 按钮并按照你的需求更改对应的参数。点击 “Run” 按钮可以立即执行 Cron 定时任务,点击 “Stop” 则可以立即停止 Cron 定时任务。如果想要查看某个 Cron 定时任务的详细日志,可以点击 “Log” 按钮。对于不再需要的 Cron 定时任务,就可以按 “Delete” 按钮删除。

备份 Cron 定时任务

点击控制台页面的 “Backup” 按钮并确认,就可以备份所有 Cron 定时任务。

备份之后,一旦 Crontab 文件出现了错误,就可以使用备份来恢复了。

导入/导出其它机器上的 Cron 定时任务

Crontab UI 还有一个令人注目的功能,就是导入、导出、部署其它机器上的 Cron 定时任务。如果同一个网络里的多台机器都需要执行同样的 Cron 定时任务,只需要点击 “Export” 按钮并选择文件的保存路径,所有的 Cron 定时任务都会导出到 crontab.db 文件中。

以下是 crontab.db 文件的内容:

$ cat Downloads/crontab.db
{"name":"Remove Pacman Cache","command":"rm -rf /var/cache/pacman","schedule":"@monthly","stopped":false,"timestamp":"Thu Aug 23 2018 10:34:19 GMT+0000 (Coordinated Universal Time)","logging":"true","mailing":{},"created":1535020459093,"_id":"lcVc1nSdaceqS1ut"}

导出成文件以后,你就可以把这个 crontab.db 文件放置到其它机器上并导入成 Cron 定时任务,而不需要在每一台主机上手动设置 Cron 定时任务。总之,在一台机器上设置完,导出,再导入到其他机器,就完事了。

在 Crontab 文件获取/保存 Cron 定时任务

你可能在使用 Crontab UI 之前就已经使用 crontab 命令创建过 Cron 定时任务。如果是这样,你可以点击控制台页面上的 “Get from crontab” 按钮来获取已有的 Cron 定时任务。

同样地,你也可以使用 Crontab UI 来将新的 Cron 定时任务保存到 Crontab 文件中,只需要点击 “Save to crontab” 按钮就可以了。

管理 Cron 定时任务并没有想象中那么难,即使是新手使用 Crontab UI 也能轻松管理 Cron 定时任务。赶快开始尝试并发表一下你的看法吧。


via: https://www.ostechnix.com/how-to-easily-and-safely-manage-cron-jobs-in-linux/

作者:SK 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在多个 Ubuntu 系统上安装同一组软件包是一项耗时且无聊的任务。你不会想花时间在多个系统上反复安装相同的软件包。在类似架构的 Ubuntu 系统上安装软件包时,有许多方法可以使这项任务更容易。你可以方便地通过 Aptik 并点击几次鼠标将以前的 Ubuntu 系统的应用程序、设置和数据迁移到新安装的系统中。或者,你可以使用软件包管理器(例如 APT)获取备份的已安装软件包的完整列表,然后在新安装的系统上安装它们。今天,我了解到还有另一个专用工具可以完成这项工作。来看一下 apt-clone,这是一个简单的工具,可以让你为 Debian/Ubuntu 系统创建一个已安装的软件包列表,这些软件包可以在新安装的系统或容器上或目录中恢复。

apt-clone 会帮助你处理你想要的情况,

  • 在运行类似 Ubuntu(及衍生版)的多个系统上安装一致的应用程序。
  • 经常在多个系统上安装相同的软件包。
  • 备份已安装的应用程序的完整列表,并在需要时随时随地恢复它们。

在本简要指南中,我们将讨论如何在基于 Debian 的系统上安装和使用 apt-clone。我在 Ubuntu 18.04 LTS 上测试了这个程序,但它应该适用于所有基于 Debian 和 Ubuntu 的系统。

备份已安装的软件包并在新安装的 Ubuntu 上恢复它们

apt-clone 在默认仓库中有。要安装它,只需在终端输入以下命令:

$ sudo apt install apt-clone

安装后,只需创建已安装软件包的列表,并将其保存在你选择的任何位置。

$ mkdir ~/mypackages
$ sudo apt-clone clone ~/mypackages

上面的命令将我的 Ubuntu 中所有已安装的软件包保存在 ~/mypackages 目录下名为 apt-clone-state-ubuntuserver.tar.gz 的文件中。

要查看备份文件的详细信息,请运行:

$ apt-clone info mypackages/apt-clone-state-ubuntuserver.tar.gz
Hostname: ubuntuserver
Arch: amd64
Distro: bionic
Meta:
Installed: 516 pkgs (33 automatic)
Date: Sat Sep 15 10:23:05 2018

如你所见,我的 Ubuntu 服务器总共有 516 个包。

现在,将此文件复制到 USB 或外部驱动器上,并转至要安装同一套软件包的任何其他系统。或者,你也可以将备份文件传输到网络上的系统,并使用以下命令安装软件包:

$ sudo apt-clone restore apt-clone-state-ubuntuserver.tar.gz

请注意,此命令将覆盖你现有的 /etc/apt/sources.list 并将安装/删除软件包。警告过你了!此外,只需确保目标系统是相同的 CPU 架构和操作系统。例如,如果源系统是 18.04 LTS 64 位,那么目标系统必须也是相同的。

如果你不想在系统上恢复软件包,可以使用 --destination /some/location 选项将克隆复制到这个文件夹中。

$ sudo apt-clone restore apt-clone-state-ubuntuserver.tar.gz --destination ~/oldubuntu

在此例中,上面的命令将软件包恢复到 ~/oldubuntu 中。

有关详细信息,请参阅帮助部分:

$ apt-clone -h

或者手册页:

$ man apt-clone

建议阅读:

就是这些了。希望这个有用。还有更多好东西。敬请期待!

干杯!


via: https://www.ostechnix.com/backup-installed-packages-and-restore-them-on-freshly-installed-ubuntu-system/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

众所周知,ping 命令可以用来检查目标主机是否可达。使用 ping 命令的时候,会发送一个 ICMP Echo 请求,通过目标主机的响应与否来确定目标主机的状态。如果你经常使用 ping 命令,你可以尝试一下 prettyping。Prettyping 只是将一个标准的 ping 工具增加了一层封装,在运行标准 ping 命令的同时添加了颜色和 unicode 字符解析输出,所以它的输出更漂亮紧凑、清晰易读。它是用 bashawk 编写的自由开源工具,支持大部分类 Unix 操作系统,包括 GNU/Linux、FreeBSD 和 Mac OS X。Prettyping 除了美化 ping 命令的输出,还有很多值得注意的功能。

  • 检测丢失的数据包并在输出中标记出来。
  • 显示实时数据。每次收到响应后,都会更新统计数据,而对于普通 ping 命令,只会在执行结束后统计。
  • 可以灵活处理“未知信息”(例如错误信息),而不搞乱输出结果。
  • 能够避免输出重复的信息。
  • 兼容常用的 ping 工具命令参数。
  • 能够由普通用户执行。
  • 可以将输出重定向到文件中。
  • 不需要安装,只需要下载二进制文件,赋予可执行权限即可执行。
  • 快速且轻巧。
  • 输出结果清晰直观。

安装 Prettyping

如上所述,Prettyping 是一个绿色软件,不需要任何安装,只要使用以下命令下载 Prettyping 二进制文件:

$ curl -O https://raw.githubusercontent.com/denilsonsa/prettyping/master/prettyping

将二进制文件放置到 $PATH(例如 /usr/local/bin)中:

$ sudo mv prettyping /usr/local/bin

然后对其赋予可执行权限:

$ sudo chmod +x /usr/local/bin/prettyping

就可以使用了。

让 ping 的输出清晰易读

安装完成后,通过 prettyping 来 ping 任何主机或 IP 地址,就可以以图形方式查看输出。

$ prettyping ostechnix.com

输出效果大概会是这样:

如果你不带任何参数执行 prettyping,它就会一直运行直到被 ctrl + c 中断。

由于 Prettyping 只是一个对普通 ping 命令的封装,所以常用的 ping 参数也是有效的。例如使用 -c 5 来指定 ping 一台主机的 5 次:

$ prettyping -c 5 ostechnix.com

Prettyping 默认会使用彩色输出,如果你不喜欢彩色的输出,可以加上 --nocolor 参数:

$ prettyping --nocolor ostechnix.com

同样的,也可以用 --nomulticolor 参数禁用多颜色支持:

$ prettyping --nomulticolor ostechnix.com

使用 --nounicode 参数禁用 unicode 字符:

如果你的终端不支持 UTF-8,或者无法修复系统中的 unicode 字体,只需要加上 --nounicode 参数就能轻松解决。

Prettyping 支持将输出的内容重定向到文件中,例如执行以下这个命令会将 prettyping ostechnix.com 的输出重定向到 ostechnix.txt 中:

$ prettyping ostechnix.com | tee ostechnix.txt

Prettyping 还有很多选项帮助你完成各种任务,例如:

  • 启用/禁用延时图例(默认启用)
  • 强制按照终端的格式输出(默认自动)
  • 在统计数据中统计最后的 n 次 ping(默认 60 次)
  • 覆盖对终端尺寸的自动检测
  • 指定 awk 解释器路径(默认:awk
  • 指定 ping 工具路径(默认:ping

查看帮助文档可以了解更多:

$ prettyping --help

尽管 Prettyping 没有添加任何额外功能,但我个人喜欢它的这些优点:

  • 实时统计 —— 可以随时查看所有实时统计信息,标准 ping 命令只会在命令执行结束后才显示统计信息。
  • 紧凑的显示 —— 可以在终端看到更长的时间跨度。
  • 检测丢失的数据包并显示出来。

如果你一直在寻找可视化显示 ping 命令输出的工具,那么 Prettyping 肯定会有所帮助。尝试一下,你不会失望的。


via: https://www.ostechnix.com/prettyping-make-the-output-of-ping-command-prettier-and-easier-to-read/

作者:SK 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在类 UNIX 系统中,我们使用 cat 命令去打印和连接文件。使用 cat 命令,我们能将文件目录打印到到标准输出,合成几个文件为一个目标文件,还有追加几个文件到目标文件中。今天,我偶然发现一个具有相似作用的命令叫做 “Bat” ,它是 cat 命令的一个克隆版,具有一些例如语法高亮、 Git 集成和自动分页等非常酷的特性。在这个简略指南中,我们将讲述如何在 Linux 中安装和使用 bat 命令。

安装

Bat 可以在 Arch Linux 的默认软件源中获取。 所以你可以使用 pacman 命令在任何基于 arch 的系统上来安装它。

$ sudo pacman -S bat

在 Debian、Ubuntu、Linux Mint 等系统中,从其发布页面下载 .deb 文件,然后用下面的命令来安装。

$ sudo apt install gdebi
$ sudo gdebi bat_0.5.0_amd64.deb

对于其他系统,你也许需要从软件源编译并安装。确保你已经安装了 Rust 1.26 或者更高版本。

然后运行以下命令来安装 Bat:

$ cargo install bat

或者,你可以从 Linuxbrew 软件包管理中来安装它。

$ brew install bat

bat 命令的使用

bat 命令的使用与 cat 命令的使用非常相似。

使用 bat 命令创建一个新的文件:

$ bat > file.txt

使用 bat 命令来查看文件内容,只需要:

$ bat file.txt

你能同时查看多个文件:

$ bat file1.txt file2.txt

将多个文件的内容合并至一个单独文件中:

$ bat file1.txt file2.txt file3.txt > document.txt

就像我之前提到的那样,除了浏览和编辑文件以外,bat 命令有一些非常酷的特性。

bat 命令支持大多数编程和标记语言的 语法高亮 syntax highlighting 。比如,下面这个例子。我将使用 catbat 命令来展示 reverse.py 的内容。

你注意到区别了吗? cat 命令以纯文本格式显示文件的内容,而 bat 命令显示了语法高亮和整齐的文本对齐格式。更好了不是吗?

如果你只想显示行号(而没有表格)使用 -n 标记。

$ bat -n reverse.py

另一个 bat 命令中值得注意的特性是它支持 自动分页 automatic paging 。 它的意思是当文件的输出对于屏幕来说太大的时候,bat 命令自动将自己的输出内容传输到 less 命令中,所以你可以一页一页的查看输出内容。

让我给你看一个例子,使用 cat 命令查看跨多个页面的文件的内容时,提示符会快速跳至文件的最后一页,你看不到内容的开头和中间部分。

看一下下面的输出:

正如你所看到的,cat 命令显示了文章的最后一页。

所以你也许需要去将使用 cat 命令的输出传输到 less 命令中去从开头一页一页的查看内容。

$ cat reverse.py | less

现在你可以使用回车键去一页一页的查看输出。然而当你使用 bat 命令时这些都是不必要的。bat 命令将自动传输跨越多个页面的文件的输出。

$ bat reverse.py

现在按下回车键去往下一页。

bat 命令也支持 Git 集成 GIT integration ,这样您就可以轻松查看/编辑 Git 存储库中的文件。 它与 Git 连接可以显示关于索引的修改。(看左栏)

定制 Bat

如果你不喜欢默认主题,你也可以修改它。Bat 同样有修改它的选项。

若要显示可用主题,只需运行:

$ bat --list-themes
1337
DarkNeon
Default
GitHub
Monokai Extended
Monokai Extended Bright
Monokai Extended Light
Monokai Extended Origin
TwoDark

要使用其他主题,例如 TwoDark,请运行:

$ bat --theme=TwoDark file.txt

如果你想永久改变主题,在你的 shells 启动文件中加入 export BAT_THEME="TwoDark"

bat 还可以选择修改输出的外观。使用 --style 选项来修改输出外观。仅显示 Git 的更改和行号但不显示网格和文件头,请使用 --style=numbers,changes

更多详细信息,请参阅 Bat 项目的 GitHub 库(链接在文末)。

最好,这就是目前的全部内容了。希望这篇文章会帮到你。更多精彩文章即将到来,敬请关注!

干杯!


via: https://www.ostechnix.com/bat-a-cat-clone-with-syntax-highlighting-and-git-integration/

作者:SK 选题:lujun9972 译者:z52527 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出