GNU/Linux >> Znalost Linux >  >> Linux

Zkažená historie?

V režimu gui, když má uživatel otevřených více než jeden terminál, jak terminály přepíší soubor historie tohoto uživatele? důvod, proč se ptám, je ten, že je docela možné, že v každém z terminálů uživatel skončí s prováděním různých příkazů. Takže skončí soubor historie uložením příkazů ze všech terminálů nebo pouze z toho prvního, který se má otevřít? Nebo existuje nějaký jiný druh schématu, který se používá k řešení této situace?

Přijatá odpověď:

Zcela záleží na tom, jak se s tím shell rozhodne zacházet

bash ve výchozím nastavení přepíše soubor historie místní historií každého shellu při jeho ukončení, takže vyhrává poslední shell, který skončil. histappend volba způsobí, že se místo toho připojí k hlavní historii (shopt -s histappend ).

zsh dělá totéž ve výchozím nastavení a má několik možností, jak se s tím vypořádat:

  • appendhistory — Historie každého shellu je připojena k hlavnímu souboru historie při ukončení shellu
  • incappendhistory — Soubor hlavní historie se aktualizuje pokaždé, když je spuštěn řádek v libovolném prostředí, místo čekání na ukončení tohoto prostředí
  • sharehistory — Jako incappendhistory , ale také přenáší změny z hlavního souboru historie do všech spuštěných shellů, takže můžete spustit příkaz v jednom shellu a poté stisknout Nahoru v jiné skořápce a uvidíte to

Linux
  1. Jak provést příkaz v prostředí Shell bez jeho uložení do historie? [Tipy pro Linux]

  2. Substituce historie selže při implementaci do skriptu Shell?

  3. Jak nechat typ-ahead použít pro vyhledávání v historii Bash (ctrl-r)?

  1. Dočasně pozastavit Bash_history na daném shellu?

  2. Archivovat historii bez opuštění Shell?

  3. Jak na to:Neomezená historie Bash/shell?

  1. Historie příkazového řádku v Linuxu

  2. Příkaz historie Linuxu

  3. CentOS / RHEL :Jak zakázat historii shellu BASH