测试运行命令但不执行它但显示命令结果

测试运行命令但不执行它但显示命令结果

前段时间我学到了一个命令,它可以运行命令并显示最终结果,但它实际上不会执行命令,只会显示结果,就像运行命令一样。我忘记了这个命令,似乎在网上找不到它。您是否恰好知道所需的命令?非常感谢您的帮助。

我正在运行带有 GNOME 的 Ubuntu 20.04 LTS 桌面。设置:

  • 英特尔 i9700
  • GSkill Trident 16 GB 内存
  • Nvidia RTX 2080
  • 三星 970 EVO Plus SSD

我正在寻找的命令是不同发行版使用的通用终端命令。我以前在 Ubuntu Desktop 18.04 上使用过它(也许在 Fedora 上,不记得是哪个版本)。

答案1

我正在寻找的命令是通用终端命令

我假设我们指的是某种 bash 命令,因为 bash 是 Ubuntu 终端的默认解释器。

据我了解,您正在寻找类似于 Microsoft Powershell 的选项-whatif(如果您熟悉它),它可以让您执行几乎所有已知命令,但不进行任何更改,从而让您知道您的语法是否正确,或者命令链的结果。

不幸的是,这样的功能并不存在(我真的希望我们有一个)。

因此,您实际上指的是许多“命令”都具有的一组选项和标志,它们将模拟您的参数。这些“命令”通常是一组脚本或脚本的别名,它们也能够模拟您的参数,而不是纯核心操作系统命令。

最常见的标志是:--dry-run--simulate--fake,许多程序脚本通常都会提供它们。但这里的关键词是“通常“,因为如果没有作者在脚本中内置的功能和代码,它就无法工作。
以下是 APT 的一个例子:sudo apt-get install --dry-run "the_package_i_really_want"

来自 apt-get 手册页:

-s, --simulate, --just-print, --dry-run, --recon, --no-act
No action. Perform a simulation of events that would occur but do not actually change the system.
Configuration Item: APT::Get::Simulate.
Simulate prints out a series of lines, each one representing an rpm
operation: Configure (Conf), Remove (Remv), Unpack (Inst). Square brackets indicate broken packages with an empty set of square brackets meaning breaks that are of no consequence (rare).

以下是该mount命令的另一个示例:

sudo mount --fake /dev/sda1 mydir

来自 mount 手册页:

-f, --fake
  Causes everything to be done except for the actual system call;
  if it's  not  obvious,  this  ``fakes'' mounting  the  filesystem.
  This option is useful in conjunction with the -v flag to determine
  what the mount command is trying to do.

人们编写了一些外部工具/脚本和技巧,您可以尝试一下,但这也可能有风险,现在需要您进行研究。

答案2

我不确定是否存在这样的命令,因为有些命令如果在裸机上运行可能会破坏系统,例如“rm -rf / --no-preserve-root”。如果命令可能具有破坏性,则只需启动虚拟机并在那里测试该命令即可。

相关内容