Print
Due to unforeseen circumstances, we've had a last minute cancellation.

Joe Giron will not be able to make the meeting tomorrow so his presentation on MassScan will be postponed till next month. Thankfully Aaron Jones has volunteered to step in so we still have 2 presentations for our meeting on Thursday.

Aaron Jones: CLI way to do things usually done with a GUI

Aaron is a web developer who enjoys using new technologies. He began using Linux while still a kid and is pro- VIM, GIT, CMUS, and NEWSBEUTER. His workflow is command line based and he hope's to help others learn more about computing, linux ,and the tools out there to make them more productive.

der hans: Anatomy of the Command Line

Order matters when the shell executes a command, but isn't strictly left to right. Redirects, functions, sub-shells, {brace,tilde,parameter,variable,arithmetic} expansion, pipes, globbing, regular expressions, command substitution and more.

What order does bash evaluate the different parts of the command line and what effect does that ordering have on the command? Which portions of the command are evaluated by the shell and which aren't?

The presentation will use command line examples to illustrate evaluation order for the various parts of a command.

For example:

grep foo file.txt >file.txt

That command results in file.txt being empty regardless of what the previous contents were ( provided file permissions allow the user to write to file.txt ). The reason is that the shell truncates file.txt before even starting up grep, so grep is actually searching a newly truncated empty file.

echo -n $( echo foo >>file.txt ) >file.txt

Again there is an empty file at the end even though foo is added to the file.txt during the command. In this case, the command subtitution and it's associated output redirection runs and completes before the outer shell and it's redirection. As a result, file.txt gets a line of input, then is truncated.