第二周

#第二周blog 作業

第二周blog 作業

  • 1

目錄管理命令:mkdir、rmdir

mkdir命令

mkdir - make directories
     mkdir [OPTION]... DIRECTORY...
           -P:子目錄創建完,再創建父目錄,遞歸創建
           -m=MODE:設置文件權限
           -v:顯示創建過程
example:
# mkdir /tmp/sadan
在/tmp目錄下創建sadan目錄
# mkdir -Pv /tmp/a/b/c/d
在/tmp目錄下逐步創建d、c、b、a目錄并顯示過程

rmdir命令

rmdir - remove empty directories(刪除空目錄)
    rmdir [OPTION]... DIRECTORY...
          -P:遞歸刪除
          -v:顯示執行過程
example:
# rmdir /tmp/sadan
刪除/tmp下的sadan目錄
# rmdir -P /tmp/a/b/c/d
刪除/tmp下a、b、c、d目錄并顯示過程

注:rmdir只能刪除空目錄,目錄中有文件時,無法進行刪除。

文件管理命令:cp、mv、rm

cp命令

   cp - copy files and directories
   復制文件或目錄
   cp [OPTION]... [-T] SOURCE DEST
   cp [OPTION]... SOURCE... DIRECTORY
   cp [OPTION]... -t DIRECTORY SOURCE...

   當目地為目錄:
   將文件復制到目錄文件下

   當目地為文件:
   1 文件不能為目錄
   2 只能是單個文件
   文件復制到文件時,既是覆蓋操作(內容改變,文件名不變)

      -P:復制鏈接文件時,不復制鏈接文件的源文件
      --preserve:指定復制的屬性(默認為mode,ownership,timestamps)
      -a:用于歸檔
      -L:復制鏈接文件時,直接復制其源文件,但名稱為鏈接文件名
      -r,R:遞歸復制
      -i:交互式

      example:
      # cp  /etc/passwd /tmp
      將passwd文件復制到/tmp目錄
      # cp -r /etc/ /tmp
      將/etc目錄復制到/tmp目錄中
      # cp -P /dev/cdrom /tmp
      復制鏈接文件
      # cp -L /dev/cdrom /tmp
      復制鏈接文件的目標文件
      # cp /etc/passwd /tmp/sadan
      cp: overwrite `/tmp/sadan'? y 
      覆蓋文件

mv命令

  mv - move (rename) files
  移動或重命名文件
    mv [OPTION]... [-T] SOURCE DEST
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE...
        -i:交互式
        -f:強制
  當mv對文件使用沒有移動其位置時,為修改名稱操作。

    example:
    # mv /etc/fstab /etc/fstab_mv
    修改/etc目錄下fstab文件名為fstab_mv
    # mv /etc/fstab /tmp 
    將/etc/fstab文件移動到/tmp目錄下

rm命令

  rm - remove files or directories
  刪除文件或目錄
    rm [OPTION]... FILE...
        -r:遞歸操作
        -f:強制
        -i:交互式

    example:
    # rm -i /etc/fstab
    rm: remove regular file `/etc/fstab'? 
    交互式刪除/etc/fstab文件,輸入y或n執行操作
    # rm -f /etc/fstab
    強勢刪除/etc/fstab文件且不提示
    # rm -rf /etc
    直接刪除/etc目錄以及子文件

文件查看命令:cat、tac、head、tail、more、less

cat命令

cat - concatenate files and print on the standard output
連接文件并輸出到標準輸出
  cat [OPTION]... [FILE]...
      -n:顯示行號
      -E:用$顯示換行符號

example:
# cat -n /etc/fstab /etc/hosts
同時將兩文件顯示到終端并顯示行號
# cat -E /etc/hosts
將/etc/hosts文件內容輸出到終端并用$來顯示換行符號

tac命令

tac - concatenate and print files in reverse
相反輸出文件內容
    tac [OPTION]... [FILE]...

example:
# tac /etc/hosts
顯示相反輸出的內容

