Christopher Negus

Linux Bible


Скачать книгу

reasons. /sbin Contains administrative commands and daemon processes. /sys Contains parameters for such things as tuning block storage and managing cgroups. /tmp Contains temporary files used by applications. /usr Contains user documentation, games, graphical files (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 Contains directories of data used by various applications. In particular, this is where you would place files that you share as an FTP server (/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.

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