Linux常用命令之文件處理

(二)文件處理

在linux裏面,一切都是文件,文件是文件,目錄也是文件,程序也是文件,什麼都是文件,Linux文件系統具有良好的結構,同時系統提供了很多文件處理程序

Linux命令回顧

Linux常用命令之安裝與登錄
command [-options] [parameter]
命令 選項 參數
注意:按下tab命令會自動補全
命令後面的參數,是加了中括號表示可選,沒有中括號,表示必須要帶着參數
當忘記某些命令時,我們可以使用:
man command 或者 command --help
前者是獲取所有的詳細命令,後者是獲取主要的命令
前者是全英文手冊,後者會有部分中文解釋
前者一般會分頁顯示,按下回車會顯示下一行,按下空格會顯示下一頁
一般這種都與管道配合使用,查詢第幾頁等等

言歸正傳,現在我們開始列出Linux下的文件操作指令

file

1、作用:通過探測文件內容判斷文件類型,使用權限是所有用戶
2、格式:file [options] 文件名
3、參數:
-v 在標準輸出後顯示版本信息,並且退出
-z 探測壓縮過的文件類型
-L 允許符合連接
C是一個目錄,pycharm是一個軟鏈接
4、說明:
通過file可以知道這個文件是什麼類型的,shell腳本,二進制可執行文件,C語言源文件,目錄,文件,軟鏈接,文本文件

mkdir

1、作用:創建目錄,它的使用權限是所有用戶
2、格式:mkdir [options] 目錄名
3、參數:
-m 設定權限<模式>
-p 需要時創建上層目錄,可以遞歸創建子目錄
-v 每次創建新目錄的時候都顯示信息
4、說明:
在進行目錄創建的時候,可以設置目錄的權限,此時使用的參數就是-m,讓所有用戶都有rwx的權限,可以使用如下的命令:
mkdir -m 777 zhuyu
mkdir -p 1/2/3 可以遞歸創建1/2/3目錄

touch

1、作用:創建文件,它的使用權限是所有用戶
2、格式:touch [options] 文件名
3、參數:
-a 只更改訪問時間
-c, --no-create 不創建任何文件
-d, --date=字符串 使用指定字符串表示時間而非當前時間
-h, --no-dereference 會影響符號鏈接本身,而非符號鏈接所指示的目的地(當系統支持更改符號鏈接的所有者時,此選項纔有用)
-m 只更改修改時間

ls

1、作用:顯示目錄內容,它的使用權限是所有用戶
2、格式:ls [options] [filename]
3、參數:
-a 顯示隱藏文件和目錄
-A 列出除了".""…"以外的任何項目(比如交換文件)
-author 打印出每個文件的著作者
-b 以八進制序列號表示不可打印 的字符
-l 以列表的方式顯示即list
-h 以人性化的方式顯示文件的大小
4、說明:
最常用的是ls -lh
同時,ls顯示的文件,不同類型的文件會以不同的顏色顯示
ls
文件類型開頭通常是以10個字符構成的字符串
第一個表示文件類型:
- 表示文件
d 表示目錄
l 表示鏈接
b 塊設備文件
後面9個表示文件的訪問權限,分爲3組,分別是屬主,屬組,其他
即文件主人的權限,同組其他組員的權限,其他非同組的權限
每一組的三個字符表示對文件的讀(r)寫(w)和執行權限(x)
數字2是硬連接數,表示可以通過兩種路徑到達該文件。
接着是屬組和屬主,以及文件大小,最後打開時間,加上文件名

cd

1、作用:切換文件路徑,它的使用權限是所有用戶
2、格式:cd [options] 路徑
3、一般不加參數,直接進入路徑
4、說明:
cd可以當做雙擊來使用,切換到想進入的文件中。
路徑分爲絕對路徑相對路徑
絕對路徑是從根目錄開始進入,即/
相對路徑是相對於當前的路徑怎麼進入目標文件,當前的路徑用“.”表示,上層路徑用"…"表示,
進入當前文件用cd .
進入上一層文件用cd …
直接輸入cd則回到家目錄,等同於cd ~

