如何在执行一个命令或程序之前就了解它会做什么

maybe ,一个简单的工具,它允许你运行一条命令并可以查看此命令对你的文件做了什么,而实际上这条命令却并未执行!在查看 maybe 的输出列表后,你可以决定是否真的想要运行这条命令。

-- Sk

本文导航

maybe 是如何工作的

14%

安装 maybe

28%

了解一个命令或程序在执行前会做什么

45%

编译自  https://www.ostechnix.com/know-command-program-will-exactly-executing/

作者  Sk

译者  imquanquan

有没有想过在执行一个 Unix 命令前就知道它干些什么呢?并不是每个人都会知道一个特定的命令或者程序将会做什么。当然,你可以用Explainshell

[1]

来查看它。你可以在 Explainshell 网站中粘贴你的命令,然后它可以让你了解命令的每个部分做了什么。但是,这是没有必要的。现在,我们从终端就可以轻易地在执行一个命令或者程序前就知道它会做什么。 ,一个简单的工具,它允许你运行一条命令并可以查看此命令对你的文件做了什么,而实际上这条命令却并未执行!在查看 的输出列表后,你可以决定是否真的想要运行这条命令。

是如何工作的

根据开发者的介绍:

利用 库在 控制下运行了一个进程。当它截取到一个即将更改文件系统的系统调用时,它会记录该调用,然后修改 CPU 寄存器,将这个调用重定向到一个无效的系统调用 ID(效果上将其变成一个无效操作(no-op)),并将这个无效操作(no-op)的返回值设置为有效操作的返回值。结果,这个进程认为,它所做的一切都发生了,实际上什么都没有改变。

警告:在生产环境或者任何你所关心的系统里面使用这个工具时都应该小心。它仍然可能造成严重的损失,因为它只能阻止少数系统调用。

安装

确保你已经在你的 Linux 系统中已经安装了 。如果没有,可以根据您使用的发行版,按照如下指示进行安装。

在 Arch Linux 及其衍生产品(如 Antergos、Manjaro Linux)上,使用以下命令安装 :

在 RHEL,CentOS 上:

在 Fedora 上:

在 Debian,Ubuntu,Linux Mint 上:

在 SUSE、 openSUSE 上:

安装 后,运行以下命令安装 :

了解一个命令或程序在执行前会做什么

用法是非常简单的!只要在要执行的命令前加上 即可。

让我给你看一个例子:

如你所看到的,我从我的系统中删除一个名为 的文件夹。下面是示例输出:

执行了 5 个文件系统操作,并向我显示该命令()究竟会做什么。现在我可以决定是否应该执行这个操作。是不是很酷呢?确实很酷!

这是另一个例子。我要为 Gmail 安装 Inboxer 桌面客户端。这是我得到的输出:

如果它没有检测到任何文件系统操作,那么它会只显示如下所示的结果。

例如,我运行下面这条命令来更新我的 Arch Linux。

看到没?它没有检测到任何文件系统操作,所以没有任何警告。这非常棒,而且正是我所预料到的结果。从现在开始,我甚至可以在执行之前知道一个命令或一个程序将执行什么操作。我希望这对你也会有帮助。

Cheers!

资源:

GitHub 主页

[2]

via:https://www.ostechnix.com/know-command-program-will-exactly-executing/

作者:SK

[4]

译者:imquanquan校对:wxy

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

LCTT 译者

imquanquan

共计翻译:3篇

贡献时间:7 天

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171213G05XNO00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区