Starting the Command Line in 2007?
1 July 2007
In the last post, I was responding to a question from a commenter called Gregory, however before his question he gave an interesting disclaimer:
> The trouble is that beyond knowing what a path is and a dozen or so DOS commands I have little actual knowledge of command code symbology and syntax for any OS, let alone something like Linux.
So this got me thinking. Lets imagine for a moment that someone is interested in more advanced computing but was otherwise was completely open. What would you do, if you were starting today with an open blue sky? What are you learning or planning to look into yourself?
You can share your ideas by leaving a comment.
If not DOS then what?
I had to learn a bit of DOS back in the day because it was the only way to use my computer. To be honest I would not bother to learn Windows DOS this late in the game, it is deprecated by Microsoft (in 1995!) and so on the fast train to nowhere, being replaced by Powershell and other options (see below). The last post also proved how horrible DOS is as an environment with all the boring steps needed to get even the basic things to work.
In my opinion, if someone wants to get into the Command Line World, starting in 2007, there are at least four good choices, at least 1,2 and 4 will not cost anything:
- Install a distribution of Linux. I would recommend Ubuntu for you
at this point because it so easy to get into, I use Gentoo Linux for myself, there is also Debian and loads of others. I tend to like the community focused distributions since I am a hobbyist too. They are more-or-less the same once they are running so don't waste too much time being indecisive, you can easily change later.
Linux has a far more powerful and comfortable command line environment than Windows, everything is set up already perfectly. Using Linux has lots of other advantages too, not least that you get freedom, you own the software as much as anyone else, and also you can do almost everything on Linux and get all the best software (with the exception of high-end gaming) without paying any money at all except for hardware. Which means that you also have more money left over for better hardware.
- Install Cygwin. This program gives you most of the advantages of the
Linux/Unix command line within Windows.
- Learn Microsoft Powershell. I was really excited when this came out
but there is not a large community of people using this yet, the Microsoft world seems to move quite slowly and people learn things for different reasons (i.e. because your boss tells you to rather than as a hobby). However, this also means there is still time to be an early expert.
- Learn Python. Python is also a first class language on Linux, Mac and
Windows, so you have also learned a useful skill also.
Python what?
To experienced Bash users, option 4 may seem like a funny thing to suggest but the iPython shell can do everything Bash and more traditional Bash tools such as sed/awk can, has a Windows version and is perhaps a foreshadow to the future of the command line on Linux where general purpose dynamic languages become increasingly integrated into the system. Likewise, within the Windows world, the Dynamic language runtime and the associated stack seems to have, in a way, taken the place of Powershell as the premier working environment in future versions of Windows. IronPython is one of the languages built into the DLR.
Of course, none of the choices are exclusive. Powershell will work well with Python. Learning Python will work well with Cygwin. Knowing Cygwin make it very easy to move to Linux, and so on.



