马哥教育网络班21期-第二周课程作业

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

cp即copy的简写,我们可以用它来复制一些文件即将,源文件的数据流复制到目的文件中。和下面要讲的rm,mv,一样都是一些非常基础的命令。关于这个命令,我们有个小窍门,那就是根据 ls file这个命令是否执行成功来判断file文件是否存在。

关于cp,我们有一些要点要注意:

cp SRC DEST #此时SRC只有一个,且为文件

如果DEST是文件,且存在,则将源文件的内容覆盖至DEST。如果此时为root用户,那么默认alias cp=cp -i,
所以会出现询问是否覆盖文件的提醒,而此时如果是其他用户,则默认覆盖,不会提醒,所以得谨慎使用。如果不存在,那就简单了,系统直接创建一个文件,然后
将源文件数据流覆盖至DEST中。就这么简单。

如果DEST是目录,且存在那么就在指定目录下创建与源文件同名的文件,并将数据流填充至新文件中。若目录不存在,则直接报错。

如果SRC是目录,那么DEST必须为目录,且必须必须使用 -r  选项。即递归选项,因为目录里面也会有目录,必须要使用递归选项才能正确的将SRC及其子目录复制到DEST。注意SRC目录是什么结构,那么在DEST中就是什么结构。

cp  SRC…   DEST  #SRC有多个文件。且必须文件。

DEST必须是目录,且要存在,若不存在,则直接报错。

关于cp已经说了很多废话,但是还是要继续介绍一些关于cp短选项,希望各位客官不要厌烦。

        -r:  递归,将该目录下的所有子目录一起复制,上面说过这事SRC为目录是必须使用的选项

        -i: 交互式命令,也已经说过了,就是当要覆盖一个已存在文件时,出现提醒,并让你确认。

        -a:  归档,相当于 -dR –preserve=all

             -d:  –no-deference    –preserve=links

             –preserve[=ATTR_LIST]    保存文件元数据属性

              mode: 权限

              ownership:  属主属组

              timestamp:  时间戳

              links; 链接

              。。。

              all: 所有元数据属性

       -p: –preserve=mode, ownership,  timestamp

       -f:  force  强制复制,若已存在一个同名文件,但该文件的权限不允许复制,则删除该文件,然后重新创建一个同名的文件。

cp讲的差不多了,那么就来讲讲rm吗,它是文件移动命令。它和cp很相似。以下是mv的三种形式。

       mv [OPTION]… [-T] SOURCE DEST
       mv [OPTION]… SOURCE… DIRECTORY
       mv [OPTION]… -t DIRECTORY SOURCE…

mv也有一些有趣的短选项:

       -i: 交互式: 在覆盖文件时,发出提醒,并等待用户响应。

       -f: 强制性: 在覆盖前,不发出提示,直接覆盖。

下面就是rm,rm的作用是删除文件或目录。很简单,只要文件存在就可以了,介绍一些简单的选项吧。

       -i: 交互式,每删除一个文件都询问一次,并等待回答。

       -f: 强制执行,即不询问就执行

       -r: 递归删除,即删除文件,目录即目录中所有的内容。

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

关于命令行展开的用法,主要是以下三点:

1.   ~: 展开为当前用户家目录;

2,  ~USERNAME:展开为指定用户的家目录;

3,  /tmp/a/{x,y}:  展开为/tmp/a/x 和/tmp/a/y

[root@promote ~]# cd ~
[root@promote ~]# cd ~test
[root@promote test]# mkdir -pv /tmp/a/{x,y}
mkdir: created directory ‘/tmp/a’
mkdir: created directory ‘/tmp/a/x’
mkdir: created directory ‘/tmp/a/y’

命令执行状态返回值只有两种情况:

成功:0

失败: 1-255

$? 为上一条命令的执行状态返回值,我们要与执行返回值相区分。

[root@promote test]# mkdir -pv /tmp/b
mkdir: created directory ‘/tmp/b’
[root@promote test]# echo $?
0
[root@promote test]# mkdir -v /tmp/b
mkdir: cannot create directory ‘/tmp/b’: File exists
[root@promote test]# echo $?
1

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

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

touch /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 -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},
lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,bin},var/{lock,log,run}}

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

文件的元数据信息有:属主,属组,时间戳

ls -l

可查看文件的元数据信息

属主指创建该文件时的用户

属组至创建该文件的用户组

时间戳分为三种,即访问时间,修改时间,改变时间。

访问时间 :  access time (atime)
是指最后一次访问文件的时间,修改时间:  modify time(mtime). 是指最后一次修改文件内 容的时间,改变时间:  change
time(ctime)是指最后一次修改文件属性的时间。我们要重点注意一点,那就是只要访问时间或修改时间改变了,改变时间也一定改变。

我们可以用stat目录来查看时间戳,这个命令本意是查看的是文件的属性,而时间戳就是文件的属性。关于它我们还有另一个很神奇的命令,那就是touch,它可以用来改变文件的时间戳,将其变为当前时间。

touch   -a   FILENAME

touch   -m  FILENAME

当然我们也可以使用-t选项指定时间。注意-t选项一定要与时间相连。

