shopt -s histappend #историю дополнять, а не перезатирать export PROMPT_COMMAND='history -a; log_commands;' #добавил вызов своей функции test -d ~/.history-logs || mkdir ~/.history-logs #создать папку, если ещё не была созданна function log_commands() { #PROMPT_COMMAND вызывается на каждый Enter, много тяжелых процессов не запустишь TAB=$'\t' DATE_TIME=$(date '+%Y-%m-%d--%H-%M-%S[%z]') DATE=${DATE_TIME:0:10} #вырезать только дату из даты-времени FULL_CMD_LOG="$HOME/.history-logs/bash-history-$DATE.log" echo "$USER@$HOSTNAME${TAB}$DATE_TIME${TAB}$(pwd)${TAB}$(history 1)" >> ${FULL_CMD_LOG} }
Кажется, оно делает то, что надо, хотя я не понимаю, как - во всяком случае, в новом терминале screen-а я увидел команды из двух остальных.
Встречный вопрос. Как сделать так, чтобы изнутри screen при вызове предыдущей команды она не сдвигалась на символ влево.
Comments 4
export HISTCONTROL=ignoredups
export HISTFILESIZE=100000
export HISTSIZE=100000
shopt -s histappend #историю дополнять, а не перезатирать
export PROMPT_COMMAND='history -a; log_commands;' #добавил вызов своей функции
test -d ~/.history-logs || mkdir ~/.history-logs #создать папку, если ещё не была созданна
function log_commands() { #PROMPT_COMMAND вызывается на каждый Enter, много тяжелых процессов не запустишь
TAB=$'\t'
DATE_TIME=$(date '+%Y-%m-%d--%H-%M-%S[%z]')
DATE=${DATE_TIME:0:10} #вырезать только дату из даты-времени
FULL_CMD_LOG="$HOME/.history-logs/bash-history-$DATE.log"
echo "$USER@$HOSTNAME${TAB}$DATE_TIME${TAB}$(pwd)${TAB}$(history 1)" >> ${FULL_CMD_LOG}
}
Кажется, оно делает то, что надо, хотя я не понимаю, как - во всяком случае, в новом терминале screen-а я увидел команды из двух остальных.
Встречный вопрос. Как сделать так, чтобы изнутри screen при вызове предыдущей команды она не сдвигалась на символ влево.
Reply
Reply
2. про символ влево - это как?!
Reply
Reply
Leave a comment