N25第二周作业

第二周作业

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

演示用结构

 [root@centos01 yanshi]# tree -a /tmp/yanshi/
 
/tmp/yanshi/

├── a
│   └── 1
├── b
│   └── 2
└── c

    └── 3

cp:将源文件复制至目标文件,或将多个源文件复制至目标目录。

使用方法:

  • cp [选项]…(-t)源文件…目标

  • 如果目标不存在:新建DEST,并将SRC中内容填充至DEST中;

[root@centos01 yanshi]# pwd

/tmp/yanshi

[root@centos01 yanshi]# cp a/1 b

[root@centos01 yanshi]# ls b

1  2
  • 如果目标存在:如果DEST是文件则将SRC中的内容覆盖至DEST中;此时建议为cp命令使用-i选项;

[root@centos01 yanshi]# cp -i a/1 b

cp:是否覆盖"b/1"? y

[root@centos01 yanshi]# ls b

1  2
  • 如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件

[root@centos01 yanshi]# cp b/2 c/

[root@centos01 yanshi]# ls c 

2  3
  • cp [选项]…源文件(多个)…目录

  • 如果源文件为多个文件,则目标必须存在,且为目录,其它情形均会出错

[root@centos01 yanshi]# cp c/2 c/3 a/

[root@centos01 yanshi]# ls a

1  2  3

[root@centos01 yanshi]# cp c/2 c/3 d/

cp: 目标"d/" 不是目录
  • cp [选项]… -t 目录 文件…目标

此时使用选项:-r(递归复制)

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

[root@centos01 yanshi]# cp -r c d 

[root@centos01 yanshi]# ls d/

2  3
  • 如果目标存在
    目标是文件:报错;
    目标是目录:在目标目录创建一个与源目录名字相同的目录并把数据导入其中

[root@centos01 yanshi]# cp -r c a/1

cp: 无法以目录"c" 来覆盖非目录"a/1"

[root@centos01 yanshi]# cp -r c a

[root@centos01 yanshi]# ls a

1  2  3  c

[root@centos01 yanshi]# ls a/c

2  3

常用选项:
-i:交互式
-r, -R: 递归复制目录及内部的所有内容;
-a: 归档,相当于-dR –preserv=all
-d:–no-dereference –preserv=links
–preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp: 时间戳
links:连接属性
xattr:扩展属性
context:安全上下文
all:以上所有
-p: –preserv=mode,ownership,timestamp
-v: –verbose:显示详细信息
-f: –force:强制

mv: move,移动文件

使用方法:

  • mv [选项]… [-T] 源文件 目标文件(若目标存在且为文件,则只覆盖其中内容,名字不变)

[root@centos01 tmp]# cd yanshi

[root@centos01 yanshi]# mv a/1 b/2

mv:是否覆盖"b/2"? y

[root@centos01 yanshi]# ls b 

2
  • mv [选项]… 源文件… 目录

[root@centos01 yanshi]# mv b/2 c/

[root@centos01 yanshi]# ls c 

2  3
  • mv [选项]… -t 目录 源文件…

[root@centos01 yanshi]# touch 1

[root@centos01 yanshi]# ls

1  a  b  c

[root@centos01 yanshi]# mv 1 a b

[root@centos01 yanshi]# ls

b  c

[root@centos01 yanshi]# ls b 

1  a

rm: remove,删除

  • 使用方法:rm [OPTION]… FILE…

[root@centos01 yanshi]# ls b 

1  a

[root@centos01 yanshi]# rm b/1

rm:是否删除普通空文件 "b/1"?y

[root@centos01 yanshi]# ls b 

a

[root@centos01 yanshi]# cd /

[root@centos01 /]# rm -rf /tmp/yanshi/

[root@centos01 /]# ls /tmp/yanshi

ls: 无法访问/tmp/yanshi: 没有那个文件或目录

常用选项:
-i: 交互式
-f: 强制删除
-r: 递归
rm -rf

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

  • 命令的执行结果状态

    • 成功

    • 失败

  • bash使用特殊变量$?保存最近一条命令的执行状态结果:

    • 1-255:失败

    • 0:成功

  • 程序执行有两类结果:

    • 程序的执行状态结果;

    • 程序的返回值;

  • 命令行展开

    • ~USERNAME:展开为指定用户的主目录

    • {}:可承载一个以逗号分隔的列表,并将其展开为多个路径

    • /tmp/{1,2}/3 = /tmp/1/3, /tmp/1/3

    • /tmp/{1,2} = /tmp/1, /tmp/2

    • ~: 展开为用户的主目录

[root@centos01 /]# mkdir -p /tmp/cl/{1,2}

[root@centos01 /]# tree /tmp/cl

/tmp/cl

├── 1
└── 2

三:请使用命令行展开功能来完成以下练习(咳!题目就不打了)

  • 第一小题

[root@centos01 /]# mkdir /tmp/{a,b}_{c,d}

[root@centos01 /]# ls /tmp/

1  2  a_c  a_d  b_c  b_d  beifen  cl  keyring-s3kIrK  orbit-gdm  orbit-root  pulse-H1wCMLNcXyJa  pulse-s2Fn1pYsBx3W  pulse-uRDqWcz2n2en  virtual-root.TdFWCr  yum.log
  • 第二小题

[root@centos01 /]# 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}}

[root@centos01 /]# tree /tmp/mylinux/

/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
    

24 directories, 0 files

四:文件的元数据信息有哪些?分别表示什么含义,如何查看?如何修改文件的时间戳信息

  • 元数据是用来描述数据的数据,使信息的描述和分类可以实现格式化,从而为机器处理创造了可能。

