Použil jsem
history | less
získat řádky předchozích příkazů a z čísel na levé straně jsem našel řádek, který jsem chtěl zopakovat (např. 22) a udělal
!22
na příkazovém řádku a fungovalo to - provedení sady příkazů na řádku, který jsem v té době udělal. Nemohu zjistit, kde se používá vykřičník, co představuje z hlediska akcí prováděných bash a kde jej použít. Z dokumentace nevidím vysvětlení, které by bylo ‚hmatatelné‘.
Přijatá odpověď:
!
vyvolá expanzi historie, funkci, která se původně objevila v prostředí C, v dobách, kdy jste se mohli spolehnout na to, že terminály budou mít klávesy se šipkami. Je to zvláště užitečné, pokud do výzvy přidáte aktuální číslo příkazu (PS1="!$ "
), takže se můžete rychle podívat na obrazovku a získat čísla pro minulé příkazy.
Nyní můžete používat klávesy se šipkami a věci jako Ctrl-R pro prohledávání historie příkazů nevidím pro tuto funkci mnoho využití.
Jedna z jeho variant, která by se vám mohla stále hodit, je !!
, který znovu provede předchozí příkaz. Sama o sobě nenacházím ! ! Zadejte rychleji než jen ↑ Zadejte , ale může být užitečné, když je zkombinován do většího příkazu.
Příklad: Běžná chyba pilota v sudo
založené na systémech je zapomenout na sudo
prefix u příkazu, který vyžaduje zvláštní oprávnění. Nováček přepíše celý příkaz. Pilný student upraví příkaz z historie příkazů shellu. Osvícený píše sudo !!
.
Zpracovává se !
tímto způsobem je v Bash standardně povolen v interaktivních shellech a lze jej zakázat pomocí set +o histexpand
nebo set +H
. Můžete jej deaktivovat v Zsh pomocí set -K
.