GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Mengetahui Apa yang Akan Dilakukan Perintah Atau Program Sebelum Mengeksekusinya

Pernah bertanya-tanya apa yang akan dilakukan perintah Unix sebelum menjalankannya? Tidak semua orang tahu apa yang akan dilakukan oleh perintah atau program tertentu. Tentu saja, Anda dapat memeriksanya dengan Explainshell . Anda perlu menyalin/menempelkan perintah di situs web Explainshell dan itu memberi tahu Anda apa yang dilakukan setiap bagian dari perintah Linux. Namun, itu tidak perlu. Sekarang, kita dapat dengan mudah mengetahui apa yang sebenarnya akan dilakukan oleh suatu perintah atau program sebelum menjalankannya, langsung dari Terminal. Sampaikan salam kepada "mungkin" , alat sederhana yang memungkinkan Anda menjalankan perintah dan melihat apa yang dilakukannya pada file Anda tanpa benar-benar melakukannya! Setelah meninjau output yang terdaftar, Anda kemudian dapat memutuskan apakah Anda benar-benar ingin menjalankannya atau tidak.

Bagaimana cara kerja "mungkin"?

Menurut pengembang,

"mungkin" menjalankan proses di bawah kendali ptrace dengan bantuan pustaka python-ptrace. Ketika memotong panggilan sistem yang akan membuat perubahan pada sistem file, itu mencatat panggilan itu, dan kemudian memodifikasi register CPU untuk mengarahkan panggilan ke ID syscall yang tidak valid (secara efektif mengubahnya menjadi no-op) dan mengatur mengembalikan nilai panggilan tanpa operasi itu ke nilai yang menunjukkan keberhasilan panggilan asli. Akibatnya, proses tersebut percaya bahwa semua yang dia coba lakukan benar-benar terjadi, padahal kenyataannya tidak ada apa-apa.

Peringatan :Anda harus sangat sangat berhati-hati saat menggunakan utilitas ini dalam sistem produksi atau dalam sistem apa pun yang Anda pedulikan. Itu masih dapat menyebabkan kerusakan serius, karena hanya akan memblokir beberapa panggilan sys.

Menginstal "mungkin"

Pastikan Anda telah menginstal Pip di sistem Linux Anda. Jika tidak, instal seperti yang ditunjukkan di bawah ini tergantung pada distribusi yang Anda gunakan.

Di Linux Arch dan turunannya seperti AntergosManjaro Linux , instal pip menggunakan perintah berikut:

$ sudo pacman -S python-pip

Di RHELCentOS :

$ sudo yum install epel-release
$ sudo yum install python-pip

Di Fedora :

$ sudo dnf install python-pip

Di DebianUbuntuLinux Mint :

$ sudo apt-get install python-pip

Di SUSEopenSUSE :

$ sudo zypper install python-pip

Setelah pip terinstal, jalankan perintah berikut untuk menginstal "mungkin".

$ sudo pip install maybe

Ketahui Apa yang Akan Dilakukan Perintah Atau Program Sebelum Mengeksekusinya

Penggunaan benar-benar mudah! Cukup tambahkan "mungkin" di depan perintah yang ingin Anda jalankan.

Izinkan saya untuk menunjukkan sebuah contoh.

$ maybe rm -r ostechnix/

Seperti yang Anda lihat, saya akan menghapus folder bernama "ostechnix" dari sistem saya. Ini contoh keluarannya.

maybe has prevented rm -r ostechnix/ from performing 5 file system operations:

 delete /home/sk/inboxer-0.4.0-x86_64.AppImage
 delete /home/sk/Docker.pdf
 delete /home/sk/Idhayathai Oru Nodi.mp3
 delete /home/sk/dThmLbB334_1398236878432.jpg
 delete /home/sk/ostechnix

Do you want to rerun rm -r ostechnix/ and permit these operations? [y/N] y

Alat "mungkin" melakukan 5 operasi sistem file dan menunjukkan kepada saya apa yang akan dilakukan oleh perintah ini (yaitu rm -r ostechnix/). Sekarang saya dapat memutuskan apakah saya harus melakukan operasi ini atau tidak. Keren ya?

Berikut adalah contoh lain. Saya akan memasang Inboxer klien desktop untuk Gmail. Inilah yang saya dapatkan.

$ maybe ./inboxer-0.4.0-x86_64.AppImage 
fuse: bad mount point `/tmp/.mount_inboxemDzuGV': No such file or directory
squashfuse 0.1.100 (c) 2012 Dave Vasilevsky

Usage: /home/sk/Downloads/inboxer-0.4.0-x86_64.AppImage [options] ARCHIVE MOUNTPOINT

FUSE options:
 -d -o debug enable debug output (implies -f)
 -f foreground operation
 -s disable multi-threaded operation

open dir error: No such file or directory
maybe has prevented ./inboxer-0.4.0-x86_64.AppImage from performing 1 file system operations:

create directory /tmp/.mount_inboxemDzuGV

Do you want to rerun ./inboxer-0.4.0-x86_64.AppImage and permit these operations? [y/N]

Jika tidak mendeteksi operasi sistem file apa pun, maka itu hanya akan menampilkan hasil seperti di bawah ini.

Misalnya, saya menjalankan perintah ini untuk memperbarui Arch Linux saya.

$ maybe sudo pacman -Syu
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
maybe has not detected any file system operations from sudo pacman -Syu.

Lihat? Itu tidak mendeteksi operasi sistem file apa pun, jadi tidak ada peringatan. Ini benar-benar brilian dan persis apa yang saya cari. Mulai sekarang, saya dapat dengan mudah mengetahui apa yang akan dilakukan suatu perintah atau program bahkan sebelum menjalankannya

Bacaan yang disarankan:

  • Cara Mensimulasikan Perintah Linux Tanpa Mengubah Apa Pun Di Sistem

Linux
  1. Apa itu Perintah Chown di Linux dan Cara Menggunakannya

  2. Apa itu Perintah cURL Dan Bagaimana Cara Menggunakannya?

  3. Bagaimana cara mengetahui apa yang dilakukan perintah Linux

  1. Membedah perintah gratis:Apa yang perlu diketahui oleh sysadmin Linux

  2. Bagaimana Cara Menjalankan Perintah Sebelum Login Pengguna Di Linux?

  3. Menjalankan Perintah Jarak Jauh Pada Koneksi Ssh, Sebelum Masuk?

  1. Linux – Bagaimana Mengetahui Apa yang Harus Diambil Di Dmesg?

  2. Bagaimana Cara Membaca Seluruh Script Shell Sebelum Mengeksekusinya?

  3. Apa itu email, dan bagaimana navigasinya?