rm

1、作用:刪除文件,它的使用權限是所有用戶
2、格式:rm [options] 文件名
3、參數:
-r 刪除目錄
-f 強制刪除
-i 在刪除前提示是否刪除
4、說明:
刪除目錄需要加上-rf, rm刪除就不能找回了,慎重,在回收站中也沒有。並且最好加上-i,可以提示誤刪

mv

1、作用:剪切文件,它的使用權限是所有用戶
2、格式:mv [-options] 要移動的文件 要移動到的路徑
3、參數:
-i 交互方式操作,如果mv操作將導致對已存在的目標文件的覆蓋,此時系統詢問是否重寫,要求用戶回答“y”或者“n”,這樣可以避免覆蓋文件
-f 禁止交互操作 不給提示信息,直接覆蓋,強制操作
-n, --no-clobber 不覆蓋已存在文件
4、說明:
mv除了用來移動剪切文件以外,還可以用來重命名文件

find

1、作用:在目錄中搜索文件,它的使用權限是所有用戶
2、格式:find [path] [options] [expression]
path 指定路徑,系統從這裏開始沿着目錄樹向下查找文件
3、參數:
-depth 使用深度級別的查找過程方式,在某層指定目錄中有限查找文件內容
-maxdepth levels 表示至多查找到開始目錄的第level層子目錄,level是一個非負數
-mindepth levels 表示至少查找到開始目錄的第level層子目錄
-version 打印版本
*[experssion]*是匹配表達式
-name 支持匹配通配符
-atime n 搜索在過去n天讀取過的文件
-ctime n 搜索在過去n天修改過的文件

grep

1、作用:指定文件中搜索特定的內容,並將含有這些內容的行標準輸出,它的使用權限是所有用戶
2、格式:grep [options]
3、參數:
-c 只輸出匹配行的計數
-I 不區分大小寫(只適用於單字符)
-h 查詢多文件時不顯示文件名
-l 查詢多文件時只輸出包含匹配字符的文件名
-n 顯示匹配行以及行號
-s 不顯示不存在或無匹配文本的錯誤信息
-v 顯示不包含匹配文本的所有行

pattern正則表達式主要參數:
: 忽略正則表達式中特殊字符的原有含義
^: 匹配正則表達式的開始行
$: 匹配正則表達式的結束行
<: 從匹配正則表達式的行開始
>:到匹配正則表達式的行結束
[]: 單個字符,如[A]即A符合要求
[ - ]:範圍,如[1-9],從1到9都符合
?:所有的單個字符
*:所有的字符
以上是主要的通配符,詳細地可以參考:
正則表達式與通配符
grep.awk,sed等命令都支持正則表達式,用來在文件中匹配到符合條件的字符串

chmod

1、作用:改變文件或者目錄的訪問權限。用戶可以使用它控制文件或者目錄的訪問權限
2、格式:(1) chmod 數字 文件名
(2)chmod u/g/o/a +/-w/r/x 加文件名
3、參數:
第一種三個數字從0到7,對應三位二進制,代表屬主,屬組,其他,
比如 chmod 775 文件名 表示該文件對主人的權限是可讀可寫可執行,對屬組的權限是可讀可寫可執行,對其他的權限可讀可寫不可執行。
其中775即111,111,110,1代表有權限,0代表無權限,對應可讀可寫可執行。
第二種的u代表屬主,g代表屬組,o代表其他,a代表全部,就、+/-代表加上權限或者去掉權限,rwx分別代表可讀可寫可執行權限。

chown

1、作用:更改一個文件或者目錄的屬主和屬組
2、格式:chown [options] 用戶或者組 文件
3、參數:
和chgrp的參數基本一致

diff

