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
下一篇 2017-02-25

相關推薦

  • 三臺主機部署phpwind

    PHPWind(簡稱:PW)的使命是讓網站更具價值,讓更多人從網絡中享受便利,以提升生活品質。 phpwind是一個基于PHP和MySQL的開源社區程序,是國內最受歡迎的通用型論壇程序之一。phpwind第一個版本ofstar發布于2004年。截止2013年12月phpwind項目品牌由阿里云計算有限公司擁有,軟件全面開源免費。 特點 1. 非凡的訪問速度 …

    2017-06-13
  • day5總結筆記

    本文內容: 索引節點 硬鏈接與軟鏈接 重定向 用戶組 useradd命令 索引節點: 索引節點包含了一個表,包含了有關文件的元數據,包含:     文件類型,權限,UID,GID 鏈接數(指向這個文件名路徑名稱個數)      該文件的大小和不同的時間戳。&n…

    系統運維 2016-08-08
  • linux echo命令用法實例

           對于初學者來說,掌握一些基本命令的常用用法是必須的。本文列舉了echo命令的幾個常用用法并加以實例說明,以作回顧、參考。       echo命令常用作打印輸出字符串,根據echo幫助文件可以獲得以下信息:        語法 echo…

    2017-05-20
  • N28-第四周

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
    2、編輯/etc/group文件,添加組hadoop。
    3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
    4、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
    5、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
    6、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;
    7、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;
    8、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;
    9、找出/etc/passwd文件中的一位數或兩位數;
    10、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;
    11、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
    12、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;
    13、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;

    2017-12-30
  • linux下文件類型簡介

    linux下文件類型簡介 概述 文件類型縮寫及別稱 文件類型的縮寫、翻譯及別稱 文件類型 縮寫 英文 其他名稱 普通文件 – Regular file 目錄文件 d Directory file 塊設備文件 b Block special file 塊區文件 字符設備文件 c Character special file 字符設備文件 數據傳送 …

    Linux干貨 2016-10-17
  • 馬哥教育網絡班22期+第11周課程練習

    week11 1、詳細描述一次加密通訊的過程,結合圖示最佳。 2、描述創建私有CA的過程,以及為客戶端發來的證書請求進行頒發證書。 3、描述DNS查詢過程以及DNS服務器類別。 4、搭建一套DNS服務器,負責解析magedu.com域名(自行設定主機名及IP)   (1)、能夠對一些主機名進行正向解析和逆向解析;   …

    Linux干貨 2016-11-07
欧美性久久久久