head命令

head - output the first part of files
輸出文件最開始的部分
    head [OPTION]... [FILE]...
          -n #:顯示多少行(默認10)

    example:
    # head /etc/passwd
    顯示passwd文件前10行信息
    # head -n 5 /etc/passwd
    顯示passwd文件前5行信息

tail命令

 tail - output the last part of files
 輸出文件最后的部分
     tail [OPTION]... [FILE]...
           -n #:顯示多少行(默認10)
           -f:跟隨文件更新

     example:
     # tail  /etc/passwd
     顯示passwd文件最后10行
     # tail -n 5 /etc/passwd
     顯示passwd文件最后5行
     # tail -f /etc/passwd   //tty1
     # echo "archlinux" >> /etc/passwd    //tty2
     兩個不同終端執行命令,一直查看tty1終端的界面,發現終端多了一行archlinux。

more命令

more - file perusal filter for crt viewing
逐頁閱讀文件(無法回看)
    more  [options] file...

    example:
    # more /etc/passwd 
    查看passwd文件

less命令

less - opposite of more
more的對立-(與more相似是分頁瀏覽,但是允許回看)
    less [options] file...

    example:
    # less /etc/passwd
    查看passwd文件
  • 2

    bash的命令執行狀態保存在$?中,使用echo $? 就能夠顯示上一條命令的狀態返回值。
        狀態返回值范圍:
                       0:成功
                       1-255:失敗

     bash的命令行展開
     ~:自動到用戶家目錄
     {}:花括號中的所有元素依次展開
     example:
         # touch /tmp/{a,b}_{c,d}
     其結果為 a_c,a_d,b_c,b_d
  • 3

    (1) mkdir /tmp/{a,b}_{c,d}
     (2) mkdir -P /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

  • 4

元數據包含:權限,屬主屬組,時間戳,文件大小,文件類型等文件屬性

使用stat命令查看
如:
# stat /etc/passwd

修改文件時間戳使用touch命令
   touch [options] file
         -a:僅修改訪問文件的時間
         -m:僅修改修改文件的時間
         -t STAMP:指定時間代替當前時間([[CC]YY]MMDDhhmm[.ss])

   example:
   # touch -a -t 201612080038.38 /etc/passwd
   Access: 2016-12-08 00:38:38.000000000 +0800
   修改其訪問時間為指定時間
   # touch -m -t 201612080038.38 /etc/passwd
   Modify: 2016-12-08 00:38:38.000000000 +0800
   修改其修改時間為指定時間
  • 5

定義別名的命令是alias

  alias-Define or display aliases
  定義或顯示別名
        alias [-p] [name[=value] ... ]
example:
    # alias [-p]
    顯示所有定義的別名
    # alias rr='rm -rf'
    將rm -rf 命令執行定義為rr

