-
Notifications
You must be signed in to change notification settings - Fork 0
/
.bashrc
244 lines (207 loc) · 7.25 KB
/
.bashrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now!
return
fi
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
xhost +local:root > /dev/null 2>&1
if ! pgrep ssh-agent > /dev/null; then
ssh-agent > ~/.ssh-agent-thing
fi
if [[ "$SSH_AGENT_PID" == "" ]]; then
eval $(<~/.ssh-agent-thing)
fi
ssh-add -l >/dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias ssh; ssh'
source /usr/share/git/completion/git-completion.bash
complete -cf sudo
# Bash won't get SIGWINCH if another process is in the foreground.
# Enable checkwinsize so that bash will check the terminal size when
# it regains control. #65623
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
shopt -s checkwinsize
shopt -s expand_aliases
export PATH="mongodb-linux-x86_64-2.6.8/bin:$PATH"
export PATH="$PATH:$(ruby -e 'print Gem.user_dir')/bin"
# List
alias ls='ls --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias ll='ls -l --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias la='ls -la --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias l.='ls -d .* --color=auto'
alias whatdo='leasot --tags FIXME ./**/*.js ./**/**/*.js --ignore "./node_modules/**/*.js"'
alias wanip='dig +short myip.opendns.com @resolver1.opendns.com'
alias myip='curl ifconfig.co'
# Day-to-day
alias open='xdg-open .' # open current folder in GUI
alias grep='grep --color=tty -d skip'
alias cp="cp -i" # confirm before overwriting something
alias df='df -h' # human-readable sizes
alias free='free -m' # show sizes in MB
alias np='nano -w PKGBUILD'
alias more=less
# export QT_SELECT=4
alias c='clear'
alias cls='clear'
alias diff='colordiff'
alias search='ls -R | grep -i'
alias h='history'
alias fake='fallocate -l'
alias py='python'
alias ..='cd ../'
alias ...='cd ../../'
alias ws='curl -4 http://wttr.in/Sofia'
alias osv='uname -r'
alias fixit='sudo rm -f /var/lib/pacman/db.lck && sudo pacman-mirrors -g && sudo pacman -Syyuu && sudo pacman -Suu'
alias unode='nvm install node --reinstall-packages-from=node && nvm alias default stable'
alias tarzan='tar -czf "../${PWD##*/}.tar.gz" .' # zip current directory
alias dy='youtube-dl [OPTIONS] URL [URL...]'
# Download playlist from youtube in mp3 example: dy -i -x -o '~/Music/%(playlist)s/%(title)s.%(ext)s' {PLAYLIST URL} --audio-format mp3
# Bye
alias sb='systemctl suspend'
alias rb='reboot'
alias hb='hibernate'
alias goodnight='sudo bash -c "sleep 1h; systemctl suspend"'
# Sudo!
alias please='sudo'
alias sudp='sudo'
alias _='sudo'
alias s='sudo'
# Editors
alias vi='emacs -nw'
alias vim='sudo emacs -nw'
alias edit='sudo emacs -nw'
alias besh='sudo emacs -nw ~/.bashrc'
# Fire up DBs & Services
alias runmongorun='sudo systemctl start mongodb'
alias renginx='sudo systemctl restart nginx.service'
alias kiln='sudo /usr/sbin/nginx -s stop'
alias rmq='sudo rabbitmq-server'
alias neos='sudo systemctl start neo4j.service'
alias neobin='sudo /bin/neo4j start'
# Automation
alias r='source ~/.bashrc'
alias fire='node ~/bin/init.js &' # launch browsers, skype and mail reader
alias tmuxd='~/bin/init.sh'
# alias hfhpass='token=$(tail -n2 <./storage/logs/laravel.log | grep -o ".\{0,0\}reset/.\{0,64\}" | cut -c7- | tail -n1) && chromium http://localhost:8000/#/set-password/$token'
# Projects
# private block
# Remote
# private block
# Development
alias start='npm start'
alias server='node ~/http-server/bin/http-server'
#alias composer='/usr/local/bin/composer.phar'
# Git aliases
alias gs='git status'
alias gb='git branch'
alias gl='git log --all --graph'
alias gch='git checkout'
alias gcm='git commit -m'
alias gp='git pull'
alias pullm='git pull origin master'
alias pushm='git push origin master'
alias rmorig=' find . -type f -name "*.orig" -exec rm -f {} \;' # remove post-merge conflict files
# Enable history appending instead of overwriting. #139609
shopt -s histappend
# Change the window title of X terminals
case ${TERM} in
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'
;;
screen*)
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\033\\"'
;;
esac
use_color=false
# Set colorful PS1 only on colorful terminals.
# dircolors --print-database uses its own built-in database
# instead of using /etc/DIR_COLORS. Try to use the external file
# first to take advantage of user additions. Use internal bash
# globbing instead of external grep binary.
safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM
match_lhs=""
[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
[[ -z ${match_lhs} ]] \
&& type -P dircolors >/dev/null \
&& match_lhs=$(dircolors --print-database)
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
if ${use_color} ; then
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489
if type -P dircolors >/dev/null ; then
if [[ -f ~/.dir_colors ]] ; then
eval $(dircolors -b ~/.dir_colors)
elif [[ -f /etc/DIR_COLORS ]] ; then
eval $(dircolors -b /etc/DIR_COLORS)
fi
fi
if [[ ${EUID} == 0 ]] ; then
PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
else
PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '
fi
alias ls='ls --color=auto'
alias grep='grep --colour=auto'
alias egrep='egrep --colour=auto'
alias fgrep='fgrep --colour=auto'
else
if [[ ${EUID} == 0 ]] ; then
# show root@ when we don't have colors
PS1='\u@\h \W \$ '
else
PS1='\u@\h \w \$ '
fi
fi
unset use_color safe_term match_lhs sh
# better yaourt colors
export YAOURT_COLORS="nb=1:pkg=1:ver=1;32:lver=1;45:installed=1;42:grp=1;34:od=1;41;5:votes=1;44:dsc=0:other=1;35"
#
# # ex - archive extractor
# # usage: ex <file>
ex ()
{
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
colors() {
local fgc bgc vals seq0
printf "Color escapes are %s\n" '\e[${value};...;${value}m'
printf "Values 30..37 are \e[33mforeground colors\e[m\n"
printf "Values 40..47 are \e[43mbackground colors\e[m\n"
printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n"
# foreground colors
for fgc in {30..37}; do
# background colors
for bgc in {40..47}; do
fgc=${fgc#37} # white
bgc=${bgc#40} # black
vals="${fgc:+$fgc;}${bgc}"
vals=${vals%%;}
seq0="${vals:+\e[${vals}m}"
printf " %-9s" "${seq0:-(default)}"
printf " ${seq0}TEXT\e[m"
printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m"
done
echo; echo
done
}
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
export PATH=$HOME/local/bin:$PATH
export NVM_DIR="/home/yten/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm