Linux查看文件內容和壓縮文件命令
- 2022 年 9 月 21 日
- 筆記
- Linux查看文件內容和壓縮文件命令
查看文件內容
一些重要的目錄:
/usr/share/ 幫助文檔、說明文檔
/var/log/ 日誌
/var/run/ 運行中程式
/var/tmp 臨時文件
- 根(/)相當於一個入口,文件的總入口,也是唯一入口
- bin (sbin) 二進位文件,可執行文件,也可能存在別處,默認使用較多所有用戶軟連接文件 —————-命令
- sbin 管理員可使用的二進位文件————-命令ls cd useradd
- boot 系統內核、啟動文件
- dev 硬體文件(黃色)
- etc 配置文件等同於windows 註冊表,一般都是文本文件
- usr應用程式和作業系統相關的文件 bin sbin
- var/log日誌文件,數據變化的
- proc 主要保存系統的內核、進程、外部設備狀態和網路狀態等
- mnt 默認掛載點
- opt 第三方應用程式安裝所在目錄程式
Cat(查看文件內容)
格式:
cat [選項] 文件名
選項:
選項 | 效果 |
-n | 顯示行號包括空行 |
-b | 跳過空白行編號 |
-s | 將所有的連續的多個空行替換為一個空行(壓縮成一個空行) |
-A | 顯示隱藏字元 |
示例:
Cat 查看文件內容
把 textfile1 的文檔內容加上行號後輸入 textfile2 這個文檔里:
cat –n textfile1 > textfile2
把 textfile1 和 textfile2 的文檔內容加上行號(空白行不加)之後將內容附加到 textfile3 文檔里:
cat –b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文檔內容:
cat /dev/null > /etc/test.txt
cat 也可以用來製作鏡像文件。例如要製作軟盤的鏡像文件,將軟盤放好後輸入:
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 寫到軟盤,輸入:
cat IMG_FILE > /dev/fd0
cat加選項
-n
[root@localhost jlx]#cat -n 1.txt //顯示行號包括空行
2 222
3
4
5 222
6
7
8 333
-b
[root@localhost jlx]#cat -b 1.txt //跳過空白行編號
2 222
3 333
4 444
-s
[root@localhost jlx]#cat -s 1.txt //將所有的連續的多個空行替換為一個空行
222
333
444
-A
[root@localhost jlx]#cat -A 1.txt //顯示隱藏字元
222$
$
$
333$
$
$
444$
more(分頁查看文件內容)
格式:
more 文件名
操作說明:
指令 | 功能 |
空格 | 向下 一頁 |
回車 | 向下一行 |
b | 向上 |
q | 退出 |
語法
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
實例
逐頁顯示 testfile 文檔內容,如有連續兩行以上空白行則以一行空白行顯示。
more –s testfile
從第 20 行開始顯示 testfile 之文檔內容。
more +20 testfile
less(分頁查看文件內容)
格式:
less 文件名
操作說明:
指令 | 功能 |
空格 | 向下 一頁 |
回車 | 向下一行 |
b | 向上 |
q | 退出 |
/ | 查找內容 |
n | 向下查找 |
N | 向上查找 |
實例
1、查看文件
less log2013.log
2、ps查看進程資訊並通過less分頁顯示
ps –ef |less
3、查看命令歷史使用記錄並通過less分頁顯示
[root@localhost test]# history | less
22 scp –r tomcat6.0.32 root@192.168.120.203:/opt/soft
23 cd ..
24 scp –r web root@192.168.120.203:/opt/
25 cd soft
26 ls
……省略……
4、瀏覽多個文件
less log2013.log log2014.log
說明:
輸入 :n後,切換到 log2014.log
輸入 :p 後,切換到log2013.log
附加備註
1.全螢幕導航
-
ctrl + F – 向前移動一屏
-
ctrl + B – 向後移動一屏
-
ctrl + D – 向前移動半屏
-
ctrl + U – 向後移動半屏
單行導航
-
j – 下一行
-
k – 上一行
3.其它導航
-
G – 移動到最後一行
-
g – 移動到第一行
-
q / ZZ – 退出 less 命令
4.其它有用的命令
-
v – 使用配置的編輯器編輯當前文件
-
h – 顯示 less 的幫助文檔
-
&pattern – 僅顯示匹配模式的行,而不是整個文件
5.標記導航
當使用 less 查看大文件時,可以在任何一個位置作標記,可以通過命令導航到標有特定標記的文本位置:
-
ma – 使用 a 標記文本的當前位置
-
‘a – 導航到標記 a 處
head/tail(查看頭部和尾部內容)
格式:
head -n <行數> 文件名 (不加行數默認開頭十行)
tail -n<行數> 文件名 (不加行數默認結尾十行)
tail -f 文件名:實時跟蹤最後十行
實例
要顯示 runoob_notes.log 文件的開頭 10 行,請輸入以下命令(默認帶參賽 -n 10):
head runoob_notes.log
以上命令等價於:
head –n 10 runoon_notes.log
顯示 notes.log 文件的開頭 5 行,請輸入以下命令:
head –n 5 runoob_notes.log
顯示文件前 20 個位元組:
head –c 20 runoob_notes.log
【「 | 」管道符 將前面命令的結果 交給後面的命令執行】 【tips:不是所有的命令都支援管道符】
拓展:
通過組合完成要求: 我只要第二行
[root@localhost jlx]#cat 2.txt|head -n 2|tail -n 1
2
wc(統計文件中的資訊)
格式:
wc [選項] 目標文件
不加選項,則默認統計行數、單詞個數、位元組數三者
-
-l:統計行數
-
-w:統計單詞個數
-
-c:統計位元組數
實例
在默認的情況下,wc將計算指定文件的行數、字數,以及位元組數。使用的命令為:
wc testfile
先查看testfile文件的內容,可以看到:
$ cat testfile
Linux networks are becoming more and more common, but scurity is often an overlooked
issue. Unfortunately, in today』s environment all networks are potential hacker targets,
fro0m tp–secret military research networks to small home LANs.
Linux Network Securty focuses on securing
Linux in a networked environment, where the
security of the entire network needs to be considered rather than just isolated machines.
It uses a mix of theory and practicl techniques to teach administrators how to install and
use security applications, as well as how the applcations work and why they are necesary.
使用 wc統計,結果如下:
$ wc testfile # testfile文件的統計資訊
3 92 598 testfile # testfile文件的行數為3、單詞數92、位元組數598
其中,3 個數字分別表示testfile文件的行數、單詞數,以及該文件的位元組數。
如果想同時統計多個文件的資訊,例如同時統計testfile、testfile_1、testfile_2,可使用如下命令:
wc testfile testfile_1 testfile_2 #統計三個文件的資訊
輸出結果如下:
$ wc testfile testfile_1 testfile_2 #統計三個文件的資訊
3 92 598 testfile #第一個文件行數為3、單詞數92、位元組數598
9 18 78 testfile_1 #第二個文件的行數為9、單詞數18、位元組數78
3 6 32 testfile_2 #第三個文件的行數為3、單詞數6、位元組數32
15 116 708 總用量 #三個文件總共的行數為15、單詞數116、位元組數708
grep(66檢索、過濾文件內容)
格式:
grep [選項] 查找條件 目標文件
選項:
選項 | 作用 |
-i | 查找時忽略大小寫 |
-v | 反向查找,輸出與查找條件不相符的行 |
-o | 只顯示匹配項 |
-r | 在目錄內遞歸查找 |
-n | 顯示匹配行及行號 |
語法
grep [-abcEFGhHilLnqrsvVwxy][-A<顯示行數>][-B<顯示列數>][-C<顯示列數>][-d<進行動作>][-e<範本樣式>][-f<範本文件>][–help][範本樣式][文件或目錄…]
實例
1、在當前目錄中,查找後綴有 file 字樣的文件中包含 test 字元串的文件,並列印出該字元串的行。此時,可以使用如下命令:
grep test *file
結果如下所示:
$ grep test test* #查找前綴有「test」的文件包含「test」字元串的文件
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字元的行
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字元的行
testfile_2:Linux test #列出testfile_2 文件中包含test字元的行
2、以遞歸的方式查找符合條件的文件。例如,查找指定目錄/etc/acpi 及其子目錄(如果存在子目錄的話)下所有文件中包含字元串”update”的文件,並列印出該字元串所在行的內容,使用的命令為:
grep –r update /etc/acpi
輸出結果如下:
$ grep –r update /etc/acpi #以遞歸的方式查找「etc/acpi」
#下包含「update」的文件
/etc/acpi/ac.d/85–anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)
Rather than
/etc/acpi/resume.d/85–anacron.sh:# (Things like the slocate updatedb cause a lot of
IO.)
Rather than
/etc/acpi/events/thinkpad–cmos:action=/usr/sbin/thinkpad–keys—update
3、反向查找。前面各個例子是查找並列印出符合條件的行,通過”-v”參數可以列印出不符合條件行的內容。
grep –v test *test*
查找文件名中包含 test 的文件中不包含test 的行,此時,使用的命令為:
$ grep–v test* #查找文件名中包含test 的文件中不包含test 的行
testfile1:helLinux!
testfile1:Linis a free Unix–type operating system.
testfile1:Lin
testfile_1:HELLO LINUX!
testfile_1:LINUX IS A FREE UNIX–TYPE OPTERATING SYSTEM.
testfile_1:THIS IS A LINUX TESTFILE!
testfile_2:HELLO LINUX!
testfile_2:Linux is a free unix–type opterating system.
正則表達式:
-
^ 以什麼開頭 放最前
-
$ 以什麼什麼結尾 放最後
-
空白行怎麼表示?——^$
-
grep -n ‘bash$’ passwd 以bash結尾的行
-
grep -n ‘^$’ fstab 找出空白行
-
grep -nv ‘^$’ fstab 找出非空白行
壓縮文件
gzip和bzip2
區別:
Bzip2 -k 保留源文件,壓縮比gzip 要好一點
常用選項:
標題 | |
-9 | 壓縮 |
-d | 解壓縮 |
格式:
-
壓縮
gzip [-9] 文件名
bzip2 [-9] 文件名
-
解壓縮
-
gzip -d .gz格式的壓縮文件
-
bzip2 -d .bz2格式的壓縮文件
語法
gzip [-acdfhlLnNqrtvV][-S <壓縮字尾字元串>][-<壓縮效率>][–best/fast][文件…] 或 gzip [-acdfhlLnNqrtvV][-S <壓縮字尾字元串>][-<壓縮效率>][–best/fast][目錄]
實例
壓縮文件
[root@runoob.com a]# ls //顯示當前目錄文件
a.c b.h d.cpp
[root@runoob.com a]# gzip * //壓縮目錄下的所有文件
[root@runoob.com a]# ls //顯示當前目錄文件
a.c.gz b.h.gz d.cpp.gz
[root@runoob.com a]#
接範例1, 列出詳細的資訊
[root@runoob.com a]# gzip –dv * //解壓文件,並列出詳細資訊
a.c.gz: 0.0% — replaced with a.c
b.h.gz: 0.0% — replaced with b.h
d.cpp.gz: 0.0% — replaced with d.cpp
[root@runoob.com a]#
接範例1,顯示壓縮文件的資訊
[root@runoob.com a]# gzip –l *
compressed uncompressed ratio uncompressed_name
24 0 0.0% a.c
24 0 0.0% b.h
26 0 0.0% d.cpp