目录和文件管理

目录和文件管理
1.1 Linux目录结构
Linux呈倒数结构,从/作为起点,一切文件或目录从/表示
Linux只有一个/,类比于Windows有多个/(一个盘一个/)
目录和文件管理

例:
如表示docs目录位置
/bin/mark/docs //就相当于Windows(C:\bin\mark\docs)类似
注:/作为起点,目录和文件之间以/分割
常见的Linux目录:
 /etc/ //存放所有配置文件
 /bin/ //存放所有用户都可执行的系统命令
 /sbin/ //存放只有管理员(root)或具有管理员权限用户才可执行的系统命令
 /mnt/ //默认为空,用于临时挂载
 /var/ //动态存放目录,存放动态文件;如日志、邮件等
 /dev/ //存放设备等文件;如硬盘、光盘等
 /home/ //普通用户家目录
 /root/ //管理员root的家目录
 /usr/ //用户自行安装软件存放目录
 /boot/ //存放内核、启动文件目录
注:Linux下一切皆文件,如键盘、鼠标等在Linux中都体现为一个文件,只是某些文件不能直接打开,需通过程序或软件调用去使用
1.2 查看及检索文件
1.cd命令详解
切换所在目录(相当于Windows中鼠标双击进入某个目录,直接查看目录下内容)
相对路径和绝对路径
 相对路径:从当前路径开始表示位置;./为当前目录,../代表上一级路径
 绝对路径:从“/”开始完整表示路径的位置
例:
表示"/etc/sysconfig/network-scripts/ifcfg-eth0"文件位置,当前位于"etc/"目录
相对路径 ./sysconfig/network-scripts/ifcfg-eth0或sysconfig/network-scripts/ifcfg-eth0
绝对路径 /etc/sysconfig/network-scripts/ifcfg-eth0
表示"/etc/hosts"文件位置,当前位于"/etc/sysconfig/network-scripts/"目录
相对路径 ../../hosts
绝对路径 /etc/hosts
注:一般相对比绝对使用更方便,可减少文件结构写法,当然按习惯使用即可
例:
pwd //查看当前所在目录
目录和文件管理

cd /etc/                        //从当前路径切换到/etc/目录

目录和文件管理

cd 或 cd ~                   //进入当前登录用户家目录

目录和文件管理

cd -                            //进入上次切换目录

目录和文件管理

2.cat命令详解
显示文件内容
cat [选项] 文件名 ... //可同时查看多个文件内容
选项:
 -n:显示行号
 -A:显示文件中所有的特殊符号;如"$"结束符等
例:
cat /etc/hosts //查看/etc/hosts文件内容
目录和文件管理

cat -n /etc/hosts                   //查看/etc/hosts文件内容并显示行号

目录和文件管理
cat -A /etc/hosts //查看/etc/hosts文件内容及其所有特殊符号
目录和文件管理
3.more命令详解
全屏方式分页显示文件内容
more [选项] 文件名 ... //可同时分页查看多个文件
快捷键:
 Enter键:向下一行
 空格键:向下翻一页
 q键:退出
例:
more /root/anaconda-ks.cfg
目录和文件管理

注:more有一个缺点,只能往下翻,不能往上翻

4.less命令详解
与more命令相同,但支持往上往下翻页,并支持搜索功能
less [选项] 文件名 ...
快捷键:
 Page UP键:往上翻页
 Page Down键:往下翻页
 /文字:文件中查找指定文件
 n:跳转到文件中搜索文字中的下一个地址
 N:跳转到文件中搜索文件中的上一个地址
 q键:退出
例:
less /root/anaconda-ks.cfg
目录和文件管理
5.head命令详解
查看文件开头的一部分内容(默认为10行)
head -n 文件名 ...
例:
head /root/anaconda-ks.cfg //查看文件开头10行
目录和文件管理
head -3 /root/anaconda-ks.cfg //查看文件开头3行
目录和文件管理
6.tail命令详解
查看文件结尾的一部分内容(默认为10行)
tail -n 文件名 ...
选项:
 -f:动态更新查看文件尾部,可实时监控文件变化(Ctrl+C键终止),一般用于日志
例:
tail /root/anaconda-ks.cfg //默认查看文件结尾10行

tail -3 /root/anaconda-ks.cfg           //查看文件结尾3行

目录和文件管理
tail -f /var/log/messages //动态查看公共消息日志文件
目录和文件管理
7.wc命令详解
统计文件中的单词数量(Word Count)、文件大小、文件行数等信息
wc [选项] 文件
选项:
 -l:统计行数
 -w:统计单词个数,以空格区分
 -c:统计字节数
