The Linux Terminal For Beginners

A very long time ago, computers didn’t have mice, icons or fancy graphics. Instead of an Operating System with a Graphical User Interface, there was the Command Line Interface. With it, you would issue commands to your computer in a text only environment that is not seen so often these days. But many computer technicians, especially Linux geeks, consider it to be one of the best ways to interact with the PC for certain kinds of tasks. Though there is a little bit of a learning curve about it new users shy away from . So I’m going to try and flatten that curve with an introduction to the Terminal window for beginners.
Understanding the Command Line
To help get a better feel for the Terminal, you should open one up right now and follow along with this guide. To do this (in Ubuntu) click Applications>Accessories>Terminal. Once you do, a new window will appear with a command prompt and a blinking cursor. The prompt typically looks like this:
username@hostname:~$
The username is your username, the hostname is the name of your computer. The tilde symbol “~” is shorthand for “your home folder”. And the dollar sign indicates that you are currently operating under a kind of limited privilege mode (if you were running terminal with Root level privileges, the $ would be a #. More on that later). Following all of these things is a blinking cursor, which is your cue to begin typing a command into the Terminal window.

In the above screenshot, we have our Nautilus file manager to the left as well as a small terminal window on top of it where I’ve typed in the commands “cd Documents”, followed by an “ls” command, pressing Enter after each. If you’ll notice, the “dear ubuntu forum moderators.odt” file is shown in both the terminal window as well as the file browser. It’s the exact same file, and I used those two commands in Terminal to “browse” to the folder containing that file and list the contents of the folder. So we have two commands here that we can talk about briefly:
cd - Change Directory (e.g., “cd Documents”)
ls - List current folder contents.
When you first start Terminal, you are usually placed in your Home Folder (which is indicated by the ~ (tilde) symbol). If you type ls and press enter, you’ll see all of the files and folder contained in your Home Folder. Try to practice navigating from your home folder to some other folder using the cd command. NOTE: All Linux commands are Case-Sensitive! Once you’ve navigated into a folder, or perhaps into a folder within another folder, you can go “backwards” to the parent directory by typing “cd ..”
Exercise 1: cd and ls
- Click Applications>Accessories>Terminal
- Type ls to view the contents of your Home Folder
- Type cd Documents and press Enter to navigate into the Documents folder.
- Type ls to see the files (if you have any) listed. Then type cd .. and press enter to return to your home folder.
Ok, how about a few more commands?

As shown above, the cat command can be used to create new files, but it can also be used to append text from one or more files to the end of another file… but we’re not going to get that advanced. We just want to create a new file and play with it using other terminal commands.
cat - Create new files, combine text files and display them
cp - Copy
rm - Delete/Remove
Using these commands, we’re going to create a text file, copy it, then delete the first copy.
Exercise 2: cat, cp and rm
- Open terminal, and browse to the Documents folder by typing cd Documents, and press Enter
- Create a new text file by typing cat > foo.txt and press Enter.
- You’ll be sent to a blank line just below the command prompt. You can type whatever you want, starting a new line each time you hit Enter. It’s a basic text editor. When you’re finished typing, you can save and exit by pressing CTRL-D.
- Type ls to see the new file in the directory. To display it’s contents, you can type cat foo.txt.
- Copy the file by typing cp foo.txt foo2.txt. Type ls again to see the new second file.
- Delete the first file by typing rm foo.txt, and then type ls again to see the change you made.
There are other commands out there besides cat (such as touch) that can be used to create new files, but we’re trying to keep this short and simple.

Now lets create a file, then a new folder, and move the file into that folder. We’ll do this with the mkdir, mv and ./ commands. The ./ command in particular is interesting — it basically stands for “the current directory you are in”. Sound redundant, right? Here’s why you need to use it: There are many commands in the Linux system that can be run from any directory, such as the ones we’ve been using (cat is an example). These commands reside in a location of the computer that’s been designated to be available at the terminal no matter what folder you reside in.
So say you created a computer program called “cat”, but had nothing to do with text files, and more to do with the feline animal. If you simply typed “cat”, Linux would assume you meant the cat program we used to create a text file, and not yours. By adding the ./ in front, it forces Linux to focus on that local folder you happen to be in.
Exercise 3: mkdir, mv and the ./ delimiter
- Open terminal, and cd into you Documents folder.
- Type cat > foo2.txt, press enter, type some text, then CTRL-D to save and exit cat.
- Type mkdir foocopyfolder to create a new folder. You can type ls after this to see it.
- Type mv foo2.txt ./foocopyfolder/ to move the file into foocopyfolder
- Type ls to see that the file is now missing, then cd foocopyfolder, and then ls one more time to see the recently moved file.
Other Useful Commands
By now, you should already be familiar with the basics of the terminal. Here are some other commands you can experiment with:
rmdir - Remove Directory
sudo - This is typically inserted in front of any regular command that requires root level privileges in order to do. You can think “Super User Do” to help you remember how it’s spelled and what it does. For example, if you wanted to execute a command that required root privilages (such as installing a program) you would type “sudo apt-get install vlc”. Remember, the terminal windows is Case-Sensitive.
locate - a useful index-based file search utility
lspci - Lists PCI devices in your computer (used for technical troubleshooting)
lsusb - Similar to lspci, but for USB devices
apt-get - This is used very often to install, remove and update software. An example of this command would look like: sudo apt-get install vncviewer. Note the sudo in front.
The Manual Command
Now, a lot more could be said about these commands. If you ever want to read all you can read about any one command, you can do that with the man command (which is short for Manual), followed by the command you’re interested in reading about. For example, if I wanted to read about all the different options for the ls command, I would type man ls. When viewing a manual for a command in terminal, you can use the up and down arrows to scroll, and then when you’re done reading, you need to press the Colon key : followed by the q key. This will take you back to the Terminal window.
That’s all I am going to write about the Terminal for today. The three very simple exercises above should have you feeling just a little more comfortable with the Terminal and navigating around your file system. Here are a couple tips though, in case you get lost:
cd / - takes you to your root directory
cd ~/ - takes you to your Home Folder.
And just so you know, your Home Folder is actually located in /home/yourusername/.
There are a lot of great guides out there that go into a lot more detail that I’m willing to do here, so check Google to see what you can find. Here’s one that I think is pretty clear and concise that you should take a look at if you intend to learn more about the command line.
June 30th, 2008 at 5:22 pm
i am really new to this whole terminal thing and i am trying to get Root level privileges but i have no idea how. i am trying to install an update for my video card but in order to do so i need [Joel@localhost ~]# (which you prolly already new) how do i change the $ into the #
July 3rd, 2008 at 11:13 am
I think you type “su” and enter, then type your password.
July 5th, 2008 at 5:22 am
I made a minor adjustment to the blog (just for added clarity). To execute a command with root privilages, you type “sudo”, and then the command. It will then ask you for your account password.
This will not work with accounts that do not have admin privilages. The first account to exist does.
August 2nd, 2008 at 7:28 am
su doesn’t work in a default install of Ubuntu
sudo gives you the ability to execute one command with ‘root’ privileges
If you want a # prompt in Ubuntu use sudo -i
type ‘exit’ (without the quotes) to go back to a non privileged $ prompt.
HTH
August 2nd, 2008 at 10:34 pm
I like this article.
I am kinda fluent in the Bash shell but it is good to have a refresher!
August 2nd, 2008 at 10:35 pm
Man the bash shell is SO much better than windows’s…. !!
August 3rd, 2008 at 7:57 am
This is an excellent tutorial for the beginner. I never had one, I figured it out on my own drawing from my experience with MS-DOS and the DOS-like consoles that ship with modern Windows systems.
This is the first site that I send recent Linux “converts” to.
Kudos!
August 5th, 2008 at 11:25 pm
This info helped me alot. I’m just getting started with linux and articles like this are really welcomed. Thanks a lot.
August 5th, 2008 at 11:31 pm
Bash is very clever. I have two bash scripts, one 600+ lines, the other nearly 3000 lines, running diagnostic tests on boards that we produce. Couldn’t be done any other way, and I haven’t really found much of a limitation… Well, floating point math would be nice, but I got over it
August 10th, 2008 at 2:13 am
if you type sudo su then your password you can get root. seems redundant but it works for me.
August 15th, 2008 at 10:48 pm
Great job teaching the basics. Been in IT for 25 years and have been hacking UNIX as a Systems Engineer for over 12 years. I do everything from the CLI. I hope you draw in some newbies and get them to understand what goes on behind the GUI curtain. The CLI is the way to fly through Linux, Solaris and AIX.
August 18th, 2008 at 6:38 pm
The reason that su doesnt work by default in ubuntu is due to groups. While sudo does work for single instances of root privs. if youd like to be able to just $su root you can either:
1. add your username to the wheel group. (/etc/group)
2. sudo su (this allows you to use sudo to su
the second option is a bit rendudant looking, but for those of you who are not comfortable with group management itll get the job done
August 22nd, 2008 at 12:25 am
Instead of ’sudo su’ you can do ’sudo -i’ which to me seems less redundant.
August 22nd, 2008 at 7:11 pm
I’ve always just used ’sudo bash’ to get to bash shell in super user mode. Seems intuitive to me.
August 22nd, 2008 at 9:11 pm
If you don’t want to have to type SUDO in front of Every command that you do, simply type ‘SUDO SU’ in the terminal and provide your password for root. You will then be able to enter data as root in ubuntu. Don’t know Ubuntu does it that way, but they do.
–alec
August 29th, 2008 at 12:32 am
There are advantages to typing sudo in front of every command, particularly in a multi-sysadmin environment.
Every sudo command is logged in /var/log and also in the appropriate user’s .bash_history.
Because of this, if you are trying to figure out who ran the command that broke the mail server, you can actually find out. If everyone simply logs in as root or opens a root shell after logging in then you can’t tell who ran any particular command in root’s .bash_history.
Also, as yourself you can switch between root and user commands quickly and easily by not typing sudo in front of the command. If you are root then you have to log out before running a non root command.
August 29th, 2008 at 5:19 pm
A dandy one for beginners! I like it!
November 8th, 2008 at 12:34 pm
$ cat > Thanks.txt
Thanks man this is really helpful, & waiting for more
$ exit
November 11th, 2008 at 1:34 am
thanx a lot. helped me get started.