第三章Linux文件管理.docx
《第三章Linux文件管理.docx》由会员分享,可在线阅读,更多相关《第三章Linux文件管理.docx(27页珍藏版)》请在冰豆网上搜索。
第三章Linux文件管理
第三章Linux文件管理
教学内容:
⏹文件系统及Shell的基本概念
⏹文件及目录操作命令
⏹VI的使用
⏹软件包的管理
教学目标:
⏹了解文件系统的作用及常用shell
⏹熟悉shell的功能及执行命令的过程
⏹掌握文件、目录的操作命令、软件包的管理操作及VI的使用
教学重点:
⏹文件操作命令
⏹目录操作命令
⏹VI的使用
⏹RPM包的管理
教学难点:
⏹VI的三种模式
⏹Find命令
⏹编译安装
一。
文件系统及Shell的基本概念
1.文件系统的含义
文件系统是用来管理和组织保存在磁盘驱动器上数据的系统软件
2.Linux的文件系统
Linux系统采用虚拟文件系统技术(VFS)、结构采用倒立树型、VFS使Linux支持以下文件系统:
●EXT2:
二次扩展
●EXT3:
三次扩展
●SWAP:
交换文件系统
●FAT、FAT32
●NTFS(默认不支持,需要特定的模块)
●VFAT:
虚拟FAT
●SYSV:
Unix的文件系统
●HPFS:
OS/2的文件系统
●ISO9660:
光盘文件系统
●NFS:
网络文件系统
3.Linux中的文件分类
(1)普通文件
文本文件:
采用ASCII编码方式,可编辑,可修改
二进制:
不可查看,不可修改
(2)目录文件
存放的内容是目录中的文件名和子目录名
(3)设备文件(/dev)
用于用户访问物理设备所用,分为块设备和字符设备文件
(4)链接文件
软链接文件:
目标文件和链接文件可以跨越索引点,相当于文件的快捷方式
删除原文件,则符号链接文件失去意义
删除符号链接文件,不影响原文件
硬链接文件:
链接同一索引点中的文件,相当文件的副本
两个文件指向同一存储区,内容、长度相同
删除一个文件不影响,其它文件
(5)管道文件
FIFO缓存队列
4.Shell的主要功能
●命令行解释
⏹交互模式
⏹后台运行
●命令的多种执行顺序
●命令替换(``)
●I/O重定向(>,>>,<,<<)
●管道(|)
●通配符(*,?
[],[!
])
●系统环境维护
●Shell编程
●历史记录(history)
●自动补齐(TAB)
5.Shell的命令解释过程
二.文件操作命令
1.pwd
功能:
显示当前目录
实例:
◆#pwd
2.cd
功能:
改变当前目录
实例:
◆#cd/usr/sbin(进入/usr/sbin)
◆#cd../u1(进入父目录下面的u1目录)
◆#cd..(返回父目录)
◆#cd(进入用户主目录)
◆#cd~(进入用户主目录)
3.mkdir
功能:
建立目录
格式:
mkdir[参数]<目录名>
参数:
-m属性值:
指定目录的属性(r、w、x或4、2、1)
-p:
循环建立目录
实例:
◆#mkdird1(在当前目录下建立d1子目录)
◆#mkdir/d1/d2/d1/d3/d1/d4(同时在/d1目录中建立d2,d3,d4子目录)
◆#mkdir–p/d1/d2(在/d1目录中建立d2子目录,先建d1)
4.rmdir
功能:
删除空目录
格式:
rmdir[参数]<目录名>
参数:
-p:
循环删除
实例:
◆#rmdira1(删除当前目录下的a1子目录)
◆#rmdir/etc/a2(删除/etc下a2子目录)
◆#rmdir-p/a1/a2
5.ls
功能:
显示目录中的文件及子目录的名称
格式:
ls[参数][文件名]
参数:
-a:
显示所有文件(包括隐含文件,以“.”开头的文件为隐含文件)
-l:
以长格式显示文件名及目录名(显示文件的详细信息)
-F:
显示文件名,同时显示类型
-R:
显示目录中所有文件及子目录中的文件结构
-t:
按照修改时间排序显示
-s:
显示文件的大小,以block为单位
-S:
按照文件大小排序显示
-m:
分列显示文件名
实例:
◆#ls
◆#ls/bin/
◆#lsgrub.conf查找当目录下是否存在grub.conf
◆#ls-l
◆#ls--help显示ls的详细的帮助信息
◆#ls-a
6.cp
功能:
复制文件
格式:
cp[参数]<源路径><目标路径>
参数:
-f:
文件在目标路径中存在时,则直接覆盖
-i:
文件在目标路径中存在时,提示是否覆盖
-r:
复制指定中所有内容和结构
-b:
生成覆盖文件的备份
-a:
保持文件原有属性
实例:
◆#cp/etc/*/a1/把/etc下的所有文件复制到a1目录中
◆#cp/bin/ls/dir1/bin/ls文件到/目录取名为dir1
◆#cp-f/sbin/*/exe/直接将/sbin下的所有文件到/exe目录中
◆#cp-r/soft/abc/
7.rm
功能:
删除文件
格式:
rm[参数]<文件名>
参数:
-f:
不提示确认删除
-i:
提示确认删除
-r:
递归删除
实例:
◆#rm/m1/f1删除/m1目录下的f1
◆#rm–f/m1/*删除m1目录下的所有文件
◆#rm-rf/m1强制删除一个目录
8.mv
功能:
移动文件、重命名文件
格式:
mv [参数]<源路径><目标路径>
参数:
-i:
如果存在文件重名则提示是否覆盖
-b:
建立覆盖文件的备份
-f:
如果存在文件重名则直接覆盖
实例:
◆#mv/m1/f1/m2/移动/m1目录下f1文件到/m2目录下
◆#mvf1f2将当前目录下的f1文件改名f2
◆#mv-f/d1/*/d2/移动/d1中的所有文件到/d2目录中
9.file
功能:
检测文件类型
格式:
file[参数]<文件名>
参数:
-z:
检测压缩包文件
-L:
跟随符号链接
实例:
◆#file/etc/lilo.conf
◆#file-z1.gz
10.显示文本文件内容
(1) cat
格式:
cat[参数] <文件名>
参数:
-n显示行号
-b显示行号,但空白行不显示行号
实例:
◆#cat/etc/inittab
◆#cat-n/d1/f1/d1/f2>txt1
(2)more
格式:
more[参数] <文件名>
实例:
◆#ls|more将ls的显示结果输入到more中
◆#more/etc/rc.d/rc显示/etc/rc.d/rc文件的内容
说明:
可以用回车键向下换行,空格键向下换页
按Q键退出more
(3)less
实例:
◆#ls|less将ls的显示结果输入到less中
◆#less/var/named/localhost.zore
说明:
Pageup/PageDown键上下滚动、Q键退出
(4)head、tail
实例:
◆#head-20/a1显示a1中前20行
◆#tail-20/a1 显示中a1后20行
(5)cut
功能:
显示文件中指定数目的字符、字节或字段
格式:
#cut参数数字文件
参数:
-c以字符为单位
-b 以字节为单位
-f以字段为单位
-d指定分隔符
实例:
#cut-c3/etc/passwd
#cut-f1-6-d:
/etc/passwd
#cut-b-8/etc/passwd
11.搜索文件
(1)find
格式:
find查找路径查找条件
条件:
-name“文件名”:
查找指定名称文件
-lname“文件名”:
查找指定文件所有的接文件
-user用户名:
查找指定用户拥有的文件
-group组名:
查找指定组拥有的文件
-linksn:
查找拥有n个链接的文件
-mtimen:
查找在N天前被修改过的文件
-atimen:
查找在N天前被访问过的文件
-typed/f/b/l/p:
查找指定类型的文件
-sn[bcwkMG]:
查找指定大小的文件
-empty:
查找为空的文件
-permmode:
查找指定属性的文件
-execcommand{}\;查找指定的文件并执行指定的命令
-newer文件名查找比指定文件新的文件
实例:
◆#find/-name“named*”
◆#find/-userroot
◆#find./-typed-execchmod755{}\;
◆#find.–empty
◆#find.-perm644
◆#find.-neweroldfile!
-newernewfile
(2)whereis
功能:
查找二进制可执行、手册及源文件
实例:
#whereisumount
(3)locate
功能:
在资料库中查找指定的文件
格式:
#locate[参数] 文件名
参数:
-u/-U建立资料库,-u会由根目录开始,-U则可以指定开始位置
-e<目录1…>排除指定目录在寻找范围之外
-l<0/1>设置安全级别,1启用安全模式,0关闭安全模式
-f<文件类型> 在资料库中排除特定类型文件排除在外
-n至多显示n个输出
-r使用正规运算式做寻找的条件
-o指定资料库存的名称。
-d指定资料库的路径
实例:
#locate-u
#locatechdrv
#locate-n100a.out
(4)which
功能:
查找指定命令文件
格式:
#which文件名
实例:
#whichmount
12.grep
功能:
在文本文件中查找匹配的字符串
格式:
#grep[参数]“字符串”文件
参数:
-?
同时显示匹配行上下的?
行
-b在匹配行前面打印该行所在的块号
-c只打印匹配的行数,不显示匹配的内容
-fFile从文件中提取模板,空文件中包含0个模板,所以什么都不匹配
-h当搜索多个文件时,不显示匹配文件名前缀
-I忽略大小写差别
-q取消显示,只返回退出状态。
0则表示找到了匹配的行
-l打印匹配模板的文件清单
-L打印不匹配模板的文件清单
-n在匹配的行前面打印行号
-s不显示关于不存在或者无法读取文件的错误信息
-v反检索,只显示不匹配的行
-w如果被\<和\>引用,就把表达式做为一个单词搜索
正则表达式元字符:
^
锚定行的开始如:
'^grep'匹配所有以grep开头的行
$
锚定行的结束如:
'grep$'匹配所有以grep结尾的行
.
匹配一个非换行符的字符如:
'gr.p'匹配gr后接一个任意字符,然后是p
*
匹配零个或多个先前字符如:
'*grep'匹配所有一个或多个空格后紧跟grep的行。
.*一起用代表任意字符
[]
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep
[^]
匹配一个不在指定范围内的字符,如:
'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行
\(..\)
标记匹配字符,如'\(love\)',love被标记为1
\<
锚定单词的开始,如:
'\\>
锚定单词的结束,如:
'grep\>'匹配包含以grep结尾的单词的行
x\{m\}
重复字符x,m次,如:
'0\{5\}'匹配包含5个o的行
x\{m,\}
重复字符x,至少m次,如:
'o\{5,\}'匹配至少有5个o的行
x\{m,n\}
重复字符x,至少m次,不多于n次,如:
'o\{5,10\}'匹配5--10个o的行
\w
匹配文字和数字字符,也就是[A-Za-z0-9],如:
'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p
\W
\w的反置形式,匹配一个或多个非单词字符,如点号句号等
\b
单词锁定符,如:
'\bgrepb\'只匹配grep
+
匹配一个或多个先前的字符。
如:
'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
?
匹配零个或多个先前的字符。
如:
'gr?
p'匹配gr后跟一个或没有字符,然后是p的行。
a|b|c
匹配a或b或c。
如:
grep|sed匹配grep或sed
()
分组符号,如:
love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
x{m},x{m,},x{m,n}
作用同x\{m\},x\{m,\},x\{m,n\}
实例:
◆#ls-l|grep'^a'
通过管道过滤ls-l输出的内容,只显示以a开头的行。
◆#grep'test'd*
显示所有以d开头的文件中包含test的行。
◆#grep'test'aabbcc
显示在aa,bb,cc文件中匹配test的行。
◆#grep'[a-z]\{5\}'aa
显示所有包含每个字符串有5个连续小写字符的字符串的行。
◆#grep'w\(es\)t.*\1'aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。
如果用egrep或grep-E,就不用"\"号进行转义,直接写成'w(es)t.*\1'就可以了。
13.文件压缩操作
(1)gzip(*.gz)
功能:
对单个文件压缩
格式:
gzip[参数]压缩(解压缩)文件名
参数:
-d:
用于解压缩
-t:
检验压缩文件是否损坏
-l:
显示压缩文件压缩比例
-r:
递归式地查找指定目录并压缩其中的所有文件或者是解压缩
-num:
用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比)
实例:
◆#gzip/a1
◆#gzip-d/a1.gz
◆#gzip-dv/*.gz
◆#gzip-r/www
(2)zip
功能:
压缩文件
格式:
#zip[参数]文件或目录名
-d 从压缩文件内删除指定的文件。
-F 尝试修复已损坏的压缩文件。
-t 把压缩文件的日期设成指定的日期。
-u 更换较新的文件到压缩文件内。
-v 显示指令执行过程或显示版本信息。
-z 替压缩文件加上注释。
-<压缩效率> 压缩效率是一个介于1-9的数值。
-P口令利用指定口令加密压缩包
-m添加文件到ZIP压缩包中
实例:
#zipabc.zipf1f2f3
#zip-r–P123soft.zip/soft/
#zip-dsoft.zipsoft/wb
#zip–usoft.zipabc.log
#zip-msoft.zipinstall.log
(3)unzip
功能:
解压缩zip文件
格式:
#unzip [.zip文件]
-l 显示压缩文件内所包含的文件。
-P<密码>
-d<目录>指定文件解压缩后所要存储的目录。
实例:
#unzipf1.zip-d/f1
#unzip–lf1.zip
(4)tar(*.tar)
功能:
为文件或目录创建备份
格式:
tar[参数]文件/目录名
参数:
-t:
列出压缩包中的文件(*.tar)
-x:
解压缩(*.tar)
-z:
使用gzip的压缩文件
-c:
创建压缩包
-f:
指定文件名
-j:
使用bzip的压缩文件
-v:
显示操作信息
-C:
指定解压路径(默认路径为当前路径)
-r:
向压缩包添加文件
-u:
更新压缩包中的文件
-k:
还原文件过程中,遇到相同文件不覆盖
-m:
还原文件过程中,修改文件的时间为当前时间
实例:
◆#tar-cvfall.tar*.jpg
◆#tar-uvfall.tarlogo.gif
◆#tar-rfall.tar*.gif
◆#tar-cvfzetc.tar.gz/etc
◆#tar-xvfall.tar
◆#tar-xzvfetc.tar.gz-C/soft
注:
除以上的压缩工具外,还有compress(uncompress)、bzip2(unbzip2)
14.ln
功能:
建立链接文件
格式:
ln[参数]<源文件><链接文件>
参数:
-s:
建立软链接文件
-i:
提示是否覆盖目标文件
-f:
直接覆盖已存在的目标文件
实例:
◆#ln/etc/abc/abc
◆#ln-s/a1/etc/a1
15.touch
功能:
创建空文件或修改文件的时间
格式:
#touch[参数]文件名
参数:
-r修改文件的时间为指定文件的日期时间
-d指定文件日期时间为yymmdd
-t指定文件日期时间为yymmddhhmm
-c不创建指定的文件
实例:
#touch/f1/f2
#touch-r/f1/f2
#touch-d"6:
03pm05/06/2000"file
16.sort
功能:
对文本文件进行排序
格式:
sort[参数][文件]
参数:
-o文件名将排序结果保存到指定文件中
-u去除重复行
实例:
#sort/etc/passwd
#sort–o/etc/oldpass/etc/passwd
17.paste
功能:
合并文本文件
实例:
#pastef1f2>f3
18.cmp
功能:
比较两个文件是否有差异
格式:
#cmp[参数]文件1文件2
参数:
-l显示不同的字节位置
-s不显示不同之处,只显示返回状态
实例:
#cmpf1f2
#cmp-lf1f2
18.diff
功能:
显示文件的不同之处
格式:
#diff[参数] 文件1 文件2
参数:
-c显示全文,并标出不同之处
-u合并显示,并标出不同之处
实例:
#difff1f2
#diff-cf1f2
19.wc
功能:
统计文件中的行数、单词数、字符数
格式:
#wc[参数] 文件名
参数:
-c统计字符数
-w统计单词数
-l 统计行数
实例:
#wc/etc/passwd
#wc-c/etc/passwd
注:
1.命令自动补齐
按TAB键进行自动扩充
2.命令历史记录
Linux系统采用.history文件存放命令历史记录,以下是与历史记录相关的操作:
!
n:
调用正序第n个命令
!
!
:
调用上一条命令
history:
查看命令历史记录
history-c:
清除历史记录
history-w文件名:
保存历史记录到指定的文件中
3.命令重定向
“>”:
将命令输出结果保存到指定文件中,如果文件不存在先建立,存在就覆盖
“>>”:
将命令输出结果保存到指定文件中,如果文件不在存先建立,存在就覆盖
“<”:
把文件内容输入指定命令
“<<”:
将一对分隔之间的正文输入给指定命令
实例:
#ls>abc.txt
#ls/etc>>abc.txt
#wc
#wc<
4.命令管道(前一个命令的输出作为后一个命令的输入)
实例:
ls|more
5.命令替换(取指定命令的结果)
实例:
#cat`lsabc`
6.多个命令执行顺序
“;”:
顺序执行多个命令
“||”:
前后命令的执行存在“逻辑或”关系,只有||前面的命令执行失败后,它后面的命令才被执行
“&&”:
前后命令的执行存在“逻辑与”关系,只有&&前面的命令执行成功后,它后面的命令才被执
实例:
#ls/etc;cd/etc
#ls/d1/f1||touchf1
7.命令别名
实例:
#alias[别名=’命令’]
三.vi编辑器的使用
1.vi定义
Vi 是Unix/Linux系统中的一种文本编辑软件
2.vi三种模式
⏹命令模式:
删除字符、排版
⏹插入模式:
插入字符、删除、修改字符
⏹最后行模式:
通过命令操作vi软件
进入vi
3.vi的使用
(1)启动VI
#vi [参数][文件名]
(2)VI常用命令
⏹移动光标
●左移一个字符:
按h
●右移一个字符:
按l
●下移一行:
按j
●上移一行:
按k
●移至行首:
按^
●移至行尾:
按$
●移至文件顶部:
按H
●移至文件尾部:
按L
●移至文件中部:
按M
●前翻一屏:
按ctrl+f
●后翻一屏:
按ctrl+b
●前翻半屏:
按ctrl+d
●后翻半屏:
按ctrl+u
●移动光标到指定行:
输入:
数字
⏹插入文本
●在光标右边插入文本:
按a
●在一行的结尾处添加文本:
按A
●光标左边插入文本:
按i
●在行首插入文本:
按I
●在光标所在行的下一行插入新行:
按o
●在光标所在行的上一行插入新行:
按O
⏹撤消和重复操作
●撤消上一个操作:
按u
●撤消光标所在行的更改:
按U
●重复操作:
输入”.”
⏹删除文本
●删除当前字符:
按x
●删除一词:
按dw
●删除一行:
按dd(剪切)
●删除行的部分内容:
按D(删除光标右的内容)或按d0(删除光标左的内容)
●删除到文件的结尾:
按dG
●dL :
删除直到屏幕上最后一行的内容
●dH :
删除直到屏幕上第一行的内容
●dG :
删除直到工作缓存区结尾的内容(文尾)
●d1G :
删除直到工作缓存区开始的内容(文头
●:
n,md:
从第n行开始删除m行
⏹复制和粘贴
●复制一行内容:
按yy
●粘贴:
按p
⏹查找和替换命令
●/string:
向前查找字符串
●?
string:
向后查找字符串
●n:
继续上一次查找
●shift+n:
以与上一次相反的方向查找
●:
%s/字符串1/字符串2/g:
在全文中替换字符串1为字符串2
●n,ms/字符串1/字符串2/g:
替