Skip to content

Instantly share code, notes, and snippets.

@nicolasramy
Last active September 7, 2016 14:21
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicolasramy/6438236 to your computer and use it in GitHub Desktop.
Save nicolasramy/6438236 to your computer and use it in GitHub Desktop.
My personnal dotfiles configuration for Gnu Screen, Vim, Bash for system administration
# Aliases
alias refresh-source='source $HOME/.bashrc'
#
# Bash Functions
#
# Generate MD5 of passed parameter
#
# $ md5 darkelda
# 2b1e76a869f50dbd6e5cb20311e6073a
#
md5() {
echo -n $1 | md5sum
}
#
# Retrieve external IP
#
# $ myip
# xx.xx.xxx.xxx
#
myip() {
curl ifconfig.me
}
#
# Return current datetime
#
# $ curdate
# 2014-07-21 15:25:04
#
curdate() {
date +'%Y-%m-%d %H:%M:%S'
}
#
# Return current date mark
#
# $ datetime-mark
# 20140721
#
date-mark() {
date +'%Y%m%d'
}
#
# Return current datetime mark
#
# $ datetime-mark
# 2014-07-21 15:25:04
#
datetime-mark() {
date +'%Y%m%d%H%M%S'
}
#
# Extract random lines from a source file
#
# $ randomize-file input.file 100 > output.file
#
randomize-file() {
cat $1 | shuf | head -n $2
}
#
# Kill a processus based on its name
# !! BE EXTREMLY CAREFUL WHEN USED!!
#
# $ fkill zombie_script.py
#
fkill() {
ps -ef | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9
}
#
# Bash Functions - CakePHP
#
cakephp() {
alias cake='lib/Cake/Console/cake'
}
#
# Bash Functions - Magento
#
magento-list-events() {
grep -rin -B2 -A2 "Mage::dispatchEvent" app/*
}
#
# Bash Functions - Python
#
venv-activate() {
source ~/.virtualenvs/$1/bin/activate
}
venv-list() {
ls ~/.virtualenvs/
}
venv-create() {
virtualenv ~/.virtualenvs/$1
}
venv-remove() {
rm -Rf ~/.virtualenvs/$1
}
clean_pyc() {
find . -name \*pyc -exec rm {} +
}
# 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)}$(__git_ps1 "(%s)")\[\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
alias ll='ls -lh'
alias la='ls -lha'
#alias l='ls -CF'
alias c='clear'
# 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_functions ]; then
. ~/.bash_functions
fi
if [ -f ~/.bash_functions_python ]; then
. ~/.bash_functions_python
fi
if [ -f ~/.bash_functions_cakephp ]; then
. ~/.bash_functions_cakephp
fi
if [ -f ~/.bash_functions_magento ]; then
. ~/.bash_functions_magento
fi
# 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
# ------------------------------------------------------------------------------
# SCREEN SETTINGS
# ------------------------------------------------------------------------------
startup_message off
#nethack on
#defflow on # will force screen to process ^S/^Q
deflogin on
autodetach on # Force detachment (default: off)
# turn visual bell on
vbell off
#vbell_msg " Wuff ---- Wuff!! "
# define a bigger scrollback, default is 100 lines
defscrollback 16384
# ------------------------------------------------------------------------------
# SCREEN KEYBINDINGS
# ------------------------------------------------------------------------------
# Remove some stupid / dangerous key bindings
bind ^k
#bind L
bind ^\
# Make them better
bind \\ quit
bind K kill
bind I login on
bind O login off
bind } history
# An example of a "screen scraper" which will launch urlview on the current
# screen window
#
#bind ^B eval "hardcopy_append off" "hardcopy -h $HOME/.screen-urlview" "screen urlview $HOME/.screen-urlview"
# ------------------------------------------------------------------------------
# TERMINAL SETTINGS
# ------------------------------------------------------------------------------
# The vt100 description does not mention "dl". *sigh*
termcapinfo vt100 dl=5\E[M
# turn sending of screen messages to hardstatus off
hardstatus alwayslastline
# Set the hardstatus prop on gui terms to set the titlebar/icon title
termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007
# use this for the hard status string
#hardstatus string "%h%? users: %u%?"
# %H : hostname
# %t : window title
# %F : sets %? to true if the window has the focus
# %h : hard status of the window
# %S : session name
# %c : current time HH:MM in 24h format
# %Y : full year number
# %m : month number
# %d : day number
# %s : seconds
# %n : window number
# %t : window title
# %{= kw} clear all attributes write in white on black background
# %{= dw} clear all attributes write in white on default background
#hardstatus string "%{= dw}%{+b}screen@%H:%S %{-b}%{+d}[%n %t%? [%h]%?] %= %{-d} [%{r}%l%{w}]%{w} [%Y-%m-%d %c:%s]"
hardstatus string "%{= dw}%{+b}screen@%H %{-b}%{+d}%-Lw%{db}%50>[%n %t]%{-}%+Lw%< %=%{-d} [%{r}%l%{w}]%{w} [%Y-%m-%d %c:%s]"
# An alternative hardstatus to display a bar at the bottom listing the
# windownames and highlighting the current windowname in blue. (This is only
# enabled if there is no hardstatus setting for your terminal)
#
#hardstatus lastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
# set these terminals up to be 'optimal' instead of vt100
termcapinfo xterm*|linux*|rxvt*|Eterm* OP
# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
# in bug #134198)
termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
# To get screen to add lines to xterm's scrollback buffer, uncomment the
# following termcapinfo line which tells xterm to use the normal screen buffer
# (which has scrollback), not the alternate screen buffer.
#
#termcapinfo xterm|xterms|xs|rxvt ti@:te@
# Enable non-blocking mode to better cope with flaky ssh connections.
defnonblock 5
syntax on
set number
set tabstop=4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment