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 Antergos , Manjaro Linux , instal pip menggunakan perintah berikut:
$ sudo pacman -S python-pip
Di RHEL , CentOS :
$ sudo yum install epel-release
$ sudo yum install python-pip
Di Fedora :
$ sudo dnf install python-pip
Di Debian , Ubuntu , Linux Mint :
$ sudo apt-get install python-pip
Di SUSE , openSUSE :
$ 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