例:
wc /etc/hosts //统计/etc/hosts的情况
目录和文件管理
注:当使用wc命令时,不跟任何选项,默认使用wc -lwc
wc -l /etc/hosts //统计/etc/hosts文件的行数
目录和文件管理
实际应用:
统计当前Linux系统中拥有的用户帐号数量
wc -l /etc/passwd //统计/etc/passwd文件行数,得出系统用户数
目录和文件管理
统计某个后缀结尾的文件数量
find /etc -name "*.conf" | wc -l //统计.conf结尾的文件数量
目录和文件管理
8.grep命令详解
在文件中查找并显示包含指定字符串的行
grep [选项] ... 查找条件 目标文件
选项:
 -i:查找时忽略大小写
 -v:反转查找,输出与条件不相符的行
查找条件:
 需查找的字符串应以双引号("")括起来
 "^..."表示以...开头,"...$"表示以...结尾
 "^$"表示空行
例:
grep "f" /etc/inittab //过滤显示文件中包含f的行(仅匹配小写字符f)
目录和文件管理
grep -i "f" /etc/inittab //过滤显示文件中包含f的行(忽略大小写,大小写f)
目录和文件管理
grep "f$" /etc/inittab //过滤显示文件中以f结尾的行
目录和文件管理
grep "^f" /etc/inittab //过滤显示文件中以f开头的行
目录和文件管理
grep -v "^#" /etc/inittab //过滤显示文件中除#开头的其余行
目录和文件管理
grep -v "^$" /etc/inittab //过滤显示文件中除空行外的其余行
目录和文件管理
grep -v "^#" /etc/inittab | grep -v "^$" //显示文件中有效行(不显示空行和#开头行)
目录和文件管理
1.3 备份及恢复文档
1.gzip与gunzip
使用gzip压缩算法压缩文件、解开压缩文件(可减少文件占用,但不是绝对的)
gzip [-9] 文件名... //压缩
gzip -d .gz格式的压缩文件 或 gunzip .gz格式的压缩文件 //解压缩
选项:
 -9:高压缩比,压缩出的文件较小(从0~9,数字越大,压缩比越高,默认为6)
 -d:用于解压缩文件
例:
dd if=/dev/zero of=/root/test bs=100M count=1 //生成大小为100M的测试文件
目录和文件管理
gzip /root/test //使用gzip方式压缩文件,原文件丢失变为test.gz
目录和文件管理
gzip -d /root/test.gz //解压test.gz文件到原目录下
目录和文件管理
注:只可解压使用gzip方式压缩的文件,后缀为.gz
gunzip /root/test.gz //使用gunzip命令解压,与gzip -d效果一样
目录和文件管理
注:只可解压使用gzip方式压缩的文件,后缀为.gz
2.bzip2与bunzip2
使用bzip2压缩算法压缩文件、解开压缩文件(可减少文件占用,但不是绝对的)
bzip2 [-9] 文件名... //压缩
bzip2 -d .bz2格式的压缩文件 或 bunzip2 .bz2格式的压缩文件 //解压缩
选项:
 -9:高压缩比,压缩出的文件较小(从0~9,数字越大,压缩比越高,默认为6)
 -d:用于解压缩文件
例:
bzip2 /root/test //使用bzip2方式压缩文件,原文件丢失变为test.bz2
目录和文件管理
bzip2 -d /root/test.bz2 //解压test.bz2文件到原目录下
目录和文件管理
bunzip2 /root/test.bz2 //使用bunzip2命令解压,与bzip2 -d效果一样

注:只可解压使用bzip2方式压缩的文件,后缀为.bz2

3.xz
使用xz压缩算法压缩文件、解开压缩文件(可减少文件占用,但不是绝对的)
xz [-9] 文件名... //压缩
xz -d .xz格式的压缩文件 //解压缩
选项:
 -9:高压缩比,压缩出的文件较小(从0~9,数字越大,压缩比越高,默认为6)
 -d:用于解压缩文件
例:
xz /root/test //使用xz方式压缩文件,原文件丢失变为test.xz
xz -d /root/test.xz //解压test.xz文件到原目录下
目录和文件管理
注:只可解压使用xz方式压缩的文件,后缀为.xz
xz -9 /root/test ///高压缩比使用xz压缩文件,默认为6
目录和文件管理
xz -d /root/test.xz //解压test.xz文件到原目录下
目录和文件管理
注:只可解压使用xz方式压缩的文件,后缀为.xz
注:因为是测试用空文档,所以以上压缩比并不是太准确。以下是官方给出的三种压缩方式正确的压缩比:
gzip与gunzip官方压缩比测试
Preset Compression Decompression
-0 6 MiB 1 MiB
-1 6 MiB 1 MiB
-2 10 MiB 1 MiB
-3 20 MiB 2 MiB
-4 30 MiB 3 MiB
-5 60 MiB 6 MiB
-6 100 MiB 10 MiB
-7 200 MiB 20 MiB
-8 400 MiB 40 MiB
-9 800 MiB 80 MiB
bzip2与bunzip2

