Saya tidak sengaja menimpa file / bin / bash dengan skrip bodoh yang ingin saya masukkan ke dalam folder / bin.
Bagaimana saya mendapatkan kembali isi file itu? Apakah ada cara saya dapat menemukan konten di web, dan cukup menyalinnya kembali? Apa pilihan saya di sini, mengingat terminal memberikan kesalahan ketika berbicara tentang "Terlalu Banyak Tautan Simbolik?"
Saya masih pendatang baru dalam hal semacam ini, dan saya menghargai semua bantuan yang bisa saya dapatkan.
Sunting: Saya lupa menyebutkan saya di Kali 2.2 Rolling, yang cukup banyak debian dengan beberapa fitur tambahan.
Sunting 2: Saya juga menghidupkan ulang mesin, karena saya tidak menyadari kesalahan saya sampai beberapa hari yang lalu. Itu membuat ini sedikit lebih sulit.
linux
bash
kali-linux
data-recovery
GarrukApex
sumber
sumber
$HOME/.bin
dan tambahkan ke AndaPATH
atau gunakan/usr/local/bin
jika Anda membutuhkannya untuk seluruh sistem. Atau, bahkan lebih baik lagi, membangun sebuah paket.Jawaban:
bash
adalah sebuah shell, mungkin shell sistem Anda, jadi sekarang hal-hal aneh terjadi, sementara bagian-bagian shell masih dalam memori. Setelah Anda logout atau reboot, Anda akan berada dalam masalah yang lebih dalam.Jadi hal pertama yang harus Anda lakukan adalah mengganti cangkang Anda menjadi sesuatu yang aman. Lihat cangkang apa yang telah Anda instal
Kemudian ganti shell Anda dengan salah satu shell lain yang terdaftar di sana, misalnya
Perbarui, karena Anda telah memulai ulang:
Anda beruntung bahwa saat ini proses booting tidak bergantung
bash
, jadi sistem Anda melakukan boot, Anda tidak bisa mendapatkan baris perintah. Tetapi Anda dapat memulai editor untuk mengedit/etc/passwd
dan mengubah shell diroot
baris dari/bin/bash
ke/bin/dash
. Logout dan log in lagi. Hanya saja, jangan membuat perubahan lain dalam file itu, atau Anda dapat mengacaukan sistem Anda sepenuhnya.Kemudian coba instal ulang
bash
denganJika semuanya berhasil, Anda dapat
chsh
kembali kebash
.Akhirnya: Saya pikir, Kali adalah distribusi yang sangat terspesialisasi, mungkin tidak cocok untuk orang yang secara tidak sengaja menimpa shell mereka. Karena kalimat ini disebut kasar dan kasar, saya harus menambahkan bahwa saya menulisnya berdasarkan pengalaman saya sendiri. Ketika saya masih muda, saya merusak sistem saya karena tidak ada yang mengatakan kepada saya untuk menghindari bermain-main sebagai root.
sumber
command > /bin/bash ...
lawancommand > (/bin/bash ...)
.Jangan matikan mesin Anda.
Apakah Anda masih memiliki shell yang berjalan? Apakah ini bash? Jika demikian, Anda baik-baik saja. (Tapi jangan lakukan ini lagi.)
Menjalankan:
Voila, semuanya baik-baik saja.
Karena seseorang dalam komentar meragukan bahwa ini berfungsi:
sumber
/bin/sh
ataurbash
)root
dijalankancp
. Namun, tautan keras adalah poin yang bagus.Jika Anda bisa masuk, tetapi Anda tidak bisa membuka terminal atau mengakses shell, tetapi Anda dapat mengakses file melalui GUI, pergi ke
/bin
, cari file yang namanya diakhiri dengansh
(tetapi tidak.sh
) dan jalankan satu (dengan mengklik dua kali) atau mengklik kanan). Secara khusus, cari yang berikut ini:sh
dash
ash
ksh
(atauksh
diikuti oleh angka; misalnya,ksh93
)zsh
yash
atau, sebagai upaya terakhir,
tcsh
ataucsh
Jika Anda dapat menjalankan shell, maka coba jawaban Philippos .
Pendekatan lain adalah mem-boot ke mode pengguna tunggal mengikuti instruksi ini tetapi tentukan
init=/bin/sh
(atau salah satu shell lainnya) sebagai gantinyainit=/bin/bash
.sumber