LINUX ESSENTIAL COMMANDS
Listing files and directories (ls)
When you first login, your current working directory is your home directory. Your
home directory has the same name as your user-name, for example, nye1, and it is
where your personal files and subdirectories are saved.
To find out what is in your home directory type
ls
The ls command lists the contents of your current working directory.
However, it does not cause all the files in your home directory to be listed, but only
those ones whose name does not begin with a dot (.) Files beginning with a dot (.)
are known as hidden files and usually contain important program configuration
information. They are hidden because you should not change them unless you are
familiar with Linux.
To list all files in your home directory including those whose names begin with a dot,
type
ls -a
ls is an example of a command which can take options: -a is an example of an
option. The options change the behaviour of the command. There are online manual
pages that tell you what options a particular command can take, and how each
option modifies the behaviour of the command. The online manual command is
covered in tutorial 4.3.
ls -l
ls -lt
ls -lS
ls -lrS
ls -lrt
Making Directories (mkdir)
We will now make a subdirectory in your home directory to hold the files you will be
creating and using in the course of this tutorial. To make a subdirectory called
unixstuff in your current working directory type
mkdir unixstuff
2
To see the directory you have just created, type
ls
Changing to a different directory (cd)
The command cd directory means change the current working directory to 'directory'.
The current working directory may be thought of as the directory you are in, i.e. your
current position in the file-system tree.
To change to the directory you have just made, type
cd unixstuff
Type ls to see the contents (which should be empty)
Exercise 1a
Make another directory inside the unixstuff directory called backups
The directories . and ..
Still in the unixstuff directory, type
ls -a
As you can see, in the unixstuff directory (and in all other directories), there are two
special directories called . and ..
In Linux . means the current directory, so typing
cd .
There is a space between cd and the dot. There is normally always a space between
the command and the argument.
This may not seem very useful at first, but using (.) as the name of the current
directory will save a lot of typing, as we shall see later in the tutorial. (..) means the
parent of the current directory, so typing
cd ..
will take you one directory up the hierarchy (back to your home directory). Try it now.
Typing cd with no argument always returns you to your home directory. This is very
useful if you are lost in the file system.
3
Pathnames (pwd)
Pathnames enable you to work out where you are in relation to the whole file-system.
For example, to find out the absolute pathname of your home-directory, type cd to
get back to your home-directory and then type
pwd
/home/n/nye1
Exercise 1b
Use the commands ls, pwd and cd to explore the file system.
(Remember, if you get lost, type cd by itself to return to your home-directory)
More about home directories and pathnames
Understanding pathnames
First type cd to get back to your home-directory, then type
ls unixstuff
to list the contents of your unixstuff directory. Now type
ls backups
backups: No such file or directory
This is simply because you have not created a directory called backups.
Now, create a sub-directory of unixstuff named backups:
cd unixstuff/
mkdir backups
ls backups/
Note that it is not necessary to be in the unixstuff directory to create a subdirectory
of it. A quicker alternative would be:
mkdir unixstuff/backups
ls unixstuff/backups
4
~ (your home directory)
Home directories can also be referred to by the tilde ~ character. It can be used to specify
paths starting at your home directory. So typing
ls ~/unixstuff
will list the contents of your unixstuff directory, no matter where you currently are in the file
system.
What do you think the following would l\ist?
ls ~
What do you think the following would list?
ls ~/..
Shell Shortcuts for bash
Ctrl-A (jump to start of line)
Ctrl-E (jump to end of line)
Ctrl-K (delete (kill) everything from the cursor onwards
Ctrl-W (delete the previous word only)
Ctrl-Y (paste whatever was just deleted)
Ctrl-C (kill/exit a running process)
Ctrl-L (clear the screen)
Ctrl-R (search for previously executed commands)
Tab
(auto-complete command or file/directory name)
↑/
(scroll back / forwards through previously entered commands)
↓
Summary
ls list files and directories
ls -a list all files and directories
mkdir make a directory
cd directory change to named directory
cd change to home-directory
cd ~ change to home-directory
cd .. change to parent directory
pwd display the path of the current directory