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

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

查看列表ls

    選項:

       -a, --all
              do not ignore entries starting with . 
              顯示所有文件并包括隱藏文件
       -l     use a long listing format
              顯示文件詳細信息
       -d, --directory
              list directory entries instead of contents, and do not dereference symbolic links 
              顯示指定目錄的信息,而不是顯示其目錄下的文件,與-l一起使用才有意義
       -r, --reverse
              reverse order while sorting 
              反向排序
       -n, --numeric-uid-gid
              like -l, but list numeric user and group IDs 
              不顯示用戶和組名,顯示UID和GID
       -R, --recursive
              list subdirectories recursively  
              遞歸顯示目錄以及子目錄下的文件
       -h, --human-readable
              with -l, print sizes in human readable format (e.g., 1K 234M 2G)
              根據文件大小顯示容易查看的size大小,與-l結合使用
       -S     sort by file size
              按文件大小排序              
       --sort=WORD  
              選擇文件的某個屬性排序
              sort by WORD instead of name: none -U, extension -X, size -S, time -t, version -v
       --time=WORD
              選擇文件的某個時間屬性排序
              with -l, show time as WORD instead of modification time: atime -u, access -u, use -u, ctime -c, or status -c; use specified time as sort key if --sort=time

    實例:

        $ ls -lah
          drwxr-xr-x  2 scm  scm  4.0K May 21 11:13 .vnc
          drwxrwxr-x  3 scm  scm  4.0K May 12 14:02 workspace
          -rw-------  1 scm  scm   202 May 21 11:13 .Xauthority
        詳解:drwxrwxrwx,d位置是文件類型,除了d目錄文件,常見的還有中杠表示普通文件,l表示鏈接文件,b表示塊文件,c表示字符設備文件,p表示管道文件,s表示套接字文件;rwxrwxrwx是文件的權限位,前三位是屬主權限,中間三位是屬組權限,最后是其他用戶權限,rwx表示可讀可寫可執行,權限位中杠表示無相應權限
              下來的字段為被硬鏈接的次數,例如.cache表示被硬鏈接3次
              然后的兩個字段分別表示屬組和屬主,都是scm
              4.0K和202表示文件大小,加了選項-h可顯示合適的文件大小單位
              May 21 11:13是文件修改時間戳
              最后顯示文件名

復制:cp

    選項

       -a, --archive 歸檔,保留文件原來的樣子,可恢復原來的現場
              same as -dR --preserve=all
              相當于-dR --preserve=all
       -i, --interactive 
              prompt before overwrite (overrides a previous -n option)
              交互式提示是否覆蓋
       -s, --symbolic-link
              make symbolic links instead of copying
              創建符號連接
       -R, -r, --recursive
              copy directories recursively
              逐級復制目錄以及目錄下所有文件
       --preserve[=ATTR_LIST]
              preserve the specified attributes (default: mode,ownership,timestamps), if  possible
              additional attributes: context, links, xattr, all
              復制時保留文件屬性
       -d     same as --no-dereference --preserve=links
              不追蹤符號鏈接,
       -p     same as --preserve=mode,ownership,timestamps
              復制時保留文件的權限,屬組屬組和時間戳
       -v, --verbose
              explain what is being done
              顯示詳細過程

    實例:

        root用戶操作
        $ cp -a /home/scm /home/back/scm.bak
        將/home/scm備份至/home/back目錄下,查看備份 
        -p也是常用的選項,一般情況下cp文件夾不帶-p會報錯“cp: omitting directory `testcpdir2/'”
        $ cp -p /home/scm /home/back/scm.bak

移動:mv

    選項

       -f, --force
              do not prompt before overwriting
              強制移動,覆蓋同名文件不提示
       -i, --interactive
              prompt before overwrite
              交互式提示是否覆蓋

刪除:rm

    選項

       -f, --force
              do not prompt before overwriting
              強制刪除
       -i, --interactive
              prompt before overwrite
              交互式提示是否刪除
       -r, -R, --recursive
              remove directories and their contents recursively
              遞歸刪除

    實例:

        -f常與-r一起使用,可直接刪除目錄文件
        $ rm -rf test/

2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

答:

命令的執行狀態返回值:

    命令執行的狀態
        一般分為兩種,成功或者失敗
            返回值為0表示執行成功;為1~255表示失敗
        $?可以查看命令執行的返回值

命令行展開特性:

    ~:展開用戶的主目錄
        $cd ~表示切換目錄至家目錄
        $cd ~/.ssh表示切換只家目錄下的.ssh目錄
    {}:可承載以逗號分隔的列表,并將其展開圍多個路徑
        $mkdir project/{branches,tags,trunk/{product1,product2}}

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

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

        $mkdir {a_{c,d},b_{c,d}}

   (2)、創建/tmp/mylinux目錄下的:

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

        $mkdir -p mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,user/local/{bin,sbin},var/{lock,log,run}}

4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

答:

文件的元數據信息:

  stat命令可查看文件的元數據信息

    $stat  /etc/passwd
      File: `/etc/passwd' 
      Size: 1750            Blocks: 8          IO Block: 4096   regular file
    Device: 802h/2050d      Inode: 393910      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2016-06-19 18:58:25.910331000 -0700
    Modify: 2016-06-11 19:39:22.305024069 -0700
    Change: 2016-06-11 19:39:22.305024069 -0700

    詳解:

        Size: 1750 文件大小1750 byte
        Blocks: 8  占用8個block      
        IO Block: 4096 每次讀寫的數據單元大小
        regular file 此文件為常規文件
        Device: 802h/2050d ???
        Inode: 393910 索引節點號
        Links:硬連接數
        Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root) 權限,屬主,屬組
        Access:訪問時間
        Modify:修改時間
        Change:改變時間,一般值元數據最后一次修改的時間

修改文件的時間戳:

  touch

    選項:

       -a     change only the access time
              修改訪問時間
       -c, --no-create
              do not create any files
              touch的文件不存在時不創建
       -m     change only the modification time
              改變文件修改時間
       -t STAMP
              use [[CC]YY]MMDDhhmm[.ss] instead of current time
              指定時間的時間格式
              [[CC]YY]MMDDhhmm[.ss] 
                 年   月日時分 秒

    實例:

        $ touch -at 201606061423.22 xiaoyue.sh
        $ touch -mt 201606051423.22 xiaoyue.sh
        注意,文件的任何一個元數據的改變都會引起ctime的改變

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

答:

命令alias
    $alias 不加任何參數表示查看當前shell下的命令別名
    添加命令別名:
      $alias ls='ls -la' 
      vi ~/.bashrc或者/etc/bashrc可添加命令別名

命令中引用另一個命令的執行結果可以使用管道

    $ls -l |grep "rwx"

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

    $ls /var |egrep --colour '^l.*[[:digit:]].*[[:lower:]]$'

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

    $ls /etc |egrep --colour '^[[:digit:]].*[^[:digit:]]$'

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

    $ls /etc |egrep --colour '^[^[:alpha:]][[:alpha:]].*'

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

    $touch tfile-$(date +%Y-%m-%d-%H-%M-%S)

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

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

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

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

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

    #cp /etc/[lmn]*.conf /tmp/mytest3

原創文章,作者:Net20_天意,如若轉載,請注明出處:http://www.www58058.com/18282

(0)
Net20_天意Net20_天意
上一篇 2016-06-23 11:07
下一篇 2016-06-23 11:07

相關推薦

  • 進程管理

    linux維護工作中,常常需要對系統上運行的程序進行管理,那么進程管理就顯得相當重要。 進程初識 什么是進程?   進程是并發執行的程序在執行過程中分配和管理資源的基本單位,是一個動態概念。它代表CPU所能處理的單個任務。 什么是線程?   線程是程序流執行的最小單元,可以理解為進程中執行的一段程序片段。 進程與線程聯…

    Linux干貨 2016-09-07
  • 文件的權限和訪問控制列表

      在linux管理中,為了使不同的用戶對文件有不同的操作權限。我們需要正確的修改文件的權限,一方面是為安全著想, 另一方面則是防止自己辛辛苦苦碼出的東西被其它用戶給誤刪。 1.如何修改文件的屬主和屬主:   前面用戶和組管理的內容中,我們已經對文件的屬主、屬組問題做了說明。有時候我們需要對一些文件的屬組和屬組進行修改…

    Linux干貨 2016-08-04
  • LVS負載均衡實戰演練

    LVS負載均衡實戰之lvs-nat模型 1.準備好機器,配置好時間同步,配置號網絡,主機名 172.16.251.91 client [橋接] [網關為172.16.251.90] #lvs負載均衡兩塊網卡 172.16.251.90  lvs [網卡1] [橋接] 192.168.42.150  lvs [網卡2] [VMnet8] 192.168.42.…

    Linux干貨 2017-06-22
  • 網絡管理

    網絡管理 本章內容 網絡概念 OSI模型 網絡設備 TCP/IP IP地址 配置網絡 實現網絡組 測試網絡 網絡工具 為linux網卡配置ip地址,不是給網卡配置地址,是給內核的網絡功能配置,地址是屬于內核。為內核配置即時生效,修改配置文件,是永久生效。ifconfig 配置信息,會立即生效,但是重啟網絡服務或主機,都失效。網絡服務/etc/init.d/n…

    Linux干貨 2016-09-05
  • 文本處理三劍客之vim

    由于Linux中的配置文件都是以文本方式存在的,所以在Linux的系統中使用文本編輯器來配置系統是一件很重要的事情。而vim由于程序簡單、編輯速度快且能夠檢查編程中的語法錯誤,所以已成為最常用也最重要的文本處理工具。下面我們就來介紹一下。 一、vim的模式 Vim在使用過程中,基本上分為三種模式:命令模式、編輯模式與擴展命令模式。在三種模式下,我們可以執行的…

    Linux干貨 2016-08-12
  • Linux用戶與組之權限管理

    權限(rwx、sst、umask) chown chmod ACL(見下篇) 試驗環境:CentOS 7.2 與CentOS 6.8,具體會在應用場景明確指出 權限 Linux系統對用戶與組的管理,其具體操作手段就是對于權限的分配,而常見的權限分配工具有 rwx, sst, umask, ACL. 跟用戶與組有uid和gid一樣,權限也有…

    Linux干貨 2016-08-07

評論列表(2條)

  • 馬哥教育
    馬哥教育 2016-06-23 12:53

    寫的很好,排版也很好,10 12 可能有點小瑕疵,在仔細看看題目的要求

    • Net20_天意
      Net20_天意 2016-06-23 14:51

      @馬哥教育我粗心了:
      10:#cp -r /etc/p*[^0-9] /tmp/mytest1
      12: #cp -r /etc/[lmn]*.conf /tmp/mytest3

欧美性久久久久