Pracuji na klientském projektu, který je hostován v digitálním oceánu na serveru ubuntu, pracuji na něm s několika dalšími vývojáři a jsem tak trochu nový a vytvořil jsem spoustu příkazů a je to opravdu chaotické. Jak mohu odstranit historii příkazů až do určitého bodu?
Chtěl bych například odstranit všechny příkazy, které jsem dnes zadal, a ponechat všechny předchozí příkazy, je to možné?
Pro ostatní vývojáře je snazší najít předchozí příkazy, aniž by museli procházet všechny moje. Je možné vymazat bash_history až do určitého bodu, například pouze dnešní historii? Pokud ano, jak?
Prosím, poraďte!
Díky!
Přijatá odpověď:
Řádky v historii Bash jsou uloženy jako prosté řádky textu bez jakýchkoli metainformací, jako je časové razítko vyvolání. Není tedy možné automaticky vymazat celou historii příkazů z jednoho dne, protože už jednoduše nemůžete říct, který příkaz byl kdy spuštěn.
Pokud chcete jednoduše odstranit celou historii příkazů vaší aktuální relace Bash (tj. vše, co je stále pouze v paměti a ještě není zapsáno na disk), můžete buď vymazat vyrovnávací paměť historie v paměti, nebo ji nahradit starou historií. obsah souboru z disku.
-
Vymazání vyrovnávací paměti historie bude mít za následek prázdnou historii v paměti pro vaši aktuální relaci, což znamená, že pokud stisknete ↑, nezobrazí se žádné příkazy atd. Jakmile opustíte relaci Bash, všechny nové příkazy, které byly zadané po vymazání, budou připojeny k souboru historie a v další relaci znovu uvidíte kompletní historii, pouze s rozsahem mezi začátkem vaší poslední relace a chybí příkaz clear.
history -c
-
Nahrazení aktuální vyrovnávací paměti historie v paměti obsahem souboru historie z disku bude mít stejný konečný výsledek jako vymazání vyrovnávací paměti historie, kromě toho, že v aktuální relaci budete mít přístup ke staré historii příkazů namísto prázdného seznamu.
history -r
Pokud to pro vás není užitečné, protože si chcete uklidit záznamy z předchozích sezení nebo pouze částečné sezení, potřebujete chirurgickou metodu:
Synchronizujte svou aktuální vyrovnávací paměť historie se souborem historie na disku a poté tento soubor otevřete v textovém editoru a ručně odstraňte všechny problematické položky.
Související:Které složky zahrnout do zálohy?Chcete-li přidat historii z aktuální relace k souboru historie ručně (protože se to stane automaticky pouze při ukončení relace), spusťte nejprve toto:
history -a
Poté otevřete soubor historie Bash ~/.bash_history
ve vašem oblíbeném textovém editoru (když jste na serveru, navrhoval bych např. nano
) a upravte seznam příkazů podle svých představ. Soubor uvádí všechny zaznamenané příkazy v chronologickém pořadí, nejnovější příkazy jsou poslední. Jednoduše odstraňte problematické řádky a uložte svou práci.
Poté byste měli znovu načíst upravenou historii do vyrovnávací paměti historie pomocí příkazu níže, abyste zabránili tomu, aby byly staré záznamy z paměti připojeny k souboru s upravenou historií, když ukončíte relaci:
history -r