Linux文件管理和編輯經常使用命令

Linux文件管理和編輯經常使用命令

mkdir 命令

  1. 功能說明
    mkdir 命令用於建立一個目錄,mkdir是make directory的縮寫
    格式:
mkdir [選項] 目錄名

mkdir 命令的選項及說明node

-m  對新建目錄設置存取權限
-p  能夠指定一個路徑名稱(一次建立多個目錄)
  1. 簡單示例
    在/home目錄下建立user1目錄,同時在user01目錄下建立user2目錄
[root@cinder01 ~]# mkdir -p /home/user1/user2
[root@cinder01 ~]# cd /home/user1/user2/
[root@cinder01 user2]# pwd
/home/user1/user2

mkdir 命令

  1. 功能說明
    more命令讀取文本文件時,每次顯示一屏,而且在每屏後暫停。
    格式:
more [選項] 文件名

more命令的選項及其說明linux

-d  在屏幕底部more提示符顯示友好提示
-s  將輸出文件中的多個空行減小爲只有一個空行輸出,以第一行爲準
-p  先清除顯示屏之前的信息,再顯示文本信息
-c  顯示文件時,每屏都清除屏幕先前的信息,而後從最頂端顯示出來
  1. 簡單示例
    分頁顯示yum.log文件內容
[root@cinder01 ~]# more yum.log

顯示yum.log文件內容,每10行顯示一屏,同時清屏正則表達式

[root@cinder01 ~]# more -c -10 yum.log

cat 命令

  1. 功能說明
    cat 命令用來將文件內容輸出到標準輸出,同時cat能夠用於鏈接合併文件
    格式:
cat [選項] 文件名
或
cat 文件1 文件2 > 文件3

cat選項及其說明shell

-A  將文件中的製表符顯示爲「^I」,同時在每行的末尾顯示一下「$」符號
-b  將文件中的全部非空行按順序編號,編號從1開始
-n  顯示文件行號(包括空行)
  1. 簡單示例
    查看config文件內容,同時將文件中的製表符顯示爲「^I」,並對非空行編號
[root@cinder01 ~]# cat -Ab /etc/selinux/config 
$
     1  # This file controls the state of SELinux on the system.$
     2  # SELINUX= can take one of these three values:$
     3  #     enforcing - SELinux security policy is enforced.$
     4  #     permissive - SELinux prints warnings instead of enforcing.$
     5  #     disabled - No SELinux policy is loaded.$
     6  SELINUX=disabled$
     7  # SELINUXTYPE= can take one of three two values:$
     8  #     targeted - Targeted processes are protected,$
     9  #     minimum - Modification of targeted policy. Only selected processes are protected. $
    10  #     mls - Multi Level Security protection.$
    11  SELINUXTYPE=targeted $
$
$
[root@cinder01 ~]#

將兩個文檔合併輸出到第三個文件中windows

[root@cinder01 ~]# echo "This is file1.txt" > file1.txt
[root@cinder01 ~]# 
[root@cinder01 ~]# echo "This is file2.txt" > file2.txt 
[root@cinder01 ~]# 
[root@cinder01 ~]# cat file1.txt file2.txt > file3.txt
[root@cinder01 ~]# 
[root@cinder01 ~]# more file3.txt 
This is file1.txt
This is file2.txt
[root@cinder01 ~]#

diff 命令

  1. 功能介紹
    diff 命令用於比較兩個文件的差別。diff以逐行的方式比較文件的異同,若是指定的是目錄,則比較目錄中文件名相同的文件,不會比較子目錄。
    格式:
diff [選項]文件1 文件2

diff 選項及其說明bash

-c  顯示所有內容,並標出不一樣之處
-b  忽略尾行的空格,同時字符串中的一個或多個空格都視爲相同
-r  當文件1和文件2爲目錄時,會比較子目錄的文件
-s  當兩個文件相同時,顯示文件的相同信息
  1. 簡單示例
    比較文件file1.txt file2.txt 的異同
