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