Using Linux (and other Unix-like systems) from the command line
While many Linux (and other Unix-like) systems will have a graphical user interface, or GUI, the most efficient way to use the system remains the command line interface, or CLI.
The key difference between a command line and graphical interface is that in a GUI, the computer shows you what you can do, and you are limited to those choices before you, while with a CLI, you tells the computer exactly what you want it to do, but you must yourself know what the choices are.
You can access the command line even from within the GUI, via a terminal window.
Using the command line for the first time.
The first time you access the command line, you will be presented with a prompt, which tells you that it is waiting for a command. The prompt will usually be a single
$ or it may spell out more information, such as
user@laptop ~ $.
man 1 intro at the prompt, and you should be presented with a brief tutorial on how to use the command prompt.
If you aren’t in front of a terminal, or you don’t get the tutorial, you can view a copy online.
This illustrates a very important way to get information. Man pages are the “cliff notes” of documentation, short, to the point manuals that explain exactly how commands work.
You have to know of course, which commands are available, in order to know which ones you need to look at the documentation for, but the intro manual page helps there too, by introducing several basic commands to you. This list is far from complete, but it’s a starting point, with which you can effectively navigate through the system.
The CLI not only affords precision, but also requires it. Commands must be entered exactly, and are sensitive to proper capitalization (almost all commands are lower case).
Most “commands” are actually small programs of their own - for example, if you have the irssi client installed, you should be able to run it simply by typing
irssi at the prompt and pressing enter,
Useful Commands to Know
Command What The Command Does (And syntax example if necessary) ls shows the contents of the current directory pwd shows the name of the current directory cd changes current directory (cd newdirectoryname) cd .. changes current directory to the parent directory cp copies a file to a new filename (cp thisfile thatfile) mv renames a file (mv oldfilename newfilename) also moves a file (mv filename newfiledirectory) rm deletes a file (rm filename) rmdir deletes a directory (rmdir directoryname) mkdir makes a new directory (mkdir directoryname) cat shows the contents of a file (cat filename) more shows the file contents a page at a time (more filename) less see above but allows scroll back also (less filename) head shows the first few lines of a file (head filename) tail shows the last few lines of a file (tail filename) pico starts a friendly but limited file editor program vi starts an unfriendly but powerful file editor program date even you can figure this one out time see above w shows who is logged in and what they are doing finger user info check (finger user -or- finger user@host) pine starts a friendly e-mail program mail starts an unfriendly e-mail program tin starts a friendly UseNet News reader program nn starts an unfriendly UseNet News reader program login starts the login procedure passwd starts the new password change program logout now what do you think this command might do? Hmmm? talk starts a 2-way chat (talk user -or- talk user@host) jobs shows the # of jobs you have running kill kills a job (kill %N) -> where N is that job number <- fg resumes a program that has been stopped or sent to the background lynx starts a friendly text-based World Wide Web browser program cal shows a calender for any month and year (cal MM YYYY) ping verifies that an address exists (ping address.name.here)
There are also some keystrokes that are often recognized by the command line, and by command line programs.
ctrl-L re-draws the screen in case it gets messed up somehow ctrl-C cancels the current program (try quit or exit first) ctrl-Z stops the current program (it may be resumed with ctrl-Z)
To get more help on any of the commands, do this:
For example, to see all the different ways to use flags and wildcards with the
ls command, do this:
man ls. In fact, you should do this, for all of the
above commands before use. And for more info on the manual itself do this:
That about covers all the basics, get a book for the intermediate and advanced stuff, you won’t regret it! Here are two general reminders… Always make a back-up file before you try to transfer, edit or rename any really important files. Never do what someone else tells you to do unless you can determine what the command will do or you really trust the person.
Aside from the introductory man page, there are many, many tutorials out there on how to use the command line, which go into far more detail than we can hope to here.