GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So können Sie Linux-Befehle trocken ausführen oder simulieren, ohne etwas am System zu ändern

Jeder Linux-Befehl hat eine oder mehrere Optionen und Flags, um verschiedene Operationen auszuführen. Lassen Sie uns heute etwas über eine der nützlichen und wichtigen Optionen lernen, die es uns ermöglichen, Linux-Befehle zu simulieren, aber das System nicht wirklich zu ändern.

Zum Beispiel können wir den Prozess der Installation oder Entfernung eines Pakets oder Programms simulieren (oder probeweise ausführen), ohne jedoch das beabsichtigte Paket tatsächlich von einem Linux-System zu installieren oder zu entfernen.

Wie Sie bereits wissen, ist die Simulation nur eine Nachahmung des Betriebs eines tatsächlichen Prozesses oder Systems, um zu überprüfen, wie der Prozess in Echtzeit funktioniert.

Simulation wird in vielen Bereichen zum Lehren, Testen, Trainieren und Lösen von Problemen eingesetzt. Lassen Sie uns nun zurückkommen und lernen, wie man Linux-Befehle simuliert.

Warum Linux-Befehle trocken ausführen oder simulieren?

Einfach. Wir können genau herausfinden, was ein Linux-Befehl macht, noch bevor wir ihn ausführen. Beispielsweise möchten Sie möglicherweise den Vim-Editor auf Ihrer Linux-Box installieren. Sie wissen nicht, welche zusätzlichen Abhängigkeiten dieses Paket mit sich brachte. Indem Sie den Installationsprozess simulieren, wissen Sie, wie viele Abhängigkeiten zusammen mit dem Paket installiert werden. Dies gilt auch für das Entfernen von Paketen. Sie wissen, welche Abhängigkeiten nach der Deinstallation eines Pakets nicht mehr benötigt werden. Es hilft Ihnen auch, sicherzustellen, dass ein Befehl richtig funktioniert, noch bevor Sie ihn ausführen. Immer noch nicht verstanden? Kein Problem. Lassen Sie mich Ihnen ein Beispiel zeigen.

Linux-Befehle simulieren

Nehmen wir an, Sie möchten Vim installieren Editor auf Ihrem Ubuntu-System.

Um die Installation von Vim auf Ubuntu zu simulieren, führen Sie einfach Folgendes aus:

$ sudo apt install vim --dry-run

Oder,

$ sudo apt install vim --simulate

Oder kurz:

$ sudo apt install vim -s

Beispielausgabe der obigen Befehle:

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

Wie Sie in der obigen Ausgabe sehen können, haben wir den Vim-Installationsprozess nur simuliert, aber nicht wirklich installiert. Am System wird nichts verändert, nur eine Simulation. Indem wir uns die Simulation ansehen, können wir herausfinden, welche zusätzlichen Pakete (Abhängigkeiten) mit dem tatsächlichen Paket installiert werden.

Ebenso können wir das Entfernen eines installierten Programms wie unten simulieren.

$ sudo apt remove vim --dry-run

Oder,

$ sudo apt remove vim --simulate

Oder kurz:

$ sudo apt remove vim -s

Beispielausgabe:

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]

Auch hier haben wir den Entfernungsprozess nur simuliert, aber nichts aus dem System entfernt. Sie können sicherstellen, welche Programme gelöscht werden, wenn Sie die obigen Befehle in Echtzeit ausführen.

Wir können sogar den gesamten Upgrade-Prozess auf Ubuntu wie unten simulieren.

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

Durch die Simulation des Upgrade-Prozesses erhalten Sie eine klare Vorstellung davon, welche Pakete aktualisiert werden.

Bitte beachten Sie, dass Nicht-Root-Benutzer die Simulation auch durchführen können . Wenn Sie die Simulation ohne sudo ausführen, sehen Sie eine Warnmeldung wie unten.

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

Was ist, wenn die Option „Probelauf“ nicht verfügbar ist?

Soweit ich weiß, haben die meisten Linux- und Unix-Befehle die Trockenlaufoption, einige Befehle jedoch nicht. Zum Beispiel yum Der Befehl hat keine Probelaufoption. Wenn Sie Installations- oder Entfernungsvorgänge von Yum simulieren möchten, verwenden Sie "setopt" Option wie unten.

$ yum install --setopt tsflags=test vim

Wenn Sie die Installation einer .rpm simulieren möchten Paket, tun:

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

Die obigen Befehle installieren vim nicht, zeigen aber an, wie "yum install vim" und "rpm -ivh" Befehle werden in Echtzeit ausgeführt.

Vielleicht sollten Sie "vielleicht" versuchen

Alternativ können Sie ein Befehlszeilendienstprogramm namens „vielleicht“ verwenden um Linux-Befehle zu simulieren. Es ermöglicht Ihnen, einen Befehl auszuführen und zu sehen, was er mit Ihren Dateien macht, ohne es tatsächlich zu tun! Nachdem Sie die aufgelistete Ausgabe überprüft haben, können Sie entscheiden, ob Sie sie wirklich ausführen möchten oder nicht. Weitere Einzelheiten finden Sie unter folgendem Link.

  • Wie Sie wissen, was ein Befehl oder Programm genau tun wird, bevor Sie es ausführen

Hoffe das hilft.


Linux
  1. So überprüfen Sie die Betriebssystem- und Linux-Version

  2. So listen Sie die Abhängigkeiten eines Pakets in Linux auf

  3. So testen Sie ein Paket, ohne es unter Linux zu installieren

  4. So ändern Sie die Identität eines Linux-Systems

  5. Wie führe ich einen Befehl als Systemadministrator (root) aus?

So ändern Sie die Standard-Shell im Linux-System

So verwenden Sie den fd-Befehl auf einem Linux-System

Die 50 nützlichsten Linux-Befehle zum Ausführen im Terminal

So führen Sie sudo-Befehle ohne Passwort aus

So führen Sie ein Downgrade von Paketen auf einem Linux-System durch:Der ultimative Leitfaden

So führen Sie .run- und .bin-Pakete im Linux-System aus