[root@centos01 /]# stat /tmp/mylinux/

  File: "/tmp/mylinux/"
  
  Size: 4096      	Blocks: 8          IO Block: 4096   目录
  
Device: fd00h/64768d	Inode: 534289      Links: 14

Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2016-12-14 01:53:51.445997820 +0800

Modify: 2016-12-14 01:53:47.721989299 +0800

Change: 2016-12-14 01:53:47.721989299 +0800

其中各参数的含义:
File:文件的路径
Size: 文件大小
Blocks: 这个文件使用的块的总数
IO Block:这个文件的IO块大小
普通文件:表示文件的类型
Device:十六进制设备号,设备数量的小数
Inode:Inode号是一个独特的号码,操作系统用inode号码来识别不同的文件
Links:到文件的链接数
Access(0644/-rw-r–r–):文件的权限
Uid:文件所有者的UID和用户名
Gid:文件所有者的GID和组名
access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间
modify time:表示我们最后一次修改文件的时间
change time:表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等

  • 如何修改文件的时间戳信息
    三个时间戳:
    access time:访问时间,简写为atime,读取文件内容
    modify time: 修改时间, mtime,改变文件内容(数据)
    change time: 改变时间, ctime,元数据发生改变
    使用touch [OPTION]… FILE…
    -a: 只修改 atime
    -m: 只修改 mtime
    -t STAMP:指定具体时间的格式
    [[CC]YY]MMDDhhmm[.ss]
    -c: 如果文件不存,则不予创建

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

  • 别名:

通过alias实现:
alias:显示当前shell进程所有可用的命令别名
alias 别名=‘原命令’  (为避免空格,原命令两端加入单引号)
注意:在命令行中定义的别名,仅对当前shell进程有效,如果想永久有效,需修改配置文件
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc
修改配置文件后不会像在命令行中一样立即生效,不关闭当前shell进程的情况下,需重新读取配置文件
bash进程:source /….或.  /……
注:修改别名前确认不要和别的命令相冲突,可使用tab补全试一试

  • 管道:COMMAND1 | COMMAND2 | COMMAND3 |…

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

[root@centos01 /]# ls -d /var/l*[0-9]*[a-z]

ls: 无法访问/var/l*[0-9]*[a-z]: 没有那个文件或目录

[root@centos01 /]# mkdir /var/ls33b

[root@centos01 /]# ls -d /var/l*[0-9]*[a-z]

/var/ls33b

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

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

ls: 无法访问/etc/[0-9]*[^0-9]: 没有那个文件或目录

[root@centos01 /]# mkdir /etc/9854a

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

/etc/9854a

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

[root@centos01 /]# ls -d /etc/[^[:alpha:]][[:alpha:]]*

ls: 无法访问/etc/[^[:alpha:]][[:alpha:]]*: 没有那个文件或目录

[root@centos01 /]# mkdir /etc/5adjoayud

[root@centos01 /]# ls -d /etc/[^[:alpha:]][[:alpha:]]*

/etc/5adjoayud

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

[root@centos01 /]# touch /tmp/tfile-$(date +%F-%H-%M-%S)

[root@centos01 /]# ls /tmp/t*

/tmp/tfile-2016-12-14-04-01-09

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

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

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

cp -r /etc/*\.d /tmp/mytest2

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

cp -r /etc/[l,n,m]*\.conf /tmp/mytest3

原创文章,作者:Net25_青梅煮茶,如若转载,请注明出处:http://www.178linux.com/63680

(0)
上一篇 2016-12-14 18:22
下一篇 2016-12-14 18:35

相关推荐

  • 第一周作业

    一:计算机的组成和功能 主要分为五个部分:控制器、运算器、存储器、输入、输出 CPU :包含控制器和运算器、寄存器、缓存 存储器:内存,RAM(Random Access Memory) 输入:下指令,提供数据等 输出:输出数据加工的结果     微型计算机系统组成:      …

    Linux干货 2016-12-06
  • Puppet基于Master/Agent模式实现LNMP平台部署

    前言 随着IT行业的迅猛发展,传统的运维方式靠大量人力比较吃力,运维人员面对日益增长的服务器和运维工作,不得不把很多重复的、繁琐的工作利用自动化处理。前期我们介绍了运维自动化工具ansible的简单应用,本期带来的是运维自动化神器puppet基于Master/Agent模式实现LNMP平台部署。 Puppet 简介 Puppet是基于ruby语言开发的一种L…

    Linux干货 2015-07-13
  • 2016-08-12作业

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

    Linux干货 2016-08-15
  • 给linux系统添加新的磁盘

    虚拟化环境中,我们经常会遇到需要增加磁盘容量的情况,通常有两种方式,第一种是添加一块新的硬盘,另一种是扩容原有磁盘,以下是添加新磁盘至linux系统的操作规范。注:具体磁盘信息可能有所不同。 ##查看新增加磁盘/dev/sdb的信息 [root@CentOS7 ~]# fdisk -l /dev/sdb   Disk /dev/sdb: 5368 …

    Linux干货 2016-11-11
  • linux权限详解

    写在前面: 本博客详解命令chmod,  chowm,  chgrp,  umask,  install,  mktemp  权限管理: 进程文件访问权限应用模型: 进程的属主与文件属主是否相同,如果相同,则应用属主权限 否则,检查文件的属主是否属于文件的属组,如果是,则应用属主权限 否则,应用ot…

    Linux干货 2015-12-19
  • 马哥教育网络班22期+第4周课程练习

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

    Linux干货 2016-09-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 23:42

    赞~总结的内容是没啥问题,其中解决的方法不止一种~建议多进行扩展一下~继续加油~