This is an attempt to create a source of information about *nix command line tools in general. This is the list of things that should be covered:
- ls
- cp
- mv
- Batch Renaming Files
- find
- grep
- Sed
- awk
- regex (in general)
- possibly some networking commands like the `ip`, `ping`, `tracert`, etc...
- shell scripting (bash, zsh, etc)
- Compiling programs from the command line
- QEMU
- Some other useful command line examples
- etc, etc, etc...
Shell scripting is not command line strictly, but it is used on the command line and it would be nice to write about that too.
One thing to note is that this wiki's main goal is to teach concepts and theory backed up with lots of examples. Also, we'll strive to avoid those “foo bar” examples whenever possible, just like those "abc" regex examples that provide little insight on how to use what was just taught on real situations. Our main goal is to teach theory and concepts applying them to real world problems. Of course, it will be necessary and even more reasonable to use the foo bar examples at first when introducing some new ideas, but those should be followed by more world problems examples nonetheless.
The idea is to have a lot of repetition on the basic ideas on different
types of problems. We believe it doesn’t help much to give one example only
on how to use a given feature. For instance, knowing that the construct
s/foo/bar/
is used to search and replace text is easy to
remember, but that doesn’t mean one has the necessary experience to use it
to solve different problems.
For instance, for a really beginner programmer, if he or she knows they can
do 2 + 3 = 5
and that they can do a = 2; b = 3;
and then proceed to a + b = 5
doesn’t mean they’ll realise
that they can also do a + 3
and 2 + b
or even
a + -5
, for instance.
I emphasize: lots of examples that keep reusing the same
concepts to solve different problems really help one gain insight on how to
use them for even more problems later much more than just memorizing “Ah,
s
is substitute”.
In the book Mastering Regular Expressions Jeffrey Friedl says that a lot of stuff in the book are not about regex itself, but are about using regex. That is a really nice idea to cling to, and reminds me how much I have always wished some IRC channels were more open to related subjects instead of being proud to shout “off-topic” to everything they possibly can. We believe that this wiki should consider everything “on topic.” Compiling programs on the command line, just as an example, should be considered on topic in this wiki. Why? Because lots of shell and other command line tools features can be used in addition to any given compiler features. gcc, clang, g++, javac, etc. can all benefit from some command line trickery and make things more interesting, productive or simply more fun.
subscribe via RSS