Bash History aus mehreren Sitzungen ohne überschreiben: Unterschied zwischen den Versionen
Aus znilwiki
BLinz (Diskussion | Beiträge) |
BLinz (Diskussion | Beiträge) |
||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 140: | Zeile 140: | ||
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r" | export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r" | ||
</source> | </source> | ||
---- | |||
==Komplette .bashrc RedHat-Systeme== | |||
<source lang="bash"> | |||
# .bashrc | |||
# Source global definitions | |||
if [ -f /etc/bashrc ]; then | |||
. /etc/bashrc | |||
fi | |||
# User specific environment | |||
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]] | |||
then | |||
PATH="$HOME/.local/bin:$HOME/bin:$PATH" | |||
fi | |||
export PATH | |||
# Uncomment the following line if you don't like systemctl's auto-paging feature: | |||
# export SYSTEMD_PAGER= | |||
# User specific aliases and functions | |||
alias rm='rm -i' | |||
alias cp='cp -i' | |||
alias mv='mv -i' | |||
alias ll='ls -alFh' | |||
alias la='ls -A' | |||
alias l='ls -CF' | |||
# don't put duplicate lines in the history. See bash(1) for more options | |||
# ... or force ignoredups and ignorespace | |||
HISTCONTROL=ignoredups:ignorespace:erasedups | |||
# append to the history file, don't overwrite it | |||
shopt -s histappend | |||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) | |||
HISTSIZE=50000 | |||
HISTFILESIZE=50000 | |||
# After each command, append to the history file | |||
# and reread it | |||
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r" | |||
shopt -s checkwinsize | |||
PS1='${linux_chroot:+($linux_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' | |||
</source> | |||
---- | |||
==Prompt verschiedene Farben== | |||
Hellblau:<br> | |||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' | |||
---- | ---- | ||
Zeile 147: | Zeile 200: | ||
<br> | <br> | ||
---- | ---- | ||
==Kommentare== | ==Kommentare== | ||
<comments /> | <comments /> |
Aktuelle Version vom 24. Juni 2024, 08:21 Uhr
Vorwort
Ich bin der "15 SSH Sitzungen zu 5 Servern" Typ. In einer Sitzung bearbeite ich ein Skript, im nächsten läuft das Log dazu und im 3. rufe ich das Skript zum testen auf.
Ab Werk gilt hier bei Ubuntu "Last one wins", nach einem Neustart bzw. abmelden sind nur noch die Befehle der letzten Sitzung in der History.
Wenn Ihr das wie nachfolgende ändert so ist die History ständig zwischen allen Sitzungen aktuell und enthält auch immer alle Befehle.
Ist am Anfang ggf. ungewohnt, aber die Suche mit STRG + R findet immer sofort alles.
.bashrc
Ich arbeite unter Ubuntu und da wird die .bashrc
genutzt.
Folgende Zeilen habe ich hinzugefügt / ergänzt:
nano ~/.bashrc
Änderungen:
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace:erasedups
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=50000
HISTFILESIZE=50000
# After each command, append to the history file
# and reread it
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r"
Damit er das ohne Neuanmeldung sofort übernimmt:
source ~/.bashrc
Komplette .bashrc
Hier noch einmal die komplette Datei - die nutze ich auch gerne unter anderen Linux-Distributionen:
# ~/.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
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace:erasedups
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=50000
HISTFILESIZE=50000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# 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) 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@\h:\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="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
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
# some more ls aliases (Bernhard Style)
alias ll='ls -alFh'
alias la='ls -A'
alias l='ls -CF'
# 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
# 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 [ -f /etc/bash_completion ] && ! shopt -oq posix; then
# . /etc/bash_completion
#fi
# After each command, append to the history file
# and reread it
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r"
Komplette .bashrc RedHat-Systeme
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -alFh'
alias la='ls -A'
alias l='ls -CF'
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace:erasedups
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=50000
HISTFILESIZE=50000
# After each command, append to the history file
# and reread it
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r"
shopt -s checkwinsize
PS1='${linux_chroot:+($linux_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
Prompt verschiedene Farben
Hellblau:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
Quellen
- https://lpetr.org/2016/05/04/preserve-bash-history/
- https://unix.stackexchange.com/questions/1288/preserve-bash-history-in-multiple-terminal-windows