[root@cinder01 ~]# diff file1.txt file2.txt 
    1c1
    < This is file1.txt
    ---
    > This is file2.txt
    [root@cinder01 ~]# diff file1.txt file3.txt  
    1a2
    > This is file2.txt
    [root@cinder01 ~]# 
    [root@cinder01 ~]# diff -c file1.txt file3.txt 
    *** file1.txt   2017-08-26 23:06:21.583437621 +0800
    --- file3.txt   2017-08-26 23:07:01.678173298 +0800
    ***************
    *** 1 ****
    --- 1,2 ----
      This is file1.txt
    + This is file2.txt
    [root@cinder01 ~]#

grep 命令

  1. 功能說明
    grep命令是linux下文本過濾工具,grep根據指定的字符串,對文本的每一行進行搜索,若是找到這個字符串,就輸出該行的內容
    格式
grep [選項] 須要查找的字符串文件名

grep 命令的選項的經常使用選項說明工具

-A NUM  除了列出符合條件的行外,同時列出每一個符合條件的後NUM行
-c  只顯示符合條件的行數,而不顯示每行的具體信息
-f file 事先將要搜索的樣式寫入一個文件中,每行一個樣式,而後以這個文件做爲條件進行搜索
-i  搜索時忽略大小寫
-n  在搜索結果中顯示行號
-B  與選項「-A」相反,除了列出符合條件的行外,同時列出每一個符合條件行的錢NUM行
  1. 簡單示例
    列出config文件中含有disabled字符串的行
[root@cinder01 ~]# grep disabled config
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
[root@cinder01 ~]#

列出config文件中含有disabled字符串的行,並標識每行的具體行號ui

[root@cinder01 ~]# grep -n disabled config
6:#     disabled - No SELinux policy is loaded.
7:SELINUX=disabled
[root@cinder01 ~]#

rm 命令

  1. 功能說明
    rm 命令用來刪除某個目錄及其下的全部文件及子目錄,對於連接文件,只是斷開連接,原文件不變
    格式
rm [選項] 文件或者目錄

rm 命令的選項及說明code

-r  告訴rm將選項中列出的所有目錄以及子目錄文件均遞歸刪除,若是不指定"-r"選項,「rm」命令不能刪除非空目錄
-f  忽略不存在問題,也不給出提示
-i  交互式刪除,即在刪除前確認
  1. 簡單示例
    刪除 file3文件
[root@cinder01 ~]# rm -rf file3.txt

[注:]使用命令結合「rm -rf」時需當心,由於文件一旦刪除,就不能不想恢復,建議使用「-i」選項,在刪除時,再確認是否要刪除文件排序


touch 命令

  1. 功能說明
    touch 命令用來改變指定文件的訪問時間和修改時間,若指定文件不存在則建立此文件,若不指定時間,則使用當前時間
touch [選項] 設定的時間文件

touch命令的選項及其說明

-a  改變文件的訪問時間爲系統當前時間,無須設置時間選項
-m  改變文件的修改時間爲系統當前時間,無須設置時間格式
-c  若是文件不存在,不建立也不提高
-d 或 -t 使用指定的日期或時間
-r<參考文件或目錄> 把指定文件或目錄的日期,時間都設定成和參考文件或目錄的日期,時間相同
  1. 簡單示例
    touch命令的操做實例,「#」號後面的內容爲命令註釋
[root@cinder01 ~]# touch test.txt  # 建立一個文件test.txt
[root@cinder01 ~]# ls -l test.txt   # 顯示文件建立時間
-rw-r--r-- 1 root root 0 Aug 27 00:49 test.txt
[root@cinder01 ~]# date    # 系統當前時間
Sun Aug 27 00:50:06 CST 2017
[root@cinder01 ~]# ls -lu test.txt 
-rw-r--r-- 1 root root 0 Aug 27 00:49 test.txt
[root@cinder01 ~]# touch -a test.txt # 改變文件訪問時間爲系統當前時間
[root@cinder01 ~]# 
[root@cinder01 ~]# ls -lu test.txt 
-rw-r--r-- 1 root root 0 Aug 27 00:50 test.txt
[root@cinder01 ~]# 
[root@cinder01 ~]# touch -m test.txt # 改變文件的修改時間爲系統當前時間
[root@cinder01 ~]# 
[root@cinder01 ~]# ls -l test.txt 
-rw-r--r-- 1 root root 0 Aug 27 00:50 test.txt
[root@cinder01 ~]# 
[root@cinder01 ~]#

