马哥教育网络班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          块: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"

          大小:383        块: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"

          大小:383        块: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.178linux.com/38299

(0)
上一篇 2016-08-22 09:30
下一篇 2016-08-22 09:30

相关推荐

  • iptables 补充本

    浅谈iptables一 什么是iptablesiptables 是工作在内核之上的netfilter框架的前端工具(iptables是netfilter的管理工具这样说也不为过)Firewall:隔离工具,工作于主机或网络的边缘处,对经由的报文根据预先定义的规则(识别标准)进行检测,对于能够被规则匹配到的报文实行某种预定义的处理机制的一套组件; 硬…

    Linux干货 2017-05-15
  • 书写博客的作用

    博客,一个对于我们是一个既贴近又遥远的词汇。在我们生活中常常听到这个词汇,但是很大的一部分人并不会去发布属于自己的博客。而我在这里会发表一些对于博客作用的认识,以供大家借鉴。

    2018-03-26
  • 2016全球运维大会,优云蒋君伟演讲“CMDB+自动化的管理融合”成一大亮点

    2016全球运维大会于9月23日-24日在上海盛大开幕。作为国内运维行业的重量级大会,优云产品总监蒋君伟在自动化专场与来自全国各地的运维同行一起探讨、分享业内自动化运维的最佳实践。现场情绪热烈,气氛高涨,成为了本届全球运维大会的一大亮点。 全新梳理自动化与CMDB的融合之道 全球运维大会当天,运维自动化专场很多大牛针对自动化运维管理中的CMDB进行了激烈的讨…

    Linux资讯 2016-12-05
  • Bash的基础特性之命令执行状态返回值和命令行展开

    Bash的基础特性之命令的执行状态 Linux的命令执行结果状态有两种,分别为:1、成功2、失败bash使用特殊变量 $? 保存最近一条命令的执行状态结果使用echo $? 命令来查看命令执行状态返回值:0:成功1-255:失败 示例:         [root@localho…

    Linux干货 2016-11-04
  • 字符串处理

      一.字符串处理 v bash 的字符串处理工具: (一)字符串切片: ${#var}: 返回字符串变量var 的长度 例: [root@lxc ~]# a="     " [root@lxc ~]# echo ${#a} 5 [root@lxc ~]# ${var:offse…

    Linux干货 2016-11-24
  • 5.20 TOMCAT

    需要安装JDK JAVA Development Kit //JAVA 2 SE 的接口    TOMCAT 的安装: yum 安装 #yum install -y java-1.8.0-openjdk-devel 如下界面出现的话就是安装OK 注意:安装完成后,要配置JAVA_HOME环境变量,指向java的安装路径; OpenJDK: JAVA_HOME…

    2017-07-09

评论列表(1条)

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

    写的很好,排版还可以在漂亮一点,加油,3大题1小题不对,2小题跟要求也不一样