Votre espace a été migré vers le nouveau wiki le 21/08/2023 : https://wiki.univ-lorraine.fr/wiki/perso/view/zimmerm15
Les modifications apportées ici depuis cette date ne seront pas reportées. Le wikidocs disparaitra définitivement le 31/01/2024.
Sommaire

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 (ttyusersudo_userdate de la commanderé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 à bash pushd, popd et dirs. La pile de répertoires est limitée à 10 emplacements.
    • Exemple : si dirs renvoie ~ /etc /tmp, utiliser cd -2 nous ramènera au répertoire /tmp.
  • À la connexion, l'ensemble des 20 derniers répertoires utilisés sera chargé dans la pile des répertoires de travail de dirs et cd_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 vers history
  • cd — alias vers la fonction cd_func
  • hd — liste l'ensemble des derniers répertoires de travail.

Cette solution modifie le comportement de :

  • cd qui devient un alias sur la fonction cd_func décrite ci-dessous ;
  • l'historique (utilisation de la fonction _loghistory)

Ajoute les fonctions d'historique suivantes :

  • h comme alias vers history 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

~/.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)

~/.bashrc.d/general
########## 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

~/.bashrc.d/aliases
# 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

~/.bashrc.d/variables
# 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

~/.bashrc.d/functions
# 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

~/.bashrc.d/history
# 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.

~/bin/acd_func.sh
# 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

~/bin/a_loghistory_func.sh
# 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

Usage de hh (historique complet)
[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/
Historique des répertoires de travail
[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
Usage de l'historique normal (h ou history)
[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

Autres solutions plus simples