-
Notifications
You must be signed in to change notification settings - Fork 1
/
.bashrc
282 lines (228 loc) · 7.67 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
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
if [ "$SSH_TTY" ]
then
date=`date`
load=`cat /proc/loadavg | awk '{print $1}'`
root_usage=`df -h / | awk '/\// {print $(NF-1)}'`
memory_usage=`free -m | awk '/Mem/ { printf("%3.1f%%", $3/$2*100) }'`
#swap_usage=`free -m | awk '/Swap/ { printf("%3.1f%%", $3/$2*100) }'`
users=`users | wc -w`
echo "System information as of: $date"
echo
printf "System load:\t%s\tMemory usage:\t%s\n" $load $memory_usage
printf "Usage on /:\t%s\tSwap usage:\t%s\n" $root_usage $swap_usage
printf "Local users:\t%s\n" $users
echo
#trello show-cards -b general -l "TODO dev"
fi
# random color for each host
if [ ! -f ~/.host_color ]; then
echo "Host color not found, created : "
echo -e "\e[3$(( $RANDOM * 6 / 32767 + 1 ))m">~/.host_color
echo -e "$(cat ~/.host_color) This color !\033[0m"
fi
# docker alias
[ -x "$(command -v docker)" ] && source ~/.dockerfunc
#setting up git bash prompt
[ -f /etc/bash_completion ] && source /etc/bash_completion
# Note: CUSTOM_PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# CUSTOM_PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
#CUSTOM_PS1='\u@\h:\w$(__git_ps1) \$ '
if id -u | grep -qw "0"; then
PS1_COLOR="31m" # Redish
elif id -nG "$USER" | grep -qw "adm"; then
PS1_COLOR="33m" # Yellowish
else
PS1_COLOR="36m" # Blueish
fi
CUSTOM_PS1="\t " # prompt time
CUSTOM_PS1="$CUSTOM_PS1\[\e[$PS1_COLOR\]" # user color
CUSTOM_PS1="$CUSTOM_PS1\u" # user name
CUSTOM_PS1="$CUSTOM_PS1@" # add @ between user name and host
CUSTOM_PS1="$CUSTOM_PS1\[$(cat ~/.host_color)\]" # set color with predefined colors (see above)
CUSTOM_PS1="$CUSTOM_PS1\h" # host name
CUSTOM_PS1="$CUSTOM_PS1\[\e[00;36m\]" # blue color for directory
CUSTOM_PS1="$CUSTOM_PS1[\w]" # working directory, inside '[' and ']'
CUSTOM_PS1="$CUSTOM_PS1\$(__git_ps1)" # add git info
CUSTOM_PS1="$CUSTOM_PS1\[\e[37;00m\]" # reset color
CUSTOM_PS1="$CUSTOM_PS1\$ " # add $ and a space at the end
PS1="$CUSTOM_PS1"
umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
eval "`dircolors -b ~/.dir_colors`"
# history control !
export HISTCONTROL=ignoreboth: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=1000
HISTFILESIZE=2000
# Some more alias to avoid making mistakes:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#ccat with color
alias ccat='pygmentize'
# LS cmd
if [ -x "$(command -v exa)" ]; then
alias ls='exa --color=auto'
else
alias ls='ls --color=auto'
fi
alias la='ls -ah'
alias ll='ls -lah'
#CD shortcut
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../../'
alias ....='cd ../../../'
alias .....='cd ../../../../'
#clear shortcut
alias c='clear'
# GREP Styling
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
#Mkdir auto parents & verbose
alias mkdir='mkdir -pv'
#Human readable
alias du='du -kh'
alias df='df -kTh'
#Reload BashRc
alias bashrc='. ~/.bashrc'
#Public ip adress
alias myip="curl https://ipecho.net/plain; echo"
#apt aliases
alias update='sudo apt-get update && sudo apt-get upgrade'
alias clean='sudo apt-get autoclean && sudo apt-get autoremove && sudo apt-get clean'
# ssh alias
alias lisbeth="ssh [email protected]"
alias raspi="ssh [email protected]"
# trello-cli alias
alias todo="trello show-cards -b general -l TODO"
alias todo-dev="trello show-cards -b general -l 'TODO dev'"
# Set coloration capabilities for term
export TERM='xterm-256color'
#launch tmux in UTF8 mode (for putty)
alias tmux="TERM=screen-256color tmux -u"
#Extracting function
function extract {
if [ -z "$1" ]; then
# display usage if no parameters given
echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
else
if [ -f $1 ] ; then
# NAME=${1%.*}
# mkdir $NAME && cd $NAME
case $1 in
*.tar.bz2) tar xvjf ../$1 ;;
*.tar.gz) tar xvzf ../$1 ;;
*.tar.xz) tar xvJf ../$1 ;;
*.lzma) unlzma ../$1 ;;
*.bz2) bunzip2 ../$1 ;;
*.rar) unrar x -ad ../$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 ;;
*.xz) unxz ../$1 ;;
*.exe) cabextract ../$1 ;;
*) echo "extract: '$1' - unknown archive method" ;;
esac
else
echo "$1 - file does not exist"
fi
fi
}
function mkcd(){
mkdir -p -- "$1" && cd -P -- "$1"
}
# shows stats of an email on a git repository.
# $1 = email
function git-work(){
EMAIL=$1
git log --shortstat --author $EMAIL | \
grep -E "files? changed" | \
awk '{files+=$1; inserted+=$4; deleted+=$6} END {print "\nfile :", files, "\ninserted : ", inserted, "deleted", deleted}'Ressource
}
# shows the top N biggest file of a directory.
# Default dir = /
# Default count = 50
function biggestfiles() {
dir=$1
count=$2
if [ -z "$dir" ]; then
dir="/"
fi
if [ -z "$count" ]; then
count="50"
fi
echo "Searching $count biggest file from $dir"
\du -a $dir | sort -n -r | head -n $count
}
# Add color to man pages
# thanks to https://github.com/jessfraz/dotfiles/blob/master/.functions
man() {
env \
LESS_TERMCAP_mb="$(printf '\e[1;31m')" \
LESS_TERMCAP_md="$(printf '\e[1;31m')" \
LESS_TERMCAP_me="$(printf '\e[0m')" \
LESS_TERMCAP_se="$(printf '\e[0m')" \
LESS_TERMCAP_so="$(printf '\e[1;44;33m')" \
LESS_TERMCAP_ue="$(printf '\e[0m')" \
LESS_TERMCAP_us="$(printf '\e[1;32m')" \
man "$@"
}
function noprompt(){
PS1="$ "
}
function reprompt(){
PS1="$CUSTOM_PS1"
}
# dr mount your .bashrc file to the root user in the container.
alias dr="docker run -it -v ~/.bashrc:/root/.bashrc"
# SET ENV VAR
export EDITOR='vim'
# PATH FOR GOLANG
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
# virtualenv....
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
# PATH for Rust
export PATH=$PATH:$HOME/.cargo/bin/
# Path for pip (awscli for example)
export PATH=$PATH:$HOME/.local/bin
export PATH=$PATH:$HOME/install/idea-IC-221.5591.52/bin
# source tools
## z "jump cd" script.
[ -f ~/install/z/z.sh ] && source ~/install/z/z.sh
# added by travis gem
[ -f ~/.travis/travis.sh ] && source ~/.travis/travis.sh
# All my custom dockerfiles and alias
[ -d ~/dockerfiles ] && source ~/dockerfiles/source-all.sh
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
[ -f ~/.local/bin/virtualenvwrapper.sh ] && source ~/.local/bin/virtualenvwrapper.sh
#export GPG_TTY=$(tty)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
source /usr/share/doc/fzf/examples/key-bindings.bash
source /usr/share/bash-completion/completions/fzf
# Scaleway CLI autocomplete initialization.
eval "$(scw autocomplete script shell=bash)"
unset GOOS;
unset GOARCH;
export GOROOT='/home/edznux/.gimme/versions/go1.20.linux.amd64';
export PATH="/home/edznux/.gimme/versions/go1.20.linux.amd64/bin:${PATH}";
go version >&2;
export GIMME_ENV="/home/edznux/.gimme/envs/go1.20.env"