<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

    這段時間學習shell整理的筆記

    第1章 文件安全與權限
     顯示文件
        ls -l

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

      創建一個文件:
         touch myfile

      更改文件權限:
         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中查找文件名以一個大寫字母開頭的文件
           $ find . -name "[A-Z]*" -print
       /etc目錄中查找文件名以host開頭的文件
           $ find /etc -name "host*" -print
       查找文件權限位為 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
       查找屬主帳戶已經被刪除的文件(在/ e t c / p a s s w d文件中沒有有效帳戶的文件)
           $ find /home -nouser -print
       查找更改時間在5日以內的文件
           $ find / -mtime -5 -print
       在/var/ a d m目錄下查找更改時間在3日以前的文件
           $ find /var/adm -mtime +3 -print
       假設現在的時間是2 3 : 4 0,希望查找更改時間在兩個小時以內的文件
           $ touch -t 03111750 file
           $ ls -l file
           $ find . -newer file -print
       為了在/ e t c目錄下查找所有的符號鏈接文件
           $ find /etc -type l -print
       為了在當前目錄下查找除目錄以外的所有類型的文件
           $ find . ! -type d -print
       查找文件長度大于1 M字節的文件
           $ find . -size +1000000c -print
       查找文件長度恰好為1 0 0字節的文件
           $ find /home/apache -size 100c -print
       查找長度超過1 0塊的文件(一塊等于5 1 2字節)
           $ find . -size +10 -print
       在當前的文件系統中查找文件(不進入其他文件系統)
           $ find . -name "*.XC" -mount -print
       首先匹配所有的文件然后再進入子目錄中查找
           $ find / -name "CON.FILE" -depth -print

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

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

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

         表示每晚的2 1 : 3 0運行/ 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運行/ 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分鐘運行/ 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運行/ a p p s / b i n目錄下的q t r e n d . s h
            0 23 * * 6 /apps/bin/qtrend.sh

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

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

     如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那么可以使用n o h u p命令
          nohup command &

     echo string

     定義變量:
        read name
          輸入hello
        echo $name
     
    輸入文件—標準輸入 0
    輸出文件—標準輸出 1
    錯誤輸出文件—標準錯誤 2

    command > filename 把把標準輸出重定向到一個新文件中
    command > filename 2>&1 把把標準輸出和標準錯誤一起重定向到一個文件中
    command 2 > filename 把把標準錯誤重定向到一個文件中
    command >> filename 2>&1 把把標準輸出和標準錯誤一起重定向到一個文件中 (追加)

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

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

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

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

     注意^符號的使用,當直接用在第一個括號里,意指否定或不匹配括號里內容
        [ ^ 0 - 9 ]   匹配任一非數字型字符

     匹配字母A出現兩次,并以B結尾
        A \ { 2 \ } B
     匹配A至少4次  
        A \ { 4 , \ } B
     A出現2次到4次之間
        A \ { 2 , 4 \ } B

     grep 查匹配的字符

    -c   只輸出匹配行的計數。
    -i   不區分大小寫(只適用于單字符)。
    -h   查詢多文件時不顯示文件名。
    -l   查詢多文件時只輸出包含匹配字符的文件名。
    -n   顯示匹配行及行號。
    -s   不顯示不存在或無匹配文本的錯誤信息。
    -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
     對一個字符串使用grep
         str="hello every one"
         echo $str | grep "one"

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

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

    readonly 變量  變量設置為只讀

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

    打印當前系統上用戶數目:
       echo "ther are 'who | wc -l' users on the system "


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

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


    確定當前的運行級別:
     $ who -r
     $ runlevel
    查看doc_part文件是否被打開,有哪些進程在使用:
     $ fuser -m /root/doc_part
    該命令可以顯示當前所使用的登錄用戶名
      $ logname
    可以使用tty來報告所連接的設備或終端
      $tty
    記錄當前會話
      $script. 文件名
      exit
    意味著系統在10秒鐘之內不進行任何操作
      $sleep 10 
    可以看二進制文件中所包含的文本
      $strings 文件名
    whereis命令能夠給出系統命令的二進制文件及其在線手冊的路徑
      $whereis  命令
    tr用法(字符轉換)
      # tr -s "[a-z]" < a.txt >b.txt   a.txt的字符有重復的小寫轉為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轉換命令
      # echo "may May"|tr "[a-z]" "[A-Z]"    小寫轉大小
      # cat a.txt|tr "[a-z]" "[A-Z]" >b.txt
      # cat a.txt|tr "[A-Z]" "[a-z]" > b.txt 大小轉小寫
      # tr -cs "[a-z][A-Z]" "[\012*]" < a.txt  只保留大小字母,并分行

      sort分類:
      # sort a.txt > b.txt
      # uniq a.txt > b.txt 消除重復的行(只在行連續重復時才有效)
        # uniq -u a.txt   只顯示不重復行
        # uniq -d a.txt   只顯示有重復數據行
      join(將來自兩個分類文本文件的行連在一起)
      # join a.txt b.txt
      # join -a1 a.txt b.txt      當有不匹配時,只顯示a.txt
      # join -a1 -a2 a.txt b.txt  當有不匹配時,都顯示出來
      split用來將大文件分割成小文件(將文件按每個最多1000行分割)
      # split 文件
      # split -100 文件  指定每個文件100行分割
      paste按行將不同文件行信息放在一行
      # ls | paste -d ""  以一列格式顯示輸出
      # paste a.txt b.txt
      cut用來從標準輸入或文本文件中剪切列或
      # 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用法:文本編輯器(強大的文本過濾工具)
      刪除: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-----在整行范圍內把test替換為mytest。如果沒有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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 校园亚洲春色另类小说合集| 国产一精品一av一免费爽爽| 精品亚洲一区二区三区在线观看 | 日韩免费高清大片在线| 亚洲av永久无码精品三区在线4| 免费亚洲视频在线观看| 国产成人精品一区二区三区免费| 亚洲一线产品二线产品| 久久亚洲中文字幕精品一区| 免费不卡视频一卡二卡| 久久免费99精品国产自在现线| 亚洲乱码一二三四五六区| 久久久久国产成人精品亚洲午夜| www.免费在线观看| 一级毛片免费播放视频| 亚洲AV无码成人专区| 国产V亚洲V天堂无码久久久| 夫妻免费无码V看片| 免费人成毛片动漫在线播放| 美女又黄又免费的视频| 亚洲精品综合久久中文字幕 | 久久亚洲春色中文字幕久久久| 成人免费视频国产| 国产精品成人免费福利| 免费观看一区二区三区| 在线观看亚洲免费| 精品国产日韩久久亚洲| 久久久无码精品亚洲日韩按摩 | 色偷偷女男人的天堂亚洲网| 亚洲人成人网站色www| 国产又黄又爽又猛的免费视频播放| 最近新韩国日本免费观看| 国产线视频精品免费观看视频| 亚洲另类自拍丝袜第五页| 亚洲欧洲国产成人精品| 亚洲国产综合精品中文第一区| 亚洲精品无码成人片在线观看| 黄网址在线永久免费观看| 免费观看AV片在线播放| 亚洲精品在线免费观看| 久久精品国产大片免费观看|