Réponses:
La fonction history
intégrée bash
permet de spécifier les noms de fichiers lorsqu'ils sont utilisés avec des -anrw
indicateurs, et la -a
description des indicateurs à partir des help history
états:
ajouter des lignes d'historique de cette session au fichier historique
Par conséquent, nous pouvons faire:
~$ history -a this_session.history
~$ cat ./this_session.history
history mysession.history
cat mysession.history
clear
history -a this_session.history
Pour mémoire, -w
(l'historique d'écriture dans le fichier d'opion) écrit tout l' historique dans le fichier spécifié, donc -a
(ajouter) ici est le choix préféré.
Il existe d'autres moyens manuels. En particulier, ksh
n'a pas de -a
drapeau bash
, mais ce qui est ksh
et mksh
est HISTFILE
une variable d'environnement (et l' bash
a aussi, car il bash
inclut de nombreuses ksh
fonctionnalités); par ailleurs, cette variable par défaut n'est pas définie (au moins mksh
sur Ubuntu ne l'a pas définie). Ainsi, pour sortir la session en cours dans un autre fichier, nous appelons la HISTFILE
commande prepended to qui, dans la syntaxe du shell, signifie exécuter la commande avec la variable d'environnement supplémentaire que vous spécifiez. Ainsi:
bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$
bash-4.4$ cat ./mykshfile.hist
�echo 'Hello'
echo 'World'
Ce que vous pouvez également voir à partir de cela, c'est que ksh
et ses shells associés affichent l'historique avec des caractères spéciaux, au lieu de texte brut comme ce qui se bash
passe. Donc, vous voudrez peut-être ouvrir ce fichier avec ksh
.
En ce qui concerne le shell POSIX /bin/sh
sur Ubuntu , qui est Debian Almquist Shell ou Dash, il existe un système fc
intégré . Cependant, sur Ubuntu , le tableau de bord est compilé sans lib-edit , ce qui est un choix délibéré des développeurs Ubuntu pour des raisons de performances, fc
et les autres modes qui nécessitent une modification de ligne ne fonctionnent pas dès le départ (sauf recompilation dash
et installation lib-edit
).
Les méthodes neutres du shell seraient d' enregistrer votre session avec les outils existants ou d' écrire votre propre fonction pour enregistrer par commande.