-
-
Notifications
You must be signed in to change notification settings - Fork 162
Unix Tools
The shell has interacts with a set of Unix tools in /bin
and so forth. However, in many cases, those tools have grown functionality that overlaps with shell.
Unix Tools ...
-
make
and other build tools.make -j
for parallel builds. -
xargs
,-P
for parallel execution,-I {}
for substitution- Also GNU Parallel, which is mentioned in the bash manual
-
find -exec
and-exec +
Expression languages must be fully recursive to count here.
With no lexer:
-
find
---a -o ! ( )
-
test
---a -o ! ( )
-
expr
-- arithmetic, subsumed by$(())
Languages with lexers:
awk
grep
sed
awk
expr
-
bash
itself
-
tar
has a --sed option
See Appendix A: How to Quickly and Correctly* Generate a Git Log in HTML
-
find -printf
(arbitrary filenames) -
stat -c
(arbitrary filenames) -
git log --pretty=format:
(arbitrary descriptions) -
curl --write-out %{response_code}
-- URLs can't have arbitrary characters? -
printf
itself (coreutils) -
time
(/usr/bin/time
) -- mostly numbers -
date
-- mostly numbers -
bash
- the
printf
builtin - the
time
builtin and theTIMEFORMAT
string -- mostly numbers - the prompt string:
\h \W
- the
-
ps --format
-
find
/ls
ps
-
df
(has-h
and-H
human-readable option, but no format string)
find
starts processes (in parallel), it has regexes (and globs), and it has field substitution. It should be part of the shell!