如何在Linux中还原或恢复已删除的命令

在这个简短的教程中,我们将学习如何使用以下命令在Linux中还原或恢复已删除的命令: coreutilsbusybox

我们通常使用 rm 命令删除Linux中的内容,对不对? 是的。 如果我们使用 rmrm rm? 换句话说,如果我们删除 /bin/rm 文件使用 rm 命令? 我一直想知道如果我实际上在Linux机器上执行此操作会发生什么。 因此,我迅速启动了Ubuntu VM,并删除了 /bin/rm 通过运行以下命令来创建文件:

$ sudo rm /bin/rm

我以为可以轻松恢复已删除的内容 rm 通过重新安装命令 Gnu coreutils 包装,因为 rm 命令是其中的一部分 coreutils 包装,不是吗?

所以我尝试重新安装 coreutils 包使用 apt 包管理器如下:

$ sudo apt install --reinstall coreutils

哦,我错了! 这 apt 包管理器要求 rm,因此无法重新安装 coreutils 包裹。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 1249 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu focal/main amd64 coreutils amd64 8.30-3ubuntu2 [1249 kB]
Fetched 1249 kB in 2s (747 kB/s)    
dpkg: warning: 'rm' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

dpkg:警告:在路径中找不到’rm’或无法执行

我也尝试从源代码编译它,但是它也不起作用,因为 Makefile 用途 rm。 到目前为止,我还不知道如果没有 rm 命令。

我认为恢复已删除的命令是微不足道的。 但是,在这种情况下,我无法还原 rm 命令。 最终,经过几次网络搜索,我找到了解决方案。 如果您曾经不小心将其移除 rm 命令(希望您不会),可以使用以下任何一种方法来恢复它。 不只是 rm 命令,您可以使用此过程来恢复几乎所有已删除的核心命令。 coreutils 包裹。

免责声明:

不得在生产系统上执行此操作。 它仅用于教育目的!

使用coreutils在Linux中恢复已删除的命令

对于那些不知道的人, Gnu coreutils 软件包提供了基本的核心命令,例如 catlsrmmkdirrmdirtouch, 还有很多。 它预装了大多数GNU / Linux发行版。

恢复已删除 rm 命令,首先创建一个名称为空的二进制文件 "rm" 在下面 / bin / 地点:

$ sudo touch /bin/rm

使它可执行:

$ sudo chmod +x /bin/rm

下载 coreutils 使用命令打包:

$ apt download coreutils

请注意,我们无法重新安装 coreutils 但是下载它。 另外,我们不需要使用 sudo 下载软件包的特权。

使用以下命令解压缩下载的软件包 dpkg 命令:

$ sudo dpkg --unpack coreutils_8.30-3ubuntu2_amd64.deb

上面的命令只是解压缩 coreutils 软件包,但不会对其进行配置。

使用coreutils软件包在Linux中恢复已删除的命令

完毕! 现在,您可以开始使用 rm 命令。 验证是否功能 rm 命令恢复后,只需删除所有不需要的文件。 例如,我删除了 coreutils 我之前下载的软件包:

$ rm coreutils_8.30-3ubuntu2_amd64.deb 

在Linux中使用rm命令删除文件在Linux中使用rm命令删除文件

伟大的! 有用!

而且,请永远不要在生产系统上执行此操作!!

在Linux中使用busybox还原已删除的命令

忙箱 是一个软件套件,可将许多常见的UNIX实用程序集成到一个小型可执行文件中。 它提供了您通常在GNU fileutils,shellutils等中常见的大多数实用程序的替代品。默认情况下,它在Debian及其衍生版本(如Ubuntu和许多其他Linux发行版)中可用。

您可以查看由以下人员提供的核心命令行实用程序的列表: busybox 使用命令:

$ busybox --list

样本输出:

[
[[
acpid
adjtimex
ar
arch
arp
arping
ash
awk
basename
bc
blkdiscard
blockdev
brctl
bunzip2
busybox
bzcat
bzip2
cal
cat
[..]

列出busybox命令行实用程序列出busybox命令行实用程序

在我的Ubuntu 20.04 LTS桌面上,busybox提供了 263 命令行实用程序。

现在让我们恢复已删除的 rm 通过临时创建一个命令 符号链接 做到这一点。 运行以下命令以临时符号链接 /bin/rm/bin/busybox

$ ln -s busybox /bin/rm

然后重新安装 coreutils 使用命令打包:

$ sudo apt install --reinstall coreutils

而已。 上面的命令将还原 rm 命令。

如前所述,此过程不仅用于恢复 rm 命令。 我想我们可以使用这些方法恢复几乎所有的Linux命令。 自己在VM上检查它,看看它是否有效! 再次, 不要在生产系统中这样做。 你被警告了!

另请阅读:

  • 在Linux中将可执行权限还原为Chmod命令
  • Moreutils –更多有用的Unix实用程序的集合

APTBusyboxCoreutilsdpkgGnu CoreutilsLinuxLinux命令Linux提示Linux故障排除Ubuntu

Sidebar