命令引用:
     ``: `date +"%y-%m-%d"`
     $ : $(date +"%y-%m-%d")
 example:
     # mkdir /tmp/sadan-$(date +"%y-%m-%d")
     # ls
     sadan-16-12-01
  • 6

        ls -d /var/l*[0-9][^0-9]

  • 7
        ls -d /etc/[0-9]*[^0-9]

  • 8
        ls -d /etc/[^[:alpha:]][[:alpha:]]*

  • 9
        mkdir /tmp/tfile-$(date +”%Y-%m-%d-%H-%M-%S”)

  • 10
        cp -r /etc/p*[^0-9] /tmp/mytest1

  • 11
        cp -r /etc/*.d /tmp/mytest2

  • 12
        cp -r /etc/[lmn]*.conf /tmp/mytest3

find詳解

  • find命令用來做什么?

  • find命令作用機制

  • find命令的優缺點

  • find命令的使用

find命令用來做什么?

首先查看man文檔中find命令的介紹,search for files in a directory hierarchy,在目錄層級中查找文件。
由其意可知道該命令用來查找文件。

find命令作用機制

那么find命令是如何查找文件的呢?
find命令使用的是遍歷查詢(逐個查找)的方法,在各個層級遍歷,最終找到目標文件。

find命令的優缺點

find命令有許多的條件限定,然后也是遍歷當前文件系統所查詢,因此有以下各優缺點:
    優:
        1 查找精確
        2 實時查找
    缺:
        1 消耗資源,查詢所需時間稍久

### find命令的使用

格式:    find [path...] [options]  [tests] [actions]
                path:查找路徑;默認為當前目錄
                options:選項,find的各類選項
                tests:匹配文本條件
                actions:查找之后find對查詢到的結果的執行動作


                options:
                     -maxdepth levels:查找的路徑最大層級深度
                     -mindepth levels:查找的路徑最小層級深度

                     example:
                        查看/etc下的一級子文件
                        # find /etc -maxdepth 1


                tests:
                    文件名
                        -iname pattern:忽略大小寫
                        -name pattern:根據文件名查找
                    此處的pattern是globbing匹配的標準

                    example:
                    查詢以s或S開頭的文件                        
                    # find /etc -iname s*
                        -regex pattern:基于正則表達式模式查找文件,匹配的是整個路徑,而不是文件名

                    example:
                     根據匹配條件匹配路徑
                     # find /etc  -regex '.*ts'


                    權限
                        權限分三類:u、g、o
                        -perm [-|/]mode
                              mode:精確查詢,完全符合mode的文件
                                    (如:222,匹配到的必須是222)
                             /mode: 三類權限中一類中達到mode標準即可
                                    (如:222,匹配到的可以是121、112、211、222等)
                             -mode: 三類權限全部要達到標準
                                    (如:222,匹配到的權限可以是222、333、444等等)

                    example:
                        查找/var目錄下,所有用戶都是只讀權限的文件
                        # find /var -perm 222
                        查找/var目錄下,至少有一類用戶有讀權限的文件
                        # find /var -perm -222
                        查找/var目錄下,所有用戶有讀權限的文件
                        # find /var -perm /222


                    文件類型
                        -type #:
                        b:block,塊設備文件
                        c:character,字符設備文件
                        d:directory,目錄
                        p:pipe,管道
                        f:regular file,文件
                        l:symbolic link,符號鏈接
                        s:socket,套接字文件
                    example:
                        查找/dev目錄下的字符設備
                        # find /dev -type c


                    文件屬主屬組:
                        -uid n:查找屬主為指定uid的文件
                        -gid n:查找屬組為指定gid的文件
                        -nouser:查找沒有屬主的文件
                        -nogroup:查找沒有屬組的文件
                        -user username:查找指定屬主名的文件
                        -group groupname:查找指定屬組名的文件
                    example:
                        查找/etc目錄下uid為100的用戶所擁有的文件
                        # find /etc -uid 100
                        查找/etc目錄下沒有屬主的文件
                        # find /etc -nouser
                        查找/etc目錄下屬主名為sadan的文件
                        # find /etc -user sadan


                    以下參數代表意義:
                    +n:大于n
                    -n:小于n
                     n:等于n
                    時間戳:
                        按天查詢:
                            -atime [+|-]n
                            -mtime [+|-]n
                            -ctime [+|-]n
                        按分鐘查詢:
                             -amin [+|-]n
                             -mmin [+|-]n
                             -cmin [+|-]n
                    example:
                        查找/var目錄下,三天前訪問過的文件
                        # find /var -atime +3
                        查找/var目錄下,五天內修改過的文件
                        # find /var -mtime -3
                        查找/var目錄下, 昨天這個時間移動過的文件
                        # find /var -ctime 1
                        查找/var目錄下,一分鐘以前訪問過的文件
                        # find /var -amin +1

                    文件大小:
                        -size [+|-]n[cwbkMG]
                    example:
                        查找/etc目錄下大于7k的文件
                        # find /etc -size +7k
                        查找/etc目錄下小于10M的文件
                        find /etc -size -10M
                        查找/etc目錄下等于15b的文件
                        find /etc -size 15b


                actions:
                     -delete:刪除查找到文件
                     -ls:相當ls -l命令,顯示文件長格式信息
                     -fls file:將查找文件顯示長格式并保存到指定文件中
                     -ok COMMAND {} \;    需要用戶進行確定之后再執行指定操作
                     -exec COMMAND {} \; 直接執行指定操作
                     其{}代表的是前面匹配到的內容

                條件關系:
                ! | -not : ! expr2; 非     
                -o: expr1 -a expr2; 或     
                -a: expr1 -a expr2; 與
                ()需要加\ 如:\(\)

                example:
                    查找/etc下,前天到今天為止訪問過的大小為4k的文件,并刪除
                    find /etc -atime -2 -a -size 4k -delete
                    查找/var目錄下屬主為root,且屬組為mail的所有文件,并顯示長格式信息
                    find /var -user root -a -group mail -ls
                    查找/var目錄下屬主不為root,且屬組不為mail的所有文件,并將查找到的文件保存到/tmp目錄中
                    find /var !\(-user root -o -group mail\) -fls /tmp
                    查找/etc目錄下大于1M且類型為普通文件,并讓交互式刪除
                    find /etc -size +1M -a -type f -ok rm -rf {} \;
                    查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限,將查詢到的文件改名為*.new
                    find /etc/init.d -perm -111  -a -perm 002 -exec mv {} {}.new \;

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

(0)
N25_sadanN25_sadan
上一篇 2016-12-12 00:57
下一篇 2016-12-12 02:45

相關推薦

  • 用keepalived高可用nginx

    單主模型 環境四個虛擬機 upstream server:node1:172.16.100.6 ? ? ? ? CeotOS 6 upstream server:node3:172.16.100.69 ? ? ? ? CeotOS 7 節點1:172.16.100.67 ? ? ? ? ? ? ? ? ? ? ? ?CeotOS 7 節點2:node2:17…

    2017-10-15
  • 馬哥教育網絡班21期+第5周課程練習

    1.顯示/boot/grub/grub.conf中至少以一個空白字符開頭的行 [root@itop ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2.顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面至少一個空白字符,而后又有至少一個非空…

    Linux干貨 2016-08-08
  • Mairadb

    Mairadb 編譯安裝Mairadb數據 先下載mariadb的軟件包: 將軟件包解壓縮到/usr/local目錄下 ]# tar xf mariadb-5.5.32-linux-x86_64.tar.gz -C /usr/local/ 創建連接 ]# ln -sv maria…

    Linux干貨 2016-10-17
  • 22期第七周課堂練習

    1、創建一個10G分區,并格式為ext4文件系統;        (1) 要求其block大小為2048, 預留空間百分比為2,   卷標為MYDATA, 默認掛載屬性包含acl;        (2)   掛載至/data/mydata目錄,要求掛載時禁止程…

    Linux干貨 2016-10-09
  • Linux的主要發行版及區別

    Linux的主要發行版介紹 主流的發行版 Linux至上世紀90年代基于Unix而誕生,至今其發行版有幾百種之多,但其主流的發行版有三個系列。 Debian系 Ubuntu屬于Debinan系。 Redhat系CentOS屬于Redhat系。Slackware系SUSE Linux即屬于Slackware系。 主要區別 軟件包管…

    Linux干貨 2016-10-29
  • varnish詳解

      第一章    http緩存的基礎概念 1、程序運行時具有局部性特征 時間局部性緩存的數據往往被打有時間綴,具有定期失效的特征,過期后會從源服務器檢驗請求驗證是否需要重新拉取數據,某數據被訪問后,該數據往往會再次在短時間內被訪問到。 空間局部性被訪問數據的周邊數據被訪問的概率會比其它常規數據訪問大很多,所以這些訪問數…

    Linux干貨 2016-11-15

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 17:09

    贊,寫的非常詳細~繼續加油~

欧美性久久久久