马哥教育网络班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

相关推荐

  • 第二周:文件管理练习

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 目录管理管理类命令 mkdir make directories mkdir [OPTION]… DIRECTORY… 注意:路径基名作为命令的作用对象时,基名之前的路径必须要存在;     -p:自动按需创建父目录…

    Linux干货 2016-09-23
  • 加密解密基础、PKI以及自建私有CA

    加密解密基础、PKI以及自建私有CA 加密是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。 解密就是加密的逆向操作,将加密过的不可读的数据经过处理,能够是之前不可读的信息还原成可读信息。 PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施;…

    Linux干货 2016-12-07
  • 主流Linux发行版对比

      对服务器来说,没有最好的Linux发行版。一切都取决于企业的实际需求。 如今Linux已不再只是一款自由操作系统,它还承载了许多企业的核心应用。在对比流行的Linux发行版时,不仅要考虑有吸引力的功能集,还要关注系统的支持与服务。 服务器管理员担心操作系统的维护和支持周期。维护生命周期指的是Linux发行版持续提供产品补丁和更新的时间。支持方面…

    Linux干货 2016-10-31
  • 用户和组——Linux基本命令(10)

    1.     用户和组的配置文件 Linux用户和组的主要配置文件: /etc/passwd:用户及其属性信息(名称、UID、主组ID等) /etc/group:组及其属性信息 /etc/shadow:用户密码及其相关属性 /etc/gshadow:组密码及其相关属性   2. /etc/passwd 在Li…

    2017-07-22
  • 网络班27期第五周作业

    N27_网络班 第五周作业 1、 显示当前系统上root、fedora或user1用户的默认shell [root@localhost ~]# grep -E ‘^(root|fedora|user1)’ /etc/passwd | cut -d: -f1,7 2、 找出/etc/rc.d/init.d/function文件中某单词后面跟一组小括号的行,形如…

    Linux干货 2017-08-28
  • N22期-第4周作业

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

    Linux干货 2016-09-05

评论列表(1条)

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

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