马哥教育网络班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
下一篇 2016-07-12

相关推荐

  • 计算机网络基础

    计算机网络基础 分层的网络模型 网络发展到今天,规模很庞大,内容很复杂,不利于网络的管理和教学。网络分层可以:降低网络结构的复杂性、把各层的接口标准化、简化模块设计、确保技术的互操作性、加快发展速度以及简化教学过程。 OSI模型——国际标准:根据国际标准化组织( ISO,International Standards Orgnization)提案,计算机网络…

    Linux干货 2016-11-22
  • 优云老王(四)干货总结:数据带来的奇妙世界

    作为产品经理的我们,不仅仅需要业务敏感的直觉,还需要数据驱动我们的产品不断创新!关于如何看数据,我列了主要的四个场景。 场景一:看页面点击,了解用户关注什么,卡在哪里 给谁看:产品经理和交互设计师 看什么: 由于我们对Web应用的所有界面,可交互元素都做了埋点,那么我们就可以看用户在页面里都做了哪些点击动作。首先是整个页面的横向比较,每个页面本身的操作数(重…

    2016-09-19
  • 文件查找作业

    1、查找/var目录下属主为root,且属组为mail的所有文件 [root@wzc ~]# find /var/ -user root -a -group mail /var/spool/mail /var/spool/mail/root 2、查找/var目录下不属于root、…

    Linux干货 2016-08-15
  • psql: undefined symbol: PQconnectdbParams 已解决

    操作PostgreSQL的过程中,在执行psql的时候,遇到了如下错误:  /path/to/postgresql/bin/psql: symbol lookup error: /usr/pgsql-9.2/bin/psql: undefined symbol: PQconnectdbParams 整理后发现是,PostgreSQL的动态链接库没有…

    Linux干货 2015-03-08
  • 【福利贴-招聘】大数据运维开发工程师/上海/15-25K

    公司:上海谦问万答吧云计算科技有限公司 领域:移动互联网,在线教育 职位:大数据运维开发工程师 工作经验:2年以上 学历:本科以上 薪资:15-25K 岗位职责 1、负责公司大数据平台的运维保障; 2、负责大数据平台的架构审核、业务监控、持续交付、应急响应、容量规划等; 3、为线上服务高效稳定运行负责,支撑业务和数据量的快速扩张; 4、深入理解大数据平台架构…

    Linux职位 2015-04-02

评论列表(1条)

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

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