GNU/Linux >> Znalost Linux >  >> Linux

Omylem jsem zadal heslo do příkazového řádku bash

Z bash můžete odstranit pouze problematický řádek místo vymazání celé historie. Jednoduše odstraňte řádek pomocí -d flag, pak uložte (zapište) novou historii pomocí -w příznak:

$ history
351 ssh [email protected]
352 my_password
$ history -d 352
$ history -w

Má to dvě části:

  • bash ukládá historii do souboru ~/.bash_history který je ve výchozím nastavení zapsán na konci relace
  • history který se uchovává v paměti

Chcete-li být v bezpečí, musíte jej vymazat z relace:

history -c

a podle potřeby zkrátit soubor historie:

> ~/.bash_history

Pokud je vaše relace, ve které jste zadali heslo, stále otevřená, pak jiný způsob, jak zakrýt trasování je nastavit HISTFILE proměnnou na null zařízení, aby se historie nezapisovala do ~/.bash_history při ukončení relace:

export HISTFILE=/dev/null

Vzhledem k tomu, že bash (alespoň všechny historické a současné verze, o kterých vím) automaticky neukládá historii, dokud neukončíte, obecně použitelnou strategií, když zadáte příkaz, který chcete zajistit, že se nikdy neuloží, je okamžitě napsat:

kill -9 $$

Toto ukončí shell pomocí SIGKILL , který nelze chytit, takže shell nemá žádný způsob, jak při výstupu něco zachránit.

Většina ostatních přístupů zahrnuje scrubbing po faktu (tj. poté, co data již dorazila na disk), což má mnohem větší šanci na chybu (chybějící kopie), zvláště pokud systém používá btrfs nebo podobně.


Linux
  1. Předat argumenty příkazového řádku skriptu Bash?

  2. Jak přihlásit každý příkaz zadaný do Bash a každou operaci se souborem?

  3. 15 Příklady pro zvládnutí historie příkazového řádku Linuxu

  1. Jak zakázat úpravu mé historie v bash

  2. Historie Bash bez čísel řádků

  3. argumenty příkazového řádku pro spuštění dockeru

  1. Jak vymazat historii příkazového řádku BASH v Linuxu

  2. Jak vymazat historii Bash na Linuxu

  3. Bash, pokud na jednom řádku