diff options
author | Hsieh Chin Fan <pham@topo.tw> | 2024-11-07 10:58:29 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-11-07 10:58:29 +0800 |
commit | 0f098771b18d6d6525fc771bd85c822ab89365f0 (patch) | |
tree | d24e13431b3790c2f8832e1ae74d135c3d96a001 /alias | |
parent | 03e2ddb836f71189872a6465b4b83e8af7fa3131 (diff) |
Update
Diffstat (limited to 'alias')
-rw-r--r-- | alias | 501 |
1 files changed, 236 insertions, 265 deletions
@@ -1,142 +1,42 @@ | |||
1 | # My alias for bash and zsh | 1 | # My alias for bash and zsh |
2 | 2 | ||
3 | # __CONFIG__ | ||
4 | # __NETWORK__ | ||
5 | # __VIM__ | ||
6 | # __SSH__ | ||
7 | # __IMAP__ | ||
8 | # __GIST__ | ||
9 | # __UNIX__ | ||
10 | # __PACMAN__ | ||
11 | # __CD__ | ||
12 | # __BLOG__ | ||
13 | # __GIT__ | ||
14 | # __GITHUB__ | ||
15 | # __TIG__ | ||
16 | |||
17 | # __CONFIG__ | ||
18 | alias al="$EDITOR $SETTING_DIR/alias && source $SETTING_DIR/alias" | 3 | alias al="$EDITOR $SETTING_DIR/alias && source $SETTING_DIR/alias" |
4 | |||
5 | # SHELL {{{ | ||
19 | eval "${shell}rc(){ | 6 | eval "${shell}rc(){ |
20 | local RCFILE=$XDG_CONFIG_HOME/${shell}/.${shell}rc | 7 | local RCFILE=$XDG_CONFIG_HOME/${shell}/.${shell}rc |
21 | vim \$RCFILE && source \$RCFILE | 8 | vim \$RCFILE && source \$RCFILE |
22 | }" | 9 | }" |
23 | alias vimrc='vim ~/.vimrc' | ||
24 | alias tigrc="$EDITOR ~/.tigrc" | ||
25 | alias mutt.rc="$EDITOR ~/.config/mutt/muttrc" | ||
26 | alias ala.rc="$EDITOR ~/.config/alacritty/alacritty.toml" | ||
27 | alias alacritty.rc="$EDITOR ~/.config/alacritty/alacritty.toml" | ||
28 | alias git.config="$EDITOR ~/.gitconfig" | ||
29 | alias gpg.config="$EDITOR ~/.gnupg/gpg-agent.conf" | ||
30 | alias ssh.config="$EDITOR ~/.ssh/config" | ||
31 | alias ssh.auth="$EDITOR ~/.ssh/authorized_keys" | ||
32 | alias ssh.known="$EDITOR ~/.ssh/known_hosts" | ||
33 | config(){ cd ~/.config/$1; } | ||
34 | alias tmux.config="$EDITOR ~/.tmux.conf" | ||
35 | cde() { cd /etc/$@; } | ||
36 | |||
37 | alias cdetc='cde' | ||
38 | alias ls='ls --color' | ||
39 | alias lsd='ls -d */' | ||
40 | alias grep='grep --color' | ||
41 | alias eof='IGNOREEOF=10' | 10 | alias eof='IGNOREEOF=10' |
42 | 11 | ||
43 | # __NETWORK__ | 12 | # }}} |
44 | alias dig.detail='dig +noall +answer +multiline' | 13 | # CUSTOM HELPER {{{ |
45 | 14 | cdh() { cd $SETTING_DIR/$@; } | |
46 | # __VIM__ | 15 | alias chh="tig -C $SETTING_DIR status" |
47 | if which nvim &>/dev/null; then | 16 | # }}} |
48 | alias vim='nvim' | 17 | # Text Encode/Decode{{{ |
49 | alias v='nvim' | 18 | big52utf8() { |
50 | alias vv='/usr/bin/vim' | 19 | iconv -f BIG-5 -t UTF-8 |
51 | else | ||
52 | alias v='vim' | ||
53 | fi | ||
54 | alias vu='vim -u NONE' | ||
55 | alias vr='vim -R' | ||
56 | # Edit last file | ||
57 | alias vl="vim -c 'norm '" | ||
58 | # Use Telescope to select recent files | ||
59 | vll() { vim -c 'Telescope oldfiles'; } | ||
60 | # Apply defaut session | ||
61 | alias vS="vim -S /tmp/vim.session" | ||
62 | alias cdv='cd ~/.config/nvim' | ||
63 | vs() { which $1 && vim $(which $1); } | ||
64 | [ "$shell" = zsh ] && compdef vs=which | ||
65 | alias vim.dos2unix="vim '+set ff=unix' '+x'" | ||
66 | |||
67 | # __SSH__ | ||
68 | alias cdssh='cd ~/.ssh' | ||
69 | alias ptt='ssh ptt' | ||
70 | alias sshv='ssh -t vps' | ||
71 | ssh.tar() { | ||
72 | prompt-vim "tar cf - foo | ssh vps 'cd ~/Downloads; tar xf -' \nssh vps 'tar czf - --directory=/working/path target' | tar xvzf -" | ||
73 | } | ||
74 | ssh.up() { | ||
75 | set -o pipefail | ||
76 | filename=${3:-`basename $1`} | ||
77 | # Upload to absolution path | ||
78 | if [[ $2 =~ '^/' ]]; then | ||
79 | folder=${2%/} | ||
80 | cat $1 | ssh vps "mkdir -p $folder; cat >${folder}/${filename}" || return 1 | ||
81 | echo Uploaded to ${folder}/${filename} | ||
82 | # Upload to relative in ~/public/ | ||
83 | else | ||
84 | folder='~/public/'${2%/} | ||
85 | cat $1 | ssh vps "mkdir -p $folder; cat >${folder}/${filename}" || return 1 | ||
86 | echo https://topo.tw/p/${2%/}/${filename} | ||
87 | fi | ||
88 | } | ||
89 | ssh.up.today() { | ||
90 | DATE=$(date --iso-8601) | ||
91 | ssh vps mkdir -p ~/public/$DATE | ||
92 | ssh.up $1 $DATE | ||
93 | } | ||
94 | ssh.down() { | ||
95 | ssh -t vps rm -rf -i ~/public/"$1" | ||
96 | } | ||
97 | |||
98 | # __IMAP__ | ||
99 | imap.save() { | ||
100 | curl "imaps://mail.topo.tw/$1" \ | ||
101 | --user pham:`pass mail/pham@mail.topo.tw` \ | ||
102 | -T $2 | ||
103 | } | ||
104 | imap.save_attachment() { | ||
105 | #TEMPFILE=$(mktemp) | ||
106 | trap 'rm $TEMPFILE' EXIT | ||
107 | mail -a $1 -Sexpandaddr /dev/stdout | \ | ||
108 | curl imaps://mail.topo.tw/INBOX \ | ||
109 | --user pham:`pass mail/pham@mail.topo.tw` \ | ||
110 | -T /dev/stdin | ||
111 | } | 20 | } |
112 | imap.search.subject() { | 21 | utf82big5() { |
113 | curl "imaps://mail.topo.tw/$1" \ | 22 | iconv -t BIG-5 -f UTF-8 |
114 | --user pham:`pass mail/pham@mail.topo.tw` \ | ||
115 | --request "SEARCH SUBJECT $2" | ||
116 | } | 23 | } |
117 | imap.fetch() { | 24 | urlencode() { |
118 | curl "imaps://mail.topo.tw/$1;MAILINDEX=$2" \ | 25 | perl -lpe 's/([^A-Za-z0-9.\/:])/sprintf("%%%02X", ord($1))/seg' |
119 | --user pham:`pass mail/pham@mail.topo.tw` | \ | 26 | # Alternative: |
120 | dos2unix | \ | 27 | # curl -Gso /dev/null -w %{url_effective} --data-urlencode @- "" |
121 | sed -E '0,/^ *$/d' | ||
122 | } | 28 | } |
123 | 29 | # }}} | |
124 | # __GIST__ | 30 | # UNIX {{{ |
125 | alias g='gist' | ||
126 | alias gl='gist last' | ||
127 | unalias gg &>/dev/null | ||
128 | alias gg='gist grep' | ||
129 | |||
130 | # __UNIX__ | ||
131 | alias chx='chmod +x' | 31 | alias chx='chmod +x' |
132 | alias chr='chmod +r' | 32 | alias chr='chmod +r' |
33 | config(){ cd ~/.config/$1; } | ||
133 | alias k='kill %1' | 34 | alias k='kill %1' |
134 | alias s='sudo systemctl' | 35 | alias s='sudo systemctl' |
135 | alias j='sudo journalctl -xeu' | 36 | alias j='sudo journalctl -xeu' |
136 | alias m='mutt' | 37 | alias ls='ls --color' |
137 | alias h='himalaya' | 38 | alias lsd='ls -d */' |
138 | alias gmail="mutt -F $SETTING_DIR/mutt/muttrc.gmail" | 39 | alias grep='grep --color' |
139 | alias ntu="mutt -F $SETTING_DIR/mutt/muttrc.b97602041" | ||
140 | path() { echo $PATH; } # Should not use alias, because $PATH is not initialized | 40 | path() { echo $PATH; } # Should not use alias, because $PATH is not initialized |
141 | ps1.swap() { | 41 | ps1.swap() { |
142 | if [ -z "$PS1_bak" ]; then PS1_bak="$PS1" | 42 | if [ -z "$PS1_bak" ]; then PS1_bak="$PS1" |
@@ -211,8 +111,105 @@ gr() { | |||
211 | grep -IR $@ . | sed '/^.\{2048\}./d' | 111 | grep -IR $@ . | sed '/^.\{2048\}./d' |
212 | } | 112 | } |
213 | alias findn='find . -iname' | 113 | alias findn='find . -iname' |
114 | alias ce='crontab -e' | ||
115 | alias cl='crontab -l' | ||
116 | alias df='df -h' | ||
214 | 117 | ||
215 | # __PACMAN__ | 118 | # }}} |
119 | # Clipboard{{{ | ||
120 | alias xi='xsel -ib' | ||
121 | alias xii='`fc -ln -1` | head -1 | xsel -ib' | ||
122 | alias xo='xsel -ob' | ||
123 | alias xl='history | tail -1 | grep -oP "^\s*[0-9]+\s\s\K.*" | xsel -ib && echo Copied to clipboard && xsel -ob' | ||
124 | # }}} | ||
125 | # TMUX {{{ | ||
126 | alias tma='tmux a' | ||
127 | alias tmux.config="$EDITOR ~/.tmux.conf" | ||
128 | # }}} | ||
129 | # NETWORK {{{ | ||
130 | |||
131 | alias dig.detail='dig +noall +answer +multiline' | ||
132 | alias co='curl -O' | ||
133 | alias curl.code='curl -o /dev/null --silent -Iw "%{http_code}"' | ||
134 | alias p8='ping -c 3 8.8.8.8' | ||
135 | alias curl.google='curl -v google.com' | ||
136 | alias curl.wifi='curl -I google.com | grep -E "^Location:" | cut -d" " -f2 | xsel -ib' | ||
137 | ip.neigh() { | ||
138 | INTERFACES=$(ifconfig | sed -nE 's/^([^ :]+).*$/\1/p') | ||
139 | test -z "$1" && echo $INTERFACES && return 0 | ||
140 | |||
141 | ifconfig | sed -nE "/^${1}/,/^$/ s/^ +inet ([0-9.]+) .*$/\1/p" | ||
142 | } | ||
143 | |||
144 | # }}} | ||
145 | # MAIL {{{ | ||
146 | alias m='mutt' | ||
147 | alias mutt.rc="$EDITOR ~/.config/mutt/muttrc" | ||
148 | alias h='himalaya' | ||
149 | alias gmail="mutt -F $SETTING_DIR/mutt/muttrc.gmail" | ||
150 | alias ntu="mutt -F $SETTING_DIR/mutt/muttrc.b97602041" | ||
151 | imap.save() { | ||
152 | curl "imaps://mail.topo.tw/$1" \ | ||
153 | --user pham:`pass mail/pham@mail.topo.tw` \ | ||
154 | -T $2 | ||
155 | } | ||
156 | imap.save_attachment() { | ||
157 | #TEMPFILE=$(mktemp) | ||
158 | trap 'rm $TEMPFILE' EXIT | ||
159 | mail -a $1 -Sexpandaddr /dev/stdout | \ | ||
160 | curl imaps://mail.topo.tw/INBOX \ | ||
161 | --user pham:`pass mail/pham@mail.topo.tw` \ | ||
162 | -T /dev/stdin | ||
163 | } | ||
164 | imap.search.subject() { | ||
165 | curl "imaps://mail.topo.tw/$1" \ | ||
166 | --user pham:`pass mail/pham@mail.topo.tw` \ | ||
167 | --request "SEARCH SUBJECT $2" | ||
168 | } | ||
169 | imap.fetch() { | ||
170 | curl "imaps://mail.topo.tw/$1;MAILINDEX=$2" \ | ||
171 | --user pham:`pass mail/pham@mail.topo.tw` | \ | ||
172 | dos2unix | \ | ||
173 | sed -E '0,/^ *$/d' | ||
174 | } | ||
175 | |||
176 | # }}} | ||
177 | # SSH {{{ | ||
178 | alias ssh.config="$EDITOR ~/.ssh/config" | ||
179 | alias ssh.auth="$EDITOR ~/.ssh/authorized_keys" | ||
180 | alias ssh.known="$EDITOR ~/.ssh/known_hosts" | ||
181 | alias cdssh='cd ~/.ssh' | ||
182 | alias ptt='ssh ptt' | ||
183 | alias sshv='ssh -t vps' | ||
184 | ssh.tar() { | ||
185 | prompt-vim "tar cf - foo | ssh vps 'cd ~/Downloads; tar xf -' \nssh vps 'tar czf - --directory=/working/path target' | tar xvzf -" | ||
186 | } | ||
187 | ssh.up() { | ||
188 | set -o pipefail | ||
189 | filename=${3:-`basename $1`} | ||
190 | # Upload to absolution path | ||
191 | if [[ $2 =~ '^/' ]]; then | ||
192 | folder=${2%/} | ||
193 | cat $1 | ssh vps "mkdir -p $folder; cat >${folder}/${filename}" || return 1 | ||
194 | echo Uploaded to ${folder}/${filename} | ||
195 | # Upload to relative in ~/public/ | ||
196 | else | ||
197 | folder='~/public/'${2%/} | ||
198 | cat $1 | ssh vps "mkdir -p $folder; cat >${folder}/${filename}" || return 1 | ||
199 | echo https://topo.tw/p/${2%/}/${filename} | ||
200 | fi | ||
201 | } | ||
202 | ssh.up.today() { | ||
203 | DATE=$(date --iso-8601) | ||
204 | ssh vps mkdir -p ~/public/$DATE | ||
205 | ssh.up $1 $DATE | ||
206 | } | ||
207 | ssh.down() { | ||
208 | ssh -t vps rm -rf -i ~/public/"$1" | ||
209 | } | ||
210 | |||
211 | # }}} | ||
212 | # PACMAN {{{ | ||
216 | alias pac='sudo pacman -S' # pacman install | 213 | alias pac='sudo pacman -S' # pacman install |
217 | alias psy='sudo pacman -Syy' | 214 | alias psy='sudo pacman -Syy' |
218 | alias ys='yay -S' | 215 | alias ys='yay -S' |
@@ -238,15 +235,50 @@ psi() { | |||
238 | } | 235 | } |
239 | pkgbuild() { git clone https://aur.archlinux.org/$1.git; } | 236 | pkgbuild() { git clone https://aur.archlinux.org/$1.git; } |
240 | 237 | ||
241 | # __CD__ | 238 | # }}} |
239 | # Alacritty{{{ | ||
240 | alias ala.rc="$EDITOR ~/.config/alacritty/alacritty.toml" | ||
241 | alias alacritty.rc="$EDITOR ~/.config/alacritty/alacritty.toml" | ||
242 | # }}} | ||
243 | # VIM {{{ | ||
244 | alias vimrc='vim ~/.vimrc' | ||
245 | if which nvim &>/dev/null; then | ||
246 | alias vim='nvim' | ||
247 | alias v='nvim' | ||
248 | alias vv='/usr/bin/vim' | ||
249 | else | ||
250 | alias v='vim' | ||
251 | fi | ||
252 | alias vu='vim -u NONE' | ||
253 | alias vr='vim -R' | ||
254 | # Edit last file | ||
255 | alias vl="vim -c 'norm '" | ||
256 | # Use Telescope to select recent files | ||
257 | vll() { vim -c 'Telescope oldfiles'; } | ||
258 | # Apply defaut session | ||
259 | alias vS="vim -S /tmp/vim.session" | ||
260 | alias cdv='cd ~/.config/nvim' | ||
261 | vs() { which $1 && vim $(which $1); } | ||
262 | [ "$shell" = zsh ] && compdef vs=which | ||
263 | alias vim.dos2unix="vim '+set ff=unix' '+x'" | ||
264 | vvv() { | ||
265 | while true; do | ||
266 | vim -c 'norm ' | ||
267 | if [ $? -ne 0 ]; then | ||
268 | break | ||
269 | fi | ||
270 | echo "restarting vim..."; | ||
271 | done | ||
272 | } | ||
273 | |||
274 | # }}} | ||
275 | # CD {{{ | ||
242 | alias ..='cd ..' | 276 | alias ..='cd ..' |
243 | alias ...='cd ../..' | 277 | alias ...='cd ../..' |
244 | alias ld='cd -' # last directory | 278 | alias ld='cd -' # last directory |
245 | cdg() { | ||
246 | target=$(sed 's# #/#g' <<<"$@") | ||
247 | cd ~/git/$target || cd ~/git | ||
248 | } | ||
249 | alias cda='mkdir -p ~/data && cd ~/data' | 279 | alias cda='mkdir -p ~/data && cd ~/data' |
280 | cde() { cd /etc/$@; } | ||
281 | alias cdetc='cde' | ||
250 | alias cdd='cd ~/Downloads' | 282 | alias cdd='cd ~/Downloads' |
251 | alias cdD='cd ~/Documents' | 283 | alias cdD='cd ~/Documents' |
252 | alias cdP='cd ~/Pictures' | 284 | alias cdP='cd ~/Pictures' |
@@ -254,7 +286,8 @@ alias cdpu='cd ~/public' | |||
254 | alias cdV='cd ~/Videos' | 286 | alias cdV='cd ~/Videos' |
255 | alias cdM='cd ~/Music' | 287 | alias cdM='cd ~/Music' |
256 | 288 | ||
257 | # __BLOG__ | 289 | # }}} |
290 | # BLOG {{{ | ||
258 | alias cdb='cd ~/blog' | 291 | alias cdb='cd ~/blog' |
259 | vp() { | 292 | vp() { |
260 | [[ $HOST = vultr ]] || PREFIX='ssh -qt vps' | 293 | [[ $HOST = vultr ]] || PREFIX='ssh -qt vps' |
@@ -282,19 +315,48 @@ vp() { | |||
282 | fi | 315 | fi |
283 | } | 316 | } |
284 | 317 | ||
285 | # __GIT__ | 318 | # }}} |
319 | # GIT {{{ | ||
320 | alias git.config="$EDITOR ~/.gitconfig" | ||
286 | unalias gc &> /dev/null # override zsh plugin alias | 321 | unalias gc &> /dev/null # override zsh plugin alias |
287 | gc() { git clone $@; if [ $# = 1 ]; then cd $(basename ${1%.git}); fi } | 322 | gc() { git clone $@; if [ $# = 1 ]; then cd $(basename ${1%.git}); fi } |
288 | gc1() { git clone --depth=1 $1 && cd $(basename $1); } | 323 | gc1() { git clone --depth=1 $1 && cd $(basename $1); } |
289 | gcv() { gc vps:$1; } | ||
290 | alias gls='git log -S' | 324 | alias gls='git log -S' |
325 | cdg() { | ||
326 | target=$(sed 's# #/#g' <<<"$@") | ||
327 | cd ~/git/$target || cd ~/git | ||
328 | } | ||
291 | alias cdgg='cd $(git rev-parse --show-toplevel)' | 329 | alias cdgg='cd $(git rev-parse --show-toplevel)' |
292 | alias cdgw='cdgg && cd .github/workflows' | 330 | alias cdgw='cdgg && cd .github/workflows' |
293 | alias cdgs='cd $(git submodule status | sed "s/^.//" | cut -d" " -f2)' # cd to first submodule | 331 | alias cdgs='cd $(git submodule status | sed "s/^.//" | cut -d" " -f2)' # cd to first submodule |
294 | alias ch="/home/pham/helper/bin/git/check-repos.sh" | 332 | alias ch="/home/pham/helper/bin/git/check-repos.sh" |
295 | alias git.check="/home/pham/helper/bin/git/check-repos.sh" | 333 | alias git.check="/home/pham/helper/bin/git/check-repos.sh" |
296 | 334 | ||
297 | # __GITHUB__ | 335 | # }}} |
336 | # TIG {{{ | ||
337 | alias cdt='cd ~/git/tig' | ||
338 | alias t='tig' | ||
339 | alias ts='tig status' | ||
340 | alias tigrc="$EDITOR ~/.tigrc" | ||
341 | alias ta='tig --all' | ||
342 | upload_tig() { | ||
343 | github-release.sh \ | ||
344 | github_api_token=$GITHUB_API_TOKEN \ | ||
345 | repo=typebrook/tig \ | ||
346 | tag=LATEST \ | ||
347 | type=asset \ | ||
348 | filename=$(which tig) | ||
349 | action=overwrite | ||
350 | } | ||
351 | # }}} | ||
352 | # GIST {{{ | ||
353 | alias g='gist' | ||
354 | alias gl='gist last' | ||
355 | unalias gg &>/dev/null | ||
356 | alias gg='gist grep' | ||
357 | |||
358 | # }}} | ||
359 | # Service: GITHUB {{{ | ||
298 | export GITHUB_API='https://api.github.com' | 360 | export GITHUB_API='https://api.github.com' |
299 | export GITHUB_API_TOKEN="~/.ssh/tokens/github 2>/dev/null)" | 361 | export GITHUB_API_TOKEN="~/.ssh/tokens/github 2>/dev/null)" |
300 | alias hub="GITHUB_TOKEN=$GITHUB_API_TOKEN hub" | 362 | alias hub="GITHUB_TOKEN=$GITHUB_API_TOKEN hub" |
@@ -319,49 +381,12 @@ github.raw() { | |||
319 | curl -O https://raw.githubusercontent.com/$1/$2/$3 | 381 | curl -O https://raw.githubusercontent.com/$1/$2/$3 |
320 | } | 382 | } |
321 | 383 | ||
322 | # __TIG__ | 384 | # }}} |
323 | alias cdt='cd ~/git/tig' | 385 | # Beancount{{{ |
324 | alias t='tig' | ||
325 | alias ts='tig status' | ||
326 | alias ta='tig --all' | ||
327 | upload_tig() { | ||
328 | github-release.sh \ | ||
329 | github_api_token=$GITHUB_API_TOKEN \ | ||
330 | repo=typebrook/tig \ | ||
331 | tag=LATEST \ | ||
332 | type=asset \ | ||
333 | filename=$(which tig) | ||
334 | action=overwrite | ||
335 | } | ||
336 | |||
337 | # about custom settings | ||
338 | cdh() { cd $SETTING_DIR/$@; } | ||
339 | alias chh="tig -C $SETTING_DIR status" | ||
340 | |||
341 | # about beancount | ||
342 | alias cdB='cd $HOME/bean' | 386 | alias cdB='cd $HOME/bean' |
343 | alias b='vim $HOME/bean/main.bean' | 387 | alias b='vim $HOME/bean/main.bean' |
344 | 388 | # }}} | |
345 | # crontab | 389 | # Docker{{{ |
346 | alias ce='crontab -e' | ||
347 | alias cl='crontab -l' | ||
348 | |||
349 | # lf | ||
350 | alias r='_lf_cd' | ||
351 | alias l='_lf_cd' | ||
352 | _lf_cd() { | ||
353 | tempfile=$(mktemp -t tmp.XXXXXX) | ||
354 | lf --last-dir-path $tempfile | ||
355 | |||
356 | test -f "$tempfile" && \ | ||
357 | cd -- "$(cat "$tempfile")" && \ | ||
358 | rm -f -- "$tempfile" | ||
359 | } | ||
360 | |||
361 | # disk | ||
362 | alias df='df -h' | ||
363 | |||
364 | # docker | ||
365 | alias dk='docker' | 390 | alias dk='docker' |
366 | alias dc='docker-compose' | 391 | alias dc='docker-compose' |
367 | alias dis='docker images' | 392 | alias dis='docker images' |
@@ -370,8 +395,8 @@ alias dpsa='docker ps -a' | |||
370 | docker.sh() { docker run --rm -it --entrypoint /bin/sh $@; } | 395 | docker.sh() { docker run --rm -it --entrypoint /bin/sh $@; } |
371 | docker.bash() { docker run --rm -it --entrypoint /bin/bash $@; } | 396 | docker.bash() { docker run --rm -it --entrypoint /bin/bash $@; } |
372 | docker.tags() { curl -s -S "https://registry.hub.docker.com/v2/repositories/$@/tags/" | tee /dev/tty | jq '.results[]["name"]' | sort; } | 397 | docker.tags() { curl -s -S "https://registry.hub.docker.com/v2/repositories/$@/tags/" | tee /dev/tty | jq '.results[]["name"]' | sort; } |
373 | 398 | # }}} | |
374 | # Android | 399 | # Android{{{ |
375 | alias debug='./gradlew app:installDebug && adb shell am start -n com.geothings.geobingan/.MainActivity_' | 400 | alias debug='./gradlew app:installDebug && adb shell am start -n com.geothings.geobingan/.MainActivity_' |
376 | alias adb.view='adb shell am start -a android.intent.action.VIEW -d' | 401 | alias adb.view='adb shell am start -a android.intent.action.VIEW -d' |
377 | alias adb.default='adb shell dumpsys package domain-preferred-apps' | 402 | alias adb.default='adb shell dumpsys package domain-preferred-apps' |
@@ -384,19 +409,11 @@ alias adb.input='adb shell input text' | |||
384 | adb.push() { | 409 | adb.push() { |
385 | adb push $1 /sdcard/Download | 410 | adb push $1 /sdcard/Download |
386 | } | 411 | } |
387 | 412 | # }}} | |
388 | # curl | 413 | # python{{{ |
389 | alias co='curl -O' | ||
390 | alias curl.code='curl -o /dev/null --silent -Iw "%{http_code}"' | ||
391 | |||
392 | # python | ||
393 | alias pip3='python3 -m pip' | 414 | alias pip3='python3 -m pip' |
394 | 415 | # }}} | |
395 | # gdal | 416 | # sample file{{{ |
396 | alias oo='ogr2ogr' | ||
397 | alias oi='ogrinfo -al -so' | ||
398 | |||
399 | # sample file | ||
400 | alias sample.text='curl http://metaphorpsum.com/paragraphs/3/5' | 417 | alias sample.text='curl http://metaphorpsum.com/paragraphs/3/5' |
401 | alias sample.gpx='curl -O https://docs.mapbox.com/help/data/run.gpx' | 418 | alias sample.gpx='curl -O https://docs.mapbox.com/help/data/run.gpx' |
402 | alias sample.geojson='curl -O https://docs.mapbox.com/help/data/stations.geojson' | 419 | alias sample.geojson='curl -O https://docs.mapbox.com/help/data/stations.geojson' |
@@ -428,8 +445,8 @@ taiwan_dem() { | |||
428 | xargs curl -Lo taiwan_dem.zip | 445 | xargs curl -Lo taiwan_dem.zip |
429 | unzip -p taiwan_dem.zip dem_20m.tif >20m.tif | 446 | unzip -p taiwan_dem.zip dem_20m.tif >20m.tif |
430 | } | 447 | } |
431 | 448 | # }}} | |
432 | # data file | 449 | # DATA (from internet){{{ |
433 | alias taiwan='curl -O http://download.geofabrik.de/asia/taiwan-latest.osm.pbf' | 450 | alias taiwan='curl -O http://download.geofabrik.de/asia/taiwan-latest.osm.pbf' |
434 | alias data.rudymap='curl -O https://raw.githubusercontent.com/alpha-rudy/taiwan-topo/master/styles/mapsforge_style/MOI_OSM.xml' | 451 | alias data.rudymap='curl -O https://raw.githubusercontent.com/alpha-rudy/taiwan-topo/master/styles/mapsforge_style/MOI_OSM.xml' |
435 | alias data.rudymap_ele='curl -O http://moi.kcwu.csie.org/osm_elevations/ele_taiwan_10_50_100_500_marker-2019.7.o5m' | 452 | alias data.rudymap_ele='curl -O http://moi.kcwu.csie.org/osm_elevations/ele_taiwan_10_50_100_500_marker-2019.7.o5m' |
@@ -450,32 +467,36 @@ alias data.taiwan_town='curl -o town.zip -L https://data.moi.gov.tw/MoiOD/Syste | |||
450 | alias data.taiwan_village='curl -o village.zip -L http://data.moi.gov.tw/MoiOD/System/DownloadFile.aspx\?DATA\=B8AF344F-B5C6-4642-AF46-1832054399CE' | 467 | alias data.taiwan_village='curl -o village.zip -L http://data.moi.gov.tw/MoiOD/System/DownloadFile.aspx\?DATA\=B8AF344F-B5C6-4642-AF46-1832054399CE' |
451 | alias data.taiwan_poly='curl -O http://download.geofabrik.de/asia/taiwan.poly' | 468 | alias data.taiwan_poly='curl -O http://download.geofabrik.de/asia/taiwan.poly' |
452 | alias data.taiwan_county_code='curl --silent https://www.ris.gov.tw/documents/data/5/1/RSCD0101.txt | iconv -f BIG-5 -t UTF-8 -' | 469 | alias data.taiwan_county_code='curl --silent https://www.ris.gov.tw/documents/data/5/1/RSCD0101.txt | iconv -f BIG-5 -t UTF-8 -' |
470 | # }}} | ||
471 | # PASS {{{ | ||
453 | 472 | ||
454 | # clipboard | 473 | alias chp='tig -C ~/.password-store' |
455 | alias xi='xsel -ib' | 474 | alias chpass='tig -C ~/.password-store' |
456 | alias xii='`fc -ln -1` | head -1 | xsel -ib' | 475 | alias cdpass='cd ~/.password-store' |
457 | alias xo='xsel -ob' | 476 | alias p='pass' |
458 | alias xl='history | tail -1 | grep -oP "^\s*[0-9]+\s\s\K.*" | xsel -ib && echo Copied to clipboard && xsel -ob' | 477 | alias pc='pass -c' |
459 | 478 | alias pe='pass edit' | |
460 | # Text Encode/Decode | 479 | alias pgn='pass generate --in-place --clip' |
461 | big52utf8() { | 480 | alias pgc='pass generate --clip' |
462 | iconv -f BIG-5 -t UTF-8 | 481 | words() { |
463 | } | 482 | cat /usr/share/dict/usa | grep -E "^[a-z]{4,8}$" | shuf | head -40 | xargs -n${1:-2} |
464 | utf82big5() { | ||
465 | iconv -t BIG-5 -f UTF-8 | ||
466 | } | ||
467 | urlencode() { | ||
468 | perl -lpe 's/([^A-Za-z0-9.\/:])/sprintf("%%%02X", ord($1))/seg' | ||
469 | # Alternative: | ||
470 | # curl -Gso /dev/null -w %{url_effective} --data-urlencode @- "" | ||
471 | } | 483 | } |
472 | 484 | ||
473 | # Network | 485 | # }}} |
474 | alias p8='ping -c 3 8.8.8.8' | 486 | # Nginx{{{ |
475 | alias curl.google='curl -v google.com' | 487 | alias vgx='sudo vim /etc/nginx/sites-enabled/vps && sudo nginx -t && sudo systemctl reload nginx' |
476 | alias curl.wifi='curl -I google.com | grep -E "^Location:" | cut -d" " -f2 | xsel -ib' | 488 | alias cdngx='cd /etc/nginx' |
477 | 489 | # }}} | |
478 | # misc | 490 | # GIS {{{ |
491 | alias oo='ogr2ogr' | ||
492 | alias oi='ogrinfo -al -so' | ||
493 | TAIWAN_BBOX='118.1036,20.72799,122.9312,26.60305' | ||
494 | TAIWAN_BBOX_V='20.72799,118.1036,26.60305,122.9312' | ||
495 | TAIPEI_BBOX='121.346,24.926,121.676,25.209' | ||
496 | TAIPEI_BBOX_V='24.926,121.346,25.209,121.676' | ||
497 | # }}} | ||
498 | # Misc{{{ | ||
499 | alias gpg.config="$EDITOR ~/.gnupg/gpg-agent.conf" | ||
479 | alias foo='echo bar > foo && echo File foo is created && ls -lh foo' | 500 | alias foo='echo bar > foo && echo File foo is created && ls -lh foo' |
480 | alias bar='echo foo > bar && echo File bar is created && ls -lh bar' | 501 | alias bar='echo foo > bar && echo File bar is created && ls -lh bar' |
481 | alias wcl='wc -l' | 502 | alias wcl='wc -l' |
@@ -488,7 +509,6 @@ yt.audio() { | |||
488 | alias editor='select-editor' | 509 | alias editor='select-editor' |
489 | alias hp='http-prompt' | 510 | alias hp='http-prompt' |
490 | alias clocg='cloc --vcs=git' | 511 | alias clocg='cloc --vcs=git' |
491 | alias tma='tmux a' | ||
492 | pbf() { | 512 | pbf() { |
493 | protoc --decode_raw | 513 | protoc --decode_raw |
494 | } | 514 | } |
@@ -508,25 +528,8 @@ wrap2geojson() { jq -s '{ type: "FeatureCollection", features: . }'; } | |||
508 | alias cdtrash='cd ~/.local/share/Trash' | 528 | alias cdtrash='cd ~/.local/share/Trash' |
509 | trash() { mv $@ ~/.local/share/Trash; } | 529 | trash() { mv $@ ~/.local/share/Trash; } |
510 | alias ge='graph-easy --boxart' | 530 | alias ge='graph-easy --boxart' |
511 | 531 | # }}} | |
512 | # pass | 532 | # tmp{{{ |
513 | alias chp='tig -C ~/.password-store' | ||
514 | alias chpass='tig -C ~/.password-store' | ||
515 | alias cdpass='cd ~/.password-store' | ||
516 | alias p='pass' | ||
517 | alias pc='pass -c' | ||
518 | alias pe='pass edit' | ||
519 | alias pgn='pass generate --in-place --clip' | ||
520 | alias pgc='pass generate --clip' | ||
521 | words() { | ||
522 | cat /usr/share/dict/usa | grep -E "^[a-z]{4,8}$" | shuf | head -40 | xargs -n${1:-2} | ||
523 | } | ||
524 | |||
525 | # Nginx | ||
526 | alias vgx='sudo vim /etc/nginx/sites-enabled/vps && sudo nginx -t && sudo systemctl reload nginx' | ||
527 | alias cdngx='cd /etc/nginx' | ||
528 | |||
529 | # tmp | ||
530 | alias stew='cd ~/git/mapstew' | 533 | alias stew='cd ~/git/mapstew' |
531 | alias vc='vultr-cli' | 534 | alias vc='vultr-cli' |
532 | alias xkb='cd $SETTING_DIR && make xkb' | 535 | alias xkb='cd $SETTING_DIR && make xkb' |
@@ -538,36 +541,4 @@ alias md='reveal' | |||
538 | alias terminal.color='printf "\e[%dm%d dark\e[0m \e[%d;1m%d bold\e[0m\n" {30..37}{,,,}' | 541 | alias terminal.color='printf "\e[%dm%d dark\e[0m \e[%d;1m%d bold\e[0m\n" {30..37}{,,,}' |
539 | alias gpg.bye='gpg-connect-agent reloadagent /bye' | 542 | alias gpg.bye='gpg-connect-agent reloadagent /bye' |
540 | alias npm='pnpm' | 543 | alias npm='pnpm' |
541 | 544 | # }}} | |
542 | # GIS | ||
543 | TAIWAN_BBOX='118.1036,20.72799,122.9312,26.60305' | ||
544 | TAIWAN_BBOX_V='20.72799,118.1036,26.60305,122.9312' | ||
545 | TAIPEI_BBOX='121.346,24.926,121.676,25.209' | ||
546 | TAIPEI_BBOX_V='24.926,121.346,25.209,121.676' | ||
547 | |||
548 | # Comment out | ||
549 | #alias mm='mkvmerge -o out.webm -w 01.webm + 02.webm' | ||
550 | #alias we='weechat' | ||
551 | |||
552 | LOCAL_ALIAS=~/.config/local.alias | ||
553 | alias allo="$EDITOR $LOCAL_ALIAS && source $LOCAL_ALIAS" | ||
554 | if [ -e $LOCAL_ALIAS ]; then | ||
555 | source $LOCAL_ALIAS | ||
556 | fi | ||
557 | |||
558 | vvv() { | ||
559 | while true; do | ||
560 | vim -c 'norm ' | ||
561 | if [ $? -ne 0 ]; then | ||
562 | break | ||
563 | fi | ||
564 | echo "restarting vim..."; | ||
565 | done | ||
566 | } | ||
567 | |||
568 | ip.neigh() { | ||
569 | INTERFACES=$(ifconfig | sed -nE 's/^([^ :]+).*$/\1/p') | ||
570 | test -z "$1" && echo $INTERFACES && return 0 | ||
571 | |||
572 | ifconfig | sed -nE "/^${1}/,/^$/ s/^ +inet ([0-9.]+) .*$/\1/p" | ||
573 | } | ||