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

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

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

17 голосов | спросил Inkayacu 11 Jam1000000amWed, 11 Jan 2012 01:03:37 +040012 2012, 01:03:37

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 11 Jam1000000amWed, 11 Jan 2012 01:34:12 +040012 2012, 01:34:12
8

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

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

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

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

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

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

ответил Philipp Hanes 27 FebruaryEurope/MoscowbWed, 27 Feb 2013 00:32:23 +0400000000amWed, 27 Feb 2013 00:32:23 +040013 2013, 00:32:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132