GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengeringkan Menjalankan Atau Mensimulasikan Perintah Linux Tanpa Mengubah Apa Pun Di Sistem

Setiap perintah Linux memiliki satu atau lebih opsi dan flag untuk melakukan operasi yang berbeda. Hari ini, mari kita belajar tentang salah satu opsi yang berguna dan penting yang memungkinkan kita untuk mensimulasikan perintah Linux tetapi tidak benar-benar mengubah sistem.

Misalnya, kita dapat mensimulasikan (atau menjalankan kering) proses penginstalan atau penghapusan paket atau program, tetapi tanpa benar-benar menginstal atau menghapus paket yang dimaksud dari sistem Linux.

Seperti yang sudah Anda ketahui, Simulasi hanyalah tiruan dari operasi proses atau sistem yang sebenarnya untuk memverifikasi bagaimana proses akan bekerja secara real time.

Simulasi sedang digunakan di banyak bidang untuk pengajaran, pengujian, tujuan pelatihan dan pemecahan masalah. Sekarang mari kita kembali dan mempelajari cara mensimulasikan perintah Linux.

Mengapa menjalankan atau mensimulasikan perintah Linux?

Sederhana. Kami dapat dengan tepat menemukan apa yang akan dilakukan perintah Linux bahkan sebelum menjalankannya. Misalnya, Anda mungkin ingin menginstal editor Vim di kotak Linux Anda. Anda tidak tahu dependensi tambahan apa yang dibawa oleh paket ini. Dengan mensimulasikan proses instalasi, Anda akan tahu berapa banyak dependensi yang akan diinstal bersama dengan paket. Hal ini juga sama untuk penghapusan paket. Anda akan tahu dependensi apa yang tidak lagi diperlukan setelah menguninstall sebuah paket. Ini juga membantu Anda untuk memastikan apakah suatu perintah berfungsi dengan baik bahkan sebelum menjalankannya. Masih tidak mengerti? Tidak masalah. Izinkan saya untuk menunjukkan sebuah contoh.

Mensimulasikan perintah Linux

Katakanlah, Anda ingin memasang Vim editor di sistem Ubuntu Anda.

Untuk mensimulasikan instalasi Vim di Ubuntu, jalankan saja:

$ sudo apt install vim --dry-run

Atau,

$ sudo apt install vim --simulate

Atau segera:

$ sudo apt install vim -s

Contoh output dari perintah di atas:

Reading package lists... Done
Building dependency tree 
Reading state information... Done
Suggested packages:
ctags vim-doc vim-scripts
The following NEW packages will be installed:
vim
0 upgraded, 1 newly installed, 0 to remove and 82 not upgraded.
Inst vim (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf vim (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])

Seperti yang Anda lihat pada output di atas, kami hanya mensimulasikan proses instalasi Vim, tetapi tidak benar-benar menginstalnya. Tidak ada yang berubah dalam sistem, hanya simulasi. Dengan melihat simulasi, kita dapat menemukan paket tambahan (dependensi) apa yang akan diinstal dengan paket sebenarnya.

Demikian pula, kita dapat mensimulasikan penghapusan program yang diinstal seperti di bawah ini.

$ sudo apt remove vim --dry-run

Atau,

$ sudo apt remove vim --simulate

Atau segera:

$ sudo apt remove vim -s

Contoh keluaran:

Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages will be REMOVED:
vim
0 upgraded, 0 newly installed, 1 to remove and 82 not upgraded.
Remv vim [2:8.0.1453-1ubuntu1.1]

Sekali lagi, kami hanya mensimulasikan proses penghapusan, tetapi tidak menghapus apa pun dari sistem. Anda dapat memastikan program apa yang akan dihapus jika Anda menjalankan perintah di atas secara real time.

Kami bahkan dapat mensimulasikan seluruh proses peningkatan di Ubuntu seperti di bawah ini.

