linux文本處理工具

linux文本處理工具

1.Linux 文件系統上的特殊權限: SUID     SGID   Sticky  

    進程的安全上下文:(1)任何一個可執行程序文件能不能啟動為進程,取決發起者對程序文件是否擁有執行去權限

                                (2)啟動為進程后,其屬主為發起者,屬組為發起者所屬的組

                                (3)進程訪文件的權限,取決于進程的發起者

                                            (a)  進程的發起者,同文件的屬主:則應用文件屬主權限
                                            (b)  進程的發起者,屬于文件屬組;則應用文件屬組權限
                                            (c) 應用文件“其它”權限

SUID只對二進制可執行程序有效,設置在目錄上無意義:chmod u+s file

SGID   對二進制文件生效,繼承程序所屬組的權限         chmod g+s

          作用在目錄上,目錄內新建文件的所屬組自動繼承目錄所屬組       (這個很實用)

sticky   粘滯位  作用在目錄上,目錄內的文件只有所有者能刪除     chmod o+t

              當沒有執行權限x時,特殊權限s,t會變成大寫,特殊權限位可以用數字表示4,2,1,分別代表u,g,o

為防止用戶誤操作;還可以給文件創建特定屬性:

        chattr +i  file            不能刪除,改名,更改 ;               -A表示鎖定時間戳,

         chattr +a                只能追加內容

         查看文件的特定屬性:lasttr  file

ACL :Access Control List ,實現靈活的權限管理

            除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限

            ACL 生效順序:所有者,自定義用戶,自定義組,其他用戶

通過實例來了解:   支持使用 – R   遞歸設置

setfacl -m u:wang:rwx     filename|dir            #自定義用戶wang 擁有文件的rwx權限

setfacl -m g:group:rwx     filename|dir            #自定義組group有文件的rwx權限

setfacl  -x  u:username                                 #從文件acl表刪除用戶

           -k :                                                 # 清空默認的acl權限,增加的不會清空;完全清空使用 -b

getfacl       filenam                                      #查看文件的acl權限列表

               一旦有了ACL權限,中間組的權限不是原來的意思了,而是mask限高權限

                mask :r     限高線      意思是最高權限是r,不能超過
                   exam:   setfacl -m mask::rx file

文本的處理工具有:less   cat    head   tail    cut  grep    sort   uniq   cat   tac  rev

 cat  -E     :顯示行結束符$                           head   -n#       指定獲取前# 字節      taii     -n#

        -n    :對每行進行編號                                      -#       指定獲取前#行                      -#   

        -A    :顯示所有控制符                                     -c #     指定行數                               -c#

        -s    :壓縮連續的空行成一行                                                                              -f    動態顯示追加的內容

cut -d: -f2  filename              -d指定分隔符: -f指定抽取第幾段,可以指定多段和連續

paste   f1  f2              #合并兩文件同行號的列到一行

paste   -s   f1  f2         #也是合并意思,只是f1 內容一行顯示,f2內容也一行顯示,可以認為并排的兩行文件

wc  -l      -w      -c       #分別統計行數,單詞數,字節數;

sort   -r                       #執行反方向(由上至下)整理

         -n                      #執行按數字大小整理

uniq   -c                      #顯示每行重復出現的次數

         -d                     #僅顯示重復過的行

         -u                     #僅顯示不曾重復的行

diff  f1  f2                   #比較兩個文件之間的區別;命令的輸出被保存在一種叫做“補丁”的文件

                                     使用 -u 選項來輸出“統一的(unified )”diff 格式文件,最適用于補丁文件。

patch  -b                     #適用 -b 選項來自動備份改變了的文件;  diff和patch 就是用來打補丁的意思

文本處理三劍客

grep:文本過濾工具              grep, egrep, fgrep(不支持正則表達式)

sed :stream editor

awk :Linux 上的實現gawk ,文本報告生成器

 grep [OPTIONS] PATTERN [FILE…]          模式:由正則表達式字符及文本字符所編寫的過濾條件

        -v    #顯示不被模式匹配到的行               -i     #忽略字符大小寫

        -n    #顯示匹配的行號                           -c    #統計匹配的行號

        -o    #僅顯示匹配到的字符串                  -q    #靜默模式,什么都不輸出

        -A -B -C  #    顯示模式匹配到的后 ,前,上下各#行,對應單詞意思after,befor,context

        -e    #實現多個選項間的邏輯or 關系        -E    #使用擴展正則表達式    -F   #使用fgerp

正則表達式:由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符                        字面意義,而表示控制或通配的功能

分為兩類:  基本正則表達式:BRE                                                      擴展正則表達式:ERE

               和文件名通配有點區別,就個別不一樣

                .      #匹配任意單個字符

                *      #匹配前面的字符任意次,貪婪模式:盡可能長的匹配

                .*   #任意長度的任意字符

               \{m,n\}   #匹配前面的字符至少m次,至多n次

               ^  行首錨定        $行尾錨定      ^$   空行

                 \b  詞首錨定,用于單詞模式的左側     \ba   #a在詞首

                 \b  詞尾錨定;用于單詞模式的右側      a\b   #a在詞尾 

                \<PATTERN\>    # 匹配整個單詞  \是轉義

分組: :\(\) 將 將 一個或多個字符捆綁在一起,當作一個整體進行處理,如:\(root\)\+

                  后 向引用:引用前面的分組括號中的模式所 匹配字符 , 而非模式本身

擴展正則表達式:

                *   #匹配前面字符任意次

                ?  #0次或1次

                +   #一次多多次

                {m,n} #至少m次,至多n次,也可分開

                C|cat: C 或cat        (C|c)at:Cat 或cat  

              

原創文章,作者:shewei,如若轉載,請注明出處:http://www.www58058.com/70009

(0)
sheweishewei
上一篇 2017-02-25 14:50
下一篇 2017-02-25 15:41

相關推薦

  • ansible進階(roles應用)

    ansible 進階 一、roles簡介 一個項目從開始到結束,不是簡單幾十個playbook就可以完事了,當文件數很多,有上百個的話,僅通過簡單的includes不停的引用,那最終的結果錯綜復雜。這個時候ansible roles就可以很好的發揮它的作用了。 roles,字面意思是角色的含義,可以理解為有相互關聯功能的集合。我們把安裝ntp、mem、ngi…

    2017-01-05
  • shell腳本總結

    shell進階:列表生成方式:列表生成方式:(1) 直接給出列表 以空白為間隔(2) 整數列表:(a) {start..end}(b) $(seq [start [step]] end)(3) 返回列表的命令$(COMMAND)(4) 使用glob,如:.sh(5) 變量引用;$@, $while read line(用法)(用于遍歷文件,進行處理…

    Linux干貨 2017-07-10
  • 馬哥教育網絡班22期+第3周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# w | tail -n+3 | cut -d" " -f1 | sort |&…

    Linux干貨 2016-08-29
  • bash功能特性五 重定向和管道

    一、管道     使用“|”符號來實現管道功能;管道可以實現在一行中處理使用管道符號連接的多個命令,后面的命令使用前面命令的輸出結果做為處理對象。 二、數據流重定向     數據輸入和輸出的類型:         標準輸入(std…

    Linux干貨 2015-04-21
  • shell腳本編程進階

    一些常用的編程語句,

    2017-12-23
  • 7 文件系統權限(二):權限

    rwx, chmod, chgrp, chown, SUID, SGID, Sticky, chattr, lsattr, umask, ACL, setfacl, getfacl 權限 假設這樣幾個場景:     1) A用戶在/testdir目錄中創建了A.txt文件,B用戶是否可以刪除、修改、移動、重命…

    Linux干貨 2016-08-19
欧美性久久久久