
Was bedeutet ! in einem Befehl? Was ist beispielsweise die Ausgabe des ls-Befehls, wenn man ihn in (!ls) einfügt?
Antwort1
Es bedeutet, den letzten Befehl in Ihrer Verlaufsliste auszuführen, der mit beginnt, ls
wie mir gesagt wurde. Wenn Sie zuletzt einen Befehl von ausgeführt haben, lsb_release
dann wäre das „ran“. Wenn Sie nur den Befehl ausführen, ls
erhalten Sie die Verzeichnisliste. Es führt den letzten oder aktuellsten Befehl aus, der mit dem von Ihnen angegebenen beginnt.
Wenn Sie history
auf Ihrem System ausführen, werden Ihnen alle Befehle angezeigt, die Sie ausgeführt haben. Und wenn Sie einen bestimmten Befehl aus Ihrem Verlauf möchten, wäre das !#
etwa so: !1990
würde meinen vorherigen Befehl ausführen cd
.
Beispiel für die Verlaufsausgabe:
1990 cd
1991 sync
1992 ssh [email protected]
1993 sync
1994 sync
1995 sudo apt autoremove
1996 reboot
1997 sudo apt remove nvidia-driver-430
1998 sudo apt install nvidia-driver-435
1999 sudo apt autoremove
2000 reboot
2001 ./intrepid_check.bsh
2002 ssh intrepid
2003 ls -al
2004 ls
2005 ls -al
2006 history
terrance@terrance-ubuntu:~$
Und wenn ich den letzten Befehl in dieser Liste ausführen möchte, ssh
gebe ich ihn ein als
!ssh
Beispiel:
terrance@terrance-ubuntu:~$ !ssh
ssh intrepid
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.0.0-29-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
* Congrats to the Kubernetes community on 1.16 beta 1! Now available
in MicroK8s for evaluation and testing, with upgrades to RC and GA
snap info microk8s
* Canonical Livepatch is enabled.
- All available patches applied.
0 packages can be updated.
0 updates are security updates.
Your Hardware Enablement Stack (HWE) is supported until April 2023.
You have mail.
Last login: Wed Sep 25 21:38:55 2019 from 10.0.0.100
-------------------------------------------------------------- 09/25/19 21:43:36
terrance@Intrepid:~$
Hoffe das hilft!
Antwort2
Lesen Sie man bash
. Darin heißt es auszugsweise:
Event Designators
An event designator is a reference to a command line entry in the history list. Unless
the reference is absolute, events are relative to the current position in the history
list.
! Start a history substitution, except when followed by a blank, newline, carriage
return, = or ( (when the extglob shell option is enabled using the shopt builtin).
!n Refer to command line n.
!-n Refer to the current command minus n.
!! Refer to the previous command. This is a synonym for `!-1'.
!string
Refer to the most recent command preceding the current position in the history list
starting with string.
!?string[?]
Refer to the most recent command preceding the current position in the history list
containing string. The trailing ? may be omitted if string is followed immediately
by a newline.
^string1^string2^
Quick substitution. Repeat the previous command, replacing string1 with string2.
Equivalent to ``!!:s/string1/string2/'' (see Modifiers below).
!# The entire command line typed so far.