Blame


1 ff62f64a 2014-10-31 xhr # collection of shell functions found in dot_files, wikis, etc
2 069a8427 2016-02-12 xhr # around the world. Some are written by me, of course.
3 ff62f64a 2014-10-31 xhr
4 3f95793f 2015-09-29 xhr # Trivial conversion of a hex number to decimal
5 3f95793f 2015-09-29 xhr function hex2dec()
6 3f95793f 2015-09-29 xhr {
7 3f95793f 2015-09-29 xhr [ -z "$1" ] && echo "No hex number given" && return
8 3f95793f 2015-09-29 xhr if [[ ${1:0:2} != "0x" ]]; then
9 3f95793f 2015-09-29 xhr echo "Please prefix string with 0x"
10 3f95793f 2015-09-29 xhr return
11 3f95793f 2015-09-29 xhr fi
12 3f95793f 2015-09-29 xhr re='^[0-9a-fA-Fx]+$'
13 3f95793f 2015-09-29 xhr if ! [[ $1 =~ $re ]]; then
14 3f95793f 2015-09-29 xhr echo "Hex only contains 0-9a-fA-F and 0x as prefix"
15 3f95793f 2015-09-29 xhr return
16 3f95793f 2015-09-29 xhr fi
17 3f95793f 2015-09-29 xhr printf "%d\n" $1
18 3f95793f 2015-09-29 xhr }
19 3f95793f 2015-09-29 xhr
20 3f95793f 2015-09-29 xhr # Trivial conversion of a decimal number to hex
21 3f95793f 2015-09-29 xhr function dec2hex()
22 3f95793f 2015-09-29 xhr {
23 3f95793f 2015-09-29 xhr [ -z "$1" ] && echo "No decimal number given" && return
24 3f95793f 2015-09-29 xhr re='^[0-9]+$'
25 3f95793f 2015-09-29 xhr if ! [[ $1 =~ $re ]]; then
26 3f95793f 2015-09-29 xhr echo "Decimal only contains 0-9"
27 3f95793f 2015-09-29 xhr return
28 3f95793f 2015-09-29 xhr fi
29 3f95793f 2015-09-29 xhr printf "0x%x\n" $1
30 3f95793f 2015-09-29 xhr }
31 3f95793f 2015-09-29 xhr
32 2979dce5 2015-07-16 xhr # Generates a RSA 2048 bit keypair with DUMMY password
33 2979dce5 2015-07-16 xhr function kgenkey()
34 2979dce5 2015-07-16 xhr {
35 2979dce5 2015-07-16 xhr [ -z "$1" ] && echo "No key alias given" && return
36 2979dce5 2015-07-16 xhr keytool -genkeypair -keyalg RSA -keysize 2048 -alias "$1" \
37 2979dce5 2015-07-16 xhr -dname "CN=Unknown,OU=Unknown,O=Unknown,L=Unknown,ST=Unknown,C=Unknown" \
38 2979dce5 2015-07-16 xhr -storepass "test123" -keypass "test123" -keystore keystore.jks
39 2979dce5 2015-07-16 xhr }
40 2979dce5 2015-07-16 xhr
41 2979dce5 2015-07-16 xhr # Generate a CSR from the keystore generated w/ the cmd above
42 2979dce5 2015-07-16 xhr function kgencsr()
43 2979dce5 2015-07-16 xhr {
44 2979dce5 2015-07-16 xhr [ -z "$1" ] && echo "No key alias given" && return
45 2979dce5 2015-07-16 xhr keytool -certreq -alias "$1" -keystore keystore.jks -file "${1}.csr" \
46 2979dce5 2015-07-16 xhr -storepass "test123" -keypass "test123"
47 2979dce5 2015-07-16 xhr }
48 2979dce5 2015-07-16 xhr
49 2979dce5 2015-07-16 xhr function kimportcert()
50 2979dce5 2015-07-16 xhr {
51 2979dce5 2015-07-16 xhr [ -z "$1" ] && echo "No key alias given" && return
52 2979dce5 2015-07-16 xhr [ -z "$2" ] && echo "No cert file given" && return
53 2979dce5 2015-07-16 xhr keytool -import -alias "$1" -file "$2" -keystore keystore.jks \
54 2979dce5 2015-07-16 xhr -storepass "test123" -keypass "test123" -trustcacerts
55 2979dce5 2015-07-16 xhr }
56 2979dce5 2015-07-16 xhr
57 738e7cfc 2018-02-28 xhr function updatecvs()
58 738e7cfc 2018-02-28 xhr {
59 738e7cfc 2018-02-28 xhr local _cvsdir=/home/matthias/cvs
60 738e7cfc 2018-02-28 xhr rsync -az --delete rsync://ftp.hostserver.de/cvsync/src $_cvsdir/cvs || return 1
61 738e7cfc 2018-02-28 xhr cd $_cvsdir/src && cvs -q up -P
62 738e7cfc 2018-02-28 xhr }
63 738e7cfc 2018-02-28 xhr
64 738e7cfc 2018-02-28 xhr function cvspsdiff()
65 738e7cfc 2018-02-28 xhr {
66 738e7cfc 2018-02-28 xhr [ -z "$1" ] && return
67 738e7cfc 2018-02-28 xhr cvsps -q -s "$1" -g | cdiff
68 738e7cfc 2018-02-28 xhr }
69 738e7cfc 2018-02-28 xhr
70 9b5e1e0c 2014-11-02 xhr function sshopen()
71 9b5e1e0c 2014-11-02 xhr {
72 7b2d8f3d 2014-11-07 xhr local AGPATH="$HOME"/.ssh/$(hostname).agent
73 7b2d8f3d 2014-11-07 xhr
74 7b2d8f3d 2014-11-07 xhr rm -f $AGPATH
75 ce9f3a59 2016-01-07 xhr command ssh-agent -t 345600 | grep -v echo > $AGPATH
76 7b2d8f3d 2014-11-07 xhr source $AGPATH
77 7b2d8f3d 2014-11-07 xhr
78 9b5e1e0c 2014-11-02 xhr # Find all public keys...
79 9b5e1e0c 2014-11-02 xhr for i in `find $HOME/.ssh/ -maxdepth 1 -name "*.pub"`; do
80 9b5e1e0c 2014-11-02 xhr # ... and strip the .pub suffix
81 9b5e1e0c 2014-11-02 xhr _key=`echo $i | sed -e 's/\.pub//'`
82 ce9f3a59 2016-01-07 xhr command ssh-add $_key
83 9b5e1e0c 2014-11-02 xhr done
84 9b5e1e0c 2014-11-02 xhr }
85 9b5e1e0c 2014-11-02 xhr
86 01ccca29 2015-06-23 xhr function psg()
87 01ccca29 2015-06-23 xhr {
88 01ccca29 2015-06-23 xhr ps aux | grep "$@"
89 01ccca29 2015-06-23 xhr }
90 01ccca29 2015-06-23 xhr
91 7b2d8f3d 2014-11-07 xhr function ssh()
92 7b2d8f3d 2014-11-07 xhr {
93 fc50ceb4 2015-01-08 xhr source_ssh_agent
94 fc50ceb4 2015-01-08 xhr /usr/bin/ssh "$@"
95 fc50ceb4 2015-01-08 xhr }
96 fc50ceb4 2015-01-08 xhr
97 fc50ceb4 2015-01-08 xhr function scp()
98 fc50ceb4 2015-01-08 xhr {
99 fc50ceb4 2015-01-08 xhr source_ssh_agent
100 fc50ceb4 2015-01-08 xhr /usr/bin/scp "$@"
101 fc50ceb4 2015-01-08 xhr }
102 fc50ceb4 2015-01-08 xhr
103 c9231c34 2016-01-07 xhr function sshfs()
104 c9231c34 2016-01-07 xhr {
105 c9231c34 2016-01-07 xhr source_ssh_agent
106 c9231c34 2016-01-07 xhr /usr/bin/sshfs "$@"
107 c9231c34 2016-01-07 xhr }
108 c9231c34 2016-01-07 xhr
109 fc50ceb4 2015-01-08 xhr function source_ssh_agent()
110 fc50ceb4 2015-01-08 xhr {
111 7b2d8f3d 2014-11-07 xhr local AGPATH="$HOME"/.ssh/$(hostname).agent
112 9b5e1e0c 2014-11-02 xhr
113 7b2d8f3d 2014-11-07 xhr [[ -f $AGPATH ]] && source $AGPATH
114 7b2d8f3d 2014-11-07 xhr }
115 7b2d8f3d 2014-11-07 xhr
116 ff62f64a 2014-10-31 xhr function mkcd()
117 ff62f64a 2014-10-31 xhr {
118 ff62f64a 2014-10-31 xhr [[ $1 ]] || return 0
119 ff62f64a 2014-10-31 xhr [[ -d $1 ]] || mkdir -vp "$1"
120 ff62f64a 2014-10-31 xhr [[ -d $1 ]] && builtin cd "$1"
121 ff62f64a 2014-10-31 xhr }
122 ff62f64a 2014-10-31 xhr
123 ff62f64a 2014-10-31 xhr function cget()
124 ff62f64a 2014-10-31 xhr {
125 ff62f64a 2014-10-31 xhr curl -OL --compressed "$@"
126 ff62f64a 2014-10-31 xhr }
127 ff62f64a 2014-10-31 xhr
128 069a8427 2016-02-12 xhr # Show infos about my external IP address
129 069a8427 2016-02-12 xhr function showmyipaddress
130 069a8427 2016-02-12 xhr {
131 069a8427 2016-02-12 xhr echo "My external IPv4 : $(curl -s -4 icanhazip.com)"
132 069a8427 2016-02-12 xhr echo "My external IPv6 : $(curl -s -6 icanhazip.com)"
133 069a8427 2016-02-12 xhr echo "My external PTR : $(curl -s icanhazptr.com)"
134 069a8427 2016-02-12 xhr }
135 069a8427 2016-02-12 xhr
136 069a8427 2016-02-12 xhr # Show info about hostname or IP address
137 ff62f64a 2014-10-31 xhr function ipif()
138 ff62f64a 2014-10-31 xhr {
139 ff62f64a 2014-10-31 xhr if grep -P "(([1-9]\d{0,2})\.){3}(?2)" <<< "$1"
140 ff62f64a 2014-10-31 xhr then
141 ff62f64a 2014-10-31 xhr curl ipinfo.io/"$1"
142 ff62f64a 2014-10-31 xhr else
143 ff62f64a 2014-10-31 xhr local ipadd=$(host "$1") &&
144 ff62f64a 2014-10-31 xhr local ipawk=$(awk '{ print $4 }' <<< "$ipadd")
145 ff62f64a 2014-10-31 xhr curl ipinfo.io/"$ipawk"
146 ff62f64a 2014-10-31 xhr fi
147 ff62f64a 2014-10-31 xhr echo
148 ff62f64a 2014-10-31 xhr }
149 ff62f64a 2014-10-31 xhr
150 ff62f64a 2014-10-31 xhr function calc()
151 ff62f64a 2014-10-31 xhr {
152 ff62f64a 2014-10-31 xhr echo "scale=3;$@" | bc -l
153 ff62f64a 2014-10-31 xhr }
154 ff62f64a 2014-10-31 xhr
155 ff62f64a 2014-10-31 xhr function cds()
156 ff62f64a 2014-10-31 xhr {
157 ff62f64a 2014-10-31 xhr cd "$1" && ls -la
158 ff62f64a 2014-10-31 xhr }
159 ff62f64a 2014-10-31 xhr
160 a5b4c458 2017-01-16 matthias. function netmnt()
161 a5b4c458 2017-01-16 matthias. {
162 a5b4c458 2017-01-16 matthias. ndcli show ip $(dig +short $1) | grep "^pool:" | cut -d':' -f2 | xargs ndcli show pool
163 a5b4c458 2017-01-16 matthias. }
164 a5b4c458 2017-01-16 matthias.
165 a5b4c458 2017-01-16 matthias. function whonet()
166 a5b4c458 2017-01-16 matthias. {
167 a5b4c458 2017-01-16 matthias. ndcli show ip $1 | grep "^pool:" | cut -d':' -f2 | xargs ndcli show pool
168 a5b4c458 2017-01-16 matthias. }
169 a5b4c458 2017-01-16 matthias.
170 69c8b2d0 2014-10-31 xhr # http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-from-the-command-line.html
171 69c8b2d0 2014-10-31 xhr
172 69c8b2d0 2014-10-31 xhr export MARKPATH=$HOME/.marks
173 69c8b2d0 2014-10-31 xhr function jump {
174 69c8b2d0 2014-10-31 xhr cd -P "$MARKPATH/$1" 2>/dev/null || echo "No such mark: $1"
175 69c8b2d0 2014-10-31 xhr }
176 69c8b2d0 2014-10-31 xhr function mark {
177 69c8b2d0 2014-10-31 xhr mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$1"
178 69c8b2d0 2014-10-31 xhr }
179 69c8b2d0 2014-10-31 xhr function unmark {
180 69c8b2d0 2014-10-31 xhr rm -i "$MARKPATH/$1"
181 69c8b2d0 2014-10-31 xhr }
182 69c8b2d0 2014-10-31 xhr function marks {
183 69c8b2d0 2014-10-31 xhr ls -l "$MARKPATH" | sed 's/ / /g' | cut -d' ' -f9- | sed 's/ -/\t-/g' && echo
184 69c8b2d0 2014-10-31 xhr }
185 69c8b2d0 2014-10-31 xhr