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

16

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

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

    
задан Inkayacu 10.01.2012 в 22:03
источник

2 ответа

14

Я полагаю, вы можете использовать пользовательскую команду 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.01.2012 в 22:34
источник
8

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

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

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

Что может показаться излишним, но вы получите эту идею. Он разбивает его на основе

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

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

    
ответ дан Philipp Hanes 26.02.2013 в 21:32