Moving Around the Filesystem
Commands for moving around the filesystem include the following.
- pwd: The
pwdcommand allows you to know the directory in which you’re located (pwd stands for “print working directory”). For example,
pwdin the desktop directory will show ~/Desktop. Note that the GNOME terminal also displays this information in the title bar of its window.
- cd: The cd command allows you to change directories. When you open a terminal, you will be in your home directory. To move around the filesystem, use
• To navigate to your desktop directory, use
• To navigate into the root directory, use
• To navigate to your home directory, use
• To navigate up one directory level, use
• To navigate to the previous directory (or back), use
• To navigate through multiple levels of directories at once, use
cd /var/www, for example, which will take you directly to the /www subdirectory of /var.
You can manipulate files and folders by using the following commands.
- cp: The
cpcommand makes a copy of a file for you. For example,
cp file foomakes an exact copy of the file whose name you entered and names the copy foo, but the first file will still exist with its original name. After you use
mv, the original file no longer exists, but after you use
cp, that file stays and a new copy is made.
- mv: The mv command moves a file to a different location or renames a file. Examples are as follows:
mv file foorenames the original file to foo.
mv foo ~/Desktopmoves the file foo to your desktop directory but does not rename it. You must specify a new filename to rename a file.
- To save on typing, you can substitute ~ in place of the home directory.
Note: If you are using
sudo, you will not be able to use the ~ shortcut. Instead, you will have to use the full pathnames to your files.
- rm: Use this command to remove or delete a file in your directory. It does not work on directories that contain files.
- ls: The
lscommand shows you the files in your current directory. Used with certain options, it lets you see file sizes, when files where created, and file permissions. For example,
ls ~shows you the files that are in your home directory.
- mkdir: The
mkdircommand allows you to create directories. For example,
mkdir musiccreates a music directory.
- chmod: The
chmodcommand changes the permissions on the files listed.
Permissions are based on a fairly simple model. You can set permissions for user, group, and world, and you can set whether each can read, write, and/or execute the file. For example, if a file had permission to allow everybody to read but only the user could write, the permissions would read
rwxr--r--. To add or remove a permission, you append a
-in front of the specific permission. For example, to add the capability for the group to edit in the previous example, you could type
chmod g+x file.
- chown: The
chowncommand allows the user to change the user and group ownerships of a file. For example,
chown jim filechanges the ownership of the file to Jim.
System Information Commands
System information commands include the following.
- df: The
dfcommand displays filesystem disk space usage for all partitions. The command
df-his probably the most useful. It uses megabytes (M) and gigabytes (G) instead of blocks to report. (
- free: The
freecommand displays the amount of free and used memory in the system. For example,
free -mgives the information using megabytes, which is probably most useful for current computers.
- top: The
topcommand displays information on your Linux system, running processes, and system resources, including the CPU, RAM, swap usage, and total number of tasks being run. To exit
top, press Q.
- uname -a: The
unamecommand with the
-aoption prints all system information, including machine name, kernel name, version, and a few other details. This command is most useful for checking which kernel you’re using.
- lsb_release -a: The
lsb_releasecommand with the
-aoption prints version information for the Linux release you’re running. For example:
user@computer:~$ lsb_release -a
LSB Version: n/a
Distributor ID: Ubuntu
Description: Ubuntu (The Breezy Badger Release)
- ifconfig: This reports on your system’s network interfaces.
- iwconfig: The
iwconfigcommand shows you any wireless network adapters and the wireless-specific information from them, such as speed and network connected.
- ps: The
pscommand allows you to view all the processes running on the machine.
- The following commands list the hardware on your computer, either of a specific type or with a specific method. They are most useful for debugging when a piece of hardware does not function correctly.
- lspci: The
lspcicommand lists all PCI buses and devices connected to them. This commonly includes network cards and sound cards.
- lsusb: The
lsusbcommand lists all USB buses and any connected USB devices, such as printers and thumb drives.
- lshal: The
lshalcommand lists all devices the hardware abstraction layer (HAL) knows about, which should be most hardware on your system.
- lshw: The
lshwcommand lists hardware on your system, including maker, type, and where it is connected.
Searching and Editing Text Files
Search and edit text files by using the following commands.
- grep: The
grepcommand allows you to search inside a number of files for a particular search pattern and then print matching lines. For example,
grep blahfilewill search for the text “blah” in the file and then print any matching lines.
- sed: The
sed(or Stream EDitor) command allows search and replace of a particular string in a file. For example, if you want to find the string “cat” and replace it with “dog” in a file named pets, type
sed s/cat/dog/g pets.
- Three other commands are useful for dealing with text.
- cat: The
catcommand, short for concatenate, is useful for viewing and adding to text files. The simple command
cat FILENAMEdisplays the contents of the file. Using
cat FILENAME fileadds the contents of the first file to the second.
- nano: Nano is a simple text editor for the command line. To open a file, use
nano filename. Commands listed at the bottom of the screen are accessed via pressing Ctrl followed by the letter.
- less: The
lesscommand is used for viewing text files as well as standard output. A common usage is to pipe another command through less to be able to see all the output, such as
ls | less.
You can use the following commands to administer users and groups.
- adduser: The
addusercommand creates a new user. To create a new user, simply type
sudo adduser $loginname. This creates the user’s home directory and default group. It prompts for a user password and then further details about the user.
- passwd: The
passwdcommand changes the user’s password. If run by a regular user, it will change his or her password. If run using sudo, it can change any user’s password. For example,
sudo passwd joechanges Joe’s password.
- who: The
whocommand tells you who is currently logged into the machine.
- addgroup: The
addgroupcommand adds a new group. To create a new group, type
sudo addgroup $groupname.
- deluser: The
delusercommand removes a user from the system. To remove the user’s files and home directory, you need to add the
- delgroup: The
delgroupcommand removes a group from the system. You cannot remove a group that is the primary group of any users.
- cat: The
- lspci: The