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

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

     文件管理命令有:mkdir  rm  tree  ls  等等

 1、mkdir [options] /path/to/somewhere

    

        -p: 存在于不報錯,且可自動創建所需的各目錄;

        

        -v: 顯示詳細信息

        

        -m MODE: 創建目錄時直接指定權限;

        

        新建一個目錄名字叫mtdy,可以看到新建成功。

    

        [root@7mini ~]# mkdir -pv /tmp/mtdy      

        mkdir: 已創建目錄 "/tmp/mtdy"

        [root@7mini ~]# ls -ld /tmp/mtdy

        drwxr-xr-x. 2 root root 6 8月  21 14:08 /tmp/mtdy

    

        新建一個叫沒有mtdy1的目錄并且屬組的權限是只讀

       

        [root@7mini ~]# mkdir -vm g=w /tmp/mtdy1

        mkdir: 已創建目錄 "/tmp/mtdy1"

        [root@7mini ~]# ls -ld /tmp/mtdy1

        drwx-w-rwx. 2 root root 6 8月  21 14:11 /tmp/mtdy1

2、rm命令:rm [OPTION]… FILE…

         常用選項:

       -i:interactive

       -f:force

       -r: recursive

       刪除目錄:rm -rf /PATH/TO/DIR   危險操作:rm -rf /*

       

        刪除mtdy目錄,-r 可以刪除目錄

        [root@7mini ~]# rm -r /tmp/mtdy

        rm:是否刪除目錄 "/tmp/mtdy"?y

        [root@7mini ~]# ls -l /tmp

        總用量 8

        -rwx——. 1 root root  827 8月  14 22:05 ks-script-OPUkVZ

        drwx-w-rwx. 2 root root    6 8月  21 14:11 mtdy1

        drwxrwxr-x. 2 root mtdy    6 8月  20 20:23 mytest

        drwx——. 2 mtdy test   59 8月  20 18:00 skel

        -rw-r–r–. 1 yyy  mtdy 1604 8月  20 23:06 test.etc

        drwxr-xr-x. 2 mtdy test    6 8月  20 20:00 tt

        drwxr-xr-x. 3 root root   51 8月  20 19:53 udev

        -rw——-. 1 root root    0 8月  14 21:46 yum.log

3、 tree 以樹形圖列出文件的層級結構,需要先安裝tree命令。

        命令格式:tree [選項]… 目錄…

    

        常用參數:

    

        -d:只顯示目錄;

    

        -L:level:指定顯示的層級數目;

    

        -P pattern:只顯示由指定pattern匹配到的路徑;

   顯示根目錄1層樹結構

        [root@7mini ~]# tree -L 1 /

        /

        ├── bin -> usr/bin

        ├── boot

        ├── dev

        ├── etc

        ├── home

        ├── lib -> usr/lib

        ├── lib64 -> usr/lib64

        ├── media

        ├── mnt

        ├── opt

        ├── proc

        ├── root

        ├── run

        ├── sbin -> usr/sbin

        ├── srv

        ├── sys

        ├── tmp

        ├── usr

        └── var

        

    顯示tmp/ 目錄

        [root@7mini ~]# tree -d /tmp

        /tmp

        ├── mtdy1

        ├── mytest

        ├── skel

        ├── tt

        └── udev

            └── rules.d

    

4、列出指定目錄下的內容

         ls [OPTION]… [FILE]…

         -a: 顯示所有文件,包括隱藏文件;

         -A:顯示除.和..之外的所有文件;

         -l: –long, 長格式列表,即顯示文件的詳細屬性信息;

         -rw-r–r–. 1 root   root     8957 10月 14 19:34 boot.log

         -:文件類型,-, d, b, c, l, s, p

         rw-r–r–

         rw-:文件屬主的權限;

         r–:文件屬組的權限;

         r–:其它用戶(非屬主、屬組)的權限;

         1:數字表示文件被硬鏈接的次數;

         root:文件的屬主;

         root:文件的屬組;

         8957:數字表示文件的大小,單位是字節;

         10月 14 19:34 :文件最近一次被修改的時間;

         boot.log:文件名

         -h, –human-readable:對文件大小單位換算;換算后結果可能會非精確值;

         -d:查看目錄自身而非其內部的文件列表;

         -r: reverse, 逆序顯示;

         -R: recursive,遞歸顯示;

        查看tpm/目錄屬性

  

        [root@7mini ~]# ls -ld /tmp

        drwxrwxrwt. 12 root root 4096 8月  21 14:37 /tmp

        查看tpm/目錄內文件屬性

        [root@7mini ~]# ls -l /tmp

        總用量 8

        -rwx——. 1 root root  827 8月  14 22:05 ks-script-OPUkVZ

        drwx-w-rwx. 2 root root    6 8月  21 14:11 mtdy1

        drwxrwxr-x. 2 root mtdy    6 8月  20 20:23 mytest

        drwx——. 2 mtdy test   59 8月  20 18:00 skel

        -rw-r–r–. 1 yyy  mtdy 1604 8月  20 23:06 test.etc

        drwxr-xr-x. 2 mtdy test    6 8月  20 20:00 tt

        drwxr-xr-x. 3 root root   51 8月  20 19:53 udev

        -rw——-. 1 root root    0 8月  14 21:46 yum.log

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

         命令執行的狀態結果:

         bash通過狀態返回值來輸出此結果:

         成功:0

         失敗:1-255

         命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;

        

         命令正常執行時,有的還回有命令返回值:根據命令及其功能不同,結果各不相同;

         引用命令的執行結果:

         $(COMMAND)

         或`COMMAND`

        顯示創建目錄的狀態返回值

        [root@7mini ~]# mkdir qiu

        [root@7mini ~]# echo $?

        0   值為真 創建成功

        

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

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

        [root@7mini ~]# mkdir -pv /tmp/{a,b}{c,d}

        mkdir: 已創建目錄 "/tmp/ac"

        mkdir: 已創建目錄 "/tmp/ad"

        mkdir: 已創建目錄 "/tmp/bc"

        mkdir: 已創建目錄 "/tmp/bd"

        [root@7mini ~]# ls -l /tmp

        總用量 8

        drwxr-xr-x. 2 root root    6 8月  21 15:04 ac

        drwxr-xr-x. 2 root root    6 8月  21 15:04 ad

        drwxr-xr-x. 2 root root    6 8月  21 15:04 bc

        drwxr-xr-x. 2 root root    6 8月  21 15:04 bd

        -rwx——. 1 root root  827 8月  14 22:05 ks-script-OPUkVZ

        drwx-w-rwx. 2 root root    6 8月  21 14:11 mtdy1

        drwxrwxr-x. 2 root mtdy    6 8月  20 20:23 mytest

        drwx——. 2 mtdy test   59 8月  20 18:00 skel

        -rw-r–r–. 1 yyy  mtdy 1604 8月  20 23:06 test.etc

        drwxr-xr-x. 2 mtdy test    6 8月  20 20:00 tt

        drwxr-xr-x. 3 root root   51 8月  20 19:53 udev

        -rw——-. 1 root root    0 8月  14 21:46 yum.log

        

    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

[root@7mini ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modeles,lib64,proc,sbin,sys,tmp,user/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/modeles"

        mkdir: 已創建目錄 "/tmp/mylinux/lib64"

        mkdir: 已創建目錄 "/tmp/mylinux/proc"

        mkdir: 已創建目錄 "/tmp/mylinux/sbin"

        mkdir: 已創建目錄 "/tmp/mylinux/sys"

        mkdir: 已創建目錄 "/tmp/mylinux/tmp"

        mkdir: 已創建目錄 "/tmp/mylinux/user"

        mkdir: 已創建目錄 "/tmp/mylinux/user/local"

        mkdir: 已創建目錄 "/tmp/mylinux/user/local/bin"

        mkdir: 已創建目錄 "/tmp/mylinux/user/local/sbin"

        mkdir: 已創建目錄 "/tmp/mylinux/var"

        mkdir: 已創建目錄 "/tmp/mylinux/var/lock"

        mkdir: 已創建目錄 "/tmp/mylinux/var/log"

        mkdir: 已創建目錄 "/tmp/mylinux/var/run"

        [root@7mini ~]# tree /tmp/mylinux

        /tmp/mylinux

        ├── bin

        ├── boot

        │   └── grub

        ├── dev

        ├── etc

        │   ├── rc.d

        │   │   └── init.d

        │   └── sysconfig

        │       └── network-scripts

        ├── lib

        │   └── modeles

        ├── lib64

        ├── proc

        ├── sbin

        ├── sys

        ├── tmp

        ├── user

        │   └── local

        │       ├── bin

        │       └── sbin

        └── var

            ├── lock

            ├── log

            └── run

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

    

  (1)文件的元素信息有:文件名、文件大小、文件權限、文件屬組、屬主、access time、modify time、change time等

  (2)stat /PATH/TO/SOMEFILE:獲取指定文件的元數據

        [root@7mini ~]# touch 1.txt

        [root@7mini ~]# stat 1.txt

          文件:"1.txt"

          大?。?          塊:0          IO 塊:4096   普通空文件

        設備:fd00h/64768d Inode:202330023   硬鏈接:1

        權限:(0644/-rw-r–r–)  Uid:(    0/    root)   Gid:(    0/    root)

        環境:unconfined_u:object_r:admin_home_t:s0

        最近訪問:2016-08-21 15:32:06.306203510 +0800

        最近更改:2016-08-21 15:32:06.306203510 +0800

        最近改動:2016-08-21 15:32:06.306203510 +0800

        創建時間:-

(3)改變文件的時間戳 touch命令:

        touch [OPTION]… FILE…

        -a: only atime

        -m: only mtime

        -t STAMP:

        [[CC]YY]MMDDhhmm[.ss]

        -c: 如果文件不存,則不予創建

        [root@7mini ~]# stat  /tmp/network-scripts/ifcfg-eno16777736

          文件:"/tmp/network-scripts/ifcfg-eno16777736"

          大?。?83        塊:8          IO 塊:4096   普通文件

        設備:fd00h/64768d Inode:467976      硬鏈接:1

        權限:(0644/-rw-r–r–)  Uid:(    0/    root)   Gid:(    0/    root)

        環境:system_u:object_r:net_conf_t:s0

        最近訪問:2016-08-20 16:08:38.213000471 +0800

        最近更改:2016-08-14 22:04:09.232546199 +0800

        最近改動:2016-08-14 22:04:09.232546199 +0800

        [root@7mini ~]# touch  /tmp/network-scripts/ifcfg-eno16777736

        [root@7mini ~]# stat  /tmp/network-scripts/ifcfg-eno16777736

          文件:"/tmp/network-scripts/ifcfg-eno16777736"

          大?。?83        塊:8          IO 塊:4096   普通文件

        設備:fd00h/64768d Inode:67835846    硬鏈接:1

        權限:(0644/-rw-r–r–)  Uid:(    0/    root)   Gid:(    0/    root)

        環境:unconfined_u:object_r:user_tmp_t:s0

        最近訪問:2016-08-21 15:42:44.160223194 +0800

        最近更改:2016-08-21 15:42:44.160223194 +0800

        最近改動:2016-08-21 15:42:44.160223194 +0800

        

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

    alias:顯示當前shell進程所有可用的命令別名

    alias NAME='VALUE'定義別名NAME,其相當于執行命令VALUE;

    在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中;

    僅對當前用戶:~/.bashrc

    對所有用戶有效:/etc/bashrc

        [root@7mini ~]# alias

        alias cp='cp -i'

        alias egrep='egrep –color=auto'

        alias fgrep='fgrep –color=auto'

        alias grep='grep –color=auto'

        alias l.='ls -d .* –color=auto'

        alias ll='ls -l –color=auto'

        alias ls='ls –color=auto'

        alias mv='mv -i'

        alias rm='rm -i'

        alias which='alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde'

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

    COMMAND1 | COMMAND2 | COMMAND3 |…

    

        [root@7mini ~]# mkdir /tmp/tqqq | ls -ld /tmp/tqqq

        drwxr-xr-x. 2 root root 6 8月  21 16:13 /tmp/tqqq

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

    

    ls /var/l*[[:digit:]]*[[:lower:]]

    ls /var/l*[0-9]*[a-z]

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

    [root@7mini ~]# ls -ld /etc/[[:digit:]]*[^[:digit:]]

    drwxr-xr-x. 2 root root 6 8月  21 16:25 /etc/1tong

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

    [root@7mini ~]# ls -ld /etc/[^[:alpha:]][[:alpha:]]*

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

    [root@7mini ~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

    [root@7mini ~]# ls -l /tmp 

    /tmp:

    總用量 20

    drwxr-xr-x.  2 root root    6 8月  21 16:06 1.txt

    drwxr-xr-x.  2 root root    6 8月  21 15:04 ac

    drwxr-xr-x.  2 root root    6 8月  21 15:04 ad

    drwxr-xr-x.  2 root root    6 8月  21 15:04 bc

    drwxr-xr-x.  2 root root    6 8月  21 15:04 bd

    -rwx——.  1 root root  827 8月  14 22:05 ks-script-OPUkVZ

    drwxr-xr-x.  6 root root 4096 8月  21 15:36 log

    drwx-w-rwx.  2 root root    6 8月  21 14:11 mtdy1

    drwxr-xr-x. 14 root root 4096 8月  21 15:24 mylinux

    drwxrwxr-x.  2 root mtdy    6 8月  20 20:23 mytest

    drwxr-xr-x.  2 root root 4096 8月  21 15:39 network-scripts

    drwx——.  2 mtdy test   59 8月  20 18:00 skel

    -rw-r–r–.  1 yyy  mtdy 1604 8月  20 23:06 test.etc

    -rw-r–r–.  1 root root    0 8月  21 16:31 tfile-2016-08-21-16-31-19

    drwxr-xr-x.  2 root root    6 8月  21 16:13 tqqq

    drwxr-xr-x.  2 mtdy test    6 8月  20 20:00 tt

    drwxr-xr-x.  2 root root    6 8月  21 16:12 ttt

    drwxr-xr-x.  3 root root   51 8月  20 19:53 udev

    -rw——-.  1 root root    0 8月  14 21:46 yum.log

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

    [root@7mini ~]# mkdir /tmp/mytest1

    [root@7mini ~]# cp -a /etc/p*[^[:digit:]] /tmp/mytest1

    [root@7mini ~]# ls -a /tmp/mytest1

    .      passwd   plymouth  postfix         printcap   protocols

    ..     passwd-  pm        ppp             profile    python

    pam.d  pki      popt.d    prelink.conf.d  profile.d

    

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

    [root@7mini ~]# mkdir /tmp/mytest2

    [root@7mini ~]# cp -a /etc/*.d /tmp/mytest2

    [root@7mini ~]# ls -a /tmp/mytest2

    .                  dracut.conf.d   pam.d           rc4.d       sysctl.d

    ..                 grub.d          popt.d          rc5.d       tmpfiles.d

    bash_completion.d  init.d          prelink.conf.d  rc6.d       xinetd.d

    binfmt.d           ld.so.conf.d    profile.d       rc.d        yum.repos.d

    chkconfig.d        logrotate.d     rc0.d           rsyslog.d

    cron.d             modprobe.d      rc1.d           rwtab.d

    depmod.d           modules-load.d  rc2.d           statetab.d

    dnsmasq.d          my.cnf.d        rc3.d           sudoers.d

    

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

    [root@7mini ~]# mkdir /tmp/mytest3

    [root@7mini ~]# cp -a /etc/[lmn]*.conf /tmp/mytest3

    [root@7mini ~]# ls -a /tmp/mytest3

    .   ld.so.conf     libuser.conf  logrotate.conf  mke2fs.conf

    ..  libaudit.conf  locale.conf   man_db.conf     nsswitch.conf

原創文章,作者:N22-北京-錢峰,如若轉載,請注明出處:http://www.www58058.com/38299

(0)
N22-北京-錢峰N22-北京-錢峰
上一篇 2016-08-22 09:30
下一篇 2016-08-22 09:30

相關推薦

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

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod&nb…

    Linux干貨 2016-09-05
  • N25第四周總結

    linux bassic Week 4 Blogging 1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 ~]# cp -r /etc/skel/   /home/tuser1/ ~]# chmod&n…

    Linux干貨 2016-12-26
  • 馬哥教育網絡班20期+第3周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。    w | grep "^root\>" |sort -u   2、取出最后登錄到當前系統的用戶的相關信息。    who |   3、取出當前系統上被用戶當作…

    Linux干貨 2016-06-26
  • LAMP (php-fpm模式)部署出現的奇葩問題

    1. 安裝環境:(cent6.5) yum install -y php php-devel httpd  php-fpm mysql 2. 修改配置文件 vim /etc/httpd/conf/http.conf 注釋掉DocumentRoot vim /etc/httpd/conf.d/vhost.conf <VirtualHost *:…

    2017-04-10
  • shell 編程(一)

    shell腳本編程:  編程語言的分類:根據運行方式    編程運行:源代碼->編譯器(編譯)--程序文件    解釋運行:源代碼-->運行啟動時解釋,由解釋器邊解釋運行; 根據其編程過程中功能的實現是調用庫還是調用外部的程序文件:   shell腳本編程:      利用系統上的命令編程組件進行編程:   完整的編程:     利用庫或編程組件進行編程; …

    Linux干貨 2016-12-23
  • 第一天

    今天講了很多

    Linux干貨 2018-03-26

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-22 14:13

    寫的很好,排版還可以在漂亮一點,加油,3大題1小題不對,2小題跟要求也不一樣

欧美性久久久久