Czy mogę utworzyć osobny plik historii bash dla każdego profilu terminala?

18

Używam skryptu bash, aby uruchomić gnome-terminal z wieloma kartami, z których każda używa innego profilu, katalogu roboczego, a w niektórych przypadkach wykonuje polecenie na karcie.

W tej sytuacji chciałbym, aby klawisz strzałki w górę pobierał polecenia używane na określonej karcie. czy to możliwe?

Inkayacu
źródło
Obawiam się, nie sądzę, że istnieje sposób na określenie profilu na podstawie powłoki.
tumbleweed,

Odpowiedzi:

16

Podejrzewam, że możesz na przykład użyć niestandardowego polecenia gnome-terminal dla każdego profilu

bash -c 'PROFILE=default_profile exec bash'

lub

bash -c 'PROFILE=screen_profile exec screen -U'

lub podobne.

Następnie w ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi
enzotib
źródło
10

Tak długo, jak ttypolecenie daje oddzielne wyniki (co z pewnością powinno być w każdym standardowym środowisku uniksowym, chociaż czasami miałem złe zachowanie w cygwinie z niektórymi emulatorami terminali), możesz użyć tego również do oddzielania rzeczy.

Mam coś takiego .bashrc:

export HISTFILE="${HOME}/.history.d/history-"`uname -n`"-"`id -nu`"-"`tty|cut -c6-`

Co może wydawać się przesadą, ale masz pomysł. Dzieli to na podstawie

  1. na jakiej maszynie jestem,
  2. kim jestem i
  3. na jakim terminalu jestem.

I możesz dodać jeszcze więcej, jeśli myślisz o rzeczach, które są dla ciebie istotne.

Philipp Hanes
źródło