ln 命令

  1. 功能說明
    ln 命令用來在文件或目錄之間建立連接
    linux 環境下有硬連接和軟鏈接兩種
    硬連接:是指經過文件的incode來進行連接
    軟連接:是一個指向真正文件或者目錄位置的符號鏈接(相似於windows系統的快捷方式)
    格式:
ln [選項] 源文件 目標連接名

ln命令選項及其說明

-f  若是在目標位置存在與連接名相同的文件,這個文件將被刪除
-s  進行軟連接
-d  容許系統管理員硬連接本身的目錄
-b  對將在連接時會被覆蓋或者刪除的文件進行備份
  1. 簡單示例
    將/etc/inittab文件進行硬連接到/opt/backup目錄下(此時,backup目錄下會生成一個inittab文件,與源文件內容相同)
[root@cinder01 ~]# ln /etc/inittab /opt/backup/inittab

將/etc/inittab文件進行軟連接到/opt目錄下

[root@cinder01 ~]# ln -s /etc/inittab /opt/
[root@cinder01 ~]# ls -l /opt/
total 4
lrwxrwxrwx 1 root root  12 Aug 27 01:08 inittab -> /etc/inittab
[root@cinder01 ~]#

file 命令

  1. 功能說明
    file命令用來顯示文件的類型,對於長度爲0的文件,將識別爲空文件,對於符號鏈接文件,默認狀況下將顯示符號連接引用的真實文件路徑
    格式
file [選項] 文件名

file命令的選項及說明

-b  顯示文件類型結果,不顯示對應文件名稱
-L  直接顯示符號連接所指向文件的類型
-z  顯示壓縮文件的信息
-i  若是文件不是常規文件,則不進一步對文件類型進行分類
  1. 簡單示例
    顯示/etc/init.d/network文件類型,顯示結果爲shell可執行文件
[root@cinder01 ~]# file /etc/init.d/network 
/etc/init.d/network: Bourne-Again shell script, ASCII text executable
[root@cinder01 ~]#

顯示/bin/sh文件的類型,顯示結果爲符號連接文件

