正文處理命令及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