May 8, 2015

Learning the Command Line Interface

When I started my Freshman year at Bridgewater State back on September 1990 as an eager Computer Science major and computer lab aide, there were two main platforms that were popular at the time: MS-DOS and Digital Equipment Corps VAX / VMS system, both which used a command line inteface (CLI). 

What did they look like?



  • The screens had a black background. 
  • Green, amber, or white were the font colors. 

Open up the Terminal on your Mac or Powershell on the PC, maximize the window to fill the screen, and that is exactly what it was like. 



When I was a computer lab aide, I trained new students using WordPerfect for MS-DOS, the word processing program we were using at the time. As clunky as Windows 3.1 was when it came out, I thought it was a great improvement over the environment we had been using. And when I found a student job as desktop publisher / graphic artist at the Alumni Center, and I was able to use a Mac Classic loaded with an early version of Adobe Photoshop, I thought it was even better. I even loved my Windows programming class, making a Dungeons and Dragons like game in the style of Phantasy Star. Once I started using a GUI, I avoided the CLI whenever possible. When the situation called for it at work, I knew the basics such as cd, mkdir, ls, etc, but I never became that experienced with Unix or Linux. 


Recently, I have been brushing up on my CLI skills as part of my quest to turn myself from a manual tester who can code a bit to being a Software Engineer in Test. It has certainly takes me back to those early days!



Not familiar with the Command Line? 

Are you a manual QA Engineer who is more used to the Windows and Mac environments, but aren't really familiar with the Mac Terminal and it's Unix environment? Here are a few good resources I have used to get a refresher:

The Command Line Crash Course:

http://cli.learncodethehardway.org/book/






Brought by the people who wrote "Learn Python the Hard Way", this free e-book guides the complete novice through using the command line interface on either a Unix / Linux box, or the Mac Terminal. It gives you basic commands to memorize, and touches upon investigating the file system, moving files around, and learning to find the built in manuals to help you. 



Making Flash Cards with Quizlet:

https://quizlet.com/

How to sort through all the new terms you may be hearing about for the first time? After you do the exercises in CLI.LearnCodeTheHardWay.com, you can use this web based app to create your own set of online flash cards. 





There is a corresponding iPhone app for Quizlet. During my morning commute, I go through the list to see what I remember. You can guess them from the front view or the back view, flipping them around by tapping on the screen. 


My favorite way of using the app is to try to remember what Linux commands to type in. 





By the way, the answer is:> mv a.txt b.txt





Ryan's Tutorials: Linux Tutorial

http://ryanstutorials.net/linuxtutorial/



Made it through the beginner's lessons? Ryan Chadwick's free site can take you from there. He breaks lessons down into small, easy to manage steps. At the end of each chapter, he gives you questions you can use as a springboard to dive deeper into the Linux command line. 


Chapters involve basic navigation, using files, manual pages, permissions, searching in files with grep, and shell scripting.


Ryan even gives a good introduction of the Vi Text Editor. 




The Linux System Administrator's Guide:

http://www.tldp.org/LDP/sag/html/index.html



Although a bit older, this text-based document written by the Linux Documentation Project is a good guide that gives the user more detailed information such as the directory tree (/etc, /dev, /usr), init, and system management. The last few chapters, which I am still working through, might not pertain to a Mac Terminal, but would be still good to know. 


After this, I just have to wonder... I am re-learning the Linux Command Line. #AmIADeveloperYet?







-T.J. Maher
 Sr. QA Engineer, Fitbit
 Boston, MA

// Automated tester for [ 2 ] month and counting!

Please note: 'Adventures in Automation' is a personal blog about automated testing. It is not an official blog of Fitbit.com

No comments: