Могу ли я создать отдельный файл истории Bash для каждого профиля терминала?

18

Я использую скрипт bash для запуска gnome-терминала с несколькими вкладками, каждая из которых использует свой профиль, рабочий каталог, а в некоторых случаях выполняет команду на вкладке.

В этой ситуации я хотел бы, чтобы клавиша со стрелкой вверх извлекала команды, которые использовались на определенной вкладке. Это возможно?

Inkayacu
источник
Боюсь, я не думаю, что есть способ определить профиль из оболочки.
камышовое дерево

Ответы:

16

Я полагаю, вы можете использовать пользовательскую команду gnome-terminal для каждого профиля, например

bash -c 'PROFILE=default_profile exec bash'

или

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

или похожие.

Затем в ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi
enzotib
источник
10

Пока ttyкоманда дает вам отдельные результаты (что, безусловно, должно происходить в любой стандартной среде Unix, хотя у меня были случайные ошибки в cygwin с некоторыми эмуляторами терминала), вы также можете использовать это для разделения вещей.

У меня есть что-то вроде следующего в моем .bashrc:

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

Что может показаться излишним, но вы поняли. Это разбивает его на основе

  1. на какой машине я нахожусь,
  2. кто я и
  3. на каком терминале я нахожусь.

И вы можете добавить еще больше, если вы думаете о вещах, которые имеют отношение к вам.

Филипп Ханес
источник