$ sudo apt dist-upgrade --dry-run
Reading package lists... Done
Building dependency tree 
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
apt apt-utils base-files bash bsdutils cloud-init console-setup console-setup-linux debconf debconf-i18n dmeventd dmsetup dpkg fdisk friendly-recovery grep
grub-common grub-pc grub-pc-bin grub2-common initramfs-tools initramfs-tools-bin initramfs-tools-core iputils-ping iputils-tracepath keyboard-configuration
landscape-common language-selector-common libapt-inst2.0 libapt-pkg5.0 libblkid1 libdevmapper-event1.02.1 libdevmapper1.02.1 libdrm-common libdrm2 libfdisk1
libldap-2.4-2 libldap-common liblvm2app2.2 liblvm2cmd2.02 libmount1 libnss-systemd libpam-systemd libprocps6 libpython3.6 libpython3.6-minimal libpython3.6-stdlib
libsmartcols1 libsystemd0 libudev1 libuuid1 linux-firmware lvm2 mdadm mount netplan.io nplan open-vm-tools procps python-apt-common python3-apt python3-debconf
python3-distupgrade python3-gdbm python3-software-properties python3.6 python3.6-minimal snapd software-properties-common sosreport systemd systemd-sysv thermald
ubuntu-minimal ubuntu-release-upgrader-core ubuntu-standard udev unattended-upgrades update-notifier-common util-linux uuid-runtime xkb-data
82 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst base-files [10.1ubuntu2.4] (10.1ubuntu2.7 Ubuntu:18.04/bionic-updates [amd64])
Conf base-files (10.1ubuntu2.7 Ubuntu:18.04/bionic-updates [amd64])
Inst bash [4.4.18-2ubuntu1] (4.4.18-2ubuntu1.2 Ubuntu:18.04/bionic-updates [amd64])
Conf bash (4.4.18-2ubuntu1.2 Ubuntu:18.04/bionic-updates [amd64])
Inst bsdutils [1:2.31.1-0.4ubuntu3.3] (1:2.31.1-0.4ubuntu3.4 Ubuntu:18.04/bionic-updates [amd64])
[..]
Conf thermald (1.7.0-5ubuntu5 Ubuntu:18.04/bionic-updates [amd64])
Conf unattended-upgrades (1.1ubuntu1.18.04.13 Ubuntu:18.04/bionic-updates [all])
Conf cloud-init (19.3-41-gc4735dd3-0ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates [all])
Conf open-vm-tools (2:11.0.1-2ubuntu0.18.04.2 Ubuntu:18.04/bionic-updates [amd64])

Dengan mensimulasikan proses peningkatan, Anda akan mendapatkan gambaran yang jelas tentang paket mana yang akan ditingkatkan versinya.

Harap perhatikan bahwa pengguna non-root juga dapat melakukan simulasi . Jika Anda menjalankan simulasi tanpa sudo, Anda akan melihat pesan peringatan seperti di bawah ini.

$ apt remove vim --dry-run
NOTE: This is only a simulation!
apt needs root privileges for real execution.
Keep also in mind that locking is deactivated,
so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages will be REMOVED:
vim
0 upgraded, 0 newly installed, 1 to remove and 82 not upgraded.
Remv vim [2:8.0.1453-1ubuntu1.1]

Bagaimana jika opsi "Dry Run" tidak tersedia?

Sejauh yang saya tahu, sebagian besar perintah Linux dan unix memiliki opsi dry run, tetapi beberapa perintah tidak. Misalnya, yum perintah tidak memiliki opsi menjalankan kering. Jika Anda ingin mensimulasikan operasi pemasangan atau penghapusan Yum, gunakan "setopt" pilihan seperti di bawah ini.

$ yum install --setopt tsflags=test vim

Jika Anda ingin mensimulasikan pemasangan .rpm paket, lakukan:

$ sudo rpm -ivh --test vim-enhanced-7.4.629-6.el7.x86_64.rpm

Perintah di atas tidak akan menginstal vim, tetapi menampilkan bagaimana "yum install vim" dan "rpm -ivh" perintah akan tampil secara real time.

Mungkin Anda harus mencoba "mungkin"

Atau, Anda dapat menggunakan utilitas baris perintah bernama “mungkin” untuk mensimulasikan perintah Linux. Ini memungkinkan Anda untuk menjalankan perintah dan melihat apa yang dilakukannya pada file Anda tanpa benar-benar melakukannya! Setelah meninjau output yang tercantum, Anda kemudian dapat memutuskan apakah Anda benar-benar ingin menjalankannya atau tidak. Untuk lebih jelasnya, silakan kunjungi tautan berikut.

  • Cara Mengetahui Apa yang Tepat Dilakukan Suatu Perintah Atau Program Sebelum Menjalankannya

Semoga membantu.


Linux
  1. Cara Mendaftar Ketergantungan Paket Di Linux

  2. Bagaimana mengubah identitas sistem Linux

  3. Bagaimana Menjalankan Perintah Sebagai Administrator Sistem (root)?

  1. Cara memeriksa Versi OS dan Linux

  2. Cara Menguji Paket Tanpa Menginstalnya Di Linux

  3. Bagaimana cara menjalankan skrip di latar belakang (linux openwrt)?

  1. Cara Menjalankan Perintah Linux di Sistem Jarak Jauh melalui SSH

  2. Cara Menjalankan Perintah Linux di Latar Belakang

  3. Bagaimana cara menjalankan perintah Vim dari shell?