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)
Net25_青梅煮茶Net25_青梅煮茶
上一篇 2016-12-14 18:22
下一篇 2016-12-14 18:35

相关推荐

  • CentOS 7, lamp (php-fpm);(Blog 15)

    要求:
    (1) 三者分离于三台主机;
    (2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;
    (3) xcache

    2017-12-20
  • Linux下计划任务神器-Crontab

    作为系统运维人员都清楚,在Linux下定义重复性的任务,我们一般会采用crontab来进行:crontab这个指令所设置的工作将会循环的一直进行下去!可循环的时间为分钟、小时、每日、每月、每周。 crontab计划任务: 1)常见用法:crontab命令的作用和用法如下:描述:为每个用户维护周期性的计划任务文件用法:crontab [-u 用户][-l|-r…

    Linux干货 2016-07-22
  • 第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。 5、取出当前主机的…

    Linux干货 2017-02-06
  • 文件系统配额操作

    创建磁盘配额是实际工作中会遇到的内容,下面是一个磁盘配额的全部过程 一、总体步骤 1 启用配额挂载选项 2 创建配额数据库 3启用数据库 4指定用户空间限制 5测试 6查询 二、分步操作过程 (1)  查看独立的磁盘(或者是分区) [root@localhoast ~]# lsblk NAME   …

    Linux干货 2016-11-23
  • 初识 vi/vim文本编辑器

    我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件。VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,现在的最新版都已自带,但是可能有些发行版本没有自带,可以使用sudo apt-get install vim命令安装vim。 可以使用vi或者vim命令直接进入新的文本文件,或者vim 文件…

    Linux干货 2017-07-29
  • 文件处理命令作业题

    练习题    1.找出ifconfig命令结果中的本机的所有ipv4地址4    2.查出分区空间使用率的最大百分比值    3.查找用户UID最大值的用户名、UID及shell类型    4.查出/tmp的权限。以数字方式显示    5.统计当前链接本机的每…

    Linux干货 2016-08-08

评论列表(1条)

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

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