!!
hat nichts damit zu tun apt-get
. Es ist ein Shell-Schlüsselwort, das auf den vorherigen Befehl erweitert wird. Diese Erweiterung wird von der Shell durchgeführt, bevor der aktuelle Befehl interpretiert wird.
Von man bash
:
!! Lesen Sie den vorherigen Befehl. Dies ist ein Synonym für! -1.
Wenn Sie beispielsweise einen Befehl ausführen:
echo "foo"
Wenn du dann rennst:
sudo apt-get install !!
es wird erweitert auf:
sudo apt-get install echo foo
Wie Sie sehen, ist es nämlich in zwei Pakete erweitert echo
und das andere ist foo
. Es gibt kein eigenständiges Paket namens foo
und echo
. Abgesehen von der eingebauten Shell echo
gibt es eine /bin/echo
ausführbare Datei, die Teil des GNU-Coreutils-Pakets ist. Sie erhalten also die Fehlermeldung, dass keine solchen Pakete verfügbar sind.
Auf der anderen Seite könnte die andere Person so etwas tun:
$ cowsay
The program 'cowsay' is currently not installed. You can install it by typing:
sudo apt-get install cowsay
$ sudo apt-get install !!
sudo apt-get install cowsay
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
filters
The following NEW packages will be installed:
cowsay
0 upgraded, 1 newly installed, 0 to remove and 119 not upgraded.
Need to get 18.5 kB of archives.
Wie Sie sehen, cowsay
wird gerade installiert.
Ich würde Ihnen empfehlen, dies nicht zu tun (es sei denn, Sie sind sich sicher), explizit zu sein, schadet nicht.