[root@cinder01 ~]# file /bin/sh
/bin/sh: symbolic link to `bash'
[root@cinder01 ~]#

顯示file1.txt文件類型。顯示結果爲ASCII文件文本

[root@cinder01 ~]# file file1.txt 
file1.txt: ASCII text
[root@cinder01 ~]#

顯示/dev/sda1文件類型,顯示結果爲塊設備文件

[root@cinder01 ~]# file /dev/sda1 
/dev/sda1: block special
[root@cinder01 ~]#

cp 命令

  1. 功能說明
    cp命令用來將給出的文件或者目錄複製到另外一個文件或者目錄
    格式:
cp [選項] 源文件母子目錄 目標文件或者目錄

cp命令的選項及其說明

-a  在複製目錄時使用,它保留全部信息,包含文件連接,文件屬性,並遞歸地複製目錄
-r  若給出的原文件是一個目錄文件,此時cp將遞歸複製該目錄下全部的子目錄和文件
-d  複製時保留連接,這樣不會失去連接文件
-p  保留文件的修改時間和存取權限
-i  若是已經有相同文件名的目標文件,則提示用戶是否覆蓋
  1. 簡單示例
    將當前目錄下的全部文件複製到/tmp目錄下,「./*」表示當前目錄下全部文件和目錄
[root@cinder01 ~]# cp -r ./* /tmp

將/home目錄下的目錄及子目錄所有複製到/tmp目錄下

[root@cinder01 ~]# cp -r /home/ /tmp/

find 命令

  1. 功能說明
    find 命令用於在指定的路徑下查找指定的文件
    格式:
find path-name[-options] [-print -exec -ok命令 {} \;]

選項說明:

-amin<分鐘>:查找在指定時間曾被存取過的文件或目錄,單位以分鐘計算; 
    -anewer<參考文件或目錄>:查找其存取時間較指定文件或目錄的存取時間更接近如今的文件或目錄; 
    -atime<24小時數>:查找在指定時間曾被存取過的文件或目錄,單位以24小時計算; 
    -cmin<分鐘>:查找在指定時間之時被更改過的文件或目錄; 
    -cnewer<參考文件或目錄>查找其更改時間較指定文件或目錄的更改時間更接近如今的文件或目錄; 
    -ctime<24小時數>:查找在指定時間之時被更改的文件或目錄,單位以24小時計算; 
    -daystart:從本日開始計算時間; 
    -depth:從指定目錄下最深層的子目錄開始查找; 
    -expty:尋找文件大小爲0 Byte的文件,或目錄下沒有任何子目錄或文件的空目錄; 
    -exec<執行指令>:假設find指令的回傳值爲True,就執行該指令; 
    -false:將find指令的回傳值皆設爲False; 
    -fls<列表文件>:此參數的效果和指定「-ls」參數相似,但會把結果保存爲指定的列表文件; 
    -follow:排除符號鏈接; 
    -fprint<列表文件>:此參數的效果和指定「-print」參數相似,但會把結果保存成指定的列表文件; 
    -fprint0<列表文件>:此參數的效果和指定「-print0」參數相似,但會把結果保存成指定的列表文件; 
    -fprintf<列表文件><輸出格式>:此參數的效果和指定「-printf」參數相似,但會把結果保存成指定的列表文件; 
    -fstype<文件系統類型>:只尋找該文件系統類型下的文件或目錄; 
    -gid<羣組識別碼>:查找符合指定之羣組識別碼的文件或目錄; 
    -group<羣組名稱>:查找符合指定之羣組名稱的文件或目錄; 
    -help或——help:在線幫助; 
    -ilname<範本樣式>:此參數的效果和指定「-lname」參數相似,但忽略字符大小寫的差異; 
    -iname<範本樣式>:此參數的效果和指定「-name」參數相似,但忽略字符大小寫的差異; 
    -inum:查找符合指定的inode編號的文件或目錄; 
    -ipath<範本樣式>:此參數的效果和指定「-path」參數相似,但忽略字符大小寫的差異; 
    -iregex<範本樣式>:此參數的效果和指定「-regexe」參數相似,但忽略字符大小寫的差異; 
    -links<鏈接數目>:查找符合指定的硬鏈接數目的文件或目錄; 
    -iname<範本樣式>:指定字符串做爲尋找符號鏈接的範本樣式; 
    -ls:假設find指令的回傳值爲Ture,就將文件或目錄名稱列出到標準輸出; 
    -maxdepth<目錄層級>:設置最大目錄層級; 
    -mindepth<目錄層級>:設置最小目錄層級; 
    -mmin<分鐘>:查找在指定時間曾被更改過的文件或目錄,單位以分鐘計算; 
    -mount:此參數的效果和指定「-xdev」相同; 
    -mtime<24小時數>:查找在指定時間曾被更改過的文件或目錄,單位以24小時計算; 
    -name<範本樣式>:指定字符串做爲尋找文件或目錄的範本樣式; 
    -newer<參考文件或目錄>:查找其更改時間較指定文件或目錄的更改時間更接近如今的文件或目錄; 
    -nogroup:找出不屬於本地主機羣組識別碼的文件或目錄; 
    -noleaf:不去考慮目錄至少需擁有兩個硬鏈接存在; 
    -nouser:找出不屬於本地主機用戶識別碼的文件或目錄; 
    -ok<執行指令>:此參數的效果和指定「-exec」相似,但在執行指令以前會先詢問用戶,若回答「y」或「Y」,則放棄執行命令; 
    -path<範本樣式>:指定字符串做爲尋找目錄的範本樣式; 
    -perm<權限數值>:查找符合指定的權限數值的文件或目錄; 
    -print:假設find指令的回傳值爲Ture,就將文件或目錄名稱列出到標準輸出。格式爲每列一個名稱,每一個名稱前皆有「./」字符串; 
    -print0:假設find指令的回傳值爲Ture,就將文件或目錄名稱列出到標準輸出。格式爲所有的名稱皆在同一行; 
    -printf<輸出格式>:假設find指令的回傳值爲Ture,就將文件或目錄名稱列出到標準輸出。格式能夠自行指定; 
    -prune:不尋找字符串做爲尋找文件或目錄的範本樣式; 
    -regex<範本樣式>:指定字符串做爲尋找文件或目錄的範本樣式; 
    -size<文件大小>:查找符合指定的文件大小的文件; 
    -true:將find指令的回傳值皆設爲True; 
    -type<文件類型>:只尋找符合指定的文件類型的文件; 
    -uid<用戶識別碼>:查找符合指定的用戶識別碼的文件或目錄; 
    -used<日數>:查找文件或目錄被更改以後在指定時間曾被存取過的文件或目錄,單位以日計算; 
    -user<擁有者名稱>:查找符和指定的擁有者名稱的文件或目錄; 
    -version或——version:顯示版本信息; 
    -xdev:將範圍侷限在先行的文件系統中; 
    -xtype<文件類型>:此參數的效果和指定「-type」參數相似,差異在於它針對符號鏈接檢查。
  1. 簡單示例
    列出當前目錄及子目錄下全部文件和文件夾
[root@cinder01 ~]# find .

在/home目錄下查找以.txt結尾的文件名

[root@cinder01 ~]# find /home -name "*.txt"

同上,但忽略大小寫

[root@cinder01 ~]# find /home -iname "*.txt"

當前目錄及子目錄下查找全部以.txt和.pdf結尾的文件

[root@cinder01 ~]#  find . \( -name "*.txt" -o -name "*.pdf" \) 
或 
[root@cinder01 ~]# find . -name "*.txt" -o -name "*.pdf"

匹配文件路徑或者文件

[root@cinder01 ~]#  find /usr/ -path "*local*"

基於正則表達式匹配文件路徑

[root@cinder01 ~]# find . -regex ".*\(\.txt\|\.pdf\)$"

split 命令

  1. 功能說明
    split命令用於分割文檔,將一個文檔分拆成幾個
    格式:
split [選項] [input_file] [output_file]

split命令選項說明

-b size 指定分割出來的文件大小,size能夠加入單位,b表示512字節,k表示1KB,m表示1MB
-n  將「n」指定分割的每一個文件的長度,默認爲1000行
-d  將split命令生成的文件序列以數字形式命名
-a  指定split命令生成的文件序列的長度,默認長度爲2
  • input_file: 須要分割的文件
  • output_file: 分割出來的文件序列,split命令分割後生成的文件序列依次排序
  1. 簡單示例
    將messages-20170925文件分割,設定每一個分割文件的大小爲10KB
[root@cinder01 ~]# split -b 10k messages-20170925 messages

mv 命令

  1. 功能說明
    mv命令用來將文件或者目錄更名或者將文件由一個目錄移動到另外一個目錄下
    格式:
mv [選項] 源文件或者目錄 目標文件或者目錄

mv命令的選項及其說明

-i  交互式操做,在對已經存在的文件或者目錄覆蓋時,系統會詢問是否覆蓋
-f  禁止交互式操做,在mv將要覆蓋文件或者目錄時,不提示任何提示,默認覆蓋
  1. 簡單示例
    修改文件名,將12333.jpg重命名爲1111.jpg
[root@cinder01 ~]# mv 12333.jpg 1111.jpg
相關文章
相關標籤/搜索