1. 程式人生 > >Linux基礎知識第四講,檔案內容命令

Linux基礎知識第四講,檔案內容命令

目錄

一丶常用命令

序號 命令 對應英文 作用
01 cat 檔名 concatenate 檢視檔案內容、建立檔案、檔案合併、追加檔案內容等功能
02 more 檔名 more 分屏顯示檔案內容
03 grep 搜尋文字 檔名 grep 搜尋文字檔案內容

前兩個是檢視檔案內容,最後一個是搜尋檔案內容

1.cat命令演示以及常用選項

cat 跟 more 命令
cat 123.txt
more 123.txt
在123.txt內容不多的情況下,一樣顯示. 如果123.txt檔案內容.超過了一頁.那麼使用more則會提示你
已經顯示了多少.後面還有多少.只需要按空格鍵繼續顯示才可以.

檢視檔案內容少, 使用cat 檢視內容多的,使用more
more因為是分頁顯示.所以有操作鍵, 跟man一樣的

使用 more 的操作鍵:

操作鍵 功能
空格鍵 顯示手冊頁的下一屏
Enter 鍵 一次滾動手冊頁的一行
b 回滾一屏
f 前滾一屏
q 退出
/word 搜尋 word 字串

cat不光可以檢視檔案,還可以合併檔案,建立檔案,追加檔案..所以不要把兩個命令混為一談.
cat選項
| 選項 | 含義 |
| --- | --- |
| -b | 對非空輸出行編號 |
| -n | 對輸出的所有行編號 |

-b 選項就是顯示行號,非空行不加行號
-n 選項就是顯示所有行號.
如下

2.grep 搜尋命令的使用

1.grep基本使用以及選項.

grep 可以搜尋我們檔案的內容

  • Linux 系統中 grep 命令是一種強大的文字搜尋工具
  • grep允許對文字檔案進行 模式查詢,所謂模式查詢,又被稱為正則表示式
選項 含義
-n 顯示匹配行及行號
-v 顯示不包含匹配文字的所有行(相當於求反)
-i 忽略大小寫

簡單使用

grep 要被搜尋的字串 檔案 意思就是在檔案中列出你給定串的所有內容
grep a 1.txt 在1.txt中查詢a. 列出所有包含a的行.
我們也可以加選項,如-n 可以顯示行號了.(不加不顯示) -i 忽略大小寫 -v顯示不包含你輸入的串的行.

加選項

我們說過,linux支援命令連結. 也就是選項可以合併
-in 意思就是 -i -n 忽略大小寫,並且輸出新增行號.
那麼相應的-inv 選項就是顯示不包含串的行,並且新增行號.
如下:

如果搜尋一串內容,需要加上引號包含.
如:
grep "Hello World" 1.txt 搜尋Hello Word 在1.txt中查詢.

2.grep 行首/尾 模糊查詢.

grep中常用的模糊查詢.
如日常生活中,查詢的時候. 我們要指定一個串必須出現在 行首,或者行尾.
也就是以什麼什麼開頭的一行.我們要進行查詢.

  • 常用的兩種模式查詢
引數 含義
^a 行首,搜尋以 a 開頭的行
ke$ 行尾,搜尋以 ke 結束的行

如下:

查詢以 1開頭的行,以及s結尾的行.

3.echo 以及 重定向的使用

echo 可以輸出在終端一句話.不過不單獨使用.一般配合重定向將輸入的內容寫入到檔案或追加到檔案
下面介紹下什麼是重定向,以及echo

  • echo 會在終端中顯示引數指定的文字,通常會和 重定向 聯合使用

1. 重定向 >>>

  • Linux 允許將命令執行結果 重定向到一個 檔案
  • 將本應顯示在終端上的內容 輸出/追加指定檔案中

其中

  • > 表示輸出,會覆蓋檔案原有的內容
  • >> 表示追加,會將內容追加到已有檔案的末尾

如我們使用echo
echo HelloWorld > 2.txt 那麼就是將本應該顯示到終端的HelloWorld 寫入到2.txt當中.

4.管道概念

不知道大家有沒有這樣過. 假設檔案有內容.我們使用cat 檢視一下. 但是我們本意不是檢視.而是
查詢這個檔案的內容.但是我們不知道查詢什麼,所以必須檢視一下.

cat xxxx grep xxx xxx
那麼有沒有辦法可以讓輸入的內容作為輸入結果給另一個命令使用那? 這個就是管道的概念.

  • Linux 允許將 一個命令的輸出 可以通過管道 做為 另一個命令的輸入
  • 可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這裡 | 的左右分為兩端,左端塞東西(寫),右端取東西(讀)

常用的管道命令有:

  • more:分屏顯示內容
  • grep:在命令執行結果的基礎上查詢指定的文字
    命令如下演示:
    cat 123.txt | grep s 這個命令的意思就是 cat 123.txt輸出的內容.作為輸入給grep使用.
    在grep命令中使用.

其實管道命令就是對命令的第一次輸出 做一個二次處理.使用另一個命令進行處理.