Bash / Unix protip 0035
in 𝕏

echo 'PROMPT_COMMAND="history -a"' >> ~/.profile - aktualizuj ~/.bash_history na bieżąco

tty1 · bash
$ echo 'PROMPT_COMMAND="history -a"' >> ~/.profile
#Unix#Bash#PowerUser

W zmiennej systemowej $PROMPT_COMMAND zawarte jest polecenie, które uruchamia się przed każdym wyświetleniem prompta w bashu. Dodanie tam polecenia history -a spowoduje w konsekwencji, że po zakończeniu wykonywania polecenia, trafi ono automatycznie do ~/.bash_history.

Warto jeszcze wiedzieć i mieć ustawione shopt -s histappend, które powoduje, ze historia jest dopisywana, a nie nadpisywana. Żeby sprawdzić status można uruchomić shopt -p histappend. W ogóle nie jest głupim pomysłem zapoznanie się z innymi opcjami basha: shopt -p.

I po co?

Może być to super wygodne, zwłaszcza przy częstej pracy z wieloma terminalami jednocześnie:

  • nawet po zabiciu sesji historia nie przepadnie, bo jest zapisywana na bieżąco,
  • w innej sesji/w innym terminalu możemy mieć dostęp do historii innych poprzez wczytanie od nowa aktualnego ~/.bash_history wykorzystując history -r.
  • <redteam> czyż to nie brzmi jak fajny backdor? </redteam> :)

Przydatne linki

http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html więcej o PROMPT_COMMAND, web ↗ https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Bash-History-Builtins więcej o samym history, web ↗ https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html warto poznać shopt. web ↗
← poprzedni protip 0034 ••• Wszystkie protipy następny → protip 0036
// subskrybuj

Nowe protipy prosto na maila.

Mięsiste jednolinijkowce i triki z prawdziwych zleceń. Zero spamu, zero teorii. Wypisujesz się jednym kliknięciem.

wersja newslettera: