The Command line interface is often overlooked by programmers who have not been exposed to its use while learning programming, and who have never worked with those using it. This is understandable in that GUI based interfaces are extremely popular, and generally easier to learn on for many tasks. The problems for a SWE in knowing only GUI interfaces are rooted in efficiency, portability, and remote access. There are many SWEs who only know how to use GUI interfaces who operate successfully in their professional capacities. However, those who know how to use the command line are often able to work more quickly in certain cases as well as being able to get work done when the GUIs are not available, or do not address a specific issues.

As a general proposition, the Linux/Unix/Posix command line still offers a super-set of the capabilities offered by GUIs, including those available on Windows, given the Cygwin environment. GUIs are more convenient and even more efficient in some cases, but the command line is more efficient and convenient in others. One reason to know the command line at some minimal level, at least, is that many GUIs are simply wrappers for specific command line programs, with the GUI offering a restricted set of semantics. Far more important in many cases is that command line arguments can be used conveniently from many scripting languages, permitting the automation of many tasks that remain stubbornly human click-driven under GUIs. In many situations the ability to automate event "trivial" activities using scripts written in a wide range of languages that call various command line utilities provides such a huge advantage in efficiency that a single application would justify the effort to learn basic command line techniques.

Lab Exercises

This lab also follows a learn and practice mode. By the end of the lab, you are expected to know about the directory hierarchy and navigation tools in linux, file access and manipulation methods, various expansion techniques available on linux, command path, environment variables, history, job control, combining commands and writing simple scripts. You may be required to show proof of following instructions in class.

Grading Criteria

This lab has 10 lab points. To receive the credits, you should be in the lab, conduct tasks following the instruction of the TA and demonstrate your results to the TA.