馬哥教育網絡班22期+第2周課程練習

1、Linux上文件/目錄相關命令有哪些?

  • 1)目錄管理類命令:mkdir、rmdir

    • (1)mkdir:make directorise 創建文件夾

       使用格式:
           mkdir [OPTION]... DIRECTORY...
           常用選項:
               -p:自動按需創建父目錄
               -v、verbose:顯示詳細過程
               -m MODE:創建目錄時直接給定權限,否則即為umask配置的默認權限;
    • (2)rmdir:remove empty directorise 刪除空目錄

      使用格式:
          rmdir [OPTION]... [DIRECTORY]...
          常用選項:
              -p:刪除某個目錄后,如果其上一級目錄為空,則一并刪除;
              -v:顯示操作過程;
              blob.png
              注:因當前目錄不是空目錄,所以操作.(當前目錄)時提示失敗。
  • 2)文件查看類命令:cat、tac、head、tail、more、less

    • (1)分屏查看命令:more與less

      使用格式:more|less FILE
      注:more命令翻屏至文件尾部后自動退出
    • (2)head命令:查看文件的前n行,默認為10行

      使用格式:head [OPTIONS] FILE

      常用選項:
          -n NUM:NUM表示要查看的行數;
          -NUM:NUM表示要查看的行數;
    • (3)tail命令:查看文件的后n行,默認為10行

      使用格式:tail [OPTIONS] FILE

      常用選項:
          -n NUM:NUM表示要查看的行數;
          -NUM:NUM表示要查看的行數;
    • (4)cat與tac

      使用格式:cat|tac FILE

  • 3)文件管理工具:cp、mv、rm

    • (1)cp命令:復制文件或目錄

          常用選項:
              -i,--interactive:交互式復制,即覆蓋前提示用戶確認;
              -f,--force:強制覆蓋目標文件;
              -R,-r,-recursive:遞歸復制目錄;
              -d:復制符號鏈接文件本身,并不復制其指向的源文件;
              -a:-dR --preserve=all,archive,用于實現歸檔
              -preserv=
                          mode    權限
                          owership    屬主與屬組
                          timestamps    時間戳
                          context    安全標簽
                          xattr    擴展屬性
                          link    符號鏈接
                          all    上述所有屬性
          實例:
              將文件file1復制成文件file2
                  cp file1 file2
      
              采用交互方式將文件file1復制成文件file2
                  cp -i file1 file2
      
              將文件file1復制成file2,因為目的文件已經存在,所以指定使用強制復制的模式
                  cp -f file1 file2
      
              同時將文件file1、file2、file3與目錄dir1復制到dir2
                  cp -R file1 file2 file3 dir1 dir2
    • (2)mv命令:是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。

          常用選項:
              -i:交互式
              -f:強制覆蓋             
      
      實例1:將文件file1改名為file2,如果file2已經存在,則詢問是否覆蓋
          mv -i log1.txt log2.txt
      
      實例2:將文件file1改名為file2,即使file2存在,也是直接覆蓋掉
          mv -f log3.txt log2.txt
    • (3)rm命令:為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對于鏈接文件,只是刪除了鏈接,原有文件均保持不變。

          rm [OPTION]... FILE...
          常規選項:
              -i:交互式執行
              -f:強制執行,不提示任何信息
              -r:遞歸執行
                  刪除目錄:rm -rf /PATH/TO/DIR
                      危險操作:rm -rf / 、rm -rf /*
                  建議不用的不文件不要直接刪除,可移動至某個專用的目錄(模擬回收站)

2、bash的工作特性值命令執行狀態返回值和命令行展開;

  • 通過 $? 獲取上一次命令執行的結果,0表示成功,非0表示失敗。

  • 命令行展開

    • 花括號展開:{ }

      在非引號內的內容,如果用花括號包括,而且里面用逗號分隔(至少包含一個逗號,可以是空內容),這樣花括號里的內容會被展開成用空格分開的一個列表,花括號前后可以緊隨前綴和后綴

      如:

      echo {a,b,c}
      echo hello,{world,pig}
    • 波浪號展開:~

      從波浪號~到第一個未被引號包含的斜杠/(如果沒有斜杠,則全部算上),作為波浪號前綴。 在波浪號后面的字符串作為一個可能的登錄名:如果為空,被展開成該用戶的HOME變量,如果HOME變量未設置,則用用戶執行shell的主目錄替換。如果不為空,則按照該登錄名的主目錄替換。

      如:

      echo ~   # 顯示$HOME內容
      echo ~root  # 顯示root用戶主目錄
    • Shell參數和變量展開

      用$符號開始,后面接著變量名或者花括號括起來的變量名,如果是花括號內以嘆號開頭,那么就是變量名本身。 如:

      echo $PWD    # 顯示PWD對應的值
      echo ${PWD}  # 顯示PWD對應的值

3、使用命令行展開功能完成以下練習:

  • (1)創建/tmp目錄下的:a_c,a_d,b_c,b_d

    mkdir -pv /tmp/{a,b}_{c,d}
  • (2)創建/tmp/mylinux目錄下的如下目錄:

    實現命令:
    mkdir -pv /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}}
    
    實現效果:
    [root@localhost ~]# tree /tmp/mylinux/
        /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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息?

  • (1)文件的元數據:

    任何文件系統中的數據分為數據和元數據。數據是指普通文件中的實際數據,而元數據指用來描述一個文件的特征的系統數據,如訪問權限、文件擁有者、文件數據塊的分布信息(inode...)、文件時間戳信息等。
  • (2)查看文件的元數據

    stat FILE #使用stat命令可以查看文件或目錄的元數據
  • (3)修改文件的時間戳信息:

    touch命令:可以用于改變access time和modity time
    touch [OPTIONS]... FILE...
        -c:指定文件,當文件不存在時不予創建
        -a:僅改變access time
        -m:僅改變modify time
        -t STAMP:
                [[CC]YY]MMDDhhmm[.ss]

    5、如果定義命令的別名,如何在命令中引用另一個命令的執行結果?

  • (1)如何定義命令的別名:

    alise NAME='COMMAND'
    注意:此方法僅對當前shell進程有效
  • (2)命令中引用另一個命令的執行結果:

    使用`COMMAND`
    如:
        ls -l `find /etc -name "pa*"`

    6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可有其它字符)的文件或目錄;

    ls /var/ | grep "^l.*[0-9].*[[:lower:]]$"

    7、顯示/etc目錄下,以任意數字開頭,且以非數字結尾的文件或目錄;

    ls /etc/ | grep "^[0-9].*[^0-9]$"

    8、顯示/etc目錄下,以非字母開頭,后面跟一個字母以及其它任意長度任意字符的目錄或文件;

    ls /etc/ | grep "^[^[:alpha:]][[:alpha:]].*"

    9、在/tmp/目錄下創建以tfile開頭,后面跟上當前日期和時間的文件,文件名如:tfile-2016-05-27-09-32-22;

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

    10、復制/etc目錄下所有以p開頭、以非數字結尾的文件或目錄至/tmp/mytest1目錄中;

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

    11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中;

    cp -r /etc/*\.d /tmp/mytest2/

    12、復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中;

    cp -r /etc/[lmn].\.conf /tmp/mytest3/

原創文章,作者:N22-江西-H隨風,如若轉載,請注明出處:http://www.www58058.com/42475

(0)
N22-江西-H隨風N22-江西-H隨風
上一篇 2016-09-08
下一篇 2016-09-08

相關推薦

  • Nginx

    Nginx簡介     Nginx(”engine x”)是俄羅斯人Igor Sysoev(伊戈爾.塞索耶夫)編寫的一款高性能的HTTP和反向代理服務器。Nginx能夠選擇高效的epoll、Kqueue、eventport作為網絡I/O模型,在高連接并發的情況下,Nginx是Apache服務器不錯的替代品,它能夠支持高…

    2017-05-07
  • shell腳本一鍵分區

    #!/bin/bash #實現硬盤自動分區助手 echo "當前所有分區:" echo `fdisk -l|grep "Disk /dev/[sh]d"|cut -d: -f1|awk '{print $2 &q…

    Linux干貨 2016-07-26
  • keepalived

    簡介:     vrrp, virtual routing redundant protocol, 虛擬路由協議, 是為了解決局域網中配置靜態網關出現單點失敗現象的路由協議; 設計目標時是支持特定情況下IP數據流量失敗轉移不會引起混亂, 允許主機使用單路由器, 以及及時在實際第一跳路由器使用失敗的情形下, 仍然能夠維護…

    Linux干貨 2016-11-11
  • linux軟鏈接與硬鏈接的區別

    硬鏈接:相于當給文件增加了一個新名 在添加鏈接時會增加鏈接數,其inode結點數不會增加 支持絕對路徑與相對路徑 硬鏈接不能對目錄來創建 不能跨分區來創建鏈接 硬鏈接鏈接到文件被刪除時,依舊可以通過鏈接文件來訪問被刪文件的數據 軟鏈接:可以支持對目錄來創建鏈接 (注,當你用rm -rf 刪除目錄的時候,目錄不會刪除,但目錄中的內容會被刪除,并且會刪除源文件)…

    Linux干貨 2016-10-02
  • VIM 詳用!

    1、復制/etc/rc.d/rc.sysinit文件至/TMP目錄,將/tmp/rc.sysinit文件的至少一個空白字符開頭的行首加 :%s/^[[:space:]]/#/ 2、復制/boot/grub/grub.conf 至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; :%s/[[:space:]]\+// 3、刪除/tmp/…

    Linux干貨 2017-08-20
  • N21-第五周

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

    Linux干貨 2016-08-15

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-13 08:32

    以N開頭或者以N結尾,使用行首或行末牟定來實現。答題比較認真,繼續保持。

欧美性久久久久