正文处理命令及tar命令
cat进行文件的纵向合并
[dag@dog babydog]$ cat > letters.upper
A
B
C
D
E
F
G
H
[dag@dog babydog]$
[dag@dog babydog]$ cat > letters
A
b
B
^Z
[1]+ Stopped cat > letters
[dag@dog babydog]$ LS
bash: LS: command not found
[dag@dog babydog]$ ls
baby baby.kg cal2038 dog_wolf.baby lists
baby2 baby.sex cal3009 letters wolf.baby
baby.age cal2012 dog.baby letters.upper wolf_dog.baby
[dag@dog babydog]$ rm letters
[dag@dog babydog]$ ls
baby baby.age baby.sex cal2038 dog.baby letters.upper wolf.baby
baby2 baby.kg cal2012 cal3009 dog_wolf.baby lists wolf_dog.baby
[dag@dog babydog]$ cat > letters
A
b
C
D
E
f
G
[dag@dog babydog]$ tail letters.upper letters
==> letters.upper <==
A
B
C
D
E
F
G
H
==> letters <==
A
b
C
D
E
f
G
利用diff比较两个文件
diff ~ 比较两个文件中的内容、该命令以如下方式显示命令的结果:
<表示第1个文件中的数据行
>表示第2个文件中的数据行
[dag@dog babydog]$ diff letters.upper letters
2c2
< B
---
> b
6c6
< F
---
> f
8d7
< H
\ No newline at end of file
利用sdiff比较两个文件
sdiff ~与diff功能相同,但是该命令以如下方式显示命令的结果:
|左侧表示第1个文件中的数据行
|右侧表示第2个文件中的数据行
<表示第1个文件中的数据行
>表示第2个文件中的数据行
[dag@dog babydog]$ sdiff letters.upper letters
A A
B | b
C C
D D
E E
F | f
G G
H <[dag@dog babydog]$
[dag@dog babydog]$ sdiff letters letters.upper
A A
b | B
C C
D D
E E
f | F
G G
> H[dag@dog babydog]$
利用look检查单词的拼法
Linux上的另一个拼法检查命令是look命令
look的语法是:look空一格后加要检查的单词
使用look检查progra这个单词的拼法
[dag@dog babydog]$ cd -
/home/dag
[dag@dog ~]$ more /usr/share/dict/words
1080
10-point
10th
11-point
12-point
16-point
18-point
1st
2
20-point
2,4,5-t
2,4-d
2D
2nd
30-30
3-D
3-d
3D
3M
3rd
48-point
4-D
4GL
4H
4th
5-point
5-T
5th
6-point
6th
7-point
7th
8-point
8th
--More--(0%)
[2]+ Stopped more /usr/share/dict/words
[dag@dog ~]$ wc -l /usr/share/dict/words
479829 /usr/share/dict/words
[dag@dog ~]$ look progra
prograde
program
programable
programatic
programed
programer
programers
programing
programist
programistic
programma
programmabilities
programmability
programmable
programmar
programmata
programmatic
programmatically
programmatist
programme
programmed
programmer
programmers
programmes
programming
programmist
programmng
programs
progravid
[dag@dog ~]$ look discovety
[dag@dog ~]$ look disove
[dag@dog ~]$ discove
bash: discove: command not found
[dag@dog ~]$ look discove
discovenant
discover
discoverability
discoverable
discoverably
discovered
Discoverer
discoverer
discoverers
discoveries
discovering
discovers
discovert
discoverture
discovery
[dag@dog ~]$ clear
expand将制表键转换成空格
expand ~ 将正文文件中的Tab键转换成空格键
expand命令输出默认显示在标准输出上
使用重定向符号可将该命令输出存入一个文件
expand emp.data > emp.spaces
使用带有-A选项的cat命令列出文件中的Tab键
制表键Tab ~ ^I
使用fmt重新格式化正文
fmt ~ 重新格式化正文
段落宽度使用wn选项定义
w为width的第1个字母、n为字符的数目
Linux系统默认宽度为75个字符
每个单词之间用一个空格分隔
每个句子之间用两个空格分隔
将输入中的空行当作段落分隔符看待
句子(段落)是以“.”作为结束符
fmt -u -w48 news > news.fmt
使用pr重新格式化正文
pr ~ 按照打印机格式格式化正文文件中的内容
pr默认输出为每页66行、56行为正文幷包括表头
默认使用文件名作为列表头、并在每页的页首部分显示
显示在每页的页首部分的内容还有页码和时间
其时间是文件的修改时间(Modified)
pr /usr/share/dict/words | more
归档文件和归档技术
Linux操作系统的标准归档命令是tar
tar命令的功能是将多个文件放在一起存放到一个磁带或磁盘归档文件中、并且将来可以根据需要只还原归档文件中的某些指定的文件
tar命令默认不进行文件的压缩
tar命令本身支持压缩和解压缩算法
内部的压缩和解压缩算法是gzip和gunzip或bzip2和bunzip2
tar [选项]… [归档文件名]…
归档文件名要使用相对路径
在tar命令中必须至少使用如下选项中的一个:
c:创建一个新的tar文件。
t:列出tar文件中内容的目录。
x:从tar文件中抽取文件。
f:指定归档文件或磁带
tar命令中还有以下3个可选的选项:
v:显示所打包的文件的详细信息
z:使用gzip压缩算法来压缩打包后的文件
j:使用bzip2压缩算法来压缩打包后的文件
在tar中所有选项之前都不能使用前导的-
使用tar将arch目录打包成arch.tar的归档文件
[dog@dog ~]$ tar cvf arch.tar arch
arch/
arch/learning.txt
arch/name.txt
……
检查arch.tar中到底有哪些文件和目录
tar tf arch.tar
使用tar恢复arch目录以及其中全部内容
tar xvf arch.tar
[dag@dog ~]$ tar cvf arch.tar arch
arch/
arch/game.txt
arch/flowers.JPG
arch/learning.txt
arch/dog.JPG
[dag@dog ~]$ ls -lh *.tar
-rw-rw-r--. 1 dag dag 5.9M 5月 20 00:04 arch.tar
[dag@dog ~]$ tar tf arch.tar
arch/
arch/game.txt
arch/flowers.JPG
arch/learning.txt
arch/dog.JPG
[dag@dog ~]$ tar tvf arch.tar
drwxrwxr-x dag/dag 0 2020-05-20 00:01 arch/
-rw-r--r-- dag/dag 1950 2020-05-20 00:01 arch/game.txt
-rw-r--r-- dag/dag 1433498 2020-05-20 00:00 arch/flowers.JPG
-rw-r--r-- dag/dag 4720 2020-05-20 00:01 arch/learning.txt
-rw-r--r-- dag/dag 4724150 2020-05-20 00:00 arch/dog.JPG
[dag@dog ~]$ rm -r arch
[dag@dog ~]$ ls -l ar*
-rw-rw-r--. 1 dag dag 6174720 5月 20 00:04 arch.tar
[dag@dog ~]$ tar xvf arch.tar
arch/
arch/game.txt
arch/flowers.JPG
arch/learning.txt
arch/dog.JPG
[dag@dog ~]$ ls -l ar*
-rw-rw-r--. 1 dag dag 6174720 5月 20 00:04 arch.tar
arch:
总用量 6028
-rw-r--r--. 1 dag dag 4724150 5月 20 00:00 dog.JPG
-rw-r--r--. 1 dag dag 1433498 5月 20 00:00 flowers.JPG
-rw-r--r--. 1 dag dag 1950 5月 20 00:01 game.txt
-rw-r--r--. 1 dag dag 4720 5月 20 00:01 learning.txt
文件的压缩和解压缩
在Linux系统中有两组常用的压缩命令
第1组压缩命令是gzip和gunzip
第2组压缩命令是bzip2和bunzip2
gzip对正文文件的压缩比一般超过75%
通常bzip2对归档文件的压缩比要优于gzip
比较新的Linux版本才支持bzip2和bunzip2
gzip命令
gzip [选项] [压缩文件名…]
gzip命令的几个经常使用的选项如下:
-v:在屏幕上显示出文件的压缩比
-c:保留原文件并新创建一个压缩文件
使用gzip命令压缩learning.txt文件
gzip l*
使用gunzip解压缩learning.txt.gz文件
gunzip l*
[dag@dog ~]$ cd arch
[dag@dog arch]$ ls -lh l*
-rw-r--r--. 1 dag dag 4.7K 5月 20 00:01 learning.txt
[dag@dog arch]$ gzip l*
[dag@dog arch]$ gunzip l*
[dag@dog arch]$ ls -lh l*
-rw-r--r--. 1 dag dag 4.7K 5月 20 00:01 learning.txt
[dag@dog arch]$ gzip -vc l* > learning.gz
learning.txt: 59.3%
[dag@dog arch]$ ls -lh l*
-rw-rw-r--. 1 dag dag 2.0K 5月 20 00:12 learning.gz
-rw-r--r--. 1 dag dag 4.7K 5月 20 00:01 learning.txt
[dag@dog arch]$ cd
[dag@dog ~]$ pwd
/home/dag
[dag@dog ~]$ gzip arch > arch.gz
gzip: arch is a directory -- ignored
[dag@dog ~]$ cd arch
[dag@dog arch]$ ls -lh *JPG
-rw-r--r--. 1 dag dag 4.6M 5月 20 00:00 dog.JPG
-rw-r--r--. 1 dag dag 1.4M 5月 20 00:00 flowers.JPG
[dag@dog arch]$ gzip -cv dog* >dog.JPG.gz
dog.JPG: 0.8%
[dag@dog arch]$ ls -lh dog*
-rw-r--r--. 1 dag dag 4.6M 5月 20 00:00 dog.JPG
-rw-rw-r--. 1 dag dag 4.5M 5月 20 00:14 dog.JPG.gz
[dag@dog arch]$ clear
[dag@dog arch]$ ls -l
总用量 10612
-rw-r--r--. 1 dag dag 4724150 5月 20 00:00 dog.JPG
-rw-rw-r--. 1 dag dag 4686311 5月 20 00:14 dog.JPG.gz
-rw-r--r--. 1 dag dag 1433498 5月 20 00:00 flowers.JPG
-rw-r--r--. 1 dag dag 1950 5月 20 00:01 game.txt
-rw-rw-r--. 1 dag dag 1959 5月 20 00:12 learning.gz
-rw-r--r--. 1 dag dag 4720 5月 20 00:01 learning.txt
在使用tar时压缩和解压缩
在tar中,如下两个参数决定如何压缩打包好的文件:
z:使用gzip技术压缩打包好的文件
j:使用bzip2技术压缩打包好的文件
打包并使用gzip技术压缩打包后的文件:
tar cvfz arch.tar.gz arch
打包并使用bzip2技术压缩打包后的文件
tar cvfj arch.tar.bz2 arch
[dag@dog arch]$ rm *.gz
[dag@dog arch]$ ls-l
bash: ls-l: command not found
[dag@dog arch]$ ls -l
总用量 6028
-rw-r--r--. 1 dag dag 4724150 5月 20 00:00 dog.JPG
-rw-r--r--. 1 dag dag 1433498 5月 20 00:00 flowers.JPG
-rw-r--r--. 1 dag dag 1950 5月 20 00:01 game.txt
-rw-r--r--. 1 dag dag 4720 5月 20 00:01 learning.txt
[dag@dog arch]$ cd
[dag@dog ~]$ tar cvfz arch.tar.gz arch
arch/
arch/game.txt
arch/flowers.JPG
arch/learning.txt
arch/dog.JPG
[dag@dog ~]$ tar cvfj arch.tar.bz2 arch
arch/
arch/game.txt
arch/flowers.JPG
arch/learning.txt
arch/dog.JPG
[dag@dog ~]$ ls -l *tar*
-rw-rw-r--. 1 dag dag 6174720 5月 20 00:04 arch.tar
-rw-rw-r--. 1 dag dag 6104748 5月 20 00:17 arch.tar.bz2
-rw-rw-r--. 1 dag dag 6107364 5月 20 00:16 arch.tar.gz
[dag@dog ~]$ su -
密码:
[root@dog ~]# ls -lh arch
ls: 无法访问arch: 没有那个文件或目录
[root@dog ~]# cd ~dog
-bash: cd: ~dog: 没有那个文件或目录
[root@dog ~]# cd ~dag
[root@dog dag]# ls -lh arch
总用量 5.9M
-rw-r--r--. 1 dag dag 4.6M 5月 20 00:00 dog.JPG
-rw-r--r--. 1 dag dag 1.4M 5月 20 00:00 flowers.JPG
-rw-r--r--. 1 dag dag 2.0K 5月 20 00:01 game.txt
-rw-r--r--. 1 dag dag 4.7K 5月 20 00:01 learning.txt
[root@dog dag]# fdformat .dev/fd0u1440