GNU/Linux >> Znalost Linux >  >> Linux

Jak nasucho spustit nebo simulovat příkazy Linuxu, aniž byste cokoli změnili v systému

Každý příkaz Linuxu má jednu nebo více možností a příznaků pro provádění různých operací. Dnes se seznámíme s jednou z užitečných a důležitých možností, které nám umožňují simulovat příkazy Linuxu, ale ve skutečnosti nemění systém.

Můžeme například simulovat (nebo nasucho spustit) proces instalace nebo odstranění balíčku nebo programu, ale bez skutečné instalace nebo odstranění zamýšleného balíčku ze systému Linux.

Jak již víte, simulace je pouze imitací provozu skutečného procesu nebo systému, aby se ověřilo, jak bude proces fungovat v reálném čase.

Simulace se používá v mnoha oblastech pro výuku, testování, školení a řešení problémů. Nyní se vraťme a naučíme se, jak simulovat příkazy Linuxu.

Proč suché spouštění nebo simulace příkazů Linuxu?

Jednoduchý. Můžeme přesně zjistit, co linuxový příkaz udělá, ještě před jeho spuštěním. Můžete například chtít nainstalovat editor Vim do svého Linuxového boxu. Nevíte, jaké další závislosti s sebou tento balíček přinesl. Simulací instalačního procesu budete vědět, kolik závislostí bude nainstalováno spolu s balíčkem. Totéž platí pro odstranění balíku. Po odinstalování balíčku budete vědět, jaké závislosti již nejsou vyžadovány. Pomáhá vám také ujistit se, zda příkaz funguje správně, ještě před jeho spuštěním. Stále nerozumíte? Žádný problém. Dovolte mi ukázat vám příklad.

Simulace příkazů Linuxu

Řekněme, že chcete nainstalovat Vim editor na vašem systému Ubuntu.

Chcete-li simulovat instalaci Vim na Ubuntu, jednoduše spusťte:

$ sudo apt install vim --dry-run

Nebo,

$ sudo apt install vim --simulate

Nebo krátce:

$ sudo apt install vim -s

Ukázkový výstup výše uvedených příkazů:

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])

Jak můžete vidět ve výše uvedeném výstupu, pouze jsme simulovali proces instalace Vim, ale ve skutečnosti jsme jej neinstalovali. V systému se nic nemění, pouze simulace. Když se podíváme na simulaci, můžeme zjistit, jaké další balíčky (závislosti) budou nainstalovány se skutečným balíčkem.

Podobně můžeme simulovat odstranění nainstalovaného programu jako níže.

$ sudo apt remove vim --dry-run

Nebo,

$ sudo apt remove vim --simulate

Nebo krátce:

$ sudo apt remove vim -s

Ukázkový výstup:

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]

Opět jsme pouze simulovali proces odstranění, ale nic jsme ze systému neodstranili. Můžete se ujistit, které programy budou smazány, pokud spustíte výše uvedené příkazy v reálném čase.

Můžeme dokonce simulovat celý proces upgradu na Ubuntu, jak je uvedeno níže.

$ 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])

Simulací procesu aktualizace získáte jasnou představu o tom, které balíčky budou aktualizovány.

Upozorňujeme, že uživatelé bez oprávnění root mohou simulaci provádět také . Pokud spustíte simulaci bez sudo, zobrazí se varovná zpráva jako níže.

$ 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]

Co když možnost „Spuštění nasucho“ není k dispozici?

Pokud vím, většina příkazů pro Linux a unix má možnost suchého spuštění, ale některé příkazy ne. Například yum příkaz nemá možnost suchého běhu. Pokud chcete simulovat operace instalace nebo odebrání Yum, použijte "setopt" možnost jako níže.

$ yum install --setopt tsflags=test vim

Pokud chcete simulovat instalaci .rpm balíček, proveďte:

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

Výše uvedené příkazy nenainstalují vim, ale zobrazí způsob "yum install vim" a "rpm -ivh" příkazy se budou provádět v reálném čase.

Možná byste měli zkusit „možná“

Případně můžete použít nástroj příkazového řádku s názvem „možná“ k simulaci příkazů Linuxu. Umožňuje vám spustit příkaz a zjistit, co to udělá s vašimi soubory, aniž byste to skutečně dělali! Po zkontrolování uvedeného výstupu se můžete rozhodnout, zda jej skutečně chcete spustit nebo ne. Další podrobnosti naleznete na následujícím odkazu.

  • Jak zjistit, co příkaz nebo program přesně udělá, než jej provede

Doufám, že to pomůže.


Linux
  1. Jak změnit identitu systému Linux

  2. Jak spustit příkaz jako správce systému (root)?

  3. Jak spustit příkaz Vim z shellu?

  1. Jak zkontrolovat verzi OS a Linuxu

  2. Jak vypsat seznam závislostí balíčku v Linuxu

  3. Jak otestovat balíček bez jeho instalace v Linuxu

  1. Jak spouštět příkazy Linuxu na vzdáleném systému přes SSH

  2. Jak spouštět příkazy Linuxu na pozadí

  3. Jak spustit skript na pozadí (linux openwrt)?