Tuesday, February 1, 2011

Applications: Where are they?!

When I first started using Linux, it was late 2005. The distro was the hailed Fedora Core 4. I was thrilled with the prospect of actually using this operating system I heard so much about. In the packages section I checked off all the interesting applications and utilities I wanted installed. One of them was gcc and g++. Much to my surprise after everything installed it wasn't in my applications menu. You may know where I am coming from. What you need to understand is that there are two different types of user interfaces. One is a graphical user interface which we will call a gui from here on; the other is the command-line interface which we will just call CLI from here on.

CLI and the GUI are fundamentally different. The GUI is driven by the invention of the mouse and its involvement in the user experience. This is what powers your word processor, internet browser (if you are not on the command-line using elinks or lynx right now), movie player, etc. If you don't understand what a GUI is, chances are you are using it or you are an Unix user who just woke up from 1983 who somehow knows what the internet is without encountering a GUI yet. All of your day to day applications are GUI driven.

CLI is a very simple but powerful interface. If you ever saw a DOS prompt or Linux terminal, this is a CLI. This is officially the true hackers, crackers, and script kiddies playground. Hackers and crackers enjoy it the most, but it isn't only for them. Command-line has lots of useful tools for obtaining information on the system such as networking, CPU architecture, processes, file systems, etc. Most Linux/Unix utilities are written for the command-line only. gcc and g++ are two examples of command-line only programs. The reason I didn't see these in the applications menu is they are designed to be used from the terminal.

After I made this discovery I quickly found out how to use gcc and g++. It took me a little longer to learn how to execute the executables they produced, but everything worked out eventually. The best thing you can do to learn this environment is use google and the man and apropos commands. To find the different programs you may want to use look in the /bin, /usr/bin, /usr/sbin, and /sbin folders. Then to find out more about that specific command type in man command. Another great place is the Linux Documentation Project (www.tldp.org).

Using the command-line will seem weird at first, but it is very rewarding. I can find my IP address for any given device with only one command in comparison to three or four mouse clicks in Windows. I can kill an offending process with only one command and 3 sequences of keystrokes. I can do updates with only one command. Bottom line it is far more efficient to use, and if I want to save myself from using a series of commands repeatedly I can always write a shell script to streamline the process.

No comments:

Post a Comment