2021年12月

Log4j 发布新 2.17 补丁解决拒绝服务漏洞

由于在周二发布的 Log4j 2.16 版被发现一个 拒绝服务 的高危漏洞,Log4j 周五发布了新的版本。攻击者可以制作包含递归查找的恶意输入数据,导致堆栈错误,从而终止进程。此外,安全研究人员声称发现一种新的 Log4j 攻击载体,可以通过私有网络甚至是本地回环地址上的监听端口来利用,即便是你的进程没有监听外部网络端口都有可能被利用。而谷歌也 发布报告 称 Maven 上有 8% 的软件包,多达 35,863 个可用的 Java 工件受到 Log4j 漏洞影响,而目前只有 5000 多个进行了修复。

老王点评:继续补吧。不过我觉得这个事情更大的意义在于,让人们反思开源基础设施贡献和回报不对等的问题。应该有一种机制评估某个基础设施的重要性,应该有一种机制来根据受益程度做出相应付出。这可能不仅仅是纯理想化的开源许可证问题。

素有“开源 Windows” 之称的 ReactOS 发布新版本

ReactOS 旨在实现与微软 Windows 的二进制兼容,它在一年半之后发布了一个大更新,嗯小版本号增加了一个数字,从 0.4.13 升级到了 0.4.14,带来了诸多新变化。

老王点评:看起来还不错,可以试试。

科学家们正在准备发射价值 100 亿美元的韦伯望远镜

在经过多年的拖延,花费了超过 100 亿美元,该望远镜终于计划从法属圭亚那的一个欧洲发射场升空,前往距离月球另一侧 100 万英里的地方。但即使阿丽亚娜 5 号火箭将其送入轨道,在接下来的一个月里,它将得执行一系列有 344 个“单点故障”的操作,以展开镜面和防护膜。一旦出了问题,没有任何人类或机器人可以干预和救援。如果一切顺利,将使人类可以看到宇宙刚刚诞生一亿年时的光景。韦伯太空望远镜将是哈勃太空望远镜的继承者。目前计划在 12 月 24 日发射

老王点评:这样看起来,太空工程的可靠性远远不高啊。

为网页上的缩略图和横幅图片生成经过调整和优化的图片。

 title=

以前我在处理网页工作时,我对图像敬而远之。处理和优化图像既不精确又费时。

后来我发现了一些命令,改变了我的想法。为了创建网页,我使用 Jekyll,所以我在说明中包括了它。然而,这些命令也可以用于其他静态网站生成器。

Linux 上的图像命令

对我来说有用的命令是 optipngjpegoptim,当然还有古老的 imagemagick。它们一起使处理图像变得容易管理,甚至可以自动化。

下面是我如何使用这些命令实现我的解决方案的概述。我把文章图片放在我的 static/images 文件夹中。在那里,我生成了所有 PNG 和 JPG 图片的两个副本:

  1. 一个裁剪过的缩略图版本,尺寸为 422×316
  2. 一个更大的横幅版本,尺寸为 1024×768

然后,我把每个副本(缩略图和横幅)放入自己的文件夹,并利用 Jekyll 的自定义变量来确定文件夹路径。下面我将更详细地介绍这些步骤中的每一步。

安装

要跟上我的解决方案,请确保你已经安装了所有的命令。在 Linux 上,你可以使用软件包管理器安装 optipngjpegoptimimagemagick

在 Fedora、CentOS、Mageia 和类似系统上:

$ sudo dnf install optipng jpegoptim imagemagick

在 Debian、Elementary、Mint 和类似系统上:

$ sudo apt install optipng jpegoptim imagemagick

在 macOS 上,使用 MacPortsHomebrew

brew install optipng jpegoptim imagemagick

在 Windows 上,使用 Chocolatey

为缩略图和横幅创建文件夹

安装完这些命令后,我在 static/images 下创建了新的文件夹。生成的缩略图放在 img-thumbs,横幅放在 img-normal

$ cd static/images
$ mkdir -p img-thumbs img-normal

