马哥教育网络班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)
上一篇 2016-07-07 19:07
下一篇 2016-07-07 19:07

相关推荐

  • 文本编辑工具vim

                             vim +#: 打开文件直接处在#行 +/PATTERN:打开文件直接处在第一次匹配到行 vim + file :打开文件直接处在最后行 vim –b file :以二进制打开文件…

    Linux干货 2016-08-12
  • 软件包管理(RPM和yum)

        软件包在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础;只有我们学会软件包的管理才能谈得上其它的应用;本文以目录式的文档格式,列出新手弟兄所面对的软件包的安装、更新、查询相对的文档,以及几个常用的软件包管理工具。 软件包管理:     一,RPM包管理; &n…

    Linux干货 2016-09-06
  • CentOS7下重置root密码

    CentOS7下重置root密码          Linux系统、UNIX系统和其他类UNIX系统中,存在唯一的超级用户root。普通用户密码忘掉可以用root用户重置,但是一旦root密码忘掉,事情就复杂起来了。本文主要介绍root密码忘掉之后,重置密码的过程。   &nbs…

    Linux干货 2017-03-30
  • 计划任务

    任务计划Linux任务计划、周期性任务执行未来的某时间点执行一次任务:atbatch:系统自行选择空闲时间去执行此处指定的任务周期性运行某任务:cron     at任务at命令:at [option] TIME常用选项:-V 显示版本信息:-l: 列出指定队列中等待运行的作业;相当于atq-d: 删除指定的作业;相当于atrm-c: 查…

    Linux干货 2017-08-28
  • 进程和计划任务

    1、进程概念 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等; 进程是运行中的程序的一个副本,是被载入内存的一个指令集合; 进程ID(PID )号码被用来标记各个进程; UID、GID 和SELinux 语境决定对文件系统的存取和访问权限,这些权限通常从执行进程的用户来继承并且存在生命周期; task struct:Linux内核存…

    Linux干货 2016-09-13
  • CentOS 7上的性能监控工具

    Linux中基于命令行的性能监控工具:dstat、top、netstat、vmstat、htop、ss、glances 1、dstat – 多类型资源统计工具(需配置epel源)   该命令整合了vmstat,iostat和ifstat三种命令。同时增加了新的特性和功能可以让你能及时看到各种的资源使用情况,从而能够使你对比和整…

    Linux干货 2016-09-07

评论列表(1条)

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

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