马哥教育网络班21期-第二周课程练习

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
文件管理类命令有:cp, mv, rm
    cp:
         功能:copy,复制
         语法:cp [OPTION]… [-T] SOURCE DEST
                    cp [OPTION]… SOURCE… DIRECTORY
                    cp [OPTION]… -t DIRECTORY SOURCE…

                    cp SRC DEST
                         SRC是文件:
                         如果目标不存在:新建DEST,并将SRC中内容填充至DEST中;
                         如果DEST是文件:将SRC中的内容覆盖至DEST中;
                         此时建议为cp命令使用-i选项;
                         如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中;

                    cp SRC… DEST
                         SRC…:多个文件
                             DEST必须存在,且为目录,其它情形均会出错;
                         SRC是目录:
                              此时使用选项:-r

                              如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;
                              如果DEST存在:
                              如果DEST是文件:报错

        常用选项:
            -i:交互式
            -r, -R: 递归复制目录及内部的所有内容;
            -a: 归档,相当于-dR –preserv=all
            -d:–no-dereference –preserv=links
            –preserv[=ATTR_LIST]
            -p: –preserv=mode,ownership,timestamp
            -v: –verbose  显示详细信息
            -f: –force
         示例:
              复制file1到/tmp下并重命名为file2:

     #cp file1 /tmp/file2

              备份当前目录的所有文件到/backup下:

     #cp -a . /backup/

              复制目录的内容到另一个目录:

     #cp -r SRC_DIR  DST_DIR

mv:
      功能:move,移动
      用法:mv [OPTION]… [-T] SOURCE DEST
                 mv [OPTION]… SOURCE… DIRECTORY
                 mv [OPTION]… -t DIRECTORY SOURCE…       
      常用选项:
            -i: 在执行时会提示
            -f: 强制执行
            -t:移动所有SOURCE 到 DIRECTORY
      示例:
          将当前目录的多个文件移动到/tmp下:

    #mv -t /tmp test1 test2 ...

          修改文件名称:

    #mv 1.txt 2.txt

rm:
     功能:remove,删除
     用法:rm [OPTION]… FILE…
     常用选项:
         -i: 交互式
         -f: 强制删除
         -r: 递归
     示例:
         删除/tmp下的.log文件:

   #rm -rf  /tmp/*.log

  
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
特殊变量$?保存上一条命令执行状态结果
可以这么查看

 #echo $?

返回结果:        0:表示成功
                   1-255:表示失败

命令行展开所涉及的内容:
    ~:展开为用户的主目录
    ~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
如下示例:

#touch /tmp/{a,b,c}

   /tmp/a /tmp/b /tmp/c

#mkdir /tmp/{hello,world}/d

  /tmp/hello/d /tmp/world/d

 

3、请使用命令行展开功能来完成以下练习:
   (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

   #mkdir /tmp/{a,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 /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、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
文件的元数据信息是用来描述一个文件的特征的系统数据,包括文件大小,inode数,连接数,访问权限,UID、GID以及三个时间戳,可以用stat命令来进行查看。

文件有三个时间戳,分别是:
     access time:访问时间,atime,读取文件内容
     modify time: 修改时间, mtime,改变文件内容(数据)
     change time: 改变时间, ctime,元数据发生改变

可以用touch命令进行修改文件的时间戳信息。

touch:
     语法:touch [OPTION]… FILE…
     选项:-a: 只改变 atime
                -m: 只改变 mtime
                -t:STAMP: [[CC]YY]MMDDhhmm[.ss] 代替当前系统时间
                -c:如果文件不存在,则不创建
     示例:
          修改文件的访问时间为当前系统的时间

    #touch -a FileName

          修改文件的时间为指定时间戳

    #touch -t 201607071950.33 FileName

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
可以用alias定义一个命令的别名, 如 alias NAME=‘VALUE’
可以用反引号括起想要获取的命令的执行结果,如 FILES=`ls -l`

 

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

#ls -d /var/l*[0-9]*[[:lower:]]

 

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

#ls -d /etc/[0-9]*[^0-9]

 

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

#ls -d /tmp/[^a-zA-Z][a-zA-Z]*

 

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

#touch /tmp/tfile-`date +"%F-%H-%M-%S"`

 

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

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

 

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

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

 

12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

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

 

原创文章,作者:π,如若转载,请注明出处:http://www.178linux.com/23196

(0)
ππ
上一篇 2016-07-12 11:15
下一篇 2016-07-12 11:15

相关推荐

  • Linux系统启动流程

        下面按照系统的启动顺序来进行逐一的讲解。 一、POST     当我们按下开机的电源后,主板上的芯片组会首先向CPU发出一个reset指令,之后待芯片组检测到电源供电稳定后便撤去reset指令,CPU就会跳转到BIOS中的启动代码位置; BIOS首先要检测关键设备(如内显…

    Linux干货 2015-05-23
  • Mysql备份III

    Mysql备份III Mysqldump和mysqldumper A备份和恢复所有库 $ time mysqldumo –all-databases > /mysql/backup/date.time.database.dump.sql $ echo $? $ ls&nbs…

    Linux干货 2016-06-09
  • 8.5_Linux习题练习和作业

    课堂练习题 1、找出ifconfig命令结果中本机的所有IPv4地址 # ifconfig | grep -oE "([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|2…

    Linux干货 2016-08-10
  • 第四周作业

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 [root@localhost ~]# cp -r /etc/skel/ /home/tuser1 [root@localhost ~]# chmod go= /home/tuser1/ -R [root@localhost …

    Linux笔记 2018-06-03
  • 关于shell脚本编程基础第三篇

                          关于shell脚本编程基础第三篇   本章主要内容:循环的特殊用法;while;for;select 循环与菜单       &nbsp…

    系统运维 2016-08-21
  • ​从实验来了解grub

    实验一为grub设置密码 先看一看grub是怎么样的 grub有两个版本 grub: GRand Unified Bootloader grub 0.x: grub legacy grub 1.x: grub2  Note:grub 1.x是完全重写的只不过是保留grub 0.x的工作机制。 2.利用grub自带命令生成密码grub-md5-cry…

    Linux干货 2016-06-09

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-12 14:05

    写的很好,排版也很棒,加油