it-swarm-eu.dev

Jak odstranit jeden řádek z historie?

Pracuji v Mac OSX, takže myslím, že používám bash ...?

Někdy zadávám něco, co si v historii nechci pamatovat. Jak jej odstraním?

228
B Seven

Preventivní opatření

Pokud chcete spustit příkaz, aniž byste jej uložili do historie, přidejte jej s mezerou navíc

Prompt$ echo saved
Prompt$  echo not saved \
> #     ^ extra space

Aby to fungovalo, potřebujete buď ignorespace nebo ignoreboth v HISTCONTROL. Například spusťte

HISTCONTROL=ignorespace

Chcete-li, aby toto nastavení bylo trvalé, vložte jej do svého .bashrc.

Postmortální čištění

Pokud jste již příkaz spustili a chcete jej odstranit z historie, nejprve jej použijte

history

pro zobrazení seznamu příkazů v historii. Vyhledejte číslo vedle čísla, které chcete odstranit (např. 1234), a spusťte

history -d 1234

Kromě toho, pokud byl řádek, který chcete odstranit, již zapsán do vašeho $ HISTFILE (což se obvykle stane, když ve výchozím nastavení ukončíte relaci), budete muset napsat zpět do $ HISTFILE, nebo se řádek znovu objeví, když otevřete nový zasedání:

history -w
390
jw013
  1. Chcete-li vymazat celou svou historii, použijte

    history -c
    
  2. Chcete-li odstranit jeden řádek, použijte

    history -d linenumber
    
54
soumyaranjan

Mám to ve svém ~/.bashrc, což dělá příkaz $ forget odstranit předchozí příkaz z historie

function forget() {                                                              
   history -d $(expr $(history | tail -n 1 | grep -oP '^ \d+') - 1);              
}
9
Ryan Haining

Vždy můžete upravovat a odstraňovat záznamy z ~/.bash_history, užitečné, pokud chcete odebrat jeden nebo více záznamů

5
Weslor

Pokud chcete zapomenout na celou bash relaci, můžete kill aktuální bash proces. Od proměnné $$ podržte pid aktuálního prostředí, můžete:

kill -9 $$
5
Bruno Bronosky

Rychlé kroky:

  1. Zjistěte, kde je soubor historie vašeho terminálu pomocí echo $HISTFILE
  2. Otevřete soubor pomocí textového editoru
  3. Odstraňte citlivé řádky, které tam najdete
  4. Uložte soubor
  5. Zavřete a znovu otevřete svůj terminál
  6. HOTOVO : vaše historie je čistá! To můžete ověřit spuštěním příkazu history v terminálu
0
marcelosalloum

V Ubuntu (ale jsem si jistý, že to bude fungovat i pro další distribuce Linuxu a také pro MacOS). Soubor s historií bash lze jednoduše editovat v libovolném textovém editoru:

$ nano ~/.bash_history

Pokud nevíte, kde je uložena, najdete ji takto:

$ echo $HISTFILE

Nebo to můžete udělat jen o něco obecnější:

$ nano $HISTFILE
0
automatix

Po vymazání historie musíte napsat změny. A pokud byste nechtěli mít v historii historii příkaz k vymazání historie, musíte příkaz spustit takto:

history -c && history -w && logout

Hodně štěstí.

0
user882786

Chcete-li odebrat jeden řádek ze souboru historie, použijte volbu -d. Pokud například chcete vymazat příkaz, ve kterém jste zadali heslo pro prostý text jako ve výše uvedeném scénáři, vyhledejte číslo řádku v souboru historie a spusťte tento příkaz.

$ history -d 2038

Chcete-li odstranit nebo vymazat všechny záznamy z historie bash, použijte příkaz historie níže s možností -c.

$ history -c

Případně můžete použít příkaz níže k odstranění historie všech naposledy provedených příkazů trvale v souboru.

$ cat /dev/null > ~/.bash_history

S Bash 5 můžete také odstranit rozsah

history -d 511-520

0
champion-runner

1- v bash terminálu typu

history # Zobrazí seznam všech příkazů v souboru .bash_history v historii s čísly řádků

ex:

  ...
  987  cd
  988  ssh [email protected]
  990  exit
  991  cd

2 - vyberte číslo řádku CMD, který chcete odstranit

history -d 988

Poznámka: Pokud chcete smazat například poslední 3 CMD, stačí vybrat číslo třetího řádku ze spodní části ex: 988 a zopakovat CMD history -d 988 3krát za sebou.

0
KhogaEslam