Download presentation
Presentation is loading. Please wait.
1
通过对本章的学习,读者应该掌握以下主要内容:
第2章 Linux的常用命令 本章学习目标 通过对本章的学习,读者应该掌握以下主要内容: Ø 命令的使用方式 Ø 文件及目录操作命令 Ø 文件压缩命令 Ø 联机帮助命令 Ø 进程管理的命令
2
在Linux系统中打开终端的方式有以下两种:
2.1 使用命令 命令的使用方式 在Linux系统中打开终端的方式有以下两种: 种是在桌面上依次单击“主程序→系统工具→终端”可打开如图2-1的终端窗口;另一种是在Linux桌面上单击鼠标右键,从弹出的快捷菜单中选择“终端”命令,也可打开终端窗口。
3
一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作
要说明的是,不同的用户登录其终端的提示符略有不同,在图2-1中显示的是超级用户的提示符。如果是一般用户登录,其提示符如图2-2所示。
4
Linux系统是以全双工的方式工作,即从键盘把字符输入系统,系统再将字符回送到终端并显示出来。通常,回送到终端的字符与输入字符相同,因此操作员看到的正是自己输入的字符。但也有个别的时候,系统不回送符号。 键盘上大多数字符是普通打印字符,它们没有特殊含义。只有少数特殊字符指示计算机做专门的操作。其中最常见的特殊字符是回车键RETURN,它表示输入行结束;系统收到回车信息便认为输入的当前行结束,系统的响应是让屏幕光标回到下一行行首。 回车符只是控制符的一个例子。控制符是指控制终端工作方式的非显示字符。输入一般控制符必须先按下控制键,或称作CTRL键,然后再按所对应的字符键。
5
例如,输入回车符可以直接按回车键,也可以先按控制键,再按m键。 CONTROL-m或CTL-m也是回车符。一些常用的控制符有:CTL-d,它表示终端的输入结束;CTL-g控制终端响铃;CTL-h称为退格键,用于改正输入的错误.
6
此外还有两个特殊键,一个是DELETE键,另一个是BREAK键。大多数LINUX系统中,DELETE键表示立即终止程序。在有些系统里,也用CTL-c终止程序。一般说来,BREAK键与DELETE键、CTL-c的功能基本相同。
7
终端显示提示符后,用户就可以输入命令请示系统执行。这里所谓命令就是请示调用某个程序。例如当用户输入date命令时,系统就去调用date程序显示当前的日期和时间,终端屏幕上会出现类似下面的信息:
root]# date 日 2月 1 15:49:11 CST 2004 当命令输入完毕后,一定不要忘记按回车健,因为系统只有收到回车键才认为命令行结束。 又如询问当前有哪些用户挂在系统里。命令及响应如下所示: root]# who root : Feb 1 15:41 root pts/ Feb 1 15:46 (:0.0) jl pts/ Feb 1 15:40 (:0.0)
8
还有另外的方法可以查看目前登录用户的注册信息。命令及响应如下所示:
root]# who am i root pts/ Feb 1 15:46 (:0.0) 这时系统仅回送用户自己的注册信息。假如用户打错了命令,系统将回答这一命令没有找到。 root]# whom whom: unable to open /root/Mail/draft: 没有那个文件或目录 上面几条命令在终端中的输入方法及响应如图2-3所示。
9
另外,在终端上还有一个命令补齐(Command-Line Completion)的操作技巧,所谓命令补齐是指当键入的字符足以确定目录中一个唯一的文件时,只须按 Tab 键就可以自动补齐该文件名的剩下部分,例如要把目录 /freesoft 下的文件 gcc tar.gz 解包,当键入到 tar xvfz /freesoft/g 时,如果此文件是该目录下唯一以 g开头的文件,这时就可以按下 Tab 键,这时命令会被自动补齐为:tar xvfz /freesoft/gcc tar.gz ,非常方便
10
在Linux系统的终端中有几个最有用的bash变量,这些变量变量名及简单描述如下:
特殊字符 在Linux系统的终端中有几个最有用的bash变量,这些变量变量名及简单描述如下: Ø HISTFILE: 用于贮存历史命令的文件。 Ø HISTSIZE: 历史命令列表的大小。 Ø HOME: 当前用户的用户目录。 Ø OLDPWD: 前一个工作目录。 Ø PATH: bash寻找可执行文件的搜索路径。 Ø PS1: 命令行的一级提示符。 Ø PS2: 命令行的二级提示符。 Ø PWD: 当前工作目录。 SECONDS: 当前shell开始后所流逝的秒数。
11
这意味着 bash 保留了一定数目的先前已经在shell 里输入过的命令。这个数目取决于一个叫做HISTSIZE的变量。 使用历史记录列表最简单的方法是用上方向键。
另一个使用命令历史文件的方法是用 bash 的内部命令 history 和 fc(fix 命令)命令来显示和编辑历史命令。history 命令能以两种不同的方法来调用。第一种是: history [n] 当 history 命令没有参数时,整个历史命令列表的内容将被显示出来。使用 n 参数的作用是仅有最后 n 个历史命令会被列出 。 例如,history 5 显示最后 5 个命令。 调用 history 命令的第二种方法用于修改命令历史列表文件的内容。命令的语法如下: history [-r|w|a|n] [filename]
12
这种形式中,-r 选项告诉 history 命令读命令历史列表文件的内容并且把它们当作当前的命令历史列表。-w 选项将把当前的命令历史记录写入文件中并覆盖文件原来的内容。-a 选项把当前的命令历史记录追加到文件中。-n 选项将读取文件中的内容并加入到当前历史命令列表中。如果 filename 选项没有被指定,history 命令将用变量HISTFILE 的值来代替。 命令别名通常是其他命令的缩写,用来减少键盘输入。 还有一个使工作变得轻松的方法是使用命令别名 命令格式为: alias [alias-name=’original-command’] 其中,alias-name是用户给命令取的别名,original-command是原来的命令和参数。需要注意的是,由于Bash是以空格或者回车来识别原来的命令的,所以如果不使用引号就可能导致Bash只截取第一个字,从而出现错误。
13
注意:在定义别名时,等号两边不能有空格,否则shell将不能决定要做什么。仅在命令中包含空格或特殊字符时才需要引号。如果键入不带任何参数的alias命令,将显示所有已定义的别名。
Bash有两级提示符。第一级提示符是经常见到的Bash在等待命令输入时的情况。第一级提示符的默认值是$符号。如果用户不喜欢这个符号,或者愿意自己定义提示符,只需修改PS1变量的值。例如将其改为: PS1=”输入一个命令:” 第二级提示符是当Bash为执行某条命令需要用户输入更多信息时显示的。第二级提示符默认为“>”。如果需要自己定义该提示符,只需改变PS2变量的值。例如将其改为: PS2=”更多信息:”
14
用户也可以使用一些事先已经定义好的特殊字符。这些特殊字符将使提示符中包含当前时间之类的信息。
表2-1列出了最常用的一些特殊字符及其含义。 表2-1 bash提示符常用特殊字符
15
特殊字符 说明 \! 显示该命令的历史编号 \# 显示shell激活后,当前命令的历史编号 \$ 显示一个$符号,如果当前用户是root则显示#符号 \\ 显示一个反斜杠 \d 显示当前日期 \h 显示运行该shell的计算机主机名 \n 打印一个换行符,这将导致提示符跨行 \s 显示正在运行的Shell的名称 \t 显示当前时间 \u 显示当前用户的用户名 \W 显示当前工作目录基准名 \w 显示当前工作目录
16
下面来看几个实际例子: PS1=”\d” 将使提示符变成显示日期,如下所示: 一 2月 02 而 PS1=”d”,将使提示符变成如下所示: d \w]"将使提示符变成如下所示: ~/liunuxbook/nic] 该例就是使用三个特殊字符的组合得到的。
17
以上的各例在Red Hat Linux9.0系统的终端中所显示的结果如图2-4所示。
18
Ø ?:表示该位置可以是一个任意的单个字符。
通配符基础 通配符 又称多义符。在描述文件时,有时在文件名部分用到一些通配符,以加强命令的功能。在Linux系统中有以下基本的通配符: Ø ?:表示该位置可以是一个任意的单个字符。 Ø *:表示该位置可以是若干个任意字符。 Ø 方括号[charset]:可替代charset集中的任何单个字符 下面对方括号通配符进行一些说明。例如 [cChH]:表示在文件的该位置中可出现任意单个的c或h字符的大小写形式。 另个,通配符集还能描述介于字符对之间的所有字符。如“[a-z]”就可以代 替任意小写字母,而[a-zA-Z]则可替代任意字母。注意可替代的字符包括a到z和A到Z字符对之间的所有字符。
19
那么,是否能在一条指令中用多个通配符呢?答案是肯定的。如
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
20
这样利用通配符可以使指令的输入变得更加灵活。该技巧的可很容易实现显示一些文件名相关的文件。以上的各例在Red Hat Linux9
21
显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。该命令的使用方式如下:
2.2 文件概念及操作命令 文件显示命令 显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。该命令的使用方式如下: ls [选项] [文件目录列表] ls命令中的常用选项如下: Ø -a:显示所有文件及目录 (ls规定将文件名或目录名中开头为 "."的视为隐藏档,不会列出) Ø -c:按列输出,纵向排序 Ø -x:按列输出,横向排序 Ø -l:除文件名外,也将文件状态、权限、拥有者、文件大小 等信息详细列出 Ø -t :根据文件建立时间的先后次序列出 Ø -A :同 -a ,但不列出 "." (目前目录) 及 ".." (父目录) Ø -X:按扩展名排序显示 Ø -R:递归显示下层子目录 Ø --help:显示帮助信息 Ø --version:显示版本信息
22
Linux支持多种文件类型,每一类用一个字符来表示,其说明如下: Ø -:常规文件
Ø -:常规文件 Ø d:目录 Ø b:块特殊设备 Ø c:字符特殊设备 Ø p:有名管道 Ø s:信号灯 Ø m:共享存储器 文件类型的字符表示文件的权限,权限由三个字符串组成,这三个字符串分别表示:该文件所有者的权限、组中其他人的权限和系统中其人的权限;每个字符串又由三个字符组成,依次表示对文件的读(用字符r表示)、写(用字符W表示)和执行权限(用字符x表示)。当用户没有相应的权限时,该权限的对应位置用短线“-”来表示。
23
例如: drwxr-x--- 表示的含义是:d表示这条信息是目录;目录拥有者的权限是rwx(表示有读、写和执行权限);组中其他人对该目录的权限是r-x(表示有读和执行权限,没有写权限),系统中其他人对该目录的权限是---(表示读、写和执行权限都没有)。 下面是使用命令来显示帮助和版本信息,命令如下: #ls --version #l ls --help |more
24
在Linux系统中查找文件的命令通常为find命令。find命令可在使用、管理Linux系统中方便地查找所需要的指定文件。
查找、排序及显示指定文件内容的命令 1. 查找文件 在Linux系统中查找文件的命令通常为find命令。find命令可在使用、管理Linux系统中方便地查找所需要的指定文件。 find命令的语法格式如下: #find [目录列表] [匹配标准] 在命令格式中有两个参数,说明如下: Ø 目录列表:希望查询文件或文件集的目录列表,目录间用空格分隔。 Ø 匹配标准:希望查询的文件的匹配标准或说明。详细的匹配标准如表2-2所示。
25
表达式 说 明 告诉find要找什么文件;要找的文件包括在引号中,可以使用通配符(*和?) -perm模式
说 明 -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命令进行所要求的搜索是没有显示结果的。
26
1)通过文件名查找 2)根据部分文件名查找 知道了某个文件的文件名,却不知道它存于哪个目录下,此时可通过查找命令找到该文件,命令 如下:
# find / -name httpd.conf –print 2)根据部分文件名查找 当要查找某个文件时,不知道该文件的全名,只知道这个文件包含几个特定的字母,此时用查找命令也是可找到相应文件的。这时在给字查找文件名时通配符“*”、“?”。例如,还是查找文件“httpd.conf”,但仅记得该文件名包含“http”字符串,可使用如下命令查找: #find / –name *http* -print
27
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天以前文件内容被修改过的所有文件.
28
2. 显示文本文件内容 -b -e -n -s 显示文本文件内容的命令是cat命令,用来将文件的内容显示到终端上,其命令语法如下:
2. 显示文本文件内容 显示文本文件内容的命令是cat命令,用来将文件的内容显示到终端上,其命令语法如下: cat [选项] 文件列表 命令中的参数说明如下: Ø 常用选项如表2-3所示 Ø 文件列表:这是要连接文件的选项列表。如果没有指定文件或连字号(-),就从标准输入读取。 表2-3 cat命令常用选项 选 项 说 明 -b 计算所有非空输出行,开始为1。 -e 在每行末尾显示$符号。 -n 计算所有输出行,开始为1。 -s 将相连的多个空行用单一空行代替。
29
查找文件内容的命令是grep命令。其使用的语法如下:
3. 查找文件内容 查找文件内容的命令是grep命令。其使用的语法如下: grep [选项] 匹配字符串 文件列表 命令中的参数说明如下: 选项如表2-4所示 Ø 文件列表: 匹配字符串:希望在文件中查到的串。 表2-4 grep命令的常用选项 选项 说明 -v 列出不匹配串或正则表达式的行。 -c 对匹配的行计数。 -l 只显示包含匹配的文件的文件名。 -h 抑制包含匹配文件的文件名的显示 -n 每个匹配行只按照相对的行号显示。 -i 产生不区分大小写的匹配,缺省状态是区分大小写。
30
sort命令的功能是对文件中的各行进行排序. sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。
4. 排序命令 sort命令的功能是对文件中的各行进行排序. sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。 Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。该命令的语法格式如下: sort [选项] 文件 说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用“- ”,则表示排序内容来自标准输入。
31
2.2.3 比较文件内容的命令 comm命令 如果想对两个有序的文件进行比较,可以使用comm命 令。该命令的使用语法如下:
比较文件内容的命令 comm命令 如果想对两个有序的文件进行比较,可以使用comm命 令。该命令的使用语法如下: comm [- 123 ] file1 file2 说明:该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用“- ”,则表示从标准输入读取。
32
diff命令 diff命令用于比较两个文件内容的不同,其命令 语法格式如下: diff [参数] 原文件 目标文件
其中“源文件”和“目标文件”是用户要比较的两个文件。 表2-4 diff命令的常用参数 参数 说明 a 将所有文件当做文本文件来处理 b 忽略空格造成的不同 B 忽略空行造成的不同 q 只报告什么地方不同,不报告具体的不同信息 H 利用试探法加速对大文件的搜索 i 忽略大小写的变化 l 用pr对输出进行分页 r 在比较目录时比较所有的子目录 s 两个文件相同时才报告 v 在标准输出上输出版本信息并退出
33
复制、删除和移动文件的命令 1. 文件复制命令 Linux下的cp命令用于复制文件或目录,该命令是最重要的文件操作命令,其命令格式如下: cp [选项] 源文件 目标文件 cp [选项] 源文件组 目标目录 参数说明如下: Ø 源文件:要拷贝的文件。 Ø 目标文件:目标名。也可以是目录名,这种情况下,源文件名作为目标文件名,而文件放在该目录下。 Ø 源文件组:要拷贝文件的由空格分隔的列表。 Ø 目标目录:目标目录。 常用命令的选项列表如表2-5所示。
34
-a 在备份中保持尽可能多的源文件结构和属。
表2-5 cp命令常用选项 常用选项 说 明 -a 在备份中保持尽可能多的源文件结构和属。 -b 作将要覆盖或删除文件的备份。 -f 删除已存在的目标文件。 -i 提示是否覆盖已存在的目标文件。 -p 保持原先文件的所有者,组权限和时间标志 -r 递归拷贝目录,把所有非目录文件当普通文件拷贝。 -R 递归拷贝目录。
35
2. 文件的删除命令 rm命令可从文件系统中删除文件及整个目录。rm命令所使用的命令格式如下: rm [选项] 文件列表 参数说明如下:
2. 文件的删除命令 rm命令可从文件系统中删除文件及整个目录。rm命令所使用的命令格式如下: rm [选项] 文件列表 参数说明如下: Ø 常用命令的选项列表如表2-6所示。 Ø 文件列表:希望删除的用空格分隔的文件列表,可以包括目 录名。 表2-6 rm命令常用选项 常用选项 说 明 -r 删除文件列表中指定的目录,若不用此标志则不删除目录 -I 指定交互模式。在执行删除前提示确认。任何以Y开始的 响应都表示肯定;其他则表示否定。 -f 指定强行删除模式。通常,在删除文件权限可满足时rm提 示。本标志强迫删除,不用提示。 -V 在删除前回显文件名。 -- 指明所有选项结束。用于删除一个文件名与某一选项相同 的文件。例如:假定偶然建立了名为-f的文件,又打算删 除它,命令rm -f不起任何作用,因为-f被解释成标志而不 是文件名;而命令rm -- -f能成功地删除文件。
36
3. 移动文件 在Linux系统中,移动文件可使用mv命令。Mv命令还可改文件改名,即把源文件以一个新文件名移动到另一个新的目录中去。该命令所使用语法形式有: mv [-f] [-i] 文件1 文件2 mv [-f] [-i] 目录1 目录2 mv [-f] [-i] 文件列表 目录 命令中的参数说明如下:
37
Ø -f:通常情况下,目标文件存在但用户没有写权限时,mv会给出 提示。本选项会使mv命令执行移动而不给出提示。
Ø -i:交互模式,当移动的目录已存在同名的目标文件名时,用覆 盖方式写文件,但在写入之前给出提示。 Ø 文件: 源文件名。 Ø 文件2:目标文件名(新文件名)。 Ø 目录1:源目录名。 目录2:目标目录名(新目录名)。 Ø 文件列表:用空格分隔的文件名列表。本选项用于文件保持它们 的 名字被移动到一个新目录。 Ø 目录:目标目录。
38
wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。wc命令使用的语法格式如下:
2. 5 文件内容统计命令 wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。wc命令使用的语法格式如下: wc [选项] 文件列表 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。该命令各选项含义如下: -c:统计字节数。 Ø -l:统计行数。 -w:统计字数。
39
命令的输入和输出 在Linux系统中,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件也都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 Linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道。 输入重定向 输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输入源。
40
另一种输入重定向称为here文档,它告诉shell当前命令的标准输入来自命令行。here文档的重定向操作符使用“<<”。它将一对分隔符(!…!)之间的正文重定向输入给命令。
由于大多数命令都以参数的形式在命令行上指定输入文件的文件名,所以输入重定向并不经常使用。尽管如此,当要使用一个不接受文件名作为输入参数的命令,而需要的输入内容又存在一个文件里时,就能用输入重定向解决问题。 输出重定向 输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不显示在屏幕上,而是写入到指定文件中。
41
输出重定向比输入重定向更常用,很多情况下都可以使用这种功能。例如,如果某个命令的输出很多,在屏幕上不能完全显示,那么将输出重定向到一个文件中,然后再用文本编辑器打开这个文件,就可以查看输出信息;如果想保存一个命令的输出,也可以使用这种方法。还有,输出重定向可以用于把一个命令的输出当作另一个命令的输入(还有一种更简单的方法,就是使用管道)。 输出重定向的一般形式为: 命令>文件名 为避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,shell提供了输出重定向的一种追加手段。输出追加重定向与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。 可以使用追加重定向操作符“>>”,其使用语法形式为: 命令>>文件名
42
管 道 将一个程序或命令的输出作为另一个程序或命令的输入,有两种方法,一种是通过一个临时文件将两个命令或程序结合在一起;另一种是Linux所提供的管道功能。这种方法比前一种方法更好。 管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向)。
43
命令替换 命令替换和重定向有些相似,但区别在于命令替换是将一个命令的输出作为另外一个命令的参数。常用命令格式为:
command1 `command2` 其中,command2的输出将作为command1的参数。需要注意的是这里的`符号,被它括起来的内容将作为命令执行,执行后的结果作为command1的参数。 例如: $ cd `pwd` 该命令将pwd命令列出的目录作为cd命令的参数,结果仍然是停留在当前目录下。
44
2.3 目录及其操作命令 树型目录结构 Linux系统以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树型结构组织起来,即常说的目录。也就是说,整个文件系统有一个“根”(root),然后在根上分“杈”(directory),任何一个分杈上都可以再分杈,杈上也可以长出“叶子”。“根”和“杈”在Linux中被称为是“目录”或“文件夹”。而“叶子”则是一个个的文件。实践证明,此种结构的文件系统效率比较高。
45
如前所述,目录也是一种类型的文件。Linux系统通过目录将系统中所有的文件分级、分层组织在一起,形成了Linux文件系统的树型层次结构。以根目录为起点,所有其他的目录都由根目录派生而来用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。 Linux目录提供了管理文件的一个方便途径。每个目录里面都包含文件。用户可以为特定的文件创建特定的目录,也可以把一个目录下的文件移动或复制到另一目录下,而且能移动整个目录,并且和系统中的其他用户共享目录和文件。 需要说明的是,根目录(系统目录)是Linux系统中的特殊目录。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中。
46
2. 工作目录、用户主目录与路径 (1) 工作目录与用户主目录
2. 工作目录、用户主目录与路径 (1) 工作目录与用户主目录 从逻辑上讲,用户在登录到Linux系统中之后,每时每刻都“处在”某个目录之中,此目录被称作工作目录或当前目录(Working Directory)。工作目录是可以随时改变的。用户初始登录到系统中时,其主目录(Home Directory)就成为其工作目录。工作目录用“.”表示,其父目录用“..”表示。 用户主目录是系统管理员增加用户时建立起来的(以后也可以改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。 用户刚登录到系统中时,其工作目录便是该用户主目录,通常与用户的登录名相同。
47
(2)路径 路径又分相对路径和绝对路径。 绝对路径是指从“根”开始的路径,也称为完全路径;相对路径是从用户工作目录开始的路径。
路径是指从树型目录中的某个目录层次到某个文件的一条道路。此路径的主要构成是目录名称,中间用“/”分开。某个文件在文件系统中的位置都是由相应的路径决定的。 路径又分相对路径和绝对路径。 绝对路径是指从“根”开始的路径,也称为完全路径;相对路径是从用户工作目录开始的路径。 应该注意到,在树型目录结构中到某一确定文件的绝对路径和相对路径均只有一条。绝对路径是确定不变的,而相对路径则随着用户工作目录的变化而不断变化。这一点对于以后使用某些命令如cp和tar等大有好处。
48
Linux系统主要目录说明 /bin :显而易见,bin 就是二进制(binary)英文缩写。
/boot :在这个目录下存放的都是系统启动时要用到的程序。在使用lilo引导linux的时候,会用到这里的一些信息。 /dev:dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。 /etc :etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
49
/sbin :这个目录是用来存放系统管理员的系统管理程序。/home :如果建立一个用户,用户名是“jl”,那么在/home目录下就有一个对应的/home/jl路径,用来存放用户的主目录。
/lib :lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。 /mnt :这个目录在一般情况下也是空的。可以临时将别的文件系统挂在这个目录下。 /proc :可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。 /root :如果用户是以超级用户的身份登录的,这个就是超级用户的主目录。 /tmp :用来存放不同程序执行时产生的临时文件。 /usr :这是linux系统中占用硬盘空间最大的目录。
50
Ø-p目录名:建立所有不存在父目录的目录。
创建和删除目录的命令 创建目录 在Linux系统中建立新目录的命令是mkdir。该命令的语法格式如下: mkdir [-m模式] [-p目录名] 目录 命令中的参数说明如下: m模式:在建立目录时把按模式指定设置目录权限。该目录的权限分为:目录所有者的权限、组中其他人对目录的权限和系统中其他人对目录的权限。这三个权限分别用三个数字之和来表示:对目录的读权限是4、写权限是2、执行权限是1。 Ø-p目录名:建立所有不存在父目录的目录。 Ø 目录:要建立的目录。
51
2. 删除目录 rmdir 命令是用来删除目录的,一般情况下要删除的目录必须为空目录,如果所给的目录不为空,系统会报告错误。。该命令的语法格式如下: rmdir -p 目录列表 命令中的参数说明如下: Ø -p:在删除目录表指定的目录后,若父目录为 空,则rmdir也删除父目录。状态信息显示什么 被删除,什么没被删除。 Ø 目录列表:空格分隔的目录名列表。要删除的 目录必须为空。
52
2.3.3 改变工作目录和显示目录内容的命令 1. 显示当前目录 显示当前目录的命令是pwd命令,该命令使用的语 法格式如下: pwd
改变工作目录和显示目录内容的命令 1. 显示当前目录 显示当前目录的命令是pwd命令,该命令使用的语 法格式如下: pwd 执行pwd命令形式如下: #pwd 改变当前工作目录 改变当前工作目录在Linux系统中使用的是cd命令。 该命令使用的语法格式如下: cd [目录名] 命令中的参数说明如下: Ø 目录名:改变到所指定的目录名。如果没有指定目录,就返回到用户主目录(在HOME环境变量中指定)。
53
链接文件命令是ln命令。该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。
链接文件的命令 链接文件命令是ln命令。该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。 该命令的使用语法如下: ln [选项] 目标 [链接名] ln [选项] 目标 目录 链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。
54
在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。 如果给ln命令加上-s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。 例:$ ln - s lunch /home/xu用户为当前目录下的文件lunch创建了一个符号 链接/home/xu。
55
1. 改变文件或目录权限 2.3.5 改变文件或目录存取权限的命令
改变文件或目录存取权限的命令 1. 改变文件或目录权限 在Linux系统中,用户设定文件权限控制其他用户不能访问、修改。但在系统应用中,有时需要让其他用户使用某个原来其不能访问的文件或目录,这是就需要重新设置文件的权限,使用的命令是chmod命令。并不是谁都可改变文件和目录的访问权限,只有文件和目录的所有者才有权限修改其权限,另外超级用户可对所有文件或目录进行权限设置。chmod命令的使用语法格式如下: chmod [选项] 文件和目录列表 命令中的参数说明如下: Ø 选项的常用取值如表2-7所示 Ø 文件和目录列表:准备修改权限的文件和目录。
56
常用选项 说 明 -f -v -c 只有在文件的权限确实改变时才进行详细说明。 不打印权限不能改变的文件的错误信息。 详细说明权限的变化。
表2-7 chmod命令的常用选项 常用选项 说 明 -c 只有在文件的权限确实改变时才进行详细说明。 -f 不打印权限不能改变的文件的错误信息。 -v 详细说明权限的变化。 -R 递归改变目录及其内容的权限。
57
chmod命令支持两种文件权限设定的方法: (1)使用字符串设置权限
(2)使用八进制数设置权限 另外,文件和目录的权限还可用八进制数字模式来 表示。三个八进制数字分别代表ugo的权限。执行 权、读权和写权所对应的数值分别是1,2和4。 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=5。 2. 改变文件和目录的所有权 命令的格式如下: chown [选项] 用户 文件和目录列表
58
命令中的参数说明如下: Ø 命令中的选择说明如表2-8所示。 Ø 用户:可能是用户号或文件/etc/passwd中出现的用户名。 文件和目录列表:用于重新指定所有权的用空格分隔的文件和目录列表。 表2-8 chown命令的常用选项 常用选项 说 明 -c 只有在文件的权限确实改变时才进行详细说明。 -f 不打印权限不能改变的文件的错误信息。 -v 详细说明权限的变化。 -R 递归改变目录及其内容的权限。
59
2.4 文件压缩与联机帮助命令 2.4.1 文件压缩 1. gzip压缩文件
2.4 文件压缩与联机帮助命令 文件压缩 1. gzip压缩文件 gzip命令是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip命令的使用语法格式如下: gzip [选项] 压缩(解压缩)的文件名 gzip命令各选项的说明如表2-9所示。 表2-9 gzip命令的常用选项 常用选项 说明 -c 将输出写到标准输出上,并保留原有文件。 -d 将压缩文件解压。 -l 对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字等详细信息 -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。 -t 测试,检查压缩文件是否完整。 -v 对每一个压缩和解压的文件,显示文件名和压缩比。
60
2. 文件打包tar tar可以对文件和目录进行打包。利用tar,用户可以对某一特定文件进行打包(一般用作备份文件),也可以在包中改变文件,或者向包中加入新的文件。t tar命令的使用语法格式如下: tar [主选项+辅选项] 文件或者目录 表2-10 tar命令的主选项的常用选项 常用选项 说 明 -c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。 -x 从档案文件中释放文件。 -r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。 -t 列出档案文件的内容,查看已经备份了哪些文件。 -u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
61
unzip命令 可以用unzip命令,该命令用于解扩展名为“.zip”的压缩文件。该命令使用的语法格式如下:
表2-11 tar命令的辅助选项的常用选项 常用选项 说 明 f 使用档案文件或设备,这个选项通常是必选的。 K 保存已经存在的文件。例如我们把某个文件还原,在 还原的过程中,遇到相同的文件,不会进行覆盖。 m 在还原文件时,把所有文件的修改时间设定为现在。 M 创建多卷的档案文件,以便在几个磁盘中存放。 v 详细报告tar处理的文件信息。如无此选项,tar不报 告文件信息。 z 用gzip来压缩/解压缩文件 unzip命令 可以用unzip命令,该命令用于解扩展名为“.zip”的压缩文件。该命令使用的语法格式如下: unzip [选项] 压缩文件名.zip upzip命令各选项的说明如表2-12所示。
62
表2-12 upzip命令的常用选项 常用选项 说 明 -x 文件列表 解压缩文件,但不包括指定的file文件 -v 查看压缩文件目录,但不解压。 -t 测试文件有无损坏,但不解压。 -d 目录把压缩文件解到指定目录下。 -z 只显示压缩文件的注解。 -n 不覆盖已经存在的文件。 -o 覆盖已存在的文件且不要求用户确认。 -j 不重建文档的目录结构,把所有文件解压到同 一目录下。
63
联机帮助 1. 显示帮助手册 通常使用者只要在命令man后,输入想要获取的命令的名称(例如ls),man就会列出一份完整的说明,其内容包括命令语法、各选项的意义以及相关命令等。该命令的一般形式为: man [选项] 命令名称 表2-13 man命令的常用选项 常用选项 说 明 -S 根据章节显示,由于一个命令名称可能会有很多 类别,其类别说明如表2-14所示。 -f 只显示出命令的功能而不显示其中详细的说明文件 -w 不显示手册页,只显示将被格式化和显示的文件所在 位置。 -a 显示所有的手册页,而不是只显示第一个。 -E 在每行的末尾显示$符号
64
表2-13 man命令的章节常用选项 章节 说 明 1 一般使用者的命令 2 系统调用的命令 3 C语言函数库的命令 4 有关驱动程序和系统设备的解释 5 配置文件的解释 6 游戏程序的命令 7 其它的软件或是程序的命令和有关系统维护 的命令
65
2. 系统帮助文档 help命令用于查看所有Shell命令。用户可以通过该命令寻求Shell命令的用法,只需在所查找的命令后输入help命令,就可以看到所查命令的内容了。 例如:查看cd命令的使用方法。 $ cd --help 3. whereis命令 这个程序的主要功能是寻找一个命令所在的位置。例如,最常用的ls命令,它是在/bin这个目录下的。如果希望知道某个命令存在哪一个目录下,可以用whereis命令来查询。该命令的一般形式为: whereis [选项] 命令名。 说明:一般直接使用不加选项的whereis命令,但用户也可根据特殊需要选用它的一些选项。该命令中各选项的说明如表2-14所示。
66
例如:查找cd命令二进行文件在什么目录下。可使用如下命令:
表2-13 whereis命令的常用选项 章节 说 明 -b 只查找二进制文件 -m 查找主要文件 -s 查找来源 -u 查找不常用的记录文件 例如:查找cd命令二进行文件在什么目录下。可使用如下命令: $ whereis -b cd
Similar presentations