<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-314  評論-209  文章-0  trackbacks-0

    這段時(shí)間學(xué)習(xí)shell整理的筆記

    第1章 文件安全與權(quán)限
     顯示文件
        ls -l

    d   目錄。
    l   符號鏈接(指向另一個(gè)文件
    s   套接字文件。
    b   塊設(shè)備文件。
    c   字符設(shè)備文件。
    p   命名管道文件。

      創(chuàng)建一個(gè)文件:
         touch myfile

      更改文件權(quán)限:
         chmod [who] operator [permission] filenam
          who: u g o a
          operator:+ - =
          operator: r(4) w(2) x(1)

         chown -R owner file
         chgrp groupname file

         id 自己信息
         umask 002
         ln [-s] source_path target_path
           ln -s /usr/opt/monitor/regstar/reg.log /var/adm/logs/monitor.log

       $ H O M E中查找文件名符合* . t x t的文件
           $ find ~ -name "*.txt" -print
       $ H O M E中查找文件名以一個(gè)大寫字母開頭的文件
           $ find . -name "[A-Z]*" -print
       /etc目錄中查找文件名以host開頭的文件
           $ find /etc -name "host*" -print
       查找文件權(quán)限位為 7 5 5的文件
           $ find . -perm 755 -print
       在/apps目錄下查找文件,但不希望在/ a p p s / b i n目錄下查找
           $ find /apps -name "/apps/bin" -prune -o -print
       在 $ H O M E目錄中查找文件屬主為d a v e的文件
           $ find ~ -user dave -print
       在/apps目錄下查找屬于a c c t s用戶組的文件
           $ find /apps -group accts -print
       查找沒有有效所屬用戶組的所有文件
           $ fine/-nogroup-print
       查找屬主帳戶已經(jīng)被刪除的文件(在/ e t c / p a s s w d文件中沒有有效帳戶的文件)
           $ find /home -nouser -print
       查找更改時(shí)間在5日以內(nèi)的文件
           $ find / -mtime -5 -print
       在/var/ a d m目錄下查找更改時(shí)間在3日以前的文件
           $ find /var/adm -mtime +3 -print
       假設(shè)現(xiàn)在的時(shí)間是2 3 : 4 0,希望查找更改時(shí)間在兩個(gè)小時(shí)以內(nèi)的文件
           $ touch -t 03111750 file
           $ ls -l file
           $ find . -newer file -print
       為了在/ e t c目錄下查找所有的符號鏈接文件
           $ find /etc -type l -print
       為了在當(dāng)前目錄下查找除目錄以外的所有類型的文件
           $ find . ! -type d -print
       查找文件長度大于1 M字節(jié)的文件
           $ find . -size +1000000c -print
       查找文件長度恰好為1 0 0字節(jié)的文件
           $ find /home/apache -size 100c -print
       查找長度超過1 0塊的文件(一塊等于5 1 2字節(jié))
           $ find . -size +10 -print
       在當(dāng)前的文件系統(tǒng)中查找文件(不進(jìn)入其他文件系統(tǒng))
           $ find . -name "*.XC" -mount -print
       首先匹配所有的文件然后再進(jìn)入子目錄中查找
           $ find / -name "CON.FILE" -depth -print

      crontab 舉例:  *(分鐘) *(小時(shí)) *(每月的幾日) *(月) *(每周星期幾)

    第1列 分鐘1~5 9
    第2列 小時(shí)1~2 3(0表示子夜)
    第3列 日1~3 1
    第4列 月1~1 2
    第5列 星期0~6(0表示星期天)
    第6列 要運(yùn)行的命令

    -u   用戶名。
    -e   編輯c r o n t a b文件。
    -l   列出c r o n t a b文件中的內(nèi)容。
    -r   刪除c r o n t a b文件。

         表示每晚的2 1 : 3 0運(yùn)行/ a p p s / b i n目錄下的c l e a n u p . s h
            30 21* * * /apps/bin/cleanup.sh
         每月1、1 0、2 2日的4 : 4 5運(yùn)行/ a p p s / b i n目錄下的b a c k u p . s h
            45 4 1,10,22 * * /apps/bin/backup.sh
         在每天1 8 : 0 0至2 3 : 0 0之間每隔3 0分鐘運(yùn)行/ a p p s / b i n目錄下的d b c h e c k . sh
            0,30 18-23 * * * /apps/bin/dbcheck.sh
         表示每星期六的11 : 0 0 p m運(yùn)行/ a p p s / b i n目錄下的q t r e n d . s h
            0 23 * * 6 /apps/bin/qtrend.sh

         linux系統(tǒng)重起cron服務(wù)的方法為:/sbin/service crond  restart
         aix系統(tǒng)重起cron服務(wù)的方法為:kill -9 pid(cron服務(wù)),cron服務(wù)后自動重起。

     創(chuàng)建一個(gè)新的crontab文件:
         在 $ H O M E目錄下的. p r o f i l e文件
            加入  EDITOR=vi; export EDITOR
            vi davecron                    建一個(gè)新的crontab文件    
     $ crontab davecron             提交crontab

     如果你正在運(yùn)行一個(gè)進(jìn)程,而且你覺得在退出帳戶時(shí)該進(jìn)程還不會結(jié)束,那么可以使用n o h u p命令
          nohup command &

     echo string

     定義變量:
        read name
          輸入hello
        echo $name
     
    輸入文件—標(biāo)準(zhǔn)輸入 0
    輸出文件—標(biāo)準(zhǔn)輸出 1
    錯(cuò)誤輸出文件—標(biāo)準(zhǔn)錯(cuò)誤 2

    command > filename 把把標(biāo)準(zhǔn)輸出重定向到一個(gè)新文件中
    command > filename 2>&1 把把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤一起重定向到一個(gè)文件中
    command 2 > filename 把把標(biāo)準(zhǔn)錯(cuò)誤重定向到一個(gè)文件中
    command >> filename 2>&1 把把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤一起重定向到一個(gè)文件中 (追加)

    &&左邊的命令(命令1)返回真(即返回0,成功被執(zhí)行后,&&右邊的命令(命令2)才能夠被執(zhí)行
       mv who.ini awho.ini && echo "it's success

    sort file.txt 對文件排序
    --------------------------------------------------

    正則表達(dá)式介紹:
    ^ 只只匹配行首
    $ 只只匹配行尾
    * 只一個(gè)單字符后緊跟*,匹配0個(gè)或多個(gè)此單字符
    [ ] 只匹配[ ]內(nèi)字符。可以是一個(gè)單字符,也可以是字符序列。可以使用 -
    表示[ ]內(nèi)字符序列范圍,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ]
    \ 只用來屏蔽一個(gè)元字符的特殊含義。因?yàn)橛袝r(shí)在 s h e l l中一些元字符有
    特殊含義。\可以使其失去應(yīng)有意義
    . 只匹配任意單字符
    pattern \ { n \ } 只用來匹配前面pattern出現(xiàn)次數(shù)。n為次數(shù)
    pattern \ { n,\ } m 只含義同上,但次數(shù)最少為n
    pattern \ { n,m \ } 只含義同上,但pattern出現(xiàn)次數(shù)在n與m之間

     匹配以單詞t r o u b l e結(jié)尾的所有行
        t r o u b l e $
     要匹配所有空行
        ^ $   
        ^ . $
     使用\屏蔽一個(gè)特殊字符的含義
     下列字符可以認(rèn)為是特殊字符
         $ . ' " * [ ] ^ | () \ + ?

     注意^符號的使用,當(dāng)直接用在第一個(gè)括號里,意指否定或不匹配括號里內(nèi)容
        [ ^ 0 - 9 ]   匹配任一非數(shù)字型字符

     匹配字母A出現(xiàn)兩次,并以B結(jié)尾
        A \ { 2 \ } B
     匹配A至少4次  
        A \ { 4 , \ } B
     A出現(xiàn)2次到4次之間
        A \ { 2 , 4 \ } B

     grep 查匹配的字符

    -c   只輸出匹配行的計(jì)數(shù)。
    -i   不區(qū)分大小寫(只適用于單字符)。
    -h   查詢多文件時(shí)不顯示文件名。
    -l   查詢多文件時(shí)只輸出包含匹配字符的文件名。
    -n   顯示匹配行及行號。
    -s   不顯示不存在或無匹配文本的錯(cuò)誤信息。
    -v   顯示不包含匹配文本的所有行。

     所有. d o c文件中查找字符串“s o r t”
         $ grep "sort" *.doc
     精確匹配
         $ grep "sort<tab>" *.doc
     抽取包含S e p t的所有月份,不管其大小寫,并且此行包含字符串 4 8 3
         $ grep "[Ss]ept' data.f | grep 483
     對一個(gè)字符串使用grep
         str="hello every one"
         echo $str | grep "one"

     測試是否已設(shè)置或初始化變量。如果未設(shè)置或初始化,就可以使用另一值:
         $ { v a r i a b l e : - v a l u e }

    $ cu='chen'
    $ echo "the ask is ${cu:-hi} today" (如果未設(shè)置或初始化,就可以使用hi)

    readonly 變量  變量設(shè)置為只讀

    設(shè)置環(huán)境變量:
       VARIABLE-NAME = v a l u e
       Export VARIABLE-NAME
    pg 分頁顯示
       變量 ARIABLE-NAME ='chen' 輸出'chen'
       變量 ARIABLE-NAME ="chen" 輸出 chen

    打印當(dāng)前系統(tǒng)上用戶數(shù)目:
       echo "ther are 'who | wc -l' users on the system "


    test測試:
    - d 目錄             - s 文件長度大于0、非空
    - f 正規(guī)文件         - w 可寫
    - L 符號連接         - u 文件有s u i d位設(shè)置
    - r 可讀             - x 可執(zhí)行

    test -r tt.txt
    echo $?   (正確顯示0,錯(cuò)誤顯示1)


    確定當(dāng)前的運(yùn)行級別:
     $ who -r
     $ runlevel
    查看doc_part文件是否被打開,有哪些進(jìn)程在使用:
     $ fuser -m /root/doc_part
    該命令可以顯示當(dāng)前所使用的登錄用戶名
      $ logname
    可以使用tty來報(bào)告所連接的設(shè)備或終端
      $tty
    記錄當(dāng)前會話
      $script. 文件名
      exit
    意味著系統(tǒng)在10秒鐘之內(nèi)不進(jìn)行任何操作
      $sleep 10 
    可以看二進(jìn)制文件中所包含的文本
      $strings 文件名
    whereis命令能夠給出系統(tǒng)命令的二進(jìn)制文件及其在線手冊的路徑
      $whereis  命令
    tr用法(字符轉(zhuǎn)換)
      # tr -s "[a-z]" < a.txt >b.txt   a.txt的字符有重復(fù)的小寫轉(zhuǎn)為b.txt文件
      # cat da|tr -s "[a-z]"

      # tr -s "[\012]" < a.txt  去掉空行
      # tr -s "[\n]" < a.txt
      # tr -s "[\015\032]" "[\012*]"  < input_file  一般的dos到unix轉(zhuǎn)換命令
      # echo "may May"|tr "[a-z]" "[A-Z]"    小寫轉(zhuǎn)大小
      # cat a.txt|tr "[a-z]" "[A-Z]" >b.txt
      # cat a.txt|tr "[A-Z]" "[a-z]" > b.txt 大小轉(zhuǎn)小寫
      # tr -cs "[a-z][A-Z]" "[\012*]" < a.txt  只保留大小字母,并分行

      sort分類:
      # sort a.txt > b.txt
      # uniq a.txt > b.txt 消除重復(fù)的行(只在行連續(xù)重復(fù)時(shí)才有效)
        # uniq -u a.txt   只顯示不重復(fù)行
        # uniq -d a.txt   只顯示有重復(fù)數(shù)據(jù)行
      join(將來自兩個(gè)分類文本文件的行連在一起)
      # join a.txt b.txt
      # join -a1 a.txt b.txt      當(dāng)有不匹配時(shí),只顯示a.txt
      # join -a1 -a2 a.txt b.txt  當(dāng)有不匹配時(shí),都顯示出來
      split用來將大文件分割成小文件(將文件按每個(gè)最多1000行分割)
      # split 文件
      # split -100 文件  指定每個(gè)文件100行分割
      paste按行將不同文件行信息放在一行
      # ls | paste -d ""  以一列格式顯示輸出
      # paste a.txt b.txt
      cut用來從標(biāo)準(zhǔn)輸入或文本文件中剪切列或
      # cut -c 1-3 c.txt          顯示每行從開頭算起1到3的字母
      # cut -c 1-2,5-10 c.txt     顯示從1到2,還有5到10的字母
      # cut -f 1,3 c.txt          顯示1和3欄的字符(使用tab分隔)

      sed用法:文本編輯器(強(qiáng)大的文本過濾工具)
      刪除:d命令
         $ sed '2d' example-----刪除example文件的第二行。
         $ sed '2,$d' example-----刪除example文件的第二行到末尾所有行。
         $ sed '$d' example-----刪除example文件的最后一行。
         $ sed '/test/'d example-----刪除example文件所有包含test的行。
      替換:s命令
         $ sed 's/test/mytest/g' example-----在整行范圍內(nèi)把test替換為mytest。如果沒有g(shù)標(biāo)記,則只有每行第一個(gè)匹配的test被替換成mytest
         $ sed 's/^192.168.0.1/&localhost/' example-----&符號表示替換換字符串中被找到的部份。所有以192.168.0.1開頭的行都會被替換成它自已加 localhost,變成192.168.0.1localhost
     寫入文件:w命令
         $ sed -n '/test/w file' example  在example中所有包含test的行都被寫入file里
         # sed '/^kai/a\\  this is a example' b.txt   " this is a example"被插入到以kai開頭后面的新一行
         # sed '/^kai/i\\  this is a example' b.txt   " this is a example"被插入到以kai開頭后面的前一行

    posted on 2010-09-17 15:43 xzc 閱讀(223) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 91亚洲国产在人线播放午夜| 亚洲男人的天堂www| 免费成人高清在线视频| 国产产在线精品亚洲AAVV| 亚洲AV无码久久久久网站蜜桃| 亚洲av无码一区二区三区网站| 亚洲v国产v天堂a无码久久| 国产午夜鲁丝片AV无码免费| 国产精品免费观看| 香蕉97超级碰碰碰免费公| 国产成人久久AV免费| 日韩视频在线观看免费| 国产成人高清精品免费观看| 亚洲阿v天堂在线2017免费| 日韩在线视频线视频免费网站| 免费人成视频在线播放| 一级做a爱过程免费视频高清| 色婷婷综合缴情综免费观看 | 国产午夜精品理论片免费观看| 久久久久久噜噜精品免费直播 | 国产福利电影一区二区三区,亚洲国模精品一区| 无码国产精品一区二区免费式芒果 | 亚洲成av人无码亚洲成av人| 亚洲冬月枫中文字幕在线看| 亚洲人成日本在线观看| 亚洲色大成网站www| 羞羞视频免费网站含羞草| a级日本高清免费看| 国产免费不卡视频| 亚洲国产精品一区二区九九| 久久精品亚洲综合| 亚洲AV无码一区二区三区电影| 一级毛片免费毛片毛片| 青青青免费国产在线视频小草| 男女啪啪永久免费观看网站| 久久91亚洲精品中文字幕| 亚洲AV日韩综合一区尤物| 免费精品一区二区三区第35| 永久黄网站色视频免费观看| 久久精品7亚洲午夜a| 亚洲成熟丰满熟妇高潮XXXXX|