第 2章 Linux的常用命令
本章学习目标
通过对本章的学习,读者应该掌
握以下主要内容:
? 命令的使用方式
? 文件及目录操作命令
? 文件压缩命令
? 联机帮助命令
? 进程管理的命令
2.1 使用命令
2.1.1 命令的使用方式
在 Linux系统中打开终端的方式有以下两种:
种是在桌面上依次单击, 主程序 → 系统工具 → 终端,
可打开如图 2-1的终端窗口;另一种是在 Linux桌面
上单击鼠标右键, 从弹出的快捷菜单中选择, 终端,
命令, 也可打开终端窗口 。
一般的 Linux使用者均为普通用户,而系统管理员一般使
用超级用户帐号完成一些系统管理的工作
要说明的是, 不同的用户登录其终端的提示符略有不同,
在图 2-1中显示的是超级用户的提示符 。 如果是一般用户登
录, 其提示符如图 2-2所示 。
Linux系统是以全双工的方式工作,即从键盘把字符输
入系统,系统再将字符回送到终端并显示出来。通常,
回送到终端的字符与输入字符相同,因此操作员看到
的正是自己输入的字符。但也有个别的时候,系统不
回送符号。
键盘上大多数字符是普通打印字符,它们没有特殊
含义。只有少数特殊字符指示计算机做专门的操作。其中
最常见的特殊字符是回车键 RETURN,它表示输入行结束;
系统收到回车信息便认为输入的当前行结束,系统的响应
是让屏幕光标回到下一行行首。
回车符只是控制符的一个例子。控制符是指控制终
端工作方式的非显示字符。输入一般控制符必须先按下控
制键,或称作 CTRL键,然后再按所对应的字符键。例如,
输入回车符可以直接按回车键,也可以先按控制键,再按
m键。 CONTROL-m或 CTL-m也是回车符。一些常用的控
制符有,CTL-d,它表示终端的输入结束; CTL-g控制终
端响铃; CTL-h称为退格键,用于改正输入的错误,
此外还有两个特殊键,一个是 DELETE键,另一个
是 BREAK键。大多数 LINUX系统中,DELETE键表示立
即终止程序。在有些系统里,也用 CTL-c终止程序。一般
说来,BREAK键与 DELETE键,CTL-c的功能基本相同。
终端显示提示符后,用户就可以输入命令请示系统执行。
这里所谓命令就是请示调用某个程序。例如当用户输入
date命令时,系统就去调用 date程序显示当前的日期和时
间,终端屏幕上会出现类似下面的信息:
[root@lbliubing root]# date
日 2月 1 15:49:11 CST 2004
当命令输入完毕后, 一定不要忘记按回车健, 因为系统
只有收到回车键才认为命令行结束 。
又如 询问当前有哪些用户挂在系统里 。 命令及响
应如下所示:
[root@lbliubing root]# who
root,0 Feb 1 15:41
root pts/0 Feb 1 15:46 (:0.0)
jl pts/1 Feb 1 15:40 (:0.0)
还有另外的方法 可以查看目前登录用户的注册信息。命令
及响应如下所示:
[root@lbliubing root]# who am i
root pts/0 Feb 1 15:46 (:0.0)
这时系统仅回送用户自己的注册信息 。 假如用户打错了命
令, 系统将回答这一命令没有找到 。
[root@lbliubing root]# whom
whom,unable to open /root/Mail/draft,没有那个文件或目录
上面几条命令在终端中的输入方法及响应如图 2-3所示 。
另外,在终端上还有一个命令补齐 (Command-Line
Completion)的操作技巧,所谓命令补齐是指当键
入的字符足以确定目录中一个唯一的文件时,
只须按 Tab 键就可以自动补齐该文件名的剩下部
分,例如要把目录 /freesoft 下的文件 gcc-
2.8.1.tar.gz 解包,当键入到 tar xvfz /freesoft/g 时,
如果此文件是该目录下唯一以 g开头的文件,这
时就可以按下 Tab 键,这时命令会被自动补齐为:
tar xvfz /freesoft/gcc-2.8.1.tar.gz,非常方便
2.1.2 特殊字符
在 Linux系统的终端中有几个最有
用的 bash变量, 这些变量变量名及
简单描述如下:
? HISTFILE,用于贮存历史命令的文件 。
? HISTSIZE,历史命令列表的大小 。
? HOME,当前用户的用户目录 。
? OLDPWD,前一个工作目录 。
? PATH,bash寻找可执行文件的搜索路径 。
? PS1,命令行的一级提示符 。
? PS2,命令行的二级提示符 。
? PWD,当前工作目录 。
SECONDS,当前 shell开始后所流逝的秒数 。
这意味着 bash 保留了一定数目的先前已经在
shell 里输入过的命令。这个数目取决于一个叫做
HISTSIZE的变量。 使用历史记录列表最简单的方法
是用上方向键。
另一个使用命令历史文件的方法是用 bash 的
内部命令 history 和 fc(fix 命令 )命令来显示和编辑历史
命令。 history 命令能以两种不同的方法来调用。第
一种是:
history [n]
当 history 命令没有参数时,整个历史命令列表的内
容将被显示出来。使用 n 参数的作用是仅有最后 n
个历史命令会被列出 。
例如,history 5 显示最后 5 个命令。
调用 history 命令的第二种方法用于修改
命令历史列表文件的内容 。 命令的语法如下:
history [-r|w|a|n] [filename]
这种形式中, -r 选项告诉 history 命令读命令历史列表
文件的内容并且把它们当作当前的命令历史列表 。 -w 选
项将把当前的命令历史记录写入文件中并覆盖文件原来的
内容 。 -a 选项把当前的命令历史记录追加到文件中 。 -n
选项将读取文件中的内容并加入到当前历史命令列表中 。
如果 filename 选项没有被指定, history 命令将用变量
HISTFILE 的值来代替 。
命令别名通常是其他命令的缩写, 用来减少键盘输入 。
还有一个使工作变得轻松的方法是使用命令别名
命令格式为,
alias [ alias-name=’original-command’]
其中, alias-name 是 用 户 给 命 令 取 的 别 名, original-
command是原来的命令和参数 。 需要注意的是, 由于 Bash
是以空格或者回车来识别原来的命令的, 所以如果不使用
引号就可能导致 Bash只截取第一个字, 从而出现错误 。
注意:在定义别名时, 等号两边不能有空格,
否则 shell将不能决定要做什么 。 仅在命令中包含空格
或特殊字符时才需要引号 。 如果键入不带任何参数的
alias命令, 将显示所有已定义的别名 。
Bash有两级提示符 。 第一级提示符是经常见到
的 Bash在等待命令输入时的情况 。 第一级提示符的默
认值是 $符号 。 如果用户不喜欢这个符号, 或者愿意自
己定义提示符, 只需修改 PS1变量的值 。 例如将其改为:
PS1=”输入一个命令:,
第二级提示符是当 Bash为执行某条命令需要用户输入
更多信息时显示的 。 第二级提示符默认为, >, 。 如
果需要自己定义该提示符, 只需改变 PS2变量的值 。 例
如将其改为:
PS2=”更多信息:,
用户也可以使用一些事先已经定义好的特殊字符。这些
特殊字符将使提示符中包含当前时间之类的信息。
表 2-1列出了最常用的一些特殊字符及其含义。
表 2-1 bash提示符常用特殊字符
特殊字符 说明
\! 显示该命令的历史编号
\# 显示 shell激活后,当前命令的历史编号
\$ 显示一个 $符号,如果当前用户是 root则显
示 #符号
\\ 显示一个反斜杠
\d 显示当前日期
\h 显示运行该 shell的计算机主机名
\n 打印一个换行符,这将导致提示符跨行
\s 显示正在运行的 Shell的名称
\t 显示当前时间
\u 显示当前用户的用户名
\W 显示当前工作目录基准名
\w 显示当前工作目录
下面来看几个实际例子:
PS1=”\d”
将使提示符变成显示日期, 如下所示:
一 2月 02
而 PS1=”d”,将使提示符变成如下所示:
d
若 PS1="[\W@\h \w]"将使提示符变成如下所示,
[nic@lbliubing ~/liunuxbook/nic]
该例就是使用三个特殊字符的组合得到的。
以上的各例在 Red Hat Linux9.0系统的终端中所显示的
结果如图 2-4所示 。
2.1.3 通配符基础
通配符 又称多义符 。 在描述文件时, 有时在文件名
部分用到一些通配符, 以加强命令的功能 。 在 Linux
系统中有以下基本的通配符:
??,表示该位置可以是一个任意的单个字符 。
? *:表示该位置可以是若干个任意字符 。
? 方括号 [charset]:可替代 charset集中的任何单个字

