web-dev-qa-db-fra.com

Puis-je créer un fichier d'historique bash distinct pour chaque profil de terminal?

J'utilise un script bash pour démarrer gnome-terminal avec plusieurs onglets, chaque onglet utilisant un profil différent, un répertoire de travail et, dans certains cas, en exécutant une commande dans l'onglet.

Dans ce cas, j'aimerais que la flèche vers le haut récupère les commandes utilisées dans un onglet spécifique. Est-ce possible?

18
Inkayacu

Je suppose que vous pouvez utiliser une commande personnalisée gnome-terminal pour chaque profil, par exemple

bash -c 'PROFILE=default_profile exec bash'

ou

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

ou similaire.

Puis dans ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi
16
enzotib

Tant que la commande tty vous donne des résultats distincts (ce qui devrait certainement être le cas dans tout environnement Unix standard, même si des problèmes de comportement se sont produits de temps à autre avec cygwin avec certains émulateurs de terminal), vous pouvez également l'utiliser pour séparer des éléments. .

J'ai quelque chose comme ce qui suit dans mon .bashrc:

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

Ce qui peut sembler excessif, mais vous voyez l'idée. Il divise en fonction de

  1. sur quelle machine je suis,
  2. qui je suis et
  3. sur quel terminal je suis.

Et vous pouvez ajouter encore plus si vous pensez à des choses qui vous concernent.

10
Philipp Hanes