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

相关推荐

  • 没有自动ip解决办法

    用虚拟机下载好centos6.9后,本来想查看ip地址,结果发现没有自动获取ip地址,在网上找了很多方法都不行,问题如下: 用命令ifconfig查看ip地址,发现没有,如下 查看eth0如下 解决办法如下: 1、关闭NetworkManager服务 2、关闭NetworkManager开机启动 3、添加 /etc/sysconfig/network-scr…

    2017-07-16
  • 打造自己小小的RPM包

    关于源码RPM包的安装于制作 什么是RPM与SRPM? 1     RPM: 1     SRPM: 2     SRPM的安装 2 一 .利用rpmbuild默认安装SRPM档案 2 二.配置路径与需要的软件功能模块 3  &n…

    Linux干货 2016-08-24
  • Linux-进程管理

    本小节介绍  1、进程的描述  2、用户怎么样管理进程  3、进程管理的命令 进程的概念        内核的功能:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等。        Pro…

    2017-07-02
  • Docker 之初次体验

    一、Docker 简介  lxc linux container,openvz  容器中各虚拟机只有一个内核,而是多个用户空间  在库中完成虚拟化,比如wine 或者在windows中运行bash  在应用程序的运行级别提供虚拟化,比如jvm   pstree , pid 为1 的进程  …

    Linux干货 2015-01-16
  • Android必备的Java知识点

     Android应用程序开发是以Java语言为基础的,所以需要有扎实的Java基础知识。首先熟悉java基本语法,然后熟悉设计模式等。         a) Java基础语法:看下面的《Java知识点列表》       b)设计模式:由于在Android系统的框架层当中,使用了大…

    Linux干货 2015-04-08
  • OPENSSL加密技术及私有CA的搭建

    加密方式有对称加密 非对称加密 单向加密 对称加密:     加密和加密都用同一个对称密钥,但是,这种加密方法存在一定问题,就是密钥传输时,容易被盗窃。还有密钥管理困难,对称加密的方法:DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5。   非对称加密: 公钥…

    Linux干货 2015-08-17

评论列表(1条)

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

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