LinuxQuestions.org
Help answer threads with 0 replies.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 11-09-2017, 11:35 AM   #1
L_Carver
Member
 
Registered: Sep 2016
Location: Webster MA USA
Posts: 241

Rep: Reputation: Disabled
Question bash - have too much history recorded


What I think are the relevant sections of my .bashrc:
Code:
shopt -s histappend
PROMPT_COMMAND='history -a;history -n'
export HISTFILESIZE=
export HISTSIZE=
Code:
shopt -s histappend
HISTSIZE=-1 HISTFILESIZE=-1
export HISTFILE=~/.bash_eternal_history
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
When I use the history command, or arrow-up to find a certain command I may have executed recently, I'm seeing the lines from the bash script I've run most recently.

Am I declaring shopt once too often. And I can't seem to find the -a tag in the history man pages.

I remember adding some lines to my .bashrc that returned only stdout commands, not lines from the last script I've used, and that's what I'm looking to have again.

Thanks in advance.

Carver

Last edited by L_Carver; 11-09-2017 at 11:35 AM. Reason: misspelled a few words
 
Old 11-09-2017, 11:39 AM   #2
pan64
LQ Guru
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 16,513

Rep: Reputation: 5554Reputation: 5554Reputation: 5554Reputation: 5554Reputation: 5554Reputation: 5554Reputation: 5554Reputation: 5554Reputation: 5554Reputation: 5554Reputation: 5554
history is a bash built-in, so you need to check man bash and look for history within.
Code:
             -a     Append  the  ``new''  history  lines  to the history file.  These are history lines entered since the
                     beginning of the current bash session, but not already appended to the history file.
Otherwise I'm not really sure what is your problem
 
Old 11-09-2017, 12:11 PM   #3
ondoho
LQ Addict
 
Registered: Dec 2013
Posts: 17,264
Blog Entries: 10

Rep: Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172
or 'help history'
 
Old 11-09-2017, 03:12 PM   #4
L_Carver
Member
 
Registered: Sep 2016
Location: Webster MA USA
Posts: 241

Original Poster
Rep: Reputation: Disabled
Question

Quote:
Originally Posted by pan64 View Post
history is a bash built-in, so you need to check man bash and look for history within.
Otherwise I'm not really sure what is your problem
I'm seeing the lines from the bash script I've run most recently, and I don't want to.
Here is my complete .bashrc:
Code:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
set -o noclobber
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=erasedups

# append to the history file, don't overwrite it
shopt -s histappend
HISTSIZE=-1 HISTFILESIZE=-1
export HISTFILE=~/.bash_eternal_history
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u:\W\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#   PS1='\u@\h: \W $ '
#   ;;
#*)
#    ;;
#esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

shopt -s histappend
PROMPT_COMMAND='history -a;history -n'
export HISTFILESIZE=
export HISTSIZE=

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
export HISTTIMEFORMAT="%d/%m/%y %T "
PS1='\u@\h [\W]\$ '
I'm thinking there's an extra line or command or tag that is causing my <arrow up> strokes to show lines in the last-run script. I changed the shopt and PROMPT_COMMAND, expecting to see only those commands I have typed into a terminal. What do I have in the above .bashrc file that I shouldn't?

Carver

Last edited by L_Carver; 11-09-2017 at 03:12 PM. Reason: Needed a word.
 
Old 11-09-2017, 03:57 PM   #5
scasey
LQ Veteran
 
Registered: Feb 2013
Location: Tucson, AZ, USA
Distribution: CentOS 7.8.2003
Posts: 5,426

Rep: Reputation: 2054Reputation: 2054Reputation: 2054Reputation: 2054Reputation: 2054Reputation: 2054Reputation: 2054Reputation: 2054Reputation: 2054Reputation: 2054Reputation: 2054
You have:
Code:
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
and
Code:
PROMPT_COMMAND='history -a;history -n'
which (I think) means that you save the history twice and read it back in once at every command execution.


My /etc/bashrc (sourced by ~/.bashrc) has
Code:
  # Turn on parallel history
  shopt -s histappend
  history -a
Try executing the shopt and history commands only once per session instead of at every command.

My CLI commands are saved to history at each normal close of my terminal sessions. I lose current session history if the session closes abnormally. I'm not sure why the lines of a script would be captured in history, tho. Just thought the PROMPT_COMMAND manipulation looked "overboard"
 
Old 11-20-2017, 09:38 PM   #6
giis
Member
 
Registered: Nov 2013
Location: Third Rock from Moon
Distribution: RPM/DEB based and LFS
Posts: 73

Rep: Reputation: Disabled
I assume, you want to record all bash commands. Here's what I have in /etc/profile:
Quote:
HISTSIZE=10000
HISTFILESIZE=999999
export HISTSIZE HISTFILESIZE
 
Old 11-21-2017, 01:15 AM   #7
ondoho
LQ Addict
 
Registered: Dec 2013
Posts: 17,264
Blog Entries: 10

Rep: Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172Reputation: 5172
Quote:
Originally Posted by L_Carver View Post
Code:
shopt -s histappend
HISTSIZE=-1 HISTFILESIZE=-1
export HISTFILE=~/.bash_eternal_history
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
have you tried setting it to zero (0) instead of -1?
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Why does BASH history command have no history when run in script ? lump_of_lard Programming 4 01-30-2015 09:45 AM
Bash history delete command from bash itself ashishag Linux - Software 6 05-02-2010 03:39 AM
need someone to look into this bash history bytez Linux - General 7 10-16-2006 10:26 PM
bash history jasonnth Linux - Software 7 08-08-2006 01:35 AM
bash history slowly Linux - General 2 11-12-2004 11:35 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie

All times are GMT -5. The time now is 11:21 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration