GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengembalikan Atau Memulihkan Perintah yang Dihapus Di Linux

Dalam tutorial singkat ini, kita akan mempelajari cara memulihkan atau memulihkan perintah yang dihapus di Linux menggunakan coreutils dan busybox .

Kami biasanya menggunakan rm perintah untuk menghapus barang di Linux, bukan? Ya. Bagaimana jika kita menggunakan rm ke rm rm ? Dengan kata lain, bagaimana jika kita menghapus /bin/rm file menggunakan rm memerintah? Saya selalu bertanya-tanya apa yang akan terjadi jika saya benar-benar melakukan ini di mesin Linux. Jadi saya dengan cepat memutar VM Ubuntu dan menghapus /bin/rm file dengan menjalankan perintah berikut:

$ sudo rm /bin/rm

Saya pikir saya dapat dengan mudah memulihkan rm yang dihapus perintah dengan menginstal ulang Gnu coreutils paket, karena rm perintah adalah bagian dari coreutils paket bukan?

Jadi saya mencoba menginstal ulang coreutils paket menggunakan apt pengelola paket seperti di bawah ini:

$ sudo apt install --reinstall coreutils

Ya ampun, aku salah! apt manajer paket membutuhkan rm , sehingga tidak dapat menginstal ulang coreutils kemasan.

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)

Saya juga mencoba mengkompilasinya dari sumber, tetapi tidak berhasil juga, karena Makefile menggunakan rm . Sampai sekarang, saya tidak tahu bahwa penginstalan ulang tidak dapat dilakukan tanpa rm perintah.

Saya pikir memulihkan perintah yang dihapus itu sepele. Namun, dalam kasus khusus ini saya tidak dapat memulihkan rm memerintah. Akhirnya saya menemukan solusinya setelah beberapa pencarian web. Jika Anda pernah secara tidak sengaja menghapus rm perintah (saya harap Anda tidak melakukannya), Anda dapat menggunakan salah satu dari metode berikut untuk memulihkannya. Bukan hanya rm perintah, Anda dapat menggunakan prosedur ini untuk memulihkan hampir semua perintah inti yang dihapus yang disediakan oleh coreutils paket.

Penafian:

Anda TIDAK HARUS MELAKUKAN INI PADA SISTEM PRODUKSI . Ini hanya untuk tujuan pendidikan!.

Pulihkan perintah yang dihapus di Linux menggunakan coreutils

Bagi yang belum tahu, Gnu coreutils package menyediakan perintah inti penting seperti cat , ls , rm , mkdir , rmdir , touch , dan masih banyak lagi. Itu sudah diinstal sebelumnya dengan sebagian besar distribusi GNU/Linux.

Untuk memulihkan rm . yang dihapus perintah, pertama buat file biner kosong dengan nama "rm" di bawah /bin/ lokasi:

$ sudo touch /bin/rm

Jadikan itu dapat dieksekusi:

$ sudo chmod +x /bin/rm

Unduh coreutils paket menggunakan perintah:

$ apt download coreutils

Harap perhatikan bahwa kami tidak dapat menginstal ulang coreutils tapi unduh. Juga, kita tidak perlu menggunakan sudo hak istimewa untuk mengunduh paket.

Buka kemasan paket yang diunduh dengan dpkg berikut perintah:

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

Perintah di atas hanya membongkar coreutils paket, tetapi tidak akan mengonfigurasinya.

Selesai! Sekarang, Anda dapat mulai menggunakan rm memerintah. Untuk memverifikasi apakah fungsi rm perintah dipulihkan, cukup hapus file yang tidak diinginkan. Misalnya, saya menghapus coreutils paket yang saya unduh sebelumnya:

$ rm coreutils_8.30-3ubuntu2_amd64.deb 

Besar! Ini berhasil!

Dan, tolong jangan pernah lakukan ini pada sistem produksi!!

Pulihkan perintah yang dihapus menggunakan busybox di Linux

Kotak Sibuk adalah rangkaian perangkat lunak yang menyediakan banyak utilitas UNIX umum ke dalam satu executable kecil. Ini menyediakan pengganti untuk sebagian besar utilitas yang biasanya Anda temukan di fileutils GNU, shellutils, dll. Ini tersedia secara default di Debian dan turunannya seperti Ubuntu dan banyak distribusi Linux lainnya.

Anda dapat melihat daftar utilitas baris perintah inti yang disediakan oleh busybox menggunakan perintah:

$ busybox --list

Contoh keluaran:

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

Di desktop Ubuntu 20.04 LTS saya, busybox menyediakan sekitar 263 utilitas baris perintah.

Sekarang mari kita pulihkan rm . yang terhapus perintah dengan membuat symlink . untuk sementara untuk itu. Jalankan perintah berikut untuk symlink sementara /bin/rm ke /bin/busybox :

$ ln -s busybox /bin/rm

Kemudian instal ulang coreutils paket menggunakan perintah:

$ sudo apt install --reinstall coreutils

Itu dia. Perintah di atas akan mengembalikan rm perintah.

Seperti yang dinyatakan sebelumnya, prosedur ini bukan hanya untuk memulihkan rm memerintah. Saya kira kita dapat memulihkan hampir semua perintah Linux menggunakan metode ini. Periksa sendiri di VM dan lihat itu berhasil! Sekali lagi, jangan lakukan ini dalam sistem produksi . Anda telah diperingatkan!

Baca juga:

  • Pulihkan Izin yang Dapat Dieksekusi ke Perintah Chmod Di Linux
  • Moreutils – Kumpulan Utilitas Unix yang Lebih Berguna

Linux
  1. Cara Menonaktifkan Perintah Shutdown dan Reboot di Linux

  2. Cara Mengembalikan Direktori /tmp yang Dihapus di Linux

  3. Cara membatasi perintah pengguna di Linux

  1. Cara Memulihkan File yang Dihapus di Linux

  2. Bagaimana memulihkan file yang dihapus di Linux menggunakan alat pemulihan data Scalpel?

  3. Bagaimana memulihkan file yang terbuka tetapi terhapus di Linux menggunakan ln, bukan cp?

  1. Cara Memulihkan File yang Dihapus Di Linux [Panduan Pemula]

  2. Bagaimana Cara Membunuh Proses di Linux? Perintah untuk Mengakhiri

  3. Cara Memulihkan File yang Dihapus di Linux