-
Notifications
You must be signed in to change notification settings - Fork 225
/
Bash.sh
400 lines (370 loc) · 3.43 KB
/
Bash.sh
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
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
#!/bin/bash
# 5.2 https://www.gnu.org/software/bash/manual/
# https://en.wikipedia.org/wiki/Almquist_shell
# https://en.wikipedia.org/wiki/Bourne_shell
# https://man.archlinux.org/man/dash.1
# http://kornshell.com/
# https://en.wikipedia.org/wiki/KornShell
# https://man.archlinux.org/man/ksh.1.en
# https://zsh.sourceforge.io/
# https://en.wikipedia.org/wiki/Z_shell
# https://man.archlinux.org/man/zsh.1.en
#! keywords =======================================================
# Reserved Words
if then
elif then
else
fi
time
for in
until do
done
while do
done
case in
esac
select
coproc
function
# Bourne Shell Builtins
break
cd
continue
eval
exec
exit
export
getopts
hash
pwd
readonly
return
shift
test
times
trap
umask
unset
# Bash Builtin Commands
alias
bind
builtin
caller
command
declare
echo
enable
help
let
local
logout
mapfile
printf
read
readarray
source
type
typeset
ulimit
unalias
# Modifying Shell Behavior
set
shopt
# Directory Stack Builtins
dirs
popd
pushd
# Job Control Builtins
bg
fg
jobs
kill
wait
disown
suspend
#! variables =======================================================
# Bourne Shell Variables
$CDPATH
$HOME
$IFS
$MAIL
$MAILPATH
$OPTARG
$OPTIND
$PATH
$PS1
$PS2
# Bash Variables
$BASH
$BASHOPTS
$BASHPID
$BASH_ALIASES
$BASH_ARGC
$BASH_ARGV
$BASH_ARGV0
$BASH_CMDS
$BASH_COMMAND
$BASH_COMPAT
$BASH_ENV
$BASH_EXECUTION_STRING
$BASH_LINENO
$BASH_LOADABLES_PATH
$BASH_REMATCH
$BASH_SOURCE
$BASH_SUBSHELL
$BASH_VERSINFO
$BASH_VERSION
$BASH_XTRACEFD
$CHILD_MAX
$COLUMNS
$COMP_CWORD
$COMP_LINE
$COMP_POINT
$COMP_TYPE
$COMP_KEY
$COMP_WORDBREAKS
$COMP_WORDS
$COMPREPLY
$COPROC
$DIRSTACK
$EMACS
$ENV
$EPOCHREALTIME
$EPOCHSECONDS
$EUID
$EXECIGNORE
$FCEDIT
$FIGNORE
$FUNCNAME
$FUNCNEST
$GLOBIGNORE
$GROUPS
$HISTCMD
$HISTCONTROL
$HISTFILE
$HISTFILESIZE
$HISTIGNORE
$HISTSIZE
$HISTTIMEFORMAT
$HOSTFILE
$HOSTNAME
$HOSTTYPE
$IGNOREEOF
$INPUTRC
$INSIDE_EMACS
$LANG
$LC_ALL
$LC_COLLATE
$LC_CTYPE
$LC_MESSAGES
$LC_NUMERIC
$LC_TIME
$LINENO
$LINES
$MACHTYPE
$MAILCHECK
$MAPFILE
$OLDPWD
$OPTERR
$OSTYPE
$PIPESTATUS
$POSIXLY_CORRECT
$PPID
$PROMPT_COMMAND
$PROMPT_DIRTRIM
$PS0
$PS3
$PS4
$PWD
$RANDOM
$READLINE_ARGUMENT
$READLINE_LINE
$READLINE_MARK
$READLINE_POINT
$REPLY
$SECONDS
$SHELL
$SHELLOPTS
$SHLVL
$SRANDOM
$TIMEFORMAT
$TMOUT
$TMPDIR
$UID
# Environment Variables
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
# Tomcat
$JAVA_HOME
$JAVA_OPTS
$CATALINA_HOME
$CATALINA_BASE
$CATALINA_OPTS
#! commands =======================================================
ar
asa
awk
banner
basename
bash
bc
bdiff
bunzip2
bzip2
cal
calendar
cat
cc
chgrp
chmod
chown
chroot
cksum
clear
cmp
col
comm
compress
cp
cpio
crypt
csplit
ctags
cut
date
dc
dd
deroff
dev
df
diff
diff3
dir
dircmp
dircolors
dirname
du
ed
egrep
env
ex
expand
expr
factor
false
fc
fgrep
file
find
fmt
fold
getconf
getopt
grep
gres
groups
head
history
hostid
iconv
id
install
integer
join
lc
line
link
ln
logname
look
ls
mail
mailx
make
man
md5sum
mkdir
mkfifo
mknod
more
mt
mv
newgrp
nice
nl
nm
no
nohup
ntps
od
pack
paste
patch
pathchk
pax
pcat
perl
pg
pinky
pr
print
printenv
ps
ptx
readlink
red
repeat
rev
rm
rmdir
sed
seq
sh
sha1sum
shred
size
sleep
sort
spell
split
start
stat
stop
strings
strip
stty
su
sum
sync
tac
tail
tar
tee
touch
tr
true
tsort
tty
uname
uncompress
unexpand
uniq
unlink
unpack
users
uudecode
uuencode
vdir
vi
vim
vpax
wc
whence
which
who
whoami
wpaste
wstart
xargs
yes
zcat