Přeskočit na obsah

Historie příkazů: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
Vytvoření stránky překladem z angličtiny
 
Doplnění části "Odkazy na předchozí příkazy" z článku Tcsh
 
Řádek 28: Řádek 28:
C-shell zavedl odkazy na předchozí příkazy, které jsou tvořeny znakem vykřičník <code>!</code> následovaným dalšími znaky pro výběr příkazu, jeho části nebo provedení určité úpravy před vložením příkazu zpět do příkazového řádku. Například:
C-shell zavedl odkazy na předchozí příkazy, které jsou tvořeny znakem vykřičník <code>!</code> následovaným dalšími znaky pro výběr příkazu, jeho části nebo provedení určité úpravy před vložením příkazu zpět do příkazového řádku. Například:


:<code>!!</code> znamená celý předchozí příkaz
:<code>!!</code> celý předchozí příkaz
:<code>!''p''</code> ''p''-tý příkaz (čísla příkazů vypisuje příkaz <code>history</code>)
:<code>!$</code> znamená pouze poslední slovo předchozího příkazu
:<code>!''abc''</code> znamená příkaz, které začíná znaky ''abc''
:<code>!-''p''</code> ''p''-tý příkaz od konce
:<code>!''abc''</code> příkaz, které začíná znaky ''abc''
:<code>!?''string''</code> poslední použitý příkaz, který obsahuje řetězec ''string''
:<code>!$</code> poslední slovo předchozího příkazu
:<code>!^</code> první argument předchozího příkazu
:<code>!*</code> všechny argumenty předchozího příkazu
:<code>!:''n''</code> ''n''-tý argument předchozího příkazu
:<code>!:''m''-''n''</code> ''m''-tý až ''n''-tý argument předchozího příkazu
:<code>!:''n''-$</code> všechny argumenty od ''n''-tého až po poslední z předchozího příkazu
:<code>!''p'':''m''-''n''</code> ''m''-tý až ''n''-tý argument ''p''-tého příkazu


Používání těchto odkazů není příliš intuitivní, ale funguje i případech, kdy nelze použít editaci příkazového řádku, např. kvůli špatně nastavenému terminálu nebo [[Emulátor terminálu|terminálovému emulátoru]] s omezenou funkčností.
Používání těchto odkazů není příliš intuitivní, ale funguje i případech, kdy nelze použít editaci příkazového řádku, např. kvůli špatně nastavenému terminálu nebo [[Emulátor terminálu|terminálovému emulátoru]] s omezenou funkčností. Užitečným, stručným a často použitelným výrazem je odkaz na poslední parametr posledního příkazu – <code>!$</code>.


== Záznam historie do souboru ==
== Záznam historie do souboru ==

Aktuální verze z 29. 4. 2024, 08:41

Historie příkazů je funkcionalita, která uživateli umožňuje vyvolávat předchozí příkazy a po případné úpravě je znovu provádět. Je obsažena v mnoha shellech a jiných programech ovládaných pomocí příkazového řádku.

Historie[editovat | editovat zdroj]

V Unixu se historie příkazového řádku objevila v roce 1978, kdy ji ve svém C shellu implementoval Bill Joy[1] inspirovaný mechanismem historie v Interlispu.[2] Protože využívání historie zrychluje a usnadňuje práci, získala si oblibu mnoha uživatelů a v novějších shellech, jako je ksh nebo Bash je standardním rysem. Její užitečnost je zřejmá, např. v následujících použitích:

  • opakované provedení stejného příkazu nebo krátké posloupnosti příkazů, např. když vývojář opakovaně používá několik příkazů pro překlad a spuštění programu
  • oprava chyby nebo opakované provádění příkazu pouze s malými změnami

Kombinace s editací příkazového řádku[editovat | editovat zdroj]

Současné implementace kombinují historii s editací příkazového řádku. Kurzorové klávesy nahoru a dolů se používají pro výběr příkazu z historie a kurzové klávesy vlevo a vpravo pro pohyb v řádku na místo, kde uživatel může jednoduše zadat požadovanou změnu. Některé implementace používají menu: stiskem určité funkční klávesy, např. F7, se zobrazí nabídka posledních příkazů, ze které si uživatel může vybrat zadáním čísla. V této podobě zpřístupnil historii příkazového řádku příkaz DOSKEY v DR DOSu, jehož funkcionalita je vestavěna do interpretu Cmd.exe v Microsoft Windows.

Odkazy na předchozí příkazy[editovat | editovat zdroj]

C-shell zavedl odkazy na předchozí příkazy, které jsou tvořeny znakem vykřičník ! následovaným dalšími znaky pro výběr příkazu, jeho části nebo provedení určité úpravy před vložením příkazu zpět do příkazového řádku. Například:

!! celý předchozí příkaz
!p p-tý příkaz (čísla příkazů vypisuje příkaz history)
!-p p-tý příkaz od konce
!abc příkaz, které začíná znaky abc
!?string poslední použitý příkaz, který obsahuje řetězec string
!$ poslední slovo předchozího příkazu
!^ první argument předchozího příkazu
!* všechny argumenty předchozího příkazu
!:n n-tý argument předchozího příkazu
!:m-n m-tý až n-tý argument předchozího příkazu
!:n-$ všechny argumenty od n-tého až po poslední z předchozího příkazu
!p:m-n m-tý až n-tý argument p-tého příkazu

Používání těchto odkazů není příliš intuitivní, ale funguje i případech, kdy nelze použít editaci příkazového řádku, např. kvůli špatně nastavenému terminálu nebo terminálovému emulátoru s omezenou funkčností. Užitečným, stručným a často použitelným výrazem je odkaz na poslední parametr posledního příkazu – !$.

Záznam historie do souboru[editovat | editovat zdroj]

Některé implementace, např. Bash, podporují záznam historie příkazů do souboru,[3][4] takže je lze používat i po odhlášení a opakovaném přihlášení.

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Command history na anglické Wikipedii.

  1. JOY, Bill. An Introduction to the C shell [online]. 2018-07-13. Dostupné v archivu pořízeném z originálu. 
  2. TEITELMAN, Warren; MASINTER, Larry. Duben 1981 [cit. 2024-04-28]. Dostupné online. 
  3. Bash programming/Bash History - Wikiversity [online]. Dostupné online. 
  4. Bash Reference Manual [online]. Dostupné online. 

Související články[editovat | editovat zdroj]