Product SiteDocumentation Site

附录 B. 简短辅导课程

尽管这本书的主要目标用户是管理员和高级用户,但是我们也不想忽视初学者。这篇附录是一篇讲述操作Unix 计算机基础内容。

B.1. Shell 和基本命令

在Uinx 世界中,每一个管理员迟早都要使用命令行;例如,当系统可能启动失败后只给了一个命令行恢复模式。所以在这样的环境种能够使用命令行是一种基本的生存技能。

B.1.1. 浏览目录与管理文件

打开会话之后,pwd 命令(print working directory)会显示当前位置。当前目录可以通过 cd 目录命令(cdchange directory)。上级目录叫..(两个点),当前目录为.(一个点)。ls 命令会列举目录中的内容,若没有参数,则其将对当前目录进行操作。
$ pwd
$ cd Desktop
$ pwd
$ cd .
$ pwd
$ cd ..
$ pwd
$ ls
Desktop    Downloads  Pictures  Templates
Documents  Music      Public    Videos
您可以使用 mkdir 目录名 命令创建一个新的目录,且可以使用 rmdir 目录名 命令删除一个已存在的(空的)目录。mv 命令可以移动和/或重命名文件和目录;删除一个文件可以使用 rm 文件名 命令来完成。
$ mkdir test
$ ls
Desktop    Downloads  Pictures  Templates  Videos
Documents  Music      Public    test
$ mv test new
$ ls
Desktop    Downloads  new       Public     Videos
Documents  Music      Pictures  Templates
$ rmdir new
$ ls
Desktop    Downloads  Pictures  Templates  Videos
Documents  Music      Public

B.1.2. 显示和修改文本文件

cat 文件名命令(用于连接(concatenate)文件并将内容送至标准输出设备)读取文件并将其内容显示在终端上。如果文件过大而不适合屏幕显示的话,可以使用一个分页器进行辅助,例如less(或者more)以按页在屏幕上显示内容。
命令 editor 会启动一个文本编辑器 (比如 vi 或者 nano),并允许创建、修改 和读取文本文本。通过重定向,普通的文件可以直接被这些命令创建: echo "text" > file 会创建一个名为 file 的文件,内容为 “text”。也可以通过 echo "更多内容" >> file 在该文件末尾追加一行。注意本例中的 >>

B.1.3. 搜索文件和在文件中搜索

find directory 条件 命令用于在 directory 目录下根据给定的 “条件” 搜索文件。最常用的条件是: -name 文件名,将设定 find 以文件名作为条件查找文件。
The grep expression files command searches the contents of the files and extracts the lines matching the regular expression (see sidebar 基本知识 正则表达式). Adding the -r option enables a recursive search on all files contained in the directory passed as a parameter. This allows looking for a file when only a part of the contents are known.

B.1.4. 管理进程

The ps aux command lists the processes currently running and helps identifying them by showing their pid (process id). Once the pid of a process is known, the kill -signal pid command allows sending it a signal (if the process belongs to the current user). Several signals exist; most commonly used are TERM (a request to terminate gracefully) and KILL (a forced kill).
The command interpreter can also run programs in the background if the command is followed by a “&”. By using the ampersand, the user resumes control of the shell immediately even though the command is still running (hidden from the user; as a background process). The jobs command lists the processes running in the background; running fg %job-number (for foreground) restores a job to the foreground. When a command is running in the foreground (either because it was started normally, or brought back to the foreground with fg), the Control+Z key combination pauses the process and resumes control of the command-line. The process can then be restarted in the background with bg %job-number (for background).

B.1.5. 系统信息:内存、磁盘空间、身份信息

The free command displays information on memory; df (disk free) reports on the available disk space on each of the disks mounted in the filesystem. Its -h option (for human readable) converts the sizes into a more legible unit (usually mebibytes or gibibytes). In a similar fashion, the free command supports the -m and -g options, and displays its data either in mebibytes or in gibibytes, respectively.
$ free
              total        used        free      shared  buff/cache   available
Mem:       16279260     5910248      523432      871036     9845580     9128964
Swap:      16601084      240640    16360444
$ df
Filesystem                1K-blocks      Used Available Use% Mounted on
udev                        8108516         0   8108516   0% /dev
tmpfs                       1627928    161800   1466128  10% /run
/dev/mapper/vg_main-root  466644576 451332520  12919912  98% /
tmpfs                       8139628    146796   7992832   2% /dev/shm
tmpfs                          5120         4      5116   1% /run/lock
tmpfs                       8139628         0   8139628   0% /sys/fs/cgroup
/dev/sda1                    523248      1676    521572   1% /boot/efi
tmpfs                       1627924        88   1627836   1% /run/user/1000
The id command displays the identity of the user running the session, along with the list of groups they belong to. Since access to some files or devices may be limited to group members, checking available group membership may be useful.
$ id
uid=1000(rhertzog) gid=1000(rhertzog) groups=1000(rhertzog),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),109(bluetooth),115(scanner)