【第一阶段】第二周作业

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

  • cp命令:复制文件或目录
    • 单源复制
      • cp [OPTION]… [-T] SOURCE DEST
      • 如果目标不存在,则先创建一个空文件,再把源中的数据流复制进去
      • 如果目标存在
        • 如果目标是非目录文件,则覆盖目标文件,cp -i则会询问是否覆盖,cp是cp -i的别名
        • 如果目标是目录文件,先创建一个空文件,再把源中的数据流复制进去
    • 多源复制
      • cp [OPTION]… SOURCE… DIRECTORY
      • 目标必须是目录
      • 如果目标不存在:报错
      • 如果目标存在
        • 如果目标是非目录文件:报错
        • 如果目标是目录文件:分别复制每个文件至目标目录中,并保持原名
    • 常用选项
      • -i:覆盖之前提醒用户确认

      • -f:强制覆盖目标文件
        • 由于cp是cp -i的别名,所以实际中即使添加了-f也不会强制覆盖。解决方案是使用“cp”使别名无效
        • 在下面的例子中,即使不加“-f”效果也是一样的,因为“-f”是cp的默认行为

      • -r/-R:递归复制目录

      • -d:复制符号链接文件本身,而非其指向的源文件,相当于--preserve links

      • -a:-dR --preserve=all,用于实现归档(备份)

 

  • mv命令:文件剪切或重命名
    • mv的原理是先cp,再rm
    • 常用选项
      • -i:覆盖之前提醒用户确认,mv是mv -i的别名

      • -f:强制覆盖/force

 

  • rm命令:删除文件
    • 在生产环境中,可以自建回收站,然后mv到回收站,不要轻易rm
    • 常用选项
      • -r:递归删除

      • -i:删除之前提醒用户确认,如上图
      • -f:强制删除,不提示

  

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

  • 命令执行状态返回值
    • 命令执行完成之后,其状态返回值会保存于bash的特殊变量“$?”中。可以用“echo $?”查看
    • bash通过状态返回值来输出此结果
      • 成功:0
      • 失败:1-255

  • 命令行展开
    • ~:展开为用户的家目录,或指定的用户的家目录

    • {}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径。例如:/tmp/{a,b}相当于/tmp/a,/tmp/b

 

3、请使用命令行展开功能来完成以下练习:

(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

(2)、创建/tmp/mylinux目录下的:

答案: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、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

使用stat命令可以查看文件的元数据信息,如下图:

时间戳

  • 最近访问/Access Time:打开读取的时间
  • 最近更改/Modify Time:改变数据的时间,此时元数据一定改变
  • 最近改动/Change Time:改变元数据的时间

使用命令touch来修改文件的时间戳:

  • touch FILE:三个时间戳都会变
  • touch -a File:仅修改access time
  • touch -m File:仅修改modify time
  • touch -t time File:将时间戳改为指定的时间,time的格式为[[CC]YY]MMDDhhmm[.ss],例如:touch -m -t 0212010303.03 /tmp/passwd

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

  •  使用命令alias来定义别名

  • 引用命令的执行结果使用:$(COMMAND)或`COMMAND`

原文地址:https://www.cnblogs.com/jacky1982/p/7679393.html