liunx文件操作命令

對liunx而言 一切皆文件 既然是文件 就免不了各種文件操作    以下就是常用的文件操作命令


ls

      ls 命令 用來查看文件 liunx上長用的ll 實質上是ls -l的的別名

      格式  ls [參數] [文件]

      參數

       ls -a列出目錄下的所有文件,包括以.開頭的隱含文件(常見的如.htaccess .git .svn文件)

       ls -b 把文件名中不可輸出的字符用反斜槓加字符編號的形式列出(友好的顯示一些文件名非當前編碼下的文件,比如子啊asc下中文名的文件)

       ls -lh(或 ll -h)  顯示文件的大小 單位b()

       ls -t 按時間排序(通常查看上傳路徑文件很好用)

       其它參數不常用 在此不做過多描述 想了解的可以自行搜索


mv

        mv命令是move的縮寫,可以用來移動文件或者將文件改名

        格式 mv [參數] 源文件 目標文件

        參數

        -b :若需覆蓋文件,則覆蓋前先行備份。 

        -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;

        -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!

        -u :若目標文件已經存在,且 source 比較新,纔會更新(update)

        -t  : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在後。

   

       例1 把a.conf重命名爲b.conf

       mv a.conf  b.conf

       例2 把a文件夾移動到  /home下

        mv a.conf  /home/b.conf

cp

       cp命令用來複制文件或者目錄

       格式  cp [參數] 源文件 目標文件

       參數

       -a    爲每個已存在的目標文件創建備份

       -b     在遞歸處理是複製特殊文件內容

       -f, --force        如果目標文件無法打開則將其移除並重試(當 -n 選項存在時則不需再選此項)

       -H                跟隨源文件中的命令行符號鏈接

       -l, --link            鏈接文件而不復制

       -L, --dereference   總是跟隨符號鏈接

       -n, --no-clobber   不要覆蓋已存在的文件(使前面的 -i 選項失效)

       -P, --no-dereference   不跟隨源文件中的符號鏈接

       -p                等於--preserve=模式,所有權,時間戳  --preserve[=屬性列表   保持指定的屬性(默認:模式,所有權,時間戳),如果可能保持附加屬性:環境、鏈接、xattr 等

       -R, -r, --recursive  複製目錄及目錄內的所有項目

       例1   備份a.conf文件

       cp a.conf a.conf.bak

       例2   拷貝文件夾a到  /home目錄下

       cp -r a/ /home/a



vim

      vim用來文件內容操作

      格式  vim [filename]


      編輯界面操作按鍵

      gg 返回文件頂部

      shift+g 到文件底部

      i 編輯

      :q 退出

      :wq 保存並退出

      :q!  強制退出  一般用於放棄修改文件

      :wq! 強制保存並退出

      /  查詢

      :set nu 顯示行號

      :數字 跳轉到指定行號


awk

      與sed和grep很相似,awk是一種樣式掃描與處理工具

      格式  awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...]

      awk命令分兩部分  {匹配模式操作}  {filename} 基本格式  awk "匹配部分"  "操作部分"  文件 其中匹配模式或者操作有一個即可 匹配模式支持正則 正則此處不介紹 只介紹簡單用法

       例1 讀取apache服務器access_log 中的獨立ip數

       awk ‘{print $1}’  access_log | uniq -c       從access.log中讀取第一個字斷 並去重複 $1是讀取文本文件第一個字斷 如果文件分隔符不是空格  可以使用-F指定分隔符 $0讀取整行

       例2 取出/etc/password 中的所有用戶

       awk -F ':'  '{print $1}' etc/password  -F指定分隔符爲:號

       awk的用法還有很多 不僅僅上述  由於篇幅問題  在此不做過多講解 望見諒

tail

      tail 命令從指定點開始將文件寫到標準輸出

      格式  tail   [必要參數] [選擇參數] [文件]      

      參數

      -f    循環讀取

      -n   指定顯示的行數

      -q 不顯示處理信息

      -v 顯示詳細的處理信息

      -c<數目> 顯示的字節數

      --pid=PID 與-f合用,表示在進程ID,PID死掉之後結束.

      -q, --quiet, --silent 從不輸出給出文件名的首部

      -s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒

    

      例1  讀取日誌文件最後100行

      tail -n 100 access.log

      例2   監控日誌  日誌若有內容更新則直接輸出

      tail -f  access.log

      例3  從第五行開始顯示文件內容

      tail -n +5 log2014.log


sort

      sort命令是幫我們依據不同的數據類型進行排序,其語法及常用參數格式:

   格式    sort [-bcfMnrtk][源文件][-o 輸出文件]

      補充說明:sort可針對文本文件的內容,以行爲單位來排序。

      參數

      -b   忽略每行前面開始出的空格字符

      -c   檢查文件是否已經按照順序排序

       -f   排序時,忽略大小寫字母

      -M   將前面3個字母依照月份的縮寫進行排序

      -n   依照數值的大小排序

      -o<輸出文件>   將排序後的結果存入指定的文件

      -r   以相反的順序來排序

      -t<分隔字符>   指定排序時所用的欄位分隔字符

      -k  選擇以哪個區間進行排序

      -u 去重

     
      例1 將a.txt 進行排序  sort將文件的每一行作爲一個單位,相互比較,比較原則是從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出

      sort a.txt

      使用-r則倒序

      例2  將b.txt去重

      sort -u b.txt


sed

      與awk類似  sed功能更爲強大  可以做 匹配替換  輸出  插入 等等  兩者都可以基於行來對文本文件進行處理  但sed對列的操作稍微差點  大部分人只學會了個sed -s  講解sed的全部用法需要大量篇幅   這裏向大家推薦一本書  <<awk與sed>>

      格式   sed [-nefri] ‘command’ 輸入文本

      參數 

       a   新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)~

       c   取代, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行!

       d   刪除,因爲是刪除啊,所以 d 後面通常不接任何咚咚;

       i   插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);

       p  列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作~

       s  取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!

       n 取消自動打印模式空間

       例子

       替換一行中的某部分

  格式:sed 's/要替換的字符串/新的字符串/g'   (要替換的字符串可以用正則表達式)      

       sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替換ruby爲bird

    

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