reasons.
Contains parameters for such things as tuning block storage and managing cgroups.
X11
), libraries (lib
), and a variety of other commands and files that are not needed during the boot process. The /usr
directory is meant for files that don't change after installation (in theory, /usr
could be mounted read-only).
/var/ftp
) or a web server (/var/www
). It also contains all system log files (/var/log
) and spool files in /var/spool
(such as mail
, cups
, and news
). The /var
directory contains directories and files that are meant to change often. On server computers, it is common to create the /var
directory as a separate filesystem, using a filesystem type that can be easily expanded.
The filesystems in the DOS or Microsoft Windows operating systems differ from Linux's file structure, as the sidebar “Linux Filesystems versus Windows-Based Filesystems” explains.
Linux Filesystems versus Windows-Based Filesystems
Although similar in many ways, the Linux filesystem has some striking differences when compared to filesystems used in MS-DOS and Windows operating systems. Here are a few of these differences:
In MS-DOS and Windows filesystems, drive letters represent different storage devices. In Linux, all storage devices are connected to the filesystem hierarchy. So, the fact that all of /usr may be on a separate hard disk or that /mnt/remote1 is a filesystem from another computer is invisible to the user.
Slashes, rather than backslashes, are used to separate directory names in Linux. So C:\home\joe in a Microsoft system is /home/joe in a Linux system.
Filenames almost always have suffixes in DOS (such as .txt for text files or .docx for word-processing files). Although at times you can use that convention in Linux, three-character suffixes have no required meaning in Linux. They can be useful for identifying a file type. Many Linux applications and desktop environments use file suffixes to determine the contents of a file. In Linux, however, DOS command extensions such as .com, .exe, and .bat don't necessarily signify an executable. (Permission flags make Linux files executable.)
Every file and directory in a Linux system has permissions and ownership associated with it. Security varies among Microsoft systems. Because DOS and Microsoft Windows began as single-user systems, file ownership was not built into those systems when they were designed. Later releases added features such as file and folder attributes to address this problem.
Using Basic Filesystem Commands
I want to introduce you to a few simple commands for getting around the filesystem to start out. If you want to follow along, log in and open a shell. When you log in to a Linux system and open a shell, you are placed in your home directory. As a Linux user, most of the files you save and work with will probably be in that directory or in subdirectories that you create. Table 4.1 shows commands to create and use files and directories.
TABLE 4.1 Commands to Create and Use Files
Command | Result |
cd
|
Changes to another directory |
pwd
|
Prints the name of the current (or present) working directory |
mkdir
|
Creates a directory |
chmod
|
Changes the permission on a file or directory |
ls
|
Lists the contents of a directory |
One of the most basic commands that you use from the shell is cd
. The cd
command can be used with no options (to take you to your home directory) or with full or relative paths. Consider the following commands:
$ cd /usr/share/ $ pwd /usr/share $ cd doc $ pwd /usr/share/doc $ cd $ pwd /home/chris
The /usr/share
option represents the absolute path to a directory on the system. Because it begins with a slash (/
), this path tells the shell to start at the root of the filesystem and take you to the share
directory that exists in the usr
directory. The doc
option to the cd
command looks for a directory called doc
that is relative to the current directory. So that command made /usr/share/doc
your current directory.
After that, by typing cd
alone, you are returned to your home directory. If you ever wonder where you are in the filesystem, the pwd
command can help you. Here are a few other interesting cd
command options:
$ cd ~ $ pwd /home/chris $ cd ~/Music $ pwd /home/chris/Music $ cd ../../../usr $ pwd /usr
The tilde (~
) represents your home directory. So cd ~
takes you there. You can use the tilde to refer to directories relative to your home directory as well, such as /home/chris/Music
with ~/Music
. Typing a name as an option takes you to a directory below the current directory, but you can use two dots (..
) to go to a directory above the current directory. The example shown takes you up three directory levels (to /
), and then takes you into the /usr
directory.
The following steps lead you through the process of creating directories within your home directory and moving among your directories, with a mention of setting appropriate file permissions:
1 Go to your home directory. To do this, simply type cd in a shell and press Enter. (For other ways of referring to your home directory, see the sidebar “Identifying Directories.”)
2 To make sure that you're in your home directory, type pwd. When I do this, I get the following response (yours will reflect your home directory):$ pwd /home/joe
3 Create a new directory called test in your home directory, as follows:$ mkdir test
4 Check the permissions of the directory:$ ls -ld test drwxr-xr-x 2 joe sales 1024 Jan 24 12:17 testThis listing shows that test is a directory (d). The d is followed by the permissions (rwxr-xr-x), which are explained later in the section “Understanding File Permissions and Ownership.” The rest of the information indicates the owner (joe), the group (sales), and the date that the files in the directory were most recently modified (Jan 24 at 12:17 p.m.).NOTEWhen you add a new user