官方压缩比测试
Preset Compression Decompression
-0 6 MiB 1 MiB
-1 6 MiB 1 MiB
-2 10 MiB 1 MiB
-3 20 MiB 2 MiB
-4 30 MiB 3 MiB
-5 60 MiB 6 MiB
-6 100 MiB 10 MiB
-7 200 MiB 20 MiB
-8 400 MiB 40 MiB
-9 800 MiB 80 MiB
Xz
官方压缩比测试
Preset Compression Decompression
-0 6 MiB 1 MiB
-1 6 MiB 1 MiB
-2 10 MiB 1 MiB
-3 20 MiB 2 MiB
-4 30 MiB 3 MiB
-5 60 MiB 6 MiB
-6 100 MiB 10 MiB
-7 200 MiB 20 MiB
-8 400 MiB 40 MiB
-9 800 MiB 80 MiB

扫描二维码关注公众号,回复: 1569835 查看本文章

4.三种压缩方式对比
 gzip对于要在Unix/Linux系统下使用的文件是最好的;虽然bzip2已经普及,但gzip仍然会长期使用存在
 bzip2使用了和gzip不同的算法,并且会产生比gzip更小的文件,但需花费更长的时间进行压缩
 xz提供最好的压缩率,但也会花费相当长的时间。比gzip、bzip2新,但有些系统有可能未安装(可以自行安装)
总结:xz > bzip2 > gzip
5.tar
制作归档文件、释放归档文件;将多个文件或文件夹归档为一个文件
tar [选项] ... 归档文件名 源文件或目录 //创建归档文件
tar [选项] ... 归档文件名 [-C 目标目录] //解压归档文件
选项:
 -z:调用gzip程序进行压缩或解压
 -j:调用bzip2程序进行压缩或解压
 -J:调用xz程序进行压缩或程序
 -c:创建.tar格式的包文件
 -x:解压.tar格式的包文件
 -t:列表查看包内文件
 -v:输出详细信息
 -f:使用归档文件
 -p:打包时保留原始文件及目录的权限
 -C:解包时指定释放的目标文件夹
 -P:归档时以绝对路径归档(可解决"tar: Removing leading '/' from member names"问题)
注:使用tar归档,源文件或文件夹不会丢失,依然存在(类似Windows的压缩工具)
例:
创建归档文件
tar -zcvf /root/ceshi.tar.gz /boot/ /bin/
//将/boot/和/bin/目录使用gzip方式归档为一个文件,放到/root/下取名为ceshi.tar.gz
目录和文件管理
目录和文件管理
tar -jcvf /root/ceshi.tar.bz2 /boot/ /bin/

//将/boot/和/bin/目录使用bzip2方式归档为一个文件,放到/root/下取名为ceshi.tar.bz2
目录和文件管理
tar -Jcvf /root/ceshi.tar.xz /boot/ /bin/

//将/boot/和/bin/目录使用xz方式归档为一个文件,放到/root/下取名为ceshi.tar.xz
目录和文件管理
ls -lh /root/ceshi*
//列表查看/root/目录下以ceshi开头的文件
目录和文件管理
查看归档文件(查看归档文件内容,不做解压操作)
tar -ztvf /root/ceshi.tar.gz //查看使用gzip方式压缩的ceshi.tar.gz文件
目录和文件管理
tar -jtvf /root/ceshi.tar.bz2 //查看使用bzip2方式压缩的ceshi.tar.bz2文件
目录和文件管理
tar -Jtvf /root/ceshi.tar.xz //查看使用xz方式压缩的ceshi.tar.xz文件
目录和文件管理
注:tar归档文件查看时,只能使用对应压缩方式查看;如使用gzip方式压缩(-z),查看或解压时必须使用gzip方式查看或解压(-z),否则会出现
"bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
tar: Error is not recoverable: exiting now"等报错
解压归档文件(如解压时不使用-C选项,则解压到原归档文件目录)
tar -zxvf /root/ceshi.tar.gz -C /tmp/
//将使用gzip方式压缩的ceshi.tar.gz归档文件解压到/tmp/目录下
目录和文件管理
tar -jxvf /root/ceshi.tar.bz2 -C /tmp
//将使用bzip2方式压缩的ceshi.tar.bz2归档文件解压到/tmp/目录下
目录和文件管理
tar -Jxvf /root/ceshi.tar.xz -C /tmp
//将使用xz方式压缩的ceshi.tar.xz归档文件解压到/tmp/目录下
目录和文件管理
注:tar解压时一样,采用对应压缩方式的,必须采用对应压缩方式解压;并且在使用"-C"选项时,目标必须为一个目录,而且必须存在

猜你喜欢

转载自blog.51cto.com/13770300/2128464