[root@ ~] # touch -a -t  201606130101.01 /tmp/fstab
[root@ ~]# stat /tmp/fstab
File: `/tmp/fstab'
Size: 595           Blocks: 8          IO Block: 4096   regular file
Device: ca01h/51713d    Inode: 396687      Links: 1
Access: (0600/-rw——-)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-13 01:01:01.000000000 +0800
Modify: 2016-06-13 01:01:01.000000000 +0800
Change: 2016-06-30 10:23:01.113221976 +0800

再强调一点,只要atime或mtime 改变了,则ctime必改变。因为时间戳也是文件的属性。

神奇的地方来了,虽然touch是用来改变时间戳的,但它却可以用来创建文件。好玩吧!  touch FILENAME

如果不想创建文件,加个-c选项就可以了。

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

定义别名:

alias cd="cd /root"

引用另一个变量:

[root@promote ~]# echo `date` > time.out
[root@promote ~]# cat time.out 
Thu Jul 7 00:32:54 CST 2016

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

ls /var/l*[[:digit:]]*[[:lower:]]

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

ls /etc/[[:digit:]]*[^[:digit:]]

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

ls /etc/[^[:alpha:]][[:alpha:]]*

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

[root@promote tmp]# touch tfile-`date +%F-%H-%M-%S`
[root@promote tmp]# ls tfile*
tfile-2016-07-07  tfile-2016-07-07-10-58-08

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

[root@promote tmp]# \cp -r /etc/p*[^[:digit:]] ./mytest1/

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

[root@promote tmp]# \cp -r /etc/*.d ./mytest2/
[root@promote tmp]# ls ./mytest2/
auto.master.d      dracut.conf.d  logrotate.d     profile.d  rc.d           sysctl.d
bash_completion.d  exports.d      modprobe.d      rc0.d      request-key.d  tmpfiles.d
binfmt.d           gdbinit.d      modules-load.d  rc1.d      rsyslog.d      usb_modeswitch.d
cgconfig.d         grub.d         my.cnf.d        rc2.d      rwtab.d        xinetd.d
chkconfig.d        init.d         oddjobd.conf.d  rc3.d      sane.d         yum.repos.d
cron.d             ipsec.d        pam.d           rc4.d      setuptool.d
depmod.d           ld.so.conf.d   popt.d          rc5.d      statetab.d
dnsmasq.d          libibverbs.d   prelink.conf.d  rc6.d      sudoers.d

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

[root@promote tmp]# \cp -r /[lmn]* ./mytest3/
[root@promote tmp]# ls ./mytest3/
lib  lib64  media  mnt

原创文章,作者:21期-扬州-蓝,如若转载,请注明出处:http://www.178linux.com/21926

(0)
21期-扬州-蓝21期-扬州-蓝
上一篇 2016-07-07
下一篇 2016-07-07

相关推荐

  • CentOS、RHEL及Linux的关系

    什么是Linux?    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux存在着…

    Linux干货 2016-01-14
  • 马哥教育网络班25期+第一周课程练习

    一、计算机的组成及功能     现代计算机的结构:冯诺依曼结构体系(储存程序,顺序执行),由20世纪30年代中期,美国科学家冯·诺依曼提出     冯.诺依曼结构处理器具有以下几个特点:     1:必须有一个存储器;2:必须有一个控制器;3:必须有一个运算器…

    Linux干货 2016-11-28
  • 文本处理工具练习题(包含正则)

    正则练习题(包含文本处理练习题) 问题 找出ifconfig命令结果中本机的所有IPv4地址  查出分区空间使用率的最大百分比值 查出用户UID最大值的用户名、UID及shell类型 查出/tmp的权限,以数字方式显示 统计当前连接本机的每个远程主机IP的连接数,并按从大 到小排序 答; ifconfig | grep -o '[0-9]\…

    Linux干货 2016-08-08
  • 文件、目录练习

    将/etc/issue文件的内容转换为大写保存到/tmp/issue.out文件中: 将当前系统登录用户信息转换为大写后保存至/tmp/who.out文件中: 将/root/下文件列表,显示成一行,文件名之间用空格隔开: file1文件的内容为“1 2 3 4 5 6 7 8 9 10”计算出所有数字的总和: 处理字符串“xt.,| 1 jr#!$mn 2 …

    Linux干货 2016-08-05
  • iptables 实现应用层过滤

        在linux环境中,工作于内核空间的netfilter和工作于用户空间的iptables共同组成了其功能强大且操作灵活的防火墙系统,对进出主机或内外网之间的流量基于IP地址、通信协议、端口以及连接状态等进行管控,然而,对于一些使用非固定端口或者通信协议的应用程序,默认是没有办法做限制的,比如聊天软件QQ、下载工具迅雷等,不过我们可…

    Linux干货 2015-07-10
  • Linux磁盘知识,分区与文件系统

    硬件设备在Linux系统中的表现     设备文件      I/O Ports: I/O设备地址      一切皆文件:         open(), read(), write(), close()   &nbsp…

    Linux干货 2016-08-29

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-07 19:14

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