Чи можу я створити окремий файл історії bash для кожного профілю терміналу?


18

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

У цій ситуації я б хотів за допомогою клавіші зі стрілкою вгору отримати команди, які використовувались на певній вкладці. Чи можливо це?


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

Відповіді:


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

10

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

У мене є щось на зразок наступного .bashrc:

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

Це може здатися надмірним, але ви розумієте. Це розбиває на основі

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

І ви можете додати ще більше, якщо ви думаєте про релевантні вам речі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.