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

相关推荐

  • Linux运维基础2

    shell编程

    Linux干货 2018-03-19
  • 文本处理工具之grep

    三剑客之grep

    Linux笔记 2018-04-08
  • Linux用户与组管理命令的易混淆点和重合点

    Linux用户与组的管理命令,对于初学者来说很容易造成混淆,此外,这些命令之间有很多相重合的用法,即:拥有多种命令可实现相同的需求的情况。

    2018-04-03
  • 8.3号,第6天

    三种权限rwx对文件和目录的不同意义: 权限对于目录的意义: 1,r权限:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名,注意:仅仅指的是名字。 2、w权限:拥有此权限表示具有更改该目录结构列表的权限,总之,目录的w权限与该目录下的文件名或子目录名的变动有关,注意:指的是名字。具体如下:      …

    Linux干货 2016-08-05
  • Linux 6.8系统安装操作过程

      首先按照好vmware 虚拟机,安装过程忽略。       虚拟机新建完毕后,在虚拟机设置框中,选择硬件cd/dvd,右侧勾选使用iso磁盘文件,点击浏览,选择所需镜像文件,点击确定按钮。      然后,单击启动虚拟机   &nbsp…

    2017-05-21
  • week4

    一,复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没 有任何访问权限; cp -r /etc/skel/ /home/tuser1 chmod -R go= /home/tuser1/ 二,编辑/etc/group文件,添加组hado…

    Linux干货 2016-11-18

评论列表(1条)

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

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