马哥教育网络班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入门知识

    了解计算机的构造和Linux的基本知识,掌握相关的内容

    2017-09-10
  • 走入系统命令

    一、inode节点号         在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关…

    2017-05-25
  • systemd与awk的用法

    awk,systemd

    Linux笔记 2018-08-07
  • LVS介绍及工作原理图解

    一、LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,官方站点是:http://www.linuxvirtualserver.org。现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2.…

    2017-12-06
  • N22-第3周作业-冥界之王

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@CentOS6 ~]# who  | cut -d " " -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。…

    Linux干货 2016-09-19
  • http协议

    Web Service概述 web服务时一种应用程序的服务,它所提供的最主要的信息是一种超文本标记语言(HTML)、多媒体资源(如:视频、图片、音乐等)。HTML是一种纯文字的文本信息,通过所谓的标签来规范所要显示的内容格式,在客户端通过浏览器的形式对HTML及多媒体资源进行解析,然后呈现在终端上。主要由http和https协议实现 http协议概述 HTT…

    Linux干货 2016-10-28

评论列表(1条)

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

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