Problématique
- Lorsqu'on se connecte plusieurs fois sur une même machine par ssh, l'historique conservé dans le fichier
~/.bash_history
est le dernier à se déconnecter de la machine en question. Cela signifie que l'on perd tout l'historique des autres sessions. C'est quelque chose de rageant, surtout si on avait fait une superbe commande complexe qui méritait d'être préservée, notamment pour compléter une documentation. - On veut aussi savoir quand les commandes ont été tapées et surtout par qui lorsqu'on est plusieurs à partager un même compte d'administration comme le compte root, le tout avec sudo.
Solutions
En cherchant un peu sur le net, nous trouvons cette page qui semble être l'une des plus avancée dans cette gestion de l'historique avec bash :
Son intérêt, c'est de penser à la conservation du contexte d'exécution des commandes en enregistrant le répertoire de travail de la commande historisée.
Évolutions apportées
L'objectif de cette historisation des commandes en bash a pour vocation de savoir qui fait quoi en tant qu'utilisateur administrateur (root) sur chaque machine administrée. En effet, lorsqu'on est plusieurs à administrer une machine, donc à utiliser le compte root, on ne s'embarrasse pas de taper toutes les commandes en les commençant par un sudo redondant mais on a plutôt tendance à exécuter un shell bash interactif — genre sudo -i ou -s
.
Dans la solution précédente, il manque l'information de l'utilisateur ayant fait le sudo pour devenir root ainsi que la concaténation de tous les historiques des différentes personnes dans un historique commun propre à root. Enfin, on souhaite pouvoir aussi se connecter directement en root et continuer à bénéficier de l'historique alimenté par tous les administrateurs.
Explications
Les scripts suivants introduisent plusieurs fonctions utilisées pour donner un fichier d'historique contenant toutes les informations voulues. Ces scripts ( ~/bin/acd_func.sh
et ~/bin/a_loghistory_func.sh
) sont le cœur de l'application.
_loghistory
— fonction qui gère l'historique en ajoutant toutes les informations souhaitées (tty
,user
,sudo_user
,date de la commande
,répertoire de la commande
).- La variable
PROMPT_COMMAND
décrit ce qu'il faut exécuter à l'affichage de chaque nouveau prompt. On fait donc en sorte d'utiliser_loghistory
. cd_func
— fonction de gestion des changements de répertoire. Permet l'ajout des répertoires successifs dans une pile des 10 plus récents répertoires utilisés et qui va permettre de l'utiliser pour revenir à ces anciens répertoires (utilise les commandes interne à bashpushd, popd
etdirs
. La pile de répertoires est limitée à 10 emplacements.- Exemple : si
dirs
renvoie~ /etc /tmp
, utilisercd -2
nous ramènera au répertoire/tmp
.
- Exemple : si
- À la connexion, l'ensemble des 20 derniers répertoires utilisés sera chargé dans la pile des répertoires de travail de
dirs
etcd_func
. Il sera donc possible, après déconnexion, de revenir à un répertoire de travail qu'on aurait perdu sinon.
En plus du cœur de l'application, il y a aussi quelques scripts organisant un peu plus finement le ~/.bashrc
. Celui-ci fait appel à des fichiers se trouvant dans le répertoire ~/.bashrc.d/
et contenant les adaptations personnelles comme les variables shell, les fonctions propres à notre utilisation ainsi que la partie initialisation des scripts de gestion de l'historique. Ces derniers se trouvent dans ~/bin/
.
Enfin, il y a quelques fonctions utilitaires supplémentaires :
hh
— l'historique complet avec toutes les informations.h
— alias vershistory
cd
— alias vers la fonctioncd_func
- hd — liste l'ensemble des derniers répertoires de travail.
Cette solution modifie le comportement de :
cd
qui devient un alias sur la fonctioncd_func
décrite ci-dessous ;- l'historique (utilisation de la fonction
_loghistory
)
Ajoute les fonctions d'historique suivantes :
h
comme alias vershistory
resté inchangé ;hh
, fonction d'historique complet avec toutes les infos (répertoire de travail, utilisateur faisant la commande, date de la commande, fin des sessions, tty utilisé) ;- hd, fonction d'historique des répertoires de travail.
Cette solution crée les fichiers suivants :
~/.history_log.<nom fqdn machine>.<login utilisateur>
— le fichier d'historique complet avec toutes les informations~/.history-<nom fqdn machine>.<login utilisateur>
— le fichier d'historique normal (mais avec un nom différent)./root/.history-<nom fqdn machine>.root
— le fichier d'historique complet de root si on fait du sudo root.
Les scripts
Voici les quelques scripts nécessaires au bon fonctionnement de cet historique commun pour root et correctement mis en place pour un usage par utilisateur privé.
~/.bashrc
[ -r /etc/bashrc ] && . /etc/bashrc # Check for an interactive session [ -z "$PS1" ] && return ################# charger tous les fichiers ################### [ -r ~/.bashrc.d/general ] && source ~/.bashrc.d/general
~/.bashrc.d/general — le fichier qui charge les autres fichiers d'initialisation des paramètres du bash (en intéractif)
########## Options de bash ############## # pour ne pas écraser mais ajouter les nouvelles lignes de bash à l'historique # options normalement par défaut - donc normalement inutile shopt -s histappend cmdhist # pour ne pas avoir à faire cd avant de changer de répertoire : (à expérimenter) #shopt -s autocd ################# Variables locales ################# [ -r ~/.bashrc.d/variables ] && source ~/.bashrc.d/variables ############## Historique ############### # solution d'ici : # http://nodsw.com/blog/leeland/2012/03/07-all-bash-history-revisited-load-time-solved-plus-directory-history [ -r ~/.bashrc.d/history ] && source ~/.bashrc.d/history ############## Alias ################ [ -r ~/.bashrc.d/aliases ] && source ~/.bashrc.d/aliases ################ Fonctions #################### [ -r ~/.bashrc.d/functions ] && source ~/.bashrc.d/functions
~/.bashrc.d/aliases — initialisation de bash : les alias personnels
# les alias de bash # quelques idées ici : http://tldp.org/LDP/abs/html/sample-bashrc.html alias ls='ls --color=no' # quelques alias alias ...='cd ../..' alias ..='cd ..' # F pour afficher le type de fichier après son nom alias la='ls --color=auto -al -F' alias ll='ls --color=auto -l -F' alias l='ls --color=auto -l -F' alias lr='ls --color=auto -lart -F' alias rm='rm -i' alias mv='mv -i' alias cp='cp -i' alias view='vim -R' alias v='vim' alias e='emacs' alias vi='vim' alias more='less -FE' alias grep='grep --color=always'
~/.bashrc.d/variables — initialisation de bash : les variables shell personnelles
# le fichier des variables de bash # note : pour trouver l'ip d'une machine : # ip -r -o -f inet addr | awk '{print $4}' | grep -v "127.0.0.1" # prompt PS1='\ \[\033[00m\][\ \[\033[31m\]\u\ \[\033[00m\]@\ \[\033[35m\]\h\ \[\033[00m\]:\ \[\033[34m\]\w\ \[\033[00m\]]\ \[\033[00m\]\$\ ' export PS1 # pour les codes de couleur dans bash : # - https://wiki.archlinux.org/index.php/Color_Bash_Prompt # - http://dougbarton.us/Bash/Bash-prompts.html # - https://bbs.archlinux.org/viewtopic.php?id=1817 # - http://gilesorr.com/bashprompt/prompts/index.html # sur les serveurs, on a rarement emacs et vim est presque # systématiquement en place. export EDITOR='vim' # pour tout ce qui concerne l'historique, cf. ~/.bashrc.d/history # path - c'est mieux d'avoir les sbin dans le path PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin # le fichier de conf perso de mercurial HGRC=~/.hgrc # Définir la variable Xauthority permet de ne pas avoir de problème # d'utilisation des applications X à distance comme system-config-lvm. XAUTHORITY=~/.Xauthority export PATH HGRC XAUTHORITY # git export GIT_COMMITTER_NAME="T-o-t-o T-i-t-i" export GIT_AUTHOR_NAME="T-o-t-o T-i-t-i" export GIT_COMMITTER_EMAIL="T-o-t-o T-i-t-i <t-o-t-o.t-i-t-i@t-u-t-u.local>" export GIT_AUTHOR_EMAIL="T-o-t-o T-i-t-i <t-o-t-o.t-i-t-i@t-u-t-u.local>"
~/.bashrc.d/functions — initialisation de bash : les fonctions bash pour son propre usage
# mes fonctions bash # créer un répertoire et y aller juste après function mkcd { if [ ! -z $1 ] ; then mkdir -p $1 cd $1 fi }
~/.bashrc.d/history — initialisation de bash : la gestion de l'historique
# gestion de l'historique # repris de : # - http://nodsw.com/blog/leeland/2012/03/07-all-bash-history-revisited-load-time-solved-plus-directory-history # are we an interactive shell? if [ "$PS1" ]; then HOSTNAME=$(hostname -s || echo unknown) # add cd history function [[ -f ${HOME}/bin/acd_func.sh ]] && . ${HOME}/bin/acd_func.sh # make bash autocomplete with up arrow -- ne fonctionne pas ! #bind '"\e[A":':"history-search-backward" #bind '"\e[B":':"history-search-forward" ################################## # BEG History manipulation section # Don't save duplicated commands (two consecutive identical commands) export HISTCONTROL=ignoredups # Enable huge history export HISTFILESIZE=9999999999 export HISTSIZE=9999999999 # Ignore basic "ls" and history commands export HISTIGNORE="ls:ls -al:ll:history:h:h[dh]:h [0-9]*:h[dh] [0-9]*" # Save timestamp info for every command export HISTTIMEFORMAT="[%F %T] ~~~ " # Dump the history file after every command shopt -s histappend export PROMPT_COMMAND="history -a;" [[ -f ${HOME}/bin/a_loghistory_func.sh ]] && . ${HOME}/bin/a_loghistory_func.sh # Specific history file per host export HISTFILE=$HOME/.history-$HOSTNAME-$USER save_last_command () { # Only want to do this once per process if [[ -z "$SAVE_LAST" ]]; then tty_id=$(tty) if [[ -z $SUDO_USER ]] then EOS=" # Fin session [${USER}@${HOSTNAME}] [${tty_id##/dev/}])" else EOS=" # Fin session [${USER}(sudo:${SUDO_USER})@${HOSTNAME}] [${tty_id##/dev/}])" fi export SAVE_LAST="done" if type _loghistory >/dev/null 2>&1; then _loghistory _loghistory -u -y -t -c "$EOS" else history -a fi /bin/echo -e "#`date +%s`\n$EOS" >> ${HISTFILE} fi } trap 'save_last_command' EXIT # END History manipulation section ################################## # Preload the working directory history list from the directory history if type -t hd >/dev/null && type -t cd_func >/dev/null; then liste=$(hd 20) for x in ${liste[@]} do cd_func $x done cd_func "$(pwd)" fi fi
~/bin/acd_func.sh — la fonction de changement de répertoire (cd_func)
Enfin, il faut aussi mettre deux scripts à utiliser pour maintenir les fichiers d'historique correctement.
# do ". acd_func.sh" # acd_func 1.0.5, 10-nov-2004 # petar marinov, http:/geocities.com/h2428, this is public domain # repris de : # - http://nodsw.com/blog/leeland/2012/03/07-all-bash-history-revisited-load-time-solved-plus-directory-history cd_func () { local x2 the_new_dir adir index local -i cnt if [[ $1 == "--" ]]; then dirs -v return 0 fi the_new_dir=$1 [[ -z $1 ]] && the_new_dir=$HOME if [[ ${the_new_dir:0:1} == '-' ]]; then # # Extract dir N from dirs index=${the_new_dir:1} [[ -z $index ]] && index=1 adir=$(dirs +$index) [[ -z $adir ]] && return 1 the_new_dir=$adir fi # # '~' has to be substituted by ${HOME} [[ ${the_new_dir:0:1} == '~' ]] && the_new_dir="${HOME}${the_new_dir:1}" # # Now change to the new dir and add to the top of the stack pushd "${the_new_dir}" > /dev/null [[ $? -ne 0 ]] && return 1 the_new_dir=$(pwd) # # Trim down everything beyond 11th entry popd -n +11 2>/dev/null 1>/dev/null # # Remove any other occurence of this dir, skipping the top of the stack for ((cnt=1; cnt <= 10; cnt++)); do x2=$(dirs +${cnt} 2>/dev/null) [[ $? -ne 0 ]] && return 0 [[ ${x2:0:1} == '~' ]] && x2="${HOME}${x2:1}" if [[ "${x2}" == "${the_new_dir}" ]]; then popd -n +$cnt 2>/dev/null 1>/dev/null cnt=cnt-1 fi done return 0 } alias cd=cd_func # ne fonctionne pas ! #if [[ $BASH_VERSION > "2.05a" ]]; then # # ctrl+w shows the menu # bind -x '"\C-w"':"cd_func -- ;" #fi
~/bin/a_loghistory_func.sh — les fonctions _loghistory, hh et hd + alias h=history
# repris de : # - http://nodsw.com/blog/leeland/2012/03/07-all-bash-history-revisited-load-time-solved-plus-directory-history # # ajout de l'option -u pour obtenir l'utilisateur et le sudo_user s'il existe. export HOSTNAME=`hostname -f || echo unknown` _loghistory() { # Detailed history log of shell activities, including time stamps, working directory etc. # # Based on '_loghistory' by Jeet Sukumaran - 2011-11-23 # (http://jeetworks.org/node/80) # Based on 'hcmnt' by Dennis Williamson - 2009-06-05 - updated 2009-06-19 # (http://stackoverflow.com/questions/945288/saving-current-directory-to-bash-history) # # Add this function to your '~/.bashrc': # # Set the bash variable PROMPT_COMMAND to the name of this function and include # these options: # # e - add the output of an extra command contained in the histentrycmdextra variable # h - add the hostname # y - add the terminal device (tty) # c - add a comment to the log # n - don't add the directory # t - add the from and to directories for cd commands # l - path to the log file (default = ${HOME}/.history_log.${HOSTNAME}.${USER}) # u - add the user (and sudo user if it exists) # ext or a variable # # See bottom of this function for examples. # # make sure this is not changed elsewhere in '.bashrc'; # if it is, you have to update the reg-ex's below export HISTTIMEFORMAT="[%F %T] ~~~ " local script=$FUNCNAME local histentrycmd= local cwd= local comment= local extra= local text= local logfile="${HOME}/.history_log.${HOSTNAME}.${USER}" local hostname= local username= local histentry= local histleader= local datetimestamp= local histlinenum= local options=":hyuntel:c:" local option= OPTIND=1 local usage="Usage: $script [-h] [-y] [-u] [-n|-t] [-e] [text] [-l logfile]" local CommentOpt= local ExtraOpt= local NoneOpt= local ToOpt= local tty= local ip= local logfileroot= # if sudo root if [[ $USER == 'root' && ! -z $SUDO_USER ]] then # Remarque : le ${USER} est nécessaire en cas de connexion directe à root local logfileroot="/root/.history_log.${HOSTNAME}.${USER}" fi # *** process options to set flags *** while getopts $options option do case $option in h ) hostname=$HOSTNAME;; y ) tty_id=$(tty) tty=${tty_id##/dev/} ;; u ) if [[ -z $SUDO_USER ]] then username=$USER else username="${USER}(sudo:${SUDO_USER})" fi;; n ) if [[ $ToOpt ]] then echo "$script: can't include both -n and -t." echo $usage return 1 else NoneOpt=1 # don't include path fi;; t ) if [[ $NoneOpt ]] then echo "$script: can't include both -n and -t." echo $usage return 1 else ToOpt=1 # cd shows "from -> to" fi;; c ) CommentOpt=1; # This is just a comment add it and exit comment=$OPTARG;; e ) ExtraOpt=1;; # include histentrycmdextra l ) logfile=$OPTARG;; : ) echo "$script: missing filename: -$OPTARG." echo $usage return 1;; * ) echo "$script: invalid option: -$OPTARG." echo $usage return 1;; esac done text=($@) # arguments after the options are saved to add to the comment text="${text[*]:$OPTIND - 1:${#text[*]}}" # add the previous command(s) to the history file immediately # so that the history file is in sync across multiple shell sessions history -a # grab the most recent command from the command history histentry=$(history 1) # parse it out histleader=`expr "$histentry" : ' *\([0-9]* \[[0-9]*-[0-9]*-[0-9]* [0-9]*:[0-9]*:[0-9]*\]\)'` histlinenum=`expr "$histleader" : ' *\([0-9]* \)'` datetimestamp=`expr "$histleader" : '.*\(\[[0-9]*-[0-9]*-[0-9]* [0-9]*:[0-9]*:[0-9]*\]\)'` histentrycmd=${histentry#*~~~ } # protect against relogging previous command # if all that was actually entered by the user # was a (no-op) blank line if [[ $CommentOpt ]] then if [[ -z $__PREV_COMMENT ]] then # first call with a comment save for next time export __PREV_COMMENT="$comment" elif [[ "$__PREV_COMMENT" == "$comment" ]] then # already added this comment return fi else if [[ -z $__PREV_HISTLINE || -z $__PREV_HISTCMD ]] then # new shell; initialize variables for next command export __PREV_HISTLINE=$histlinenum export __PREV_HISTCMD=$histentrycmd return elif [[ $histlinenum == $__PREV_HISTLINE && $histentrycmd == $__PREV_HISTCMD ]] then # no new command was actually entered return else # new command entered; store for next comparison export __PREV_HISTLINE=$histlinenum export __PREV_HISTCMD=$histentrycmd fi fi if [[ -z $NoneOpt ]] # are we adding the directory? then if [[ ${histentrycmd%% *} == "cd" || ${histentrycmd%% *} == "jd" ]] # if it's a cd command, we want the old directory then # so the comment matches other commands "where *were* you when this was done?" if [[ -z $OLDPWD ]] then OLDPWD="${HOME}" fi if [[ $ToOpt ]] then cwd="$PWD ~~~ [cd] $OLDPWD -> $PWD" # show "from -> to" for cd else cwd=$OLDPWD # just show "from" fi else cwd=$PWD # it's not a cd, so just show where we are fi fi if [[ $ExtraOpt && $histentrycmdextra ]] # do we want a little something extra? then extra=$(eval "$histentrycmdextra") fi if [[ $CommentOpt ]] then histentrycmd="${datetimestamp} ${tty:+[$tty] }${ip:+[$ip] }${username:+[$username] }${extra:+[$extra] }~~~ ${hostname:+$hostname:}$cwd ~~~ ${comment}" else # strip off the old ### comment if there was one so they don't accumulate # then build the string (if text or extra aren't empty, add them with some decoration) histentrycmd="${datetimestamp} ${text:+[$text] }${tty:+[$tty] }${username:+[$username] }${ip:+[$ip] }${extra:+[$extra] }~~~ ${hostname:+$hostname:}$cwd ~~~ ${histentrycmd# * ~~~ }" fi # save the entry in a logfile if [[ $USER == 'root' && ! -z $SUDO_USER ]] then echo "$histentrycmd" | tee -a $logfileroot >> $logfile || echo "$script: file error." ; return 1 else echo "$histentrycmd" >> $logfile || echo "$script: file error." ; return 1 fi } # END FUNCTION _loghistory # dump regular history log alias h='history' # dump enhanced history log #alias hh="cat ${HOME}/.history_log.${HOSTNAME}" hh () { if [[ -z $1 ]] then if [[ $USER == 'root' && ! -z $SUDO_USER ]] then cat /root/.history_log.${HOSTNAME}.${USER} else cat ${HOME}/.history_log.${HOSTNAME}.${USER} fi else if [[ $USER == 'root' && ! -z $SUDO_USER ]] then tail -n $1 /root/.history_log.${HOSTNAME}.${USER} else tail -n $1 ${HOME}/.history_log.${HOSTNAME}.${USER} fi fi } # dump history of directories visited #alias hd="cat ${HOME}/.history_log.${HOSTNAME} | awk -F ' ~~~ ' '{print \$2}' | uniq" hd () { if [[ -z $1 ]] then if [[ $USER == 'root' && ! -z $SUDO_USER ]] then awk -F ' ~~~ ' -- '{print $2}' /root/.history_log.${HOSTNAME}.${USER} | uniq else awk -F ' ~~~ ' -- '{print $2}' ${HOME}/.history_log.${HOSTNAME}.${USER} | uniq fi else if [[ $USER == 'root' && ! -z $SUDO_USER ]] then awk -F ' ~~~ ' -- '{print $2}' /root/.history_log.${HOSTNAME}.${USER} | uniq | tail -n $1 else awk -F ' ~~~ ' -- '{print $2}' ${HOME}/.history_log.${HOSTNAME}.${USER} | uniq | tail -n $1 fi fi } export PROMPT_COMMAND='_loghistory -u -y -t'
Exemples d'utilisation et affichage
[root@toutou:~]# hh [2015-01-07 16:52:54] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi ~tototiti8/bin/acd_func.sh [2015-01-07 16:52:54] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 16:53:20] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vim +12 /home/tototiti8/.bashrc.d/history [2015-01-07 16:55:26] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi ~tototiti8/bin/acd_func.sh [2015-01-07 16:55:26] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 16:55:43] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ archive_history [2015-01-07 16:56:15] [pts/1] [root(sudo:tototiti8)] ~~~ /etc ~~~ [cd] /home/tototiti8 -> /etc ~~~ cd /etc/ [2015-01-07 16:56:21] [pts/1] [root(sudo:tototiti8)] ~~~ /root ~~~ [cd] /etc -> /root ~~~ cd /root/ [2015-01-07 16:56:21] [pts/1] [root(sudo:tototiti8)] ~~~ /root ~~~ ls -al [2015-01-07 16:56:24] [pts/1] [root(sudo:tototiti8)] ~~~ /root ~~~ lr [2015-01-07 16:56:27] [pts/1] [root(sudo:tototiti8)] ~~~ /root ~~~ more .history_log.toutou.t-i-t-i.local.root [2015-01-07 16:56:27] [pts/1] [root(sudo:tototiti8)] ~~~ /root ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 16:57:22] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi ~tototiti8/bin/acd_func.sh [2015-01-07 16:58:55] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 16:58:55] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 16:59:53] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 16:59:53] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 17:00:11] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 17:00:11] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 17:00:49] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history [2015-01-07 17:00:49] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 17:06:03] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history [2015-01-07 17:06:15] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ man bash [2015-01-07 17:06:43] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history [2015-01-07 17:08:16] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ man bash [2015-01-07 17:08:49] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ bind -l [2015-01-07 17:08:59] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ man bash [2015-01-07 17:09:08] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ man -a bash [2015-01-07 17:10:10] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history [2015-01-07 17:10:10] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 17:10:23] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ man bash [2015-01-07 17:11:17] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 17:11:17] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 17:13:26] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ bind -l [2015-01-07 17:13:48] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ cd_func [2015-01-07 17:14:59] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ read [2015-01-07 17:15:26] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 17:15:42] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ set [2015-01-07 17:15:44] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ env [2015-01-07 17:15:48] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ set -h [2015-01-07 17:15:53] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ set --help [2015-01-07 17:15:59] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ man set [2015-01-07 17:16:02] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ man bash [2015-01-07 17:22:25] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 17:23:08] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi .bashrc [2015-01-07 17:23:08] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 17:23:48] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 17:24:30] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 17:24:44] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history [2015-01-07 17:24:56] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ puppet agent -t [2015-01-07 17:24:56] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) [2015-01-07 17:25:24] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history [2015-01-07 17:27:33] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ puppet agent -t [2015-01-07 17:27:33] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/9]) [2015-01-07 17:28:15] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history [2015-01-07 17:28:48] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ puppet agent -t [2015-01-07 17:29:12] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ more ~/.bashrc.d/general [2015-01-07 17:29:22] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ more ~/.bashrc.d/variables [2015-01-07 17:29:31] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ more ~/.bashrc [2015-01-07 17:29:43] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ more ~/.bashrc.d/aliases [2015-01-07 17:29:55] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ more ~/.bashrc.d/functions [2015-01-07 17:30:00] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ more ~/.bashrc.d/bash_functions [2015-01-07 17:30:14] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ more ~/.bashrc.d/bash_variables [2015-01-07 17:32:27] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history [2015-01-07 17:32:41] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 17:33:14] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ puppet agent -t [2015-01-07 17:33:14] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/9]) [2015-01-07 17:33:31] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/9]) [2015-01-07 17:33:31] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/9]) [2015-01-07 17:33:46] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd -2 [2015-01-07 17:33:52] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ alias [2015-01-07 17:34:00] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd -3 [2015-01-07 17:34:03] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd -1 [2015-01-07 17:34:04] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd - [2015-01-07 17:34:20] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd [2015-01-07 17:34:22] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd - [2015-01-07 17:34:35] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd - [2015-01-07 17:34:44] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh [2015-01-07 17:34:44] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/9]) [2015-01-07 17:36:24] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/9]) [2015-01-07 17:36:30] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd - [2015-01-07 17:36:33] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd -1 [2015-01-07 17:36:35] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd -2 [2015-01-07 17:36:37] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd -3 [2015-01-07 17:36:39] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /home/tototiti8 -> /home/tototiti8 ~~~ cd - [2015-01-07 17:36:52] [pts/9] [root(sudo:tototiti8)] ~~~ / ~~~ [cd] /home/tototiti8 -> / ~~~ cd / [2015-01-07 17:36:54] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] / -> /home/tototiti8 ~~~ cd - [2015-01-07 17:36:58] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] / -> /home/tototiti8 ~~~ cd -3 [2015-01-07 17:37:01] [pts/9] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] / -> /home/tototiti8 ~~~ cd -2 [2015-01-08 13:58:25] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/.bashrc.d ~~~ vim aliases [2015-01-08 13:58:43] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/.bashrc.d ~~~ vim functions [2015-01-08 13:58:47] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/.bashrc.d ~~~ vim general [2015-01-08 13:58:53] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/.bashrc.d ~~~ vim variables [2015-01-08 13:59:21] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/.bashrc.d ~~~ git status [2015-01-08 13:59:42] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/.bashrc.d ~~~ git commit .. -m "tototiti8 - un peu de ménage" [2015-01-08 13:59:43] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/.bashrc.d ~~~ git status [2015-01-08 13:59:47] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8 ~~~ [cd] /etc/puppet/modules/files/tototiti8/.bashrc.d -> /etc/puppet/modules/files/tototiti8 ~~~ cd .. [2015-01-08 13:59:50] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ [cd] /etc/puppet/modules/files/tototiti8 -> /etc/puppet/modules/files/tototiti8/bin ~~~ cd bin/ [2015-01-08 13:59:50] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ ls a-l [2015-01-08 13:59:52] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ ls -al [2015-01-08 13:59:54] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ vim acd_func.sh [2015-01-08 14:00:59] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ less acd_func.sh [2015-01-08 14:01:48] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ less a_loghistory_func.sh [2015-01-08 14:04:46] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ ls -al [2015-01-08 14:04:48] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ less a_loghistory_func.sh [2015-01-08 14:07:33] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ git status [2015-01-08 14:07:44] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ git commit .. --amend -m "tototiti8 - un peu de ménage" [2015-01-08 14:07:46] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ git status [2015-01-08 14:07:48] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ git diff [2015-01-08 14:08:38] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ more ~/.bashrc [2015-01-08 14:08:57] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ more ~tata9/.bashrc [2015-01-08 14:09:14] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ man ccze [2015-01-08 14:17:20] [pts/1] [root(sudo:tototiti8)] ~~~ /etc/puppet/modules/files/tototiti8/bin ~~~ ls -al [2015-01-08 14:17:30] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ [cd] /etc/puppet/modules/files/tototiti8/bin -> /home/tototiti8 ~~~ cd [2015-01-08 14:17:35] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ more .bash_history.archive [2015-01-08 14:18:08] [pts/1] [root(sudo:tototiti8)] ~~~ /home/tototiti8 ~~~ ls -al ~/.bashrc.d/
[root@toutou:~]# hd /home/tototiti8 /etc /root /home/tototiti8 / /home/tototiti8 /etc / /home/tototiti8 /etc /home/tototiti8 /etc /home/tototiti8 /root /home/tototiti8 /root /etc/puppet/modules/files/tototiti8 /home/tototiti8 /etc/puppet/modules/files/tototiti8 /etc/puppet/modules/files/tototiti8/.bashrc.d /etc/puppet/modules/files/tototiti8 /etc/puppet/modules/files/tototiti8/bin /home/tototiti8
[root@puppet:~]# h 1 [2015-01-07 16:53:10] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 2 [2015-01-07 16:52:44] ~~~ uname -a 3 [2015-01-07 16:52:54] ~~~ vi ~tototiti8/bin/acd_func.sh 4 [2015-01-07 16:53:20] ~~~ vim +12 /home/tototiti8/.bashrc.d/history 5 [2015-01-07 16:55:26] ~~~ vi ~tototiti8/bin/acd_func.sh 6 [2015-01-07 16:55:37] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 7 [2015-01-07 17:25:15] ~~~ #root@toutou.t-i-t-i.local [ 2015-01-07 16:55:38 - 2015-01-07 16:55:43 ]:1 (/dev/pts/1) ---- 8 [2015-01-07 16:55:43] ~~~ archive_history 9 [2015-01-07 16:56:15] ~~~ cd /etc/ 10 [2015-01-07 16:56:21] ~~~ cd /root/ 11 [2015-01-07 16:56:21] ~~~ ls -al 12 [2015-01-07 16:56:24] ~~~ lr 13 [2015-01-07 16:56:27] ~~~ more .history_log.toutou.t-i-t-i.local.root 14 [2015-01-07 16:56:34] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 15 [2015-01-07 16:57:22] ~~~ vi ~tototiti8/bin/acd_func.sh 16 [2015-01-07 16:58:55] ~~~ vi /etc/puppet/modules/files/tototiti8/bin/acd_func.sh 17 [2015-01-07 16:59:44] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 18 [2015-01-07 16:59:53] ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh 19 [2015-01-07 17:00:08] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 20 [2015-01-07 17:00:11] ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh 21 [2015-01-07 17:00:30] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 22 [2015-01-07 17:00:49] ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history 23 [2015-01-07 17:04:06] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 24 [2015-01-07 17:06:03] ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history 25 [2015-01-07 17:06:15] ~~~ man bash 26 [2015-01-07 17:06:43] ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history 27 [2015-01-07 17:08:16] ~~~ man bash 28 [2015-01-07 17:08:49] ~~~ bind -l 29 [2015-01-07 17:08:59] ~~~ man bash 30 [2015-01-07 17:09:08] ~~~ man -a bash 31 [2015-01-07 17:10:10] ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history 32 [2015-01-07 17:10:16] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 33 [2015-01-07 17:10:23] ~~~ man bash 34 [2015-01-07 17:11:17] ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh 35 [2015-01-07 17:11:46] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 36 [2015-01-07 17:13:26] ~~~ bind -l 37 [2015-01-07 17:13:48] ~~~ cd_func 38 [2015-01-07 17:14:59] ~~~ read 39 [2015-01-07 17:15:26] ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh 40 [2015-01-07 17:15:42] ~~~ set 41 [2015-01-07 17:15:44] ~~~ env 42 [2015-01-07 17:15:48] ~~~ set -h 43 [2015-01-07 17:15:53] ~~~ set --help 44 [2015-01-07 17:15:59] ~~~ man set 45 [2015-01-07 17:16:02] ~~~ man bash 46 [2015-01-07 17:22:25] ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh 47 [2015-01-07 17:23:08] ~~~ vi .bashrc 48 [2015-01-07 17:23:48] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 49 [2015-01-07 17:24:30] ~~~ vi +64 /etc/puppet/modules/files/tototiti8/bin/acd_func.sh 50 [2015-01-07 17:24:44] ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history 51 [2015-01-07 17:24:56] ~~~ puppet agent -t 52 [2015-01-07 17:25:14] ~~~ # Fin session [root(sudo:tototiti8)@toutou.t-i-t-i.local] [pts/1]) 53 [2015-01-07 17:25:24] ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history 54 [2015-01-07 17:27:33] ~~~ puppet agent -t 55 [2015-01-07 17:28:15] ~~~ vi +12 /etc/puppet/modules/files/tototiti8/.bashrc.d/history 56 [2015-01-07 17:28:48] ~~~ puppet agent -t 57 [2015-01-07 17:29:12] ~~~ more ~/.bashrc.d/general 58 [2015-01-07 17:29:22] ~~~ more ~/.bashrc.d/variables 59 [2015-01-07 17:29:31] ~~~ more ~/.bashrc 60 [2015-01-07 17:29:43] ~~~ more ~/.bashrc.d/aliases 61 [2015-01-07 17:29:55] ~~~ more ~/.bashrc.d/functions 62 [2015-01-07 17:30:00] ~~~ more ~/.bashrc.d/bash_functions 63 [2015-01-07 17:30:14] ~~~ more ~/.bashrc.d/bash_variables 64 [2015-01-08 13:53:37] ~~~ cd /etc/puppet/modules/files/tototiti8/ 65 [2015-01-08 13:53:44] ~~~ vim .bashrc 66 [2015-01-08 13:54:19] ~~~ vim .bashrc.d/general 67 [2015-01-08 13:55:00] ~~~ vim .bashrc.d/functions 68 [2015-01-08 13:57:53] ~~~ vim .bashrc.d/history 69 [2015-01-08 13:58:04] ~~~ ls -al 70 [2015-01-08 13:58:11] ~~~ cd .bashrc.d/ 71 [2015-01-08 13:58:11] ~~~ ls -a 72 [2015-01-08 13:58:22] ~~~ more aliases 73 [2015-01-08 13:58:25] ~~~ vim aliases 74 [2015-01-08 13:58:43] ~~~ vim functions 75 [2015-01-08 13:58:47] ~~~ vim general 76 [2015-01-08 13:58:53] ~~~ vim variables 77 [2015-01-08 13:59:21] ~~~ git status 78 [2015-01-08 13:59:42] ~~~ git commit .. -m "tototiti8 - un peu de ménage" 79 [2015-01-08 13:59:43] ~~~ git status 80 [2015-01-08 13:59:47] ~~~ cd .. 81 [2015-01-08 13:59:50] ~~~ cd bin/ 82 [2015-01-08 13:59:50] ~~~ ls a-l 83 [2015-01-08 13:59:52] ~~~ ls -al 84 [2015-01-08 13:59:54] ~~~ vim acd_func.sh 85 [2015-01-08 14:00:59] ~~~ less acd_func.sh 86 [2015-01-08 14:01:48] ~~~ less a_loghistory_func.sh 87 [2015-01-08 14:04:46] ~~~ ls -al 88 [2015-01-08 14:04:48] ~~~ less a_loghistory_func.sh 89 [2015-01-08 14:07:33] ~~~ git status 90 [2015-01-08 14:07:44] ~~~ git commit .. --amend -m "tototiti8 - un peu de ménage" 91 [2015-01-08 14:07:46] ~~~ git status 92 [2015-01-08 14:07:48] ~~~ git diff 93 [2015-01-08 14:08:38] ~~~ more ~/.bashrc 94 [2015-01-08 14:08:57] ~~~ more ~tata9/.bashrc 95 [2015-01-08 14:09:14] ~~~ man ccze 96 [2015-01-08 14:17:20] ~~~ ls -al 97 [2015-01-08 14:17:30] ~~~ cd 98 [2015-01-08 14:17:35] ~~~ more .bash_history.archive 99 [2015-01-08 14:18:08] ~~~ ls -al ~/.bashrc.d/
Références
- http://nodsw.com/blog/leeland/2012/03/07-all-bash-history-revisited-load-time-solved-plus-directory-history – La meilleure version trouvée jusqu'à maintenant.
Autres solutions plus simples