-
Notifications
You must be signed in to change notification settings - Fork 1
/
.bash_perso
144 lines (128 loc) · 4.54 KB
/
.bash_perso
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
#!/bin/bash
#si le shell n'est pas interactif, ne surtout rien faire pour ne pas
# défoncer scp & co
if [[ $- != *i* ]] ; then
return
fi
#emacs : what else.
export EDITOR='emacsclient -a emacs'
#ignorer les commandes triviales dans l'historique, et garder 20k commandes
export HISTIGNORE="&:ls:[bf]g:cd:c"
export HISTSIZE=20000
export HISTFILESIZE=20000
#standard mais on sait jamais
export PATH=~/bin:$PATH
#~/.tex pour les fichiers tex
export TEXINPUTS=:~/.tex
#prompt user@host:~$
#export PS1='\u@\h:\w\$ '
#enlever le binding C-w de bash, il sera défini dans readline
stty werase undef
# Nobody uses flow control anymore
stty stop undef
stty start undef
#à décommenter pour activer les core dump
# ulimit -c unlimited >/dev/null 2>&1
# ls après chaque cd, parce qu'il est scientifiquement prouvé que 42%
# des gens font un ls après chaque cd. Chiant pour des scripts style
# for i in * ; do cd $i ; do_stuff ; cd .. ; done : dans ces cas-là,
# mettre builtin cd à la place de cd.
cd() {
builtin cd "$@" && ls --color=auto
}
#accueillir l'utilisateur avec un affichage de ~
ls --color=auto
# les alias
# -------------------- Emacs --------------------
#what else
alias e='emacs'
#mode console
alias enw='emacs -nw'
#ouvrir un fichier dans la session d'emacs en cours, et si emacs ne tourne pas, le lancer
alias ec='emacsclient --no-wait -a emacs'
#connection à un emacs en cours
alias re='emacsclient -c'
#connection à un emacs en cours, mode console
alias renw='emacsclient -t'
# -------------------- Autres --------------------
#affichage de la progression en % en bas de less
alias less='less -M'
#affichage d'un processus
alias proc='ps aux | grep'
#connections ouvertes
alias ns='sudo netstat -pnW --inet | less'
#potentiellement l'alias le plus utile de tous
alias c='cd ..'
#normalement par défaut dans les distros sensées, mais bon
alias ls='ls --color=auto'
#rm -rf
alias rf='rm -rf'
#lister les fichiers triés par taille, human readable
function duf {
du -k "$@" | sort -n | while read size fname; do for unit in k M G T P E Z Y; do if [ $size -lt 1024 ]; then echo -e "${size}${unit}\t${fname}"; break; fi; size=$((size/1024)); done; done
}
#dmesg avec timestamps humains
alias dmesg='dmesg -T'
#accepter les HTTPS non signés
alias wget='wget --no-check-certificate'
# utile pour faire p.ex. make && coin
alias coin='play /usr/share/gnubiff/coin.wav'
#laisser gnome choisir le programme à utiliser
alias o='xdg-open'
#w, sans duplicata et trié
alias w='w | sort | uniq -w 4 | grep -v USER | grep -v "load average"'
#pour pouvoir débugger un programme juste en ajoutant gdb devant.
#désactiver si besoin de passer des options à gdb lui-même
alias gdb='gdb --args'
#make multithread par défaut
alias make='make -j3'
#installer plus vite
alias install='sudo apt-get install'
#maj complète pour les debian-like
alias apt-up='sudo apt update; sudo apt dist-upgrade'
#lancer matlab avec fichier de startup
alias matlab='matlab -r "run ~/.matlab/startup.m"'
alias matlabnw='DISPLAY='' matlab'
alias m=matlab
alias mnw=matlabnw
#xfig with latex fonts
alias xfig='xfig -specialtext -latexfonts -startlatexFont default'
#synchroniser manuellement les mails d'offlineimap
alias s='((fetchmail && emacsclient -e "(gnus-group-get-new-news)")&) ; (~/.check-news.sh &)'
# -------------------- Git dans tous ses états --------------------
alias gb='git branch'
alias gba='git branch -a'
alias gc='git commit -v'
alias gd='git diff'
alias gl='git pull'
alias gp='git push'
alias gst='git status | less'
# bzr
alias bl='bzr pull'
alias bd='bzr diff'
alias blo='bzr log | less'
# gfortran, mon ami, arrête d'être un gros blaireau et ne bufferise pas stdout
export GFORTRAN_UNBUFFERED_PRECONNECTED='Y'
alias pprof="python -m cProfile -s cumulative" # pprof -o out.profile script.py
alias pprofview="pyprof2calltree -k -i" #pprofview out.profile
alias ip="ipython --pylab=wx --gui=wx"
# alias julia=~/julia/bin/julia
alias DFTKtest="julia -e 'Pkg.test(\"DFTK\")'; notify-send \"done\""
alias p="python3"
vterm_printf(){
if [ -n "$TMUX" ]; then
# Tell tmux to pass the escape sequences through
# (Source: http://permalink.gmane.org/gmane.comp.terminal-emulators.tmux.user/1324)
printf "\ePtmux;\e\e]%s\007\e\\" "$1"
elif [ "${TERM%%-*}" = "screen" ]; then
# GNU screen (screen, screen-256color, screen-256color-bce)
printf "\eP\e]%s\007\e\\" "$1"
else
printf "\e]%s\e\\" "$1"
fi
}
vterm_prompt_end(){
vterm_printf "51;A$(whoami)@$(hostname):$(pwd)"
}
# PS1=$PS1'\[$(vterm_prompt_end)\]'
alias rsync='rsync -vahr --partial --progress'