开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散
有没有想过在履行一个 Unix 敕令前就知道它干些什么呢?并不是每小我都邑知道一个特定的敕令或者法度榜样将会做什么。当然,你可以用 Explainshell 来查看它。你可以在 Explainshell 网站中粘贴你的敕令,然后它可以让你懂得敕令的每个部分做了什么。然则,这是没有须要的。如今,我们大年夜终端就可以随便马虎地在履行一个敕令或者法度榜样前就知道它会做什么。 maybe
,一个简单的对象,它许可你运行一条敕令并可以查看此敕令对你的文件做了什么,而实际上这条敕令却并未履行!在查看 maybe
的输出列表后,你可以决定是否真的想要运行这条敕令。
maybe
是若何工作的
根据开辟者的介绍:
警告:在临盆情况或者任何你所关怀的体系琅绫擎应用这个对象时都应当当心。它仍然可能造成严重的损掉,因为它只能阻拦少数体系调用。
安装
maybe
确保你已经在你的 Linux 体系中已经安装了
pip
。如不雅没有,可以根据您应用的发行版,按照如下指导进行安装。在 Arch Linux 及其衍临盆品(如 Antergos、Manjaro Linux)上,应用以下敕令安装
pip
:
sudo pacman -S python-pip
在 RHEL,CentOS 上:
sudo yum install epel-release
sudo yum install python-pip
在 Fedora 上:
sudo dnf install epel-release
sudo dnf install python-pip
在 Debian,Ubuntu,Linux Mint 上:
sudo apt-get install python-pip
在 SUSE、 openSUSE 上:
sudo zypper install python-pip
安装
pip
后,运行以下敕令安装maybe
:
maybe
应用python-ptrace
库在ptrace
控制下运行了一个过程。当它朝长进步到一个即将更改文件体系的体系调用时,它会记录该调用,然后修改 CPU 存放器,将这个调用重定向到一个无效的体系调用 ID(效不雅大将其变成一个无效操作(no-op)),并将这个无效操作(no-op)的返回值设置为有效操作的返回值。结不雅,这个过程认为,它所做的一切都产生了,实际上什么都没有改变。
sudo pip install maybe
懂得一个敕令或法度榜样在履行前会做什么
用法是异常简单的!只要在要履行的敕令前加上 maybe
即可。
让我给你看一个例子: