N21 第二周練習

####1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
復制:cp   移動:mv    刪除:rm

  cp:copy,復制文件或目錄</br>
  cp [OPTION]… SOURCE… DIRECTORY</br>
      OPTION  -i:交互式
              -r,R:遞歸復制目錄及內部的所有內容
              –preserve[=ATTR_LIST] (default:  mode,ownership,timestamps)
                         ATTR_LIST  mode:權限
                                    ownershi:屬主屬組
                                    timestamps:linux時間戳
                                    links:文件為軟鏈接時,只拷貝軟鏈接文件。
                                    context:安全上下文
                                    xattr:文件擴展屬性
                                    all:包括以上所有
              -d:相當于–no-dereference –preserve=links
              -p:相當于–preserve=mode,ownership,timeststamps
              -a:相當于-dR –preserve=all
              -f:強行復制文件或目錄,不論目標文件或目錄是否已存在
              -v:顯示復制過程                

    SOURCE為單個文件時:
    cp /etc/fstab /tmp/fstabak 
        #1.fstabak不存在時,創建fstabak文件,并且將fstab文件內容填充至fstabak文件內
        #2.fstabak為文件且存在,則將fstab文件內容覆蓋填充至fstabak文件內
        #3.fstabak為目錄且存在時,在fstabak下創建與fstab文件同名文件,并將fstab文件內容填充至新文件中。
    SOURCE為多個文件時:
    cp /etc/fstab issue  /tmp/bak/
        #在bak目錄中創建與各個源文件名相同的文件,并把各個源文件內容填充至各個新文件中(bak只能為目錄且必須存在)
    SOURCE為目錄時:
    cp -r /etc/yum.d /tmp/yumbak.d
        #1.yumbak.d不存在,創建yumbak.d目錄,拷貝yum.d目錄中所有文件至yumbak.d目錄中
        #2.yumbak.d存在且為目錄,拷貝yum.d目錄中所有文件至yumbak.d目錄中(yumbak.d為文件時報錯)

  mv: move,移動文件
  mv [OPTION]… SOURCE… DIRECTORY
         OPTION  -i:交互式
                        -f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄
                        -v:顯示移動過程 

 SOURCE為單個文件時:
    mv /tmp/fstabak /tmp/newfstabak 
        #1.newfstabak不存在時,創建newfstabak文件,并且將fstab文件內容填充至fstabak文件內,并刪除fstabak文件
        #2.newfstabak為文件且存在,則將fstabak文件內容覆蓋填充至newfstabak文件內,并刪除fstabak文件
        #3.newfstabak為目錄且存在時,在newfstabak下創建與fstabak文件同名文件,并將fstabak文件內容填充至新文件中,并刪除fstabak文件
 SOURCE為多個文件時:
    mv  /tmp/bak/fstab issue  /tmp/newbak/
           #在newbak目錄中創建與各個源文件名相同的文件,并把各個源文件內容填充至各個新文件中,并刪除bak目錄下的fstab,issue文件(bak只能為目錄且必須存在)
 SOURCE為目錄時:
    mv /tmp/yumbak.d /tmp/newyumbak.d
        #1.newyumbak.d不存在,創建newyumbak.d目錄,拷貝yumbak.d目錄中所有文件至newyumbak.d目錄中,并刪除yumbak.d目錄
        #2.newyumbak.d存在且為目錄,拷貝yumbak.d目錄中所有文件至newyumbak.d目錄中(yumbak.d為文件時報錯),并刪除yumbak.d目錄

   rm: remove,刪除
   rm [OPTION]… FILE…
         OPTION  -i: 交互式
                       -f: 強制刪除
                       -r,R: 遞歸目錄及內部的所有內容
                       -v:顯示詳細過程
####2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
  查看bash的工命令執行狀態返回值命令:
         echo $?  #1.若返回值為數字 0 ,則說明命令執行成功
                       #2.若返回值為非 0 數字,則說明命令執行失敗

命令行展開
    ~:代表當前登陸用戶的家目錄
    ~USERNAME:為指定用戶的家目錄
    {}:可承載一個以逗號分隔的列表,并將其展開為多個路徑
         在/tmp目錄下創建名為f,s兩個目錄:mkdir /tmp/{f,s}
####3、命令行展開功能來練習
  (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d 

     mkdir -v /tmp/{a,b}_{c,d}
     mkdir: 已創建目錄 "/tmp/a_c"
     mkdir: 已創建目錄 "/tmp/a_d"
     mkdir: 已創建目錄 "/tmp/b_c"
     mkdir: 已創建目錄 "/tmp/b_d"

(2)創建/tmp/mylinux目錄下相應目錄

  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

  執行命令為:

    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}\
    > }
    mkdir: 已創建目錄 "/tmp/mylinux"
    mkdir: 已創建目錄 "/tmp/mylinux/bin"
    mkdir: 已創建目錄 "/tmp/mylinux/boot"
    mkdir: 已創建目錄 "/tmp/mylinux/boot/grub"
    mkdir: 已創建目錄 "/tmp/mylinux/dev"
    mkdir: 已創建目錄 "/tmp/mylinux/etc"
    mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d"
    mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d/init.d"
    mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig"
    mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig/network-scripts"
    mkdir: 已創建目錄 "/tmp/mylinux/lib"
    mkdir: 已創建目錄 "/tmp/mylinux/lib/modules"
    mkdir: 已創建目錄 "/tmp/mylinux/lib64"
    mkdir: 已創建目錄 "/tmp/mylinux/proc"
    mkdir: 已創建目錄 "/tmp/mylinux/sbin"
    mkdir: 已創建目錄 "/tmp/mylinux/sys"
    mkdir: 已創建目錄 "/tmp/mylinux/tmp"
    mkdir: 已創建目錄 "/tmp/mylinux/usr"
    mkdir: 已創建目錄 "/tmp/mylinux/usr/local"
    mkdir: 已創建目錄 "/tmp/mylinux/usr/local/bin"
    mkdir: 已創建目錄 "/tmp/mylinux/usr/local/sbin"
    mkdir: 已創建目錄 "/tmp/mylinux/var"
    mkdir: 已創建目錄 "/tmp/mylinux/var/lock"
    mkdir: 已創建目錄 "/tmp/mylinux/var/log"
    mkdir: 已創建目錄 "/tmp/mylinux/var/run"

####4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
  文件元數據包括:文件大小,inode節點號,權限,屬主屬組,時間戳信息 …… 
  可通過 stat 命令查看

     stat /etc/fstab
     File: '/etc/fstab'
     Size: 483           Blocks: 8          IO Block: 4096   regular file
     Device: fd00h/64768d    Inode: 33554562    Links: 1
      Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
     Context: system_u:object_r:etc_t:s0
     Access: 2016-07-18 12:20:01.728182675 +0800
     Modify: 2016-06-11 14:03:10.145086826 +0800
     Change: 2016-06-11 14:42:27.567188424 +0800
    
     stat /etc/fstab
     文件:"/etc/fstab"
     大?。?83           塊:8          IO 塊:4096   普通文件
     設備:fd00h/64768d    Inode:33554562    硬鏈接:1
     權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
     安全上下文:system_u:object_r:etc_t:s0
     最近訪問:2016-07-18 12:20:01.728182675 +0800
     最近更改:2016-06-11 14:03:10.145086826 +0800
     最近改動:2016-06-11 14:42:27.567188424 +0800

   linux文件有三個時間戳信息:
    access time:訪問時間,簡寫為atime,讀取文件內容會改變
    modify time: 修改時間, 簡寫為mtime,改變文件內容(數據)時改變,注意僅修改文件內容atime不會改變
    change time: 改變時間, 簡寫為ctime,元數據發生改變會改變
  使用touch命令修改時間戳信息
    touch [OPTION]… FILE…
                OPTION  -a:  僅修改atime
                               -m:  僅修改mtime
                               -t STAMP:  將atime,ctime同時修改為設置為STAMP
                                  STAMP時間格式如下:
                                  [[CC]YY]MMDDhhmm[.ss]
                               -c: 如果文件不存在,則不予創建
####5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
  使用alias定義命令別名,unalias取消命令別名
    alias: alias [-p] [NAME[=VALUE] … ]
    alias [-p]:顯示已定義的命令別名
    alias ll='ls -l –color=auto' #執行命令ll相當于執行 ls -l –color=auto
    unalias -a 取消所有已定義的命令別名
    unalias NAME 取消單個命令別名
    注意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中;
               僅對當前用戶:~/.bashrc
               對所有用戶有效:/etc/bashrc
               如果別名同原命令名字相同,執行原命令使用 \COMMAND
  引用命令的執行結果可使用反引號 `COMMAND` 或 $(command)

     echo `ls /root`
     Desktop anaconda-ks.cfg initial-setup-ks.cfg
     echo $(ls /root)
     Desktop anaconda-ks.cfg initial-setup-ks.cfg

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

    touch /var/l9c.txt
    touch /var/log96dc.txt
    mkdir /var/log9D.d
    ls -ld /var/l*[0-9]*[[:lower:]]
    -rw-r--r--. 1 root root 0 Jul 18 16:24 /var/l9c.txt
    -rw-r--r--. 1 root root 0 Jul 18 16:25 /var/log96dc.txt
    drwxr-xr-x. 2 root root 6 Jul 18 16:27 /var/log9D.d

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

    touch /etc/23c.txt
    touch /etc/2cc.txt
    mkdir /etc/2D
    mkdir /etc/2D3
    ls -ld /etc/[[:digit:]]*[^[:digit:]]
    -rw-r--r--. 1 root root 0 7月  18 17:01 /etc/23c.txt
    -rw-r--r--. 1 root root 0 7月  18 17:02 /etc/2cc.txt
    drwxr-xr-x. 2 root root 6 7月  18 17:03 /etc/2D

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

     ls -ld /etc/[^[:alpha:]][[:alpha:]]*
     -rw-r--r--. 1 root root 0 7月  18 17:02 /etc/2cc.txt
     drwxr-xr-x. 2 root root 6 7月  18 17:03 /etc/2D
     drwxr-xr-x. 2 root root 6 7月  18 17:05 /etc/2D3

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

    touch /tmp/tfile-$(date +%F-%H-%M-%S)
    ls /tmp
    mylinux  tfile-2016-07-18-17-12-35

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

    mkdir /tmp/mytest1
    cp -a /etc/p*[^[:digit:]] /tmp/mytest1
    ls -l /tmp/mytest1/
    總用量 60
    drwxr-xr-x.  2 root root 4096 6月  11 15:58 pam.d
    -rw-r--r--.  1 root root 2311 6月  11 16:17 passwd
    -rw-r--r--.  1 root root 2261 6月  11 14:56 passwd-
    -rw-r--r--.  1 root root 1362 6月  10 2014 pbm2ppa.conf
    -rw-r--r--.  1 root root 2872 6月  10 2014 pinforc
    drwxr-xr-x.  9 root root   91 6月  11 14:15 pki
    drwxr-xr-x.  2 root root   27 6月  11 14:18 plymouth
    drwxr-xr-x.  5 root root   49 6月  11 14:04 pm
    -rw-r--r--.  1 root root 6300 6月  10 2014 pnm2ppa.conf
    drwxr-xr-x.  2 root root    6 6月  10 2014 popt.d
    drwxr-xr-x.  2 root root 4096 6月  11 14:24 postfix
    drwxr-xr-x.  3 root root 4096 6月  11 14:14 ppp
    drwxr-xr-x.  2 root root  101 6月  11 14:15 prelink.conf.d
    -rw-r--r--.  1 root root  233 6月   7 2013 printcap
    -rw-r--r--.  1 root root 1750 6月   7 2013 profile
    drwxr-xr-x.  2 root root 4096 6月  11 14:27 profile.d
    -rw-r--r--.  1 root root 6545 6月   7 2013 protocols
    drwxr-xr-x.  2 root root   75 6月  11 14:16 pulse
    drwxr-xr-x.  2 root root   22 6月  11 14:18 purple
    drwxr-xr-x. 13 root root 4096 7月  18 17:16 python

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

    mkdir /tmp/mytest2
    cp -a /etc/*.d /tmp/mytest2
    ls -l /tmp/mytest2/
    總用量 56
    drwxr-xr-x.  2 root root 4096 6月  11 14:29 bash_completion.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 binfmt.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 chkconfig.d
    drwxr-xr-x.  2 root root   51 6月  11 14:24 cron.d
    drwxr-xr-x.  2 root root   22 6月  11 14:12 depmod.d
    drwxr-xr-x.  2 root root    6 8月   6 2015 dnsmasq.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 dracut.conf.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 exports.d
    drwxr-xr-x.  2 root root    6 9月  11 2015 gdbinit.d
    drwx------.  2 root root 4096 6月  11 14:39 grub.d
    lrwxrwxrwx.  1 root root   11 6月  11 14:06 init.d -> rc.d/init.d
    drwx------.  5 root root 4096 6月  11 14:15 ipsec.d
    drwxr-xr-x.  2 root root 4096 6月  11 14:14 ld.so.conf.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 libibverbs.d
    drwxr-xr-x.  2 root root 4096 6月  11 15:58 logrotate.d
    drwxr-xr-x.  2 root root   22 6月  11 14:13 modprobe.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 modules-load.d
    drwxr-xr-x.  2 root root   30 6月  11 14:09 my.cnf.d
    drwxr-xr-x.  2 root root   68 6月  11 14:13 oddjobd.conf.d
    drwxr-xr-x.  2 root root 4096 6月  11 15:58 pam.d
    drwxr-xr-x.  2 root root    6 6月  10 2014 popt.d
    drwxr-xr-x.  2 root root  101 6月  11 14:15 prelink.conf.d
    drwxr-xr-x.  2 root root 4096 6月  11 14:27 profile.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc0.d -> rc.d/rc0.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc1.d -> rc.d/rc1.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc2.d -> rc.d/rc2.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc3.d -> rc.d/rc3.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc4.d -> rc.d/rc4.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc5.d -> rc.d/rc5.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc6.d -> rc.d/rc6.d
    drwxr-xr-x. 10 root root 4096 11月 20 2015 rc.d
    drwxr-xr-x.  2 root root   29 6月  11 14:14 request-key.d
    drwxr-xr-x.  2 root root   51 6月  11 14:15 rsyslog.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 rwtab.d
    drwxr-xr-x.  3 root root 4096 6月  11 14:20 sane.d
    drwxr-xr-x.  2 root root 4096 6月  11 14:24 setuptool.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 statetab.d
    drwxr-x---.  2 root root    6 11月 21 2015 sudoers.d
    drwxr-xr-x.  2 root root   27 6月  11 14:14 sysctl.d
    drwxr-xr-x.  2 root root   24 11月 20 2015 tmpfiles.d
    drwxr-xr-x.  2 root root 8192 6月  11 14:13 usb_modeswitch.d
    drwxr-xr-x.  2 root root    6 8月  12 2015 xinetd.d
    drwxr-xr-x.  2 root root 4096 6月  11 15:49 yum.repos.d

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

    mkdir /tmp/mytest3
    cp -a /etc/[l,m,n]*.conf /tmp/mytest3
    ls -l /tmp/mytests    
    總用量 48
    -rw-r--r--. 1 root root   28 2月  28 2013 ld.so.conf
    -rw-r-----. 1 root root  191 10月 29 2014 libaudit.conf
    -rw-r--r--. 1 root root 2391 10月 13 2013 libuser.conf
    -rw-r--r--. 1 root root   19 6月  11 14:40 locale.conf
    -rw-r--r--. 1 root root  662 7月  31 2013 logrotate.conf
    -rw-r--r--. 1 root root 5171 6月  10 2014 man_db.conf
    -rw-r--r--. 1 root root  936 3月   6 2015 mke2fs.conf
    -rw-r--r--. 1 root root 2620 6月  10 2014 mtools.conf
    -rw-r--r--. 1 root root 3390 11月 20 2015 nfsmount.conf
    -rw-r--r--. 1 root root 1717 6月  11 14:40 nsswitch.conf
    -rw-r--r--. 1 root root   91 12月  3 2012 numad.conf

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

(0)
風
上一篇 2016-07-22
下一篇 2016-07-22

相關推薦

  • 磁盤管理

    上圖sda disk information中對 255 heads,63 sectors/track,1958 cylinders的解析: sda磁盤總共有1958個cylinder(柱面),每個cylinder(柱面)有63個sectors(扇區),每個sectors(扇區)有255個heads(磁頭) 那么這塊sda的總的磁頭數量為:255*63*19…

    2017-08-20
  • 第七周 練習

    1. 請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 集線器:集線器的主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離網橋:是早期的兩端口二層網絡設備,用來連接不同網段。網橋的兩個端口分別有一條獨立的交換信道,      不是共享一條背板總線,可隔…

    Linux干貨 2016-12-13
  • ansible配置詳解

    概述     ansible是一款無需在被管理主機上安裝客戶端,基于SSH對多臺目標主機進行同時操作的輕量級的管理軟件,借助各個內部的功能模塊,實現了批量系統配置、批量程序部署、批量運行命令等功能。本篇就介紹一些關于ansible的基礎配置相關的內容,具體包括:     1、an…

    Linux干貨 2016-11-05
  • 馬哥教育網絡班22期第五周博客作業

    正則表達式與grep 文本編輯工具     grep:是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來;     sed :是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用;     awk…

    Linux干貨 2016-10-19
  • N25-第六周作業

    第六周 請詳細總結vim編輯器的使用并完成以下練習題 文本編輯器: vim:     模式化的編輯器         基本模式:          &…

    Linux干貨 2016-12-28

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-22 10:41

    寫的很好,排版還可以在漂亮一點,加油

欧美性久久久久