下面对方括号通配符进行一些说明 。 例如
[cChH]:表示在文件的该位置中可出现任意
单个的 c或 h字符的大小写形式 。
另个, 通配符集还能描述介于字符对
之间的所有字符 。 如, [a-z]”就可以代 替任意小写字
母, 而 [a-zA-Z]则可替代任意字母 。 注意可替代的字
符包括 a到 z和 A到 Z字符对之间的所有字符 。
那么, 是否能在一条指令中用多个通配符呢? 答案是肯
定的 。 如
rm a*out*tmp?
该 命 令 可 以 删 除 一 系 列 临 时 性 的 输 出 文 件, 如
ab.out.temp1,ab.out.temp1 等 。
UNIX或 Linux系统可将一定相关的文件看作一个集合的
一部分, 用户可以用该集合去匹配 。 所以, 如果需要
显示 nic-1.png,nic-2.png,nic-3.png,nic-4.png,
nic-5.png,只须要在终端的命令提示符后输入:
ls nic-[1-5].png
这样利用通配符可以使指令的输入变得更加灵活 。 该技巧的
可很容易实现显示一些文件名相关的文件 。 以上的各例在 Red
Hat Linux9.0系统的终端中所显示的结果如图 2-5所示 。
2.2 文件概念及操作命令
2.2.1 文件显示命令
显示指定工作目录中所包含的内容的指令是 ls,要 说明的是 ls命
令列出文件的名字,而不是文件的内容。该命令的使用方式如下,
ls [选项 ] [文件目录列表 ]
ls命令中的常用选项如下:
? -a:显示所有文件及目录 (ls规定将文件名或目录名中开头为
"."的视为隐藏档, 不会列出 )
? -c:按列输出, 纵向排序
? -x:按列输出, 横向排序
? -l:除文件名外, 也将文件状态, 权限, 拥有者, 文件大小
等信息详细列出
? -t,根据文件建立时间的先后次序列出
? -A,同 -a, 但不列出 "." (目前目录 ) 及 ".." (父目录 )
? -X:按扩展名排序显示
? -R:递归显示下层子目录
? --help:显示帮助信息
? --version:显示版本信息
Linux支持多种文件类型, 每一类用一个字符来表示, 其
说明如下:
? -:常规文件
? d:目录
? b:块特殊设备
? c:字符特殊设备
? p:有名管道
? s:信号灯
? m:共享存储器
文件类型的字符表示文件的权限,权限由三个字符串组
成,这三个字符串分别表示:该文件所有者的权限、组
中其他人的权限和系统中其人的权限;每个字符串又由
三个字符组成,依次表示对文件的读(用字符 r表示)、
写(用字符 W表示)和执行权限(用字符 x表示)。当用
户没有相应的权限时,该权限的对应位置用短线, -”来
表示。
例如:
drwxr-x---
表示的含义是,d表示这条信息是目录;目录拥有者的
权限是 rwx( 表示有读, 写和执行权限 ) ;组中其他人
对该目录的权限是 r-x( 表示有读和执行权限, 没有写
权限 ), 系统中其他人对该目录的权限是 ---( 表示读,
写和执行权限都没有 ) 。
下面是使用命令来显示帮助和版本信息, 命令如下:
#ls --version
#l ls --help |more
2.2.2 查找、排序及显示指定文件内容的
命令
1,查找文件
在 Linux系统中查找文件的命令通常为 find命令。
find命令可在使用、管理 Linux系统中方便地查找所
需要的指定文件。
find命令的语法格式如下:
#find [目录列表 ] [匹配标准 ]
在命令格式中有两个参数, 说明如下:
? 目录列表:希望查询文件或文件集的目录列
表, 目录间用空格分隔 。
? 匹配标准:希望查询的文件的匹配标准或说
明 。 详细的匹配标准如表 2-2所示 。
表达式 说 明
-name文件 告诉 find要找什么文件;要找的文件包括在引号中,
可以使用通配符( *和?)
-perm模式 匹配所有模式为指定数字型模式值的文件。不仅仅是读,写和执行,所有模式都必须匹配。如果在模式前
是负号( -),表示采用除这个模式外的所有模式。
-type x 匹配所有类型为 x的文件。 x是 c(字符特殊),b(块
特殊),d(目录),p(有名管道),l(符号连接),
s(套接文件)或 f(一般文件)。
-links n 匹配所有连接数为 n的文件。
-user用户号 匹配所有用户序列号是前面所指定的用户序列号的文
件,可以是数字型的值或用户登录名 。
-atime n 匹配所有在前 n天内访问过的文件。
-mtime n 匹配所有在前 n天内修改过的文件。
-newer文件 匹配所有修改时间比 file文件更新的文件。
-size n 匹配所有大小为 n 块的文件( 512字节块,若 k在 n后,
则为 1K字节块) 。
-print 显示整个文件路径和名称。一般来说,都要用 -print,
如果没有这个参数,则 find命令进行所要求的搜索是
没有显示结果的。
1)通过文件名查找
知道了某个文件的文件名,却不知道它存于哪个
目录下,此时可通过查找命令找到该文件,命令
如下:
# find / -name httpd.conf –print
2)根据部分文件名查找
当要查找某个文件时, 不知道该文件的全名, 只
知道这个文件包含几个特定的字母, 此时用查找命令也
是可找到相应文件的 。 这时在给字查找文件名时通配符
,*”,,?”。 例如, 还是查找文件, httpd.conf”,但
仅记得该文件名包含, http”字符串, 可使用如下命令查
找,
#find / –name *http* -print
3)根据文件的特征查询
如果仅知道某个文件的大小, 修改日期等特征也
可使用 find命令把该文件查找出来 。 例如, 知道
一个文件尺寸小于为 2500bytes,可使用如下命
令查找:
#find /etc –size -2500c –print
下面是以时间特征为查找条件的 find命令函数的
参数:
? amin n 查找 n分钟以前被访问过的所有文件,
? atime n 查找 n天以前被访问过的所有文件,
? cmin n 查找 n分钟以前文件状态被修改过的所有文
件,
? ctime n 查找 n天以前文件状态被修改过的所有文件,
? mmin n 查找 n分钟以前文件内容被修改过的所有文
件,
? mtime n 查找 n天以前文件内容被修改过的所有文件,
2,显示文本文件内容
显示文本文件内容的命令是 cat命令, 用来将文件的
内容显示到终端上, 其命令语法如下:
cat [选项 ] 文件列表
命令中的参数说明如下:
? 常用选项如表 2-3所示
? 文件列表:这是要连接文件的选项列表 。 如
果没有指定文件或连字号 ( -), 就从标准输入读取 。
表 2-3 cat命令常用选项
选 项 说 明
-b 计算所有非空输出行,开始为 1。
-e 在每行末尾显示 $符号 。
-n 计算所有输出行,开始为 1。
-s 将相连的多个空行用单一空行代替 。
3,查找文件内容
查找文件内容的命令是 grep命令。其使用的语法如
下:
grep [选项 ] 匹配字符串 文件列表
命令中的参数说明如下:
选项如表 2-4所示
? 文件列表:
匹配字符串:希望在文件中查到的串 。
表 2-4 grep命令的常用选项
选项 说明
-v 列出不匹配串或正则表达式的行 。
-c 对匹配的行计数 。
-l 只显示包含匹配的文件的文件名 。
-h 抑制包含匹配文件的文件名的显示
-n 每个匹配行只按照相对的行号显示 。
-i 产生不区分大小写的匹配, 缺省状态是
区分大小写 。
4,排序命令
sort命令的功能是对文件中的各行进行排序,
sort命令可以被认为是一个非常强大的数据管理工
具,用来管理内容类似数据库记录的文件。
Sort命令将逐行对文件中的内容进行排序,
如果两行的首字符相同,该命令将继续比较这两行
的下一字符,如果还相同,将继续进行比较。该命
令的语法格式如下:
sort [选项 ] 文件
说明,sort命令对指定文件中所有的行进行
排序, 并将结果显示在标准输出上 。 如不指定输入
文件或使用, -,,则表示排序内容来自标准输入 。
2.2.3 比较文件内容的命令
1,comm命令
如果想对两个有序的文件进行比较, 可以使用 comm命
令 。 该命令的使用语法如下:
comm [- 123 ] file1 file2
说明:该命令是对两个已经排好序的文件进行比较 。 其
中 file1和 file2是已排序的文件 。 comm读取这两个文件,
然后生成三列输出:仅在 file1中出现的行;仅在 file2中出
现的行;在两个文件中都存在的行 。 如果文件名用, -,,
则表示从标准输入读取 。
2,diff命令
diff命令用于比较两个文件内容的不同, 其命令
语法格式如下:
diff [参数 ] 原文件 目标文件
其中, 源文件, 和, 目标文件, 是用户要比较的
两个文件 。
表 2-4 diff命令的常用参数
参数 说明
a 将所有文件当做文本文件来处理
b 忽略空格造成的不同
B 忽略空行造成的不同
q 只报告什么地方不同,不报告具体的不同信息
H 利用试探法加速对大文件的搜索
i 忽略大小写的变化
l 用 pr对输出进行分页
r 在比较目录时比较所有的子目录
s 两个文件相同时才报告
v 在标准输出上输出版本信息并退出
2.2.4 复制、删除和移动文件的命令
1,文件复制命令
Linux下的 cp命令用于复制文件或目录, 该命令是最重
要的文件操作命令, 其命令格式如下:
cp [选项 ] 源文件 目标文件
cp [选项 ] 源文件组 目标目录
参数说明如下:
? 源文件:要拷贝的文件 。
? 目标文件:目标名 。 也可以是目录名, 这种情况
下, 源文件名作为目标文件名, 而文件放在该目录下 。
? 源文件组:要拷贝文件的由空格分隔的列表 。
? 目标目录:目标目录 。
常用命令的选项列表如表 2-5所示 。
表 2 -5 cp命令常用选项
常用选项 说 明
-a 在备份中保持尽可能多的源文件结构和属。
-b 作将要覆盖或删除文件的备份。
-f 删除已存在的目标文件。
-i 提示是否覆盖已存在的目标文件。
-p 保持原先文件的所有者,组权限和时间标志
-r 递归拷贝目录,把所有非目录文件当普通文件拷贝。
-R 递归拷贝目录。
2,文件的删除命令
rm命令可从文件系统中删除文件及整个目录。 rm命令所
使用的命令格式如下:
rm [选项 ] 文件列表
参数说明如下:
? 常用命令的选项列表如表 2-6所示 。
? 文件列表:希望删除的用空格分隔的文件列表, 可以包括目
录名 。
表 2 -6 rm命令常用选项
常用选项 说 明
-r 删除文件列表中指定的目录,若不用此标志则不删除目录
-I 指定交互模式。在执行删除前提示确认。任何以 Y开始的
响应都表示肯定;其他则表示否定。
-f 指定强行删除模式。通常,在删除文件权限可满足时 rm提
示。本标志强迫删除,不用提示。
-V 在删除前回显文件名。
-- 指明所有选项结束。用于删除一个文件名与某一选项相同
的文件。例如:假定偶然建立了名为 -f的文件,又打算删
除它,命令 rm -f不起任何作用,因为 -f被解释成标志而不
是文件名;而命令 rm -- -f能成功地删除文件。
3,移动文件
在 Linux系统中, 移动文件可使用 mv命令 。 Mv命令还可改文
件改名, 即把源文件以一个新文件名移动到另一个新的目
录中去 。 该命令所使用语法形式有:
mv [-f] [-i] 文件 1 文件 2
mv [-f] [-i] 目录 1 目录 2
mv [-f] [-i] 文件列表 目录
命令中的参数说明如下:
? -f:通常情况下, 目标文件存在但用户没有写权限时, mv会给
出 提示 。 本选项会使 mv命令执行移动而不给出提示 。
? -i:交互模式, 当移动的目录已存在同名的目标文件名时, 用
覆 盖方式写文件, 但在写入之前给出提示 。
? 文件, 源文件名 。
? 文件 2:目标文件名 ( 新文件名 ) 。
? 目录 1:源目录名 。
目录 2:目标目录名 ( 新目录名 ) 。
? 文件列表,用空格分隔的文件名列表 。 本选项用于文件保持它们
的 名字被移动到一个新目录 。
? 目录:目标目录 。
2,5 文件内容统计命令
wc命令的功能为统计指定文件中的字节数, 字数,
行数,并将统计结果显示输出 。 wc命令使用的语法
格式如下:
wc [选项 ] 文件列表
说明:该命令统计给定文件中的字节数, 字数, 行
数 。 如果没有给出文件名, 则从标准输入读取 。 wc
同时也给出所有指定文件的总统计数 。 字是由空格
字符区分开的最大字符串 。 该命令各选项含义如下:
-c:统计字节数 。
? -l:统计行数 。
-w:统计字数 。
2.2.6 命令的输入和输出
在 Linux系统中, 执行一个 shell命令行时通常会自动打开
三个标准文件, 即标准输入文件 ( stdin), 通常对应
终端的键盘;标准输出文件 ( stdout) 和标准错误输出
文件 ( stderr), 这两个文件也都对应终端的屏幕 。 进
程将从标准输入文件中得到输入数据, 将正常输出数据
输出到标准输出文件, 而将错误信息送到标准错误文件
中 。
Linux系统为输入, 输出的传送引入了另外两种机制, 即输
入 /输出重定向和管道 。
1,输入重定向
输入重定向是指把命令 ( 或可执行程序 ) 的标准输入重定
向到指定的文件中 。 输入重定向主要用于改变一个命令
的输入源, 特别是改变那些需要大量输入的输入源 。
另一种输入重定向称为 here文档,它告诉 shell当前命令
的标准输入来自命令行。 here文档的重定向操作符使用
,<<”。它将一对分隔符(! … !)之间的正文重定向
输入给命令。
由于大多数命令都以参数的形式在命令行上指定输入文
件的文件名,所以输入重定向并不经常使用。尽管如此,
当要使用一个不接受文件名作为输入参数的命令,而需
要的输入内容又存在一个文件里时,就能用输入重定向
解决问题。
2,输出重定向
输出重定向是指把命令 ( 或可执行程序 ) 的标准输出或
标准错误输出重新定向到指定文件中 。 这样, 该命令的
输出就不显示在屏幕上, 而是写入到指定文件中 。
输出重定向比输入重定向更常用, 很多情况下都可以使用
这种功能 。 例如, 如果某个命令的输出很多, 在屏幕上不
能完全显示, 那么将输出重定向到一个文件中, 然后再用
文本编辑器打开这个文件, 就可以查看输出信息;如果想
保存一个命令的输出, 也可以使用这种方法 。 还有, 输出
重定向可以用于把一个命令的输出当作另一个命令的输入
( 还有一种更简单的方法, 就是使用管道 ) 。 输出重定
向的一般形式为:
命令 >文件名
为避免输出重定向中指定文件只能存放当前命令的输出重
定向的内容, shell提供了输出重定向的一种追加手段 。
输出追加重定向与输出重定向的功能非常相似, 区别仅在
于输出追加重定向的功能是把命令 ( 或可执行程序 ) 的输
出结果追加到指定文件的最后, 而该文件原有内容不被破
坏 。 可以使用追加重定向操作符, >>”,其使用语法形式
为:
命令 >>文件名
3,管 道
将一个程序或命令的输出作为另一个程序或命令的输
入,有两种方法,一种是通过一个临时文件将两个命
令或程序结合在一起 ;另一种是 Linux所提供的管道功能。
这种方法比前一种方法更好。
管道可以把一系列命令连接起来, 这意味着第一个命
令的输出会作为第二个命令的输入通过管道传给第二
个命令, 第二个命令的输出又会作为第三个命令的输
入, 以此类推 。 显示在屏幕上的是管道行中最后一个
命令的输出 ( 如果命令行中未使用输出重定向 ) 。
4,命令替换
命令替换和重定向有些相似, 但区别在于命令替换是将一
个命令的输出作为另外一个命令的参数 。 常用命令格式为:
command1 `command2`
其中, command2的输出将作为 command1的参数 。 需要注
意的是这里的 `符号, 被它括起来的内容将作为命令执行,
执行后的结果作为 command1的参数 。
例如:
$ cd `pwd`
该命令将 pwd命令列出的目录作为 cd命令的参数, 结果仍
然是停留在当前目录下 。
2.3 目录及其操作命令
1,树型目录结构
Linux系统以文件目录的方式来组织和管理系统
中的所有文件 。 所谓文件目录就是将所有文件的
说明信息采用树型结构组织起来, 即常说的目录 。
也就是说, 整个文件系统有一个, 根, ( root),
然后在根上分, 杈, ( directory), 任何一个
分杈上都可以再分杈, 杈上也可以长出, 叶子, 。
,根, 和, 杈, 在 Linux中被称为是, 目录, 或
,文件夹, 。 而, 叶子, 则是一个个的文件 。 实
践证明, 此种结构的文件系统效率比较高 。
如前所述, 目录也是一种类型的文件 。 Linux系统通
过目录将系统中所有的文件分级, 分层组织在一起, 形成
了 Linux文件系统的树型层次结构 。 以根目录为起点, 所有
其他的目录都由根目录派生而来用户可以浏览整个系统,
可以进入任何一个已授权进入的目录, 访问那里的文件 。
Linux目录提供了管理文件的一个方便途径 。 每个目
录里面都包含文件 。 用户可以为特定的文件创建特定的目
录, 也可以把一个目录下的文件移动或复制到另一目录下,
而且能移动整个目录, 并且和系统中的其他用户共享目录
和文件 。
需要说明的是, 根目录 (系统目录 )是 Linux系统中的
特殊目录 。 Linux是一个多用户系统, 操作系统本身的驻留
程序存放在以根目录开始的专用目录中 。
2,工作目录, 用户主目录与路径
( 1) 工作目录与用户主目录
从逻辑上讲, 用户在登录到 Linux系统中之后, 每时
每刻都, 处在, 某个目录之中, 此目录被称作工作目录或
当前目录 ( Working Directory) 。 工作目录是可以随时改
变的 。 用户初 始登录到 系统中时, 其主目录 ( Home
Directory) 就成为其工作目录 。 工作目录用,,”表示, 其
父目录用,,.”表示 。
用户主目录是系统管理员增加用户时建立起来的
( 以后也可以改变 ), 每个用户都有自己的主目录, 不同
用户的主目录一般互不相同 。 用户刚登录到系统中时, 其
工作目录便是该用户主目录, 通常与用户的登录名相同 。
( 2)路径
路径是指从树型目录中的某个目录层次到某个文件
的一条道路 。 此路径的主要构成是目录名称, 中间
用, /”分开 。 某个文件在文件系统中的位置都是由相
应的路径决定的 。
路径又分相对路径和绝对路径 。 绝对路径是指从
,根, 开始的路径, 也称为完全路径;相对路径是
从用户工作目录开始的路径 。
应该注意到, 在树型目录结构中到某一确定文件的
绝对路径和相对路径均只有一条 。 绝对路径是确定
不变的, 而相对路径则随着用户工作目录的变化而
不断变化 。 这一点对于以后使用某些命令如 cp和 tar等
大有 好处 。
3,Linux系统主要目录说明
/bin,显而易见, bin 就是二进制 ( binary) 英文缩写 。
/boot,在这个目录下存放的都是系统启动时要用到的
程序 。 在使用 lilo引导 linux的时候, 会用到这里的一
些信息 。
/dev,dev 是设备 ( device) 的英文缩写 。 这个目录对所
有的用户都十分重要 。 因为在这个目录中包含了所有
linux系统中使用的外部设备 。 但是这里并不是放的外
部设备的驱动程序 。
/etc, etc这个目录是 linux系统中最重要的目录之一 。
在这个目录下存放了系统管理时要用到的各种配置文
件和子目录 。 我们要用到的网络配置文件, 文件系统,
x系统配置文件, 设备配置信息, 设置用户信息等都在
这个目录下 。
/sbin, 这个目录是用来存放系统管理员的系统管理程序。
/home, 如果建立一个用户,用户名是, jl”,那么在
/home目录下就有一个对应的 /home/jl路径,用来存放用
户的主目录。
/lib, lib是库( library)英文缩写。这个目录是用来存放系
统动态连接共享库的。几乎所有的应用程序都会用到这个
目录下的共享库。
/mnt, 这个目录在一般情况下也是空的。可以临时将别
的文件系统挂在这个目录下 。
/proc, 可以在这个目录下获取系统信息。这些信息是在
内存中,由系统自己产生的。
/root, 如果用户是以超级用户的身份登录的,这个就是
超级用户的主目录。
/tmp, 用来存放不同程序执行时产生的临时文件。
/usr, 这是 linux系统中占用硬盘空间最大的目录。
2.3.2 创建和删除目录的命令
1,创建目录
在 Linux系统中建立新目录的命令是 mkdir。 该命令的语法
格式如下:
mkdir [-m模式 ] [-p目录名 ] 目录
命令中的参数说明如下:
m模式:在建立目录时把按模式指定设置目录权限 。 该目录
的权限分为:目录所有者的权限, 组中其他人对目录的
权限和系统中其他人对目录的权限 。 这三个权限分别用
三个数字之和来表示:对目录的读权限是 4,写权限是 2、
执行权限是 1。
?-p目录名:建立所有不存在父目录的目录 。
?目录:要建立的目录 。
2,删除目录
rmdir 命令是用来删除目录的, 一般情况下要删除的
目录必须为空目录, 如果所给的目录不为空, 系统会
报告错误 。。 该命令的语法格式如下:
rmdir -p 目录列表
命令中的参数说明如下:
? -p:在删除目录表指定的目录后, 若父
目录为 空, 则 rmdir也删除父目录 。 状态信息显
示什么 被删除, 什么没被删除 。
? 目录列表:空格分隔的目录名列表 。 要
删除的 目录必须为空 。
2.3.3 改变工作目录和显示目录内容的命令
1,显示当前目录
显示当前目录的命令是 pwd命令,该命令使用的语 法
格式如下:
pwd
执行 pwd命令形式如下:
# pwd
2,改变当前工作目录
改变当前工作目录在 Linux系统中使用的是 cd命令 。
该命令使用的语法格式如下:
cd [目录名 ]
命令中的参数说明如下:
? 目录名:改变到所指定的目录名 。 如果没有指定目录, 就返回到
用户主目录 ( 在 HOME环境变量中指定 ) 。
2.3.4 链接文件的命令
链接文件命令是 ln命令。该命令在文件之间创建链接。
这种操作实际上是给系统中已有的某个文件指定另外
一个可用于访问它的名称。
该命令的使用语法如下:
ln [选项 ] 目标 [链接名 ]
ln [选项 ] 目标 目录
链接有两种, 一种被称为硬链接 ( Hard Link), 另
一种被称为符号链接 ( Symbolic Link) 。 建立硬链
接时, 链接文件和被链接文件必须位于同一个文件系
统中, 并且不能建立指向目录的硬链接 。 而对符号链
接, 则不存在这个问题 。 默认情况下, ln产生硬链接 。
在硬链接的情况下, 参数中的, 目标, 被链接至
[链接名 ]。 如果 [链接名 ]是一个目录名, 系统将在该目
录之下建立一个或多个与, 目标, 同名的链接文件, 链
接文件和被链接文件的内容完全相同 。 如果 [链接名 ]为
一个文件, 用户将被告知该文件已存在且不进行链接 。
如果指定了多个, 目标, 参数, 那么最后一个参数必须
为目录 。
如果给 ln命令加上 -s选项, 则建立符号链接 。 如
果 [链接名 ]已经存在但不是目录, 将不做链接 。 [链接
名 ]可以是任何一个文件名 ( 可包含路径 ), 也可以是
一个目录, 并且允许它与, 目标, 不在同一个文件系统
中 。 如果 [链接名 ]是一个已经存在的目录, 系统将在该
目录下建立一个或多个与, 目标, 同名的文件, 此新建
的文件实际上是指向原, 目标, 的符号链接文件 。
例,$ ln - s lunch /home/xu用户为当前目录
下的文件 lunch创建了一个符号
链接 /home/xu。
2.3.5 改变文件或目录存取权限的命令
1,改变文件或目录权限
在 Linux系统中, 用户设定文件权限控制其他用户不
能访问, 修改 。 但在系统应用中, 有时需要让其他
用户使用某个原来其不能访问的文件或目录, 这是
就需要重新设置文件的权限, 使用的命令是 chmod命
令 。 并不是谁都可改变文件和目录的访问权限, 只
有文件和目录的所有者才有权限修改其权限, 另外
超级用户可对所有文件或目录进行权限设置 。 chmod
命令的使用语法格式如下:
chmod [选项 ] 文件和目录列表
命令中的参数说明如下:
? 选项的常用取值如表 2-7所示
? 文件和目录列表:准备修改权限的文件和目
录 。
常用选项 说 明
-c 只有在文件的权限确
实改变时才进行详细
说明 。
-f 不打印权限不能改变
的文件的错误信息。
-v 详细说明权限的变化。
-R 递归改变目录及其内
容的权限。
表 2-7 chmod命令的常用选项
chmod命令支持两种文件权限设定的方法:
( 1)使用字符串设置权限
( 2) 使用八进制数设置权限
另外, 文件和目录的权限还可用八进制数字模式来
表示 。 三个八进制数字分别代表 ugo的权限 。 执行
权, 读权和写权所对应的数值分别是 1,2和 4。
若要 rwx属性则 4+2+1=7;
若要 rw-属性则 4+2=6;
若要 r-x属性则 4+1=5。
2,改变文件和目录的所有权
命令的格式如下:
chown [选项 ] 用户 文件和目录列表
命令中的参数说明如下:
? 命令中的选择说明如表 2-8所示 。
? 用户:可能是用户号或文件 /etc/passwd中出现的用户名 。
文件和目录列表:用于重新指定所有权的用空格分隔的文件
和目录列表 。
表 2-8 chown命令的常用选项
常用选项 说 明
-c 只有在文件的权限确实改变时才进行详细说明。
-f 不打印权限不能改变的文件的错误信息。
-v 详细说明权限的变化。
-R 递归改变目录及其内容的权限。
2.4 文件压缩与联机帮助命令
2.4.1 文件压缩
1,gzip压缩文件
gzip命令是在 Linux系统中经常使用的一个对文件进
行压缩和解压缩的命令, 既方便又好用 。 gzip命令的
使用语法格式如下:
gzip [选项 ] 压缩 ( 解压缩 ) 的文件名
gzip命令各选项的说明如表 2-9所示 。
表 2-9 gzip命令的常用选项
常用选项 说明
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、
压缩比、未压缩文件的名字等详细信息
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
2,文件打包 tar
tar可以对文件和目录进行打包。利用 tar,用户可以
对某一特定文件进行打包(一般用作备份文件),也可以在
包中改变文件,或者向包中加入新的文件。 t
tar命令的使用语法格式如下:
tar [主选项 +辅选项 ] 文件或者目录
表 2-10 tar命令的主选项的常用选项
常用选项 说 明
-c 创建新的档案文件。如果用户想备份一个目录
或是一些文件,就要选择这个选项。
-x 从档案文件中释放文件。
-r 把要存档的文件追加到档案文件的未尾。例如用户已
经作好备份文件,又发现还有一个目录或是一些文件
忘记备份了,这时可以使用该选项,将忘记的目录或
文件追加到备份文件中。
-t 列出档案文件的内容,查看已经备份了哪些文件。
-u 更新文件。就是说,用新增的文件取代原备份文件,
如果在备份文件中找不到要更新的文件,则把它追加
到备份文件的最后。
表 2-11 tar命令的辅助选项的常用选项
常用选项 说 明
f 使用档案文件或设备,这个选项通常是必选的。
K 保存已经存在的文件。例如我们把某个文件还原,在
还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告 tar处理的文件信息。如无此选项,tar不报
告文件信息。
z 用 gzip来压缩 /解压缩文件
3,unzip命令
可以用 unzip命令,该命令用于解扩展名为,,zip”的
压缩文件。该命令使用的语法格式如下:
unzip [选项 ] 压缩文件名,zip
upzip命令各选项的说明如表 2-12所示 。
表 2-12 upzip命令的常用选项
常用选项 说 明
-x 文件列表 解压缩文件,但不包括指定的 file文件
-v 查看压缩文件目录,但不解压。
-t 测试文件有无损坏,但不解压。
-d 目录把压缩文件解到指定目录下。
-z 只显示压缩文件的注解。
-n 不覆盖已经存在的文件。
-o 覆盖已存在的文件且不要求用户确认。
-j 不重建文档的目录结构,把所有文件解压到同
一目录下。
2.4.2 联机帮助
1,显示帮助手册
通常使用者只要在命令 man后, 输入想要获取的命令的名
称 ( 例如 ls), man就会列出一份完整的说明, 其内容包
括命令语法, 各选项的意义以及相关命令等 。 该命令的一
般形式为:
man [选项 ] 命令名称
表 2-13 man命令的常用选项
常用选项 说 明
-S 根据章节显示,由于一个命令名称可能会有很多
类别,其类别说明如表 2-14所示。
-f 只显示出命令的功能而不显示其中详细的说明文件
-w 不显示手册页,只显示将被格式化和显示的文件所在
位置。
-a 显示所有的手册页,而不是只显示第一个。
-E 在每行的末尾显示 $符号
表 2-13 man命令的章节常用选项
章节 说 明
1 一般使用者的命令
2 系统调用的命令
3 C语言函数库的命令
4 有关驱动程序和系统设备的解释
5 配置文件的解释
6 游戏程序的命令
7 其它的软件或是程序的命令和有关系统维护
的命令
2,系统帮助文档
help命令用于查看所有 Shell命令 。 用户可以通过该命令寻求 Shell命令
的用法, 只需在所查找的命令后输入 help命令, 就可以看到所查命令的
内容了 。
例如:查看 cd命令的使用方法 。
$ cd --help
3,whereis命令
这个程序的主要功能是寻找一个命令所在的位置 。 例如, 最常用的 ls命
令, 它是在 /bin这个目录下的 。 如果希望知道某个命令存在哪一个目录
下, 可以用 whereis命令来查询 。 该命令的一般形式为:
whereis [选项 ] 命令名 。
说明:一般直接使用不加选项的 whereis命令, 但用户也可根据特殊需
要选用它的一些选项 。 该命令中各选项的说明如表 2-14所示 。
表 2-13 whereis命令的常用选项
章节 说 明
-b 只查找二进制文件
-m 查找主要文件
-s 查找来源
-u 查找不常用的记录文件
例如:查找 cd命令二进行文件在什么目录下 。 可使用如下
命令:
$ whereis -b cd