1、作用:逐行比較兩個文件,並指出不同,它的使用權限是所有用戶
2、格式:diff [options] 源文件 目標文件
3、參數:
–normal 以正常的 diff 方式輸出 (默認)
-a 將所有文件當成文本文件來處理
-b 忽略空格造成的不同
-B 忽略空行造成的不同
-c 使用綱要輸出格式
-H 利用試探法加速對大文件的搜索
-I 忽略大小寫的變化
-q, --brief 只有在文件不同時報告
-s, --report-identical-files 當兩個一樣時仍然顯示結果
-u, -U 數量, --unified[=數量] 輸出 <數量>(默認爲 3)行一致化上下文
-e, --ed 以 ed script 方式輸出
-n, --rcs 以 RCS diff 格式輸出
-W, --width=數量 每行顯示最多 <數量>(默認 130)個字符
–left-column 當有兩行相同時只顯示左邊欄的一行
–suppress-common-lines 當有兩行相同時不顯示
-r, --recursive 連同所有子目錄一起比較
-x, --exclude=模式 排除匹配 <模式> 的文件
-X, --exclude-from=文件 排除所有匹配在<文件>中列出的模式的文件
-S, --starting-file=文件 當比較目錄時,由<文件>開始比較

cmp

1、作用:逐字節比較兩個文件。它的使用權限是所有用戶
2、格式:cmp [選項]… 文件1 [文件2 [跳1 [跳2]]]
3、參數:
-b --print-bytes 打印出內容相異的字節
-i, --ignore-initial=SKIP 兩個輸入內容都略過前 SKIP 字節
-i, --ignore-initial=跳1:跳2 略過 <文件1> 的前 <跳1> 個字節和文件 <文件2>的前 <跳2> 個字節。
-l, --verbose 輸出所有相異字節的字節數和內容
-n, --bytes=限制 最多比較 <限制> 個字節
-s, --quiet, --silent suppress all normal output
–help 顯示此幫助信息並退出
-v, --version 輸出版本信息並退出
4、說明:
<跳> 值可以加上以下的單位:
kB=1,000、K=1,024、MB=1,000,000、M=1,048,576、GB=1,000,000,000、G=107,374,182,還有 T、P、E、Z、Y,如此類推。
如果文件是 “-” 或沒給出,則從標準輸入讀入內容。
如果輸入相同,則退出狀態爲 0;1 表示輸入不同;2 表示有錯誤產生。
cmp

cat

1、作用:連接並顯示指定的一個或者多個文件的有關信息,它的使用權限是所有用戶
2、格式:cat [options] 文件1 文件2
3、參數:
-n 由第一行開始對所有的輸出的行數編號
-b 和-n類似,只是對空行不編號
-s 遇見連續兩行或以上的空格時,認爲是一行
4、說明:
cat最簡單的一個用處就是用來顯示文本文件的內容

ln

1、作用:在文件之間創建鏈接,它的使用權限是所有用戶
2、格式:ln [options] 源文件 鏈接名
3、參數:
-f 鏈接時先將源文件刪除(慎重)
-d 允許系統管理者硬鏈接自己的目錄
-s 進行軟鏈接(symbolic link)
-b 將在鏈接時會被覆蓋的或者刪除的文件進行備份
鏈接有兩種:硬鏈接,軟鏈接

chgrp

1、作用:修改一個或者多個文件或目錄所屬的組
2、格式:chgrp [-ooptions] 組 文件
3、參數:
-c , --changes: 像 --verbose,但是隻在更改時才顯示結果
-f, --silent, --quiet: 去除大部分的錯誤信息
-R , --recursive: 遞歸處理所有的文件和子目錄
-v, --verbose: 處理任何文件都會顯示信息
4、說明:
該命令改變指定文件所屬的用戶組,其中group可以是用戶組ID,也可以是/etc/group中的用戶組的組名,文件名支持通配符。

備註:一個比較好用的命令,tree用樹狀圖的形式打印文件,-r只打印目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章