N25-第15周博客作業

1、總結sed和awk的詳細用法;    sed [OPTION]...  'script'  [input-file] ...            script:                地址定界編輯命令                            常用選項:                -n:不輸出模式空間中的內容至屏幕;                -e script, --expression=script:多點編輯;                -f  /PATH/TO/SED_SCRIPT_FILE                    每行一個編輯命令;                -r, --regexp-extended:支持使用擴展正則表達式;                -i[SUFFIX], --in-place[=SUFFIX]:直接編輯原文件 ;                            ~]# sed  -e  's@^#[[:space:]]*@@'   -e  '/^UUID/d'  /etc/fstab                        地址定界:                (1) 空地址:對全文進行處理;                (2) 單地址:                    #:指定行;                    /pattern/:被此模式所匹配到的每一行;                (3) 地址范圍                    #,#:                    #,+#:                    #,/pat1/                    /pat1/,/pat2/                    $:最后一行;                (4) 步進:~                    1~2:所有奇數行                    2~2:所有偶數行                                編輯命令:                d:刪除;                p:顯示模式空間中的內容;                a  \text:在行后面追加文本“text”,支持使用\n實現多行追加;                 i  \text:在行前面插入文本“text”,支持使用\n實現多行插入;                 c  \text:把匹配到的行替換為此處指定的文本“text”;                w /PATH/TO/SOMEFILE:保存模式空間匹配到的行至指定的文件中;                r  /PATH/FROM/SOMEFILE:讀取指定文件的內容至當前文件被模式匹配到的行后面;文件合并;                =:為模式匹配到的行打印行號;                !:條件取反;                    地址定界!編輯命令;                s///:查找替換,其分隔符可自行指定,常用的有s@@@, s###等;                    替換標記:                        g:全局替換;                        w /PATH/TO/SOMEFILE:將替換成功的結果保存至指定文件中;                        p:顯示替換成功的行;2、刪除/boot/grub/grub.conf文件中所有行的行首的空白字符;    sed 's/^[[:space:]]//g' /boot/grub/grub.conf3、刪除/etc/fstab文件中所有以#開頭,后跟至少一個空白字符的行的行首的#和空白字符;    sed 's/^#[[:space:]]\+//' /etc/fstab4、把/etc/fstab文件的奇數行另存為/tmp/fstab.3;    sed 'n;d' /etc/fstab >>/tmp/fstab.35、echo一個文件路徑給sed命令,取出其基名;進一步地,取出其路徑名;    echo /etc/fstab/ | sed -r 's@^/.*/([^/]+)/?$@\1@g'    echo /etc/fstab/ | sed -r 's@[^/]+/?$@@g'6、統計指定文件中所有行中每個單詞出現的次數;    awk '{for(i=1;i<=NF;i++) {word[$i]++}}END{for(i in word) {print i,word[i]}}' /etc/fstab7、統計當前系統上所有tcp連接的各種狀態的個數;    netstat -tan|awk '/^tcp\>/{state[$NF]++}END{for(i in state){print i,state[i]}}'8、統計指定的web訪問日志中各ip的資源訪問次數:    awk '{ip[$1]++}END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log9、寫一個腳本:定義一個數組,數組元素為/var/log目錄下所有以.log結尾的文件的名字;顯示每個文件的行數;    #!/bin/bash    filelist=$(ls /var/log/*.log)    for line in ${filelist[*]};do            echo $line            wc -l ${line}    done    #!/bin/bash    filelist=$(ls /var/log/*.log)    for i in $(seq 0 $[${#filelist[*]}-1]);do            echo ${filelist[$i]}            wc -l ${filelist[$i]}    done10、寫一個腳本,能從所有同學中隨機挑選一個同學回答問題;進一步地:可接受一個參數,做為要挑選的同學的個數;    #!/bin/bash    #    echo "student Name     student NO"    for i in {1..10};do    stu[$i]=stu_$i    echo "${stu[$i]}             $i"    done    j=$[$RANDOM % 10+1]    echo "Random picked student No:$j"    echo "The student name is :${stu[$j]}"                                可接受一個參數,做為要挑選的同學的個數;    #!/bin/bash    #    read -p "Please Input student Numbers:" num    echo "student Name     student NO"    for ((i=1;i<=$num;i++))do    stu[$i]=stu_$i    echo "${stu[$i]}             $i"    done    j=$[$RANDOM % $num+1]    echo "Random picked student No:$j"    echo "The student name is :${stu[$j]}"11、授權centos用戶可以運行fdisk命令完成磁盤管理,以及使用mkfs或mke2fs實現文件系統管理;    vim /etc/sudoers    centos  ALL=(root)      NOPASSWD:/sbin/fdisk,/sbin/mke2fs,/sbin/mkfs12、授權gentoo用戶可以運行邏輯卷管理的相關命令;    vim /etc/sudoers    gentoo  ALL=(root)      lvm13、基于pam_time.so模塊,限制用戶通過sshd服務遠程登錄只能在工作時間進行;    vim /etc/ssh/sshd_config     UsePAM noUsePAM yes  #開啟Pam模塊認證    vim /etc/pam.d/sshd    /lib64/security/pam_time.so 確保pam_time.so存在     vim /etc/pam.d/sshd    account    required     pam_time.so    vim /etc/security/time.conf    *;*;*;MoTuWeThFr0900-180014、基于pam_listfile.so模塊,定義僅某些用戶,或某些組內的用戶可登錄系統;    [root@localhost ~]# vim /etc/sshd_userlist    root    centos    gentoo    chmod 600 /etc/sshd_userlist    chown root /etc/sshd_userlist    vim /etc/pam.d/sshd     #auth       required     pam_listfile.so item=user sense=allow file=/etc/sshd_userlist onerr=succeed

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