创建了文件夹后,我把所有的 GIF、SVG、JPG 和 PNG 文件复制到这两个文件夹。我把 GIF 和 SVG 原封不动地用于缩略图和横幅图片。

$ cp content/*.gif img-thumbs/; cp content/*.gif img-normal/
$ cp content/*.svg img-thumbs/; cp content/*.svg img-normal/
$ cp content/*.jpg img-thumbs/; cp content/*.jpg img-normal/
$ cp content/*.png img-thumbs/; cp content/*.png img-normal/

处理缩略图

为了调整和优化缩略图的大小,我使用了三个命令。

我使用 ImageMagickmogrify 命令来调整 JPG 和 PNG 的大小。因为我希望缩略图是 422×316,所以命令看起来像这样:

$ cd img-thumbs
$ mogrify -resize 422x316 *.png
$ mogrify -format jpg -resize 422x316 *.jpg

现在我用 optipng 优化 PNG,用 jpegoptim 优化 JPG:

$ for i in *.png; do optipng -o5 -quiet "$i"; done
$ jpegoptim -sq *.jpg

在上述命令中:

  • 对于 optipng-o5 开关设置了优化的级别,0 是最低的。
  • 对于jpegoptim-s 剥离所有图像元数据,-q 设置安静模式。

处理横幅

我处理横幅图片的方法与处理缩略图的方法基本相同,除了尺寸外,横幅图片的尺寸为 1024×768。

$ cd ..
$ cd img-normal
$ mogrify -resize 1024x768 *.png
$ mogrify -format jpg -resize 1024x768 *.jpg
$ for i in *.png; do optipng -o5 -quiet "$i"; done
$ jpegoptim -sq *.jpg

配置 Jekyll 中的路径

img-thumbs 目录现在包含我的缩略图,img-normal 包含横幅。为了更轻松一些,我在Jekyll的 _config.yml 中把它们都设置为自定义变量。

content-images-path: /static/images/img-normal/
content-thumbs-images-path: /static/images/img-thumbs/

使用这些变量很简单。当我想显示缩略图时,我把 content-thumbs-images-path 加到图片上。当我想显示完整的横幅时,我在前面添加 content-images-path

{% if page.banner_img %}
 <img src="{{ page.banner_img | prepend: site.content-images-path | \
prepend: site.baseurl | prepend: site.url }}" alt="Banner image for \
{{ page.title }}" />
{% endif %}

总结

我可以对我的优化命令做几个改进。

使用 rsync 只复制改变过的文件到 img-thumbsimg-normal 是一个明显的改进。这样一来,我就不会一次又一次地重新处理文件。将这些命令添加到 Git 提交前钩子 或 CI 流水线中是另一个有用的步骤。

调整和优化图像以减少其大小,对用户和整个网页来说都是一种胜利。也许我减少图片尺寸的下一步将是 webp

更少的字节通过电线传输意味着更低的碳足迹,但这是另一篇文章。目前,用户体验的胜利已经足够好了。

本文原载于作者的博客,已获授权转载。


via: https://opensource.com/article/21/12/optimize-web-images-linux

作者:Ayush Sharma 选题:lujun9972 译者:geekpi 校对:wxy

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

Apache ShardingSphere 是一个开源的分布式数据库,它还有一个用户和开发人员需要的生态系统,为之提供了定制和云原生的体验。

 title=

Apache ShardingSphere 是一个开源的分布式数据库,它还有一个用户和开发人员需要的生态系统,为之提供了定制和云原生的体验。在加入 Apache 基金会的三年里,ShardingSphere 核心团队与社区一起努力工作,创建了一个开源的、强大的、分布式的数据库和一个支持性生态系统。

ShardingSphere 并不完全符合业界通常的简单分布式数据库中间件解决方案的模式。ShardingSphere 重新创建了分布式可插拔系统,使实际的用户实施方案得以蓬勃发展,并为社区和数据库行业贡献有价值的解决方案。

ShardingSphere 的目标是 Database Plus 概念。

Database Plus

Database Plus 的出发点是在零散的数据库基本服务之上建立一个标准层和生态系统层。统一的、标准化的数据库使用规范为上层应用提供了保障,尽可能的减少了企业因底层数据库碎片化而面临的挑战。为了连接数据库和应用,它使用了流量和数据的渲染和解析。它为用户提供了增强的核心功能,如分布式数据库、数据安全、数据库网关和压力测试。

ShardingSphere 为 Database Plus 使用了可插拔的内核架构。这意味着模块化,这为用户提供了灵活性。它有几个不同的层:

  • 基础层: 提供各种访问终端和访问形式,满足用户在不同场景下的需求。
  • 插件层: 通过实现可扩展性提供基础设施支持。
  • 功能层: 提供各种满足用户需求的功能插件,使用户在选择和组合插件时具有高度的灵活性。
  • 产品层: 这是终端用户看到的层。这为他们提供了面向行业和特定场景的产品。换句话说,它为用户提供了适合他们所做的任何工作的工具。

 title=

(Trista Pan, CC BY-SA 4.0

用 DistSQL 进行标准化的集群管理

Apache ShardingSphere 采用独特的 SQL 方言 DistSQL(分布式 SQL)来连接 ShardingSphere 生态系统的所有元素。作为 ShardingSphere 分布式数据库生态系统的标准交互语言,DistSQL 允许用户使用一个 SQL 命令来创建、修改或删除分布式数据库表或对其进行加密或解密。DistSQL 还支持分布式调度管理。

 title=

(Trista Pan, CC BY-SA 4.0

多访问终端

ShardingSphere JDBC 和 ShardingSphere Proxy 经过两年的打磨和测试,目前已经可以投入生产。许多社区用户提供了相关的生产社区案例。

多亏共享核心架构,以及不同的 ShardingSphere 适配器,如果用户的生产环境需要,可以选择混合适配器部署(如下图所示)。

 title=

(Trista Pan, CC BY-SA 4.0

分布式治理

在 ShardingSphere 生态系统中,计算和存储是分开的,因此具备对数据库进行分布式治理的能力,所以你可以维护许多存储节点、计算节点,实施断路器,并确保高可用性。

 title=

(Trista Pan, CC BY-SA 4.0

使用 Grafana 监控

ShardingSphere 也有状态指标来监控你的基础设施。代理动态加载机制为你提供了指标和跟踪指标,方便您将 APM 系统与 Grafana 仪表板集成。

 title=

(Trista Pan, CC BY-SA 4.0

分布式社区的分布式数据库

社区正在继续优化 ShardingSphere,并整合新的想法和行业场景。社区构建了它,而开发的主要动力之一是用户反馈。这是开源的一个特点,但也是这个团队的实践方法。ShardingSphere 社区的核心团队成员很乐意指导任何对开源感兴趣的人,并为有兴趣帮助开发的学生提供实践问题。团队也希望有新的朋友或贡献者加入社区,促进思想的开放交流,创造一个真正的全球开发者社区。


via: https://opensource.com/article/21/12/apache-shardingsphere

作者:Trista Pan 选题:lujun9972 译者:geekpi 校对:wxy

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

IBM 和三星的新芯片设计可以使手机的电池寿命延长一周

IBM 和三星 宣布 了他们在半导体设计方面的最新进展:一种在芯片上垂直堆叠晶体管的新方法 VTFET。这种新的设计是可以让芯片比现在更密集地堆积晶体管。虽然我们离 VTFET 设计在实际消费芯片中的应用还有一段距离,但 IBM 和三星声称,VTFET 技术可以提升两倍的性能或降低 85% 的能源使用,使得手机电池可以超过一周不充电,或减少加密货币挖掘等计算密集应用的能源消耗。

老王点评:换句话说,这种立体布局的芯片,有可能继续保持摩尔定律的存在。

自由软件基金会宣布实施新董事会成员协议和道德准则

FSF 称经过 6 个月的顾问领导的审查提出的这些准则旨在帮助 FSF 的管理更加透明、更有责任感、更有道德。今年 3 月,FSF 创始人 RMS 宣布重返 FSF 董事会,这引发了轩然大波。此前,RMS 因一些争议性言论被赶出了 FSF。这次重返引发了开源社区对 FSF 的透明性和行为准则的关注,诸多开源组织和意见领袖表达了不同意见。作为回应,FSF 表示将制定旨在指导成员的责任、决策和活动的 成员协议和道德准则

老王点评:至少这是 FSF 走向正规化和现代化的一个进步。

苹果 macOS Monterey 12 性能仅次于 Clear Linux

Phoronix 在一台 2018 年 的Mac Mini 上对最新的 macOS Monterey 12 进行了 性能测试。在 120 多项基准测试中,英特尔的 Clear Linux 有 52% 的时间排名第一,其次是 macOS 12.1,有 30% 的时间排名第一,而最新的 Ubuntu 只有 16% 的时间排名第一。可以说,macOS 已经和 Linux 的性能相当了。由于苹果新的 M1 芯片尚不能很好的支持 Linux,因此本次测试还是在基于英特尔的 CPU 的 Mac 上测试的。

老王点评:作为英特尔家的发行版,Clear Linux 取得优势并不足为奇,想必在 M1 上测试的话,macOS 会获得更大优势。

谈到 Linux 和 UNIX 时,你一定听说过 “TTY” 这个术语,但是,这玩意是什么?

作为一个桌面用户,它对你有用吗?你需要它吗?你能用它做什么?

在本文中,让我向你介绍这些,帮助你熟悉 Linux 中的 TTY。

注意:这个问题没有明确的答案,但它与过去的输入/输出设备的交互方式有关。因此,你必须了解一些历史,才能清楚地了解情况。

“TTY” 背后的历史

一切始于 19 世纪 30 年代的 电传打印机 Teleprinter

电传打印机可以让你通过电线发送或接受消息,它取代了摩尔斯电码通信,那是一种需要两个操作员才能有效地相互通信的方式。

一台电传打印机只需要一个操作员就可以轻松地传递消息。虽然它没有现代布局的键盘,但它的系统后来由 Donald Murray 在 1901 年进行了改良,包括了一个类似打字机的键盘。

Murray 电码减少了操作员发送消息的工作量。这才使得电传打印机在 1908 年有了发展成为商业 电传打字机 Teletypewriter 的可能。TTY 即是电传打字机的缩写。

二战期间在伦敦实际使用的电传打字机 | 图片来源于维基百科

电传打字机和普通 打字机 typewriter 的区别在于,电传打字机连接到通信设备,直接发送输入的消息。

电传打字机使人类在没有计算机的情况下通过电线进行更快的通信成为可能

从这时起,“TTY” 一词就存在了。

(相对)现代的概念

现在,你一定想知道,它是如何进入现代计算机和 Linux 的?

最初是当电传打字机进入了市场,几年后半导体晶体管发展起来,然后演变成微处理器,为计算机的出现做好了准备。

最初的计算机没有键盘的概念, 打孔卡 Punch card 就是输入的方法。

一种插入计算机而不是通过键盘(TTY)输入的打孔卡计算机程序 | 图片来源于维基百科

随着计算机的发展,批量输入的打孔卡最终被电传打字机取代,成为一种方便的输入/输出设备。

1956 年的 LGP-30 计算机,附带 TTY

随着技术的进步,电传打字机被电子技术“虚拟化”了。因此,你不需要一个物理的、机械的 TTY,而是一个虚拟的电子 TTY。

早期的计算机甚至没有视频屏幕。字符被打印在纸上而不是显示在屏幕上。因此,你会看到“ 打印 print ”这个术语而不是“ 显示 display ”。随着技术的进步,视频显示后来被添加到终端中。

换句话说,你可能听说过把它们称为“视频终端”。或者,你可以称它们为“物理”终端。

后来,它们演变成具有更强的能力和功能的软件仿真的终端。

这就是所谓的“ 终端仿真器 terminal emulator ”,如 GNOME 终端或 Konsole,或者其他 你在 Linux 上找到的各种终端仿真器

所以,Linux 中的 TTY 到底是什么?

在 Linux 或 UNIX 中,TTY 变为了一个抽象设备。有时它指的是一个物理输入设备,例如串口,有时它指的是一个允许用户和系统交互的虚拟 TTY(参考此处)。

TTY 是 Linux 或 UNIX 的一个子系统,它通过 TTY 驱动程序在内核级别实现进程管理、行编辑和会话管理。

在编程的场景下,你还需要深入研究。但是考虑到本文的范围,这可能是一个容易理解的定义。

如果你好奇的话,你可以查看一个有点旧的资源(TTY 揭秘),它尽可能的澄清了 Linux 和 UNIX 系统中的 TTY 的各种技术细节。

事实上,每当你在系统中启动一个终端仿真器或使用任何类型的 shell 时,它都会与虚拟 TTY(也被称为 伪 TTY pseudo-TTY ,即 PTY)进行交互。

你可以在终端仿真器中输入 tty 来找到相关联的 PTY。

如何在 Linux 中访问 TTY?

在 Linux 中很容易访问 TTY。事实上,当我不知道它是什么时,我不小心打开了它,于是对要做什么、如何摆脱它感到恐慌。

在大多数 发行版 中,你可以使用以下键盘快捷键来得到 TTY 屏幕:

  • CTRL + ALT + F1 – 锁屏
  • CTRL + ALT + F2 – 桌面环境
  • CTRL + ALT + F3 – TTY3
  • CTRL + ALT + F4 – TTY4
  • CTRL + ALT + F5 – TTY5
  • CTRL + ALT + F6 – TTY6

你最多可以访问六个 TTY。但是,前两个快捷方式指向发行版的锁定屏幕和桌面环境。

而其他快捷方式将会让你进入一个命令行界面。

什么时候应该使用 TTY?

TTY 不仅是一个技术宝藏,即使像我这样不是开发人员的用户,它也很有用。

在图形桌面环境冻结的情况下,它应该可以派上用场。在某些情况下,从 TTY 重建桌面环境能帮助解决程序问题。

或者,你也可以选择在 TTY 中执行任务,例如更新 Linux 系统等。在这些情况下,你不希望显示问题中断你的进程。

最坏的情况是,如果图形用户界面失去响应,你可以进入 TTY 并重新启动计算机。

有些用户还喜欢在 TTY 的帮助下传输大文件(我不是其中之一)。

Linux 中的 TTY 命令

当你在终端模拟器中输入 tty 时,它将打印连接到标准输入的终端文件名,就像手册页描述的一样。

换句话说,要知道你连接的 TTY 编号,只需输入 tty。并且,如果有多个用户远程连接到 Linux 机器,你可以使用 who 命令来检查其他用户连接到的是哪个 TTY。


via: https://itsfoss.com/what-is-tty-in-linux/

作者:Ankush Das 选题:lujun9972 译者:MjSeven 校对:wxy

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

如果你已经熟悉了 Linux 命令行,尝试这些命令有助于轻松地进入 FreeDOS 。

 title=

如果你已经尝试过 FreeDOS ,你可能已经被命令行所吓倒。DOS 命令可能稍微不同于你所使用的 Linux 命令行,因此,使用它的命令行上需要学习一些新的命令。

但是对于 Linux 用户来说,它不是一种 “全新的” 体验。在 FreeDOS 中,除了 DOS 命令之外,我们还包含一些已经熟悉的标准的 Unix 命令。因此,如果你已经熟悉了 Linux 命令行,尝试这些命令有助于轻松地进入 FreeDOS :

在四周走走

在 FreeDOS 文件系统中使用 cd 命令来 更改目录 。在 FreeDOS 上的用法在 Linux 上的用法基本相同。要更改到一个名称为 apps 的子目录,输入 cd apps 。要回到先前的目录,输入 cd ..

在 FreeDOS 上导航浏览目录和路径是仅有的不同点,目录分隔符是 \(“反斜杠”)而不是你在 Linux 上使用的 / (“正斜杠”)。例如,让我们假设你在 \devel 目录之中,你想移动到 \fdos 目录。这两个目录相对于 目录而言是处于相同的 “层次” 之中的。因此,你可以输入 cd ..\fdos 来 “向后返回” 一个目录层次(使用 ..) ,然后再 “转到” fdos 目录。

要更改到一个新的目录,你可以使用先前提到的反斜杠来替换需要给出的完整的路径。如果你已经深入了另外一个路径之中,并且只是像立即切换到新的位置,那么这会是非常方便的。例如,要更改到 \temp 目录,你可以输入 cd \temp

C:\>cd apps
C:\APPS>cd ..
C:\>cd devel
C:\DEVEL>cd ..\fdos
C:\FDOS>cd \temp
C:\TEMP>_

在 FreeDOS 中,像大多数的 DOS 系统一样,你可以在DOS 提示符中看到你的当前路径。在 Linux 上,你的提示符可能类似于 $ 。在 FreeDOS 上,提示符会列出当前的驱动器及其当前的路径,接下来使用 > 作为提示符(看做 Linux 上的 $)。

列出和显示文件

在 Linux 上,列出当前目录中文件的标准命令是 ls 命令。在 FreeDOS ,它是一个不同的命令: dir 。但是你可以创建一个 别名 来获取一种与 ls 类似的行为。

要为另外一个命令创建一个别名,使用内置的 alias 命令。例如,使用此命令来为 ls 定义一个别名,这个别名将显示一个目录列表,与在 Linux 上使用 ls 类似:

C:\>alias ls=dir /one /w /b /l
C:\>ls
[apps]    command.com   [devel]  fdauto.bat   fdconfig.sys
[fdos]    kernel.sys    [src]    [temp]
C:\>

在 FreeDOS 上的命令选项格式与 Linux 稍微不同。在 Linux 上, 你使用一个连字符号(-)表示选项。但是在 FreeDOS 上,你使用一个正斜杠来表示选项。上面的 alias 命令使用斜杆杠字符 — 它们是 dir 的选项。/one 可选择项告诉 dir 以某种方式排序(o):先按名称(n)再按扩展名(e)来排序一些文件和目录。/w 使用一个 “宽” 目录列表,/b 使用一种不带有 dir 通常提供的其它信息的 “裸” 显示,/l 指示 dir 以小写字母的形式显示文件和目录。

注意,针对于 FreeDOS 的 dir 命令的命令行选项与针对于 Linux 的 ls 命令的命令行选项截然不同,因此,你不能像你在 Linux 上一样精确地使用这个 ls 别名。例如,在 FreeDOS 上使用此别名输入 ls -l 将产生一条 “文件未找到” 的错误,因为底层的 FreeDOS 的 dir 命令不能找到一个名称为 -l 的文件。不过,对于基本的 “查看在我的系统上有哪些文件” 来说,这个 ls 别名已经足够帮助 Linux 用户开始使用 FreeDOS 了。

类似地,你可以为 FreeDOS 的 type 命令创建一个别名,来像 Linux 的 cat 命令一样工作。两个重新都会显示一个文本文件的内容。虽然 type 不支持你可能在 Linux 下使用的命令行选项,但是显示一单个文件的基本用法是相同的。

C:\FDOS>alias cat=type
C:\FDOS>cat version.fdi
PLATFORM=FreeDOS
VERSION=1.3-RC4
RELEASE=2021-04-30
C:\FDOS>

其它的类 Unix 命令

FreeDOS 包含一些精选的其它常见的类 Unix 命令,因此 Linux 用户将不会感觉到拘束。为在 FreeDOS 上使用这些 Linux 命令,你可能需要从 “FreeDOS Installer” - “My Package List Editor Software (FDIMPLES)” 软件包管理器来安装 “Unix Like Tools” 软件包。

 title=

(Jim Hall, CC-BY SA 4.0)

并不是所有的类 Unix 实用程序都能像在 Linux 上对应的实用程序一样 一致地 工作。这就是我们称其为 类 Unix 的原因。如果你将要使用一些深层次的命令行选项,你可能需要检查其兼容性,不过,对于典型的用法是没有问题的。开始在 FreeDOS 上使用这些类 Unix 命令:

cal 命令是标准的 Unix 的日历程序。例如,为显示当前月份的日历,只需要输入 cal 。为查看一个具体指定的月份,将月份和年份作为参数予以给定:

C:\>cal 6 1994

      June 1994    
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30      

使用 du 命令来查看你的磁盘使用情况。这是 Linux 的 du 命令的简单版本,并且不支持路径以外的任何命令行选项。

C:\>du -s apps
usage: du (start path)
C:\>du apps
    158784 C:\APPS\FED
         0 C:\APPS
Total from C:\APPS is 158784
C:\>

head 命令显示一个文件的前几行。例如,这是一种确定一个文件是否包含正确数据的简单方法。

C:>head fdauto.bat
@ECHO OFF
set DOSDIR=C"\FDOS
set LANG=EN
set TZ=UTC
set PATH=%dosdir%\BIN
if exist %dosdir%\LINKS\NUL set PATH=%path%;%dosdir%\LINKS
set NLSPATH=%dosdir%\NLS
set HELPPATH=%dosdir%\HELP
set TEMP=%dosdir%\TEMP
set TMP=%TEMP%
C:\>

要查看一个完整的文件,使用 more 命令,在 FreeDOS 上的默认文件查看器。这将一次显示一屏的文件,然后在显示下一屏的信息前,打印一个按下一次按键的提示。more 命令是一个非常简单的文件查看器;在 Linux 上你可能已经使用过一个功能更全面的查看器,可以尝试一下 less 命令。less 命令提供 “向后” 滚动一个文件的能力,以防你错过一些东西。你还可以搜索具体指定的文本。

C:\>less fdauto.bat
@ECHO OFF
set DOSDIR=C"\FDOS
set LANG=EN
set TZ=UTC
set PATH=%dosdir%\BIN
if exist %dosdir%\LINKS\NUL set PATH=%path%;%dosdir%\LINKS
set NLSPATH=%dosdir%\NLS
set HELPPATH=%dosdir%\HELP
set TEMP=%dosdir%\TEMP
set TMP=%TEMP%
[...]

如果在你的程序路径变量(PATH)中有很多的目录,并且不确定某个程序是从哪里运行的,你可以使用 which 命令。这个命令将扫描程序路径变量,并且将打印出你正在查找的程序的完整的位置。

C:\>which less
less    C:\>FDOS\BIN\LESS.EXE
C:\>_

FreeDOS 1.3 RC4 包含其它的类 Unix 命令,你可能会在其它更特殊的情况下使用。这些命令包括:

  • bc:任意精度数字处理语言
  • sed:流编辑器
  • grepxgrep:使用正则表达式搜索一个文本文件
  • md5sum:生成一个文件的一个 MD5 签名
  • nro:简单排版,使用 nroff 宏
  • sleep:暂停系统几秒钟
  • tee:保存一个命令行流的副本
  • touch:修改一个文件的时间戳
  • trch:转换单个字符(像 Linux 的 tr 一样)
  • uptime:报告你 FreeDOS 系统已经运行多长的时间

在你控制下的 FreeDOS

FreeDOS ,像 Linux 和 BSD 一样,是开源的。不管你是想通过学习一种新的命令行交互方式来挑战你自己,还是想再去熟悉令人舒适的类 Unix 工具,FreeDOS 都是一款有趣的值得尝鲜的操作系统。尝试一下!


via: https://opensource.com/article/21/6/freedos-linux-users

作者:Jim Hall 选题:lujun9972 译者:robsean 校对:wxy

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