This is my new bashrc:
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
PS1="[\u@\h \D{%Y-%b-%d %H:%M:%S}]\$ "
alias l='ls -alrtF --color=auto --group-directories-first'
alias ll='ls -CF --color=auto'
# The above alias for ls will show files and directories in order of modification time, listing directories first
My old bashrc:
| # If not running interactively, don't do anything |
| case $- in |
| *i*) ;; |
| *) return;; |
| esac |
|
|
| # don't put duplicate lines or lines starting with space in the history. |
| # See bash(1) for more options |
| HISTCONTROL=ignoreboth |
|
|
| # append to the history file, don't overwrite it |
| shopt -s histappend |
| # 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) 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 |
|
|
| # 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 |
|
|
| # 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 |
| # ~/.bashrc: executed by bash(1) for non-login shells. |
# my bashrc crowdsourced from stackexchange
# 1). Unlimited bash history with timestamps: https://stackoverflow.com/questions/9457233/unlimited-bash-history
# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
# 2). https://askubuntu.com/questions/517677/how-do-i-get-a-colored-bash#
force_color_prompt=yes
# 3). https://serverfault.com/questions/3743/what-useful-things-can-one-add-to-ones-bashrc
alias l='ls -Fartl'
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xvjf $1 ;;
*.tar.gz) tar xvzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xvf $1 ;;
*.tbz2) tar xvjf $1 ;;
*.tgz) tar xvzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "don't know how to extract '$1'..." ;;
esac
else
echo "'$1' is not a valid file!"
fi
}
# No more cd ../../../.. but up 4
up(){
local d=""
limit=$1
for ((i=1 ; i <= limit ; i++))
do
d=$d/..
done
d=$(echo $d | sed 's/^\///')
if [ -z "$d" ]; then
d=..
fi
cd $d
}
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ......="cd ../../../../.."
#dirsize - finds directory sizes and lists them for the current directory
dirsize ()
{
du -shx * .[a-zA-Z0-9_]* 2> /dev/null | \
egrep '^ *[0-9.]*[MG]' | sort -rn > /tmp/list
egrep '^ *[0-9.]*G' /tmp/list
egrep '^ *[0-9.]*M' /tmp/list
rm -rf /tmp/list
}
export GREP_OPTIONS='--color=auto'
alias rm='rm -iv'
gsync() {
# first add upstream using this command:
# git remote add upstream https://github.com/com/original/original.git
# Workflow is this:
# 1. Push a commit or multiple commits to your fork's dev branch.
# 2. Make a pull request from your fork's dev branch to the upstream master branch.
# 3. Merge the pull request.
# 4. Now run the script. Your fork's dev and master branches will now be identical with the upstream master branch.
git fetch upstream
git checkout main
git rebase upstream/main
git push origin +main
git checkout dev
git rebase upstream/main
git push origin +dev
}
# first add upstream using this command:
# git remote add upstream https://github.com/com/original/original.git
# Workflow is this:
# 1. Push a commit or multiple commits to your fork's dev branch.
# 2. Make a pull request from your fork's dev branch to the upstream master branch.
# 3. Merge the pull request.
# 4. Now run the script. Your fork's dev and master branches will now be identical with the upstream master branch.
git fetch upstream
git checkout main
git rebase upstream/main
git push origin +main
git checkout dev
git rebase upstream/main
git push origin +dev
}
gs() {
# first add upstream using this command:
# git remote add upstream https://github.com/com/original/original.git
# Workflow is this:
# 1. Push a commit or multiple commits to your fork's dev branch.
# 2. Make a pull request from your fork's dev branch to the upstream master branch.
# 3. Merge the pull request.
# 4. Now run the script. Your fork's dev and master branches will now be identical with the upstream master branch.
git fetch upstream
git checkout master
git rebase upstream/master
git push origin +master
git checkout dev
git rebase upstream/master
git push origin +dev
}
# first add upstream using this command:
# git remote add upstream https://github.com/com/original/original.git
# Workflow is this:
# 1. Push a commit or multiple commits to your fork's dev branch.
# 2. Make a pull request from your fork's dev branch to the upstream master branch.
# 3. Merge the pull request.
# 4. Now run the script. Your fork's dev and master branches will now be identical with the upstream master branch.
git fetch upstream
git checkout master
git rebase upstream/master
git push origin +master
git checkout dev
git rebase upstream/master
git push origin +dev
}
Also don't forget about inputrc:
# 1). Up arrow to auto-complete command from history: https://askubuntu.com/questions/59846/bash-history-search-partial-up-arrow
# Respect default shortcuts.
$include /etc/inputrc
## arrow up
"\e[A":history-search-backward
## arrow down
"\e[B":history-search-forward
After changing your ~/.inputrc you can apply changes using
bind -f ~/.inputrc
No comments:
Post a Comment