(0)
oranixoranix
上一篇 2017-05-21 20:44
下一篇 2017-05-21 20:53

相關推薦

  • 14 用戶組和權限管理4

    14 用戶組和權限管理4 一、雜項知識整理 1、groups 查看用戶所屬組列表 [user1@localhost ~]$ groups user3 user1 2、文件屬性:-rw-r–r–. 1 root root 0 8月   3 07:56 cgroup.clone_children &…

    Linux干貨 2016-08-04
  • 什么叫Linux

    什么叫linux:     Linux是一套免費使用和自由傳播的類Unix操作系統,它主要用于基于Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟件的版權制約的、全世界都能自由使用的Unix兼容產品。 誰編寫的linux: Linux的出現,最早…

    Linux干貨 2017-03-27
  • sed與vim相關練習

    sed 練習 以行為單位的新增/刪除功能 1將 /etc/passwd 的內容列出并且打印行號,同時,請將第 2~5 行刪除! 2在第二行后(亦即是加在第三行)加上“the is xing line?”字樣! 3在第二行前(亦即是加在第而行)加上“the is xing line?”字樣! 4在第二行后面加入兩行字,例如“the is xing line &…

    Linux干貨 2016-08-10
  • 文件的權限管理

    提問:可執行文件的標準格式是什么?     Linux下面,目標文件、共享對象文件、可執行文件都是使用ELF文件格式來存儲的。程序經過編譯之后會輸出目標文件,然后經過鏈接可以產生可執行文件或者共享對象文件。Linux下面使用的ELF文件和Windows操作系統使用的PE文件都是從Unix系統的COFF文件格式演化來的?!?/p>

    Linux干貨 2016-11-23
  • Linux三劍客之sed命令

    一.sed命令概述 Stream EDitor ,行編輯器 sed是一種流編輯器,它一次處理一行內容.處理時,把當前處理的行存儲在臨時緩沖區中,稱為”模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕.接著處理下一行,這樣不斷重復,直到文件末尾.文件內容并沒有改變除非你使用重定向存儲輸出.sed主…

    Linux干貨 2016-08-15
  • 文件共享服務之SAMBA

    文件共享服務之SAMBA 文件共享服務之SAMBA 一、samba出現的意義 二、samba協議描述 三、samba為客戶端的實現 四、samba為服務端的實現 五、使用圖形界面配置SAMBA 一、samba出現的意義 首先nfs實現系統文件掛載linux與linux之間,linux到windows之間實現的并不是那么理想 FTP可以實現linux和wind…

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