N22-第二周作业

一.linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示

    cp复制命令:

    -i:若目标文件存在,提示是否覆盖目标文件,此选项为已写入alias里,使用时为默认选项

    [root@localhost ~]# ls /tmp/test/

    fstab  issue  passwd

    [root@localhost ~]# cp /etc/fstab /tmp/test/

    cp: overwrite ‘/tmp/test/fstab’? n     (输入'y'为覆盖,‘n’为拒绝覆盖)

    -r:递归复制目录

    [root@localhost ~]# cp -r /etc /tmp/

    [root@localhost ~]# ls /tmp/

    etc  fstab  test

    -d:若源文件为链接文件,则复制链接文件本身而非文件本身

    [root@localhost ~]# ln -s /tmp/fstab /tmp/fstab.link    (在/tmp目录下创建文件fstab的链接文件fstab.link)

    [root@localhost ~]# ll /tmp    (查看源文件和链接文件属性)

    total 12

    drwxr-xr-x. 76 root root 4096 Aug 20 11:57 etc

    -rw-r–r–.  1 root root  617 Aug 20 11:40 fstab

    lrwxrwxrwx.  1 root root   10 Aug 20 12:06 fstab.link -> /tmp/fstab    (第一个字符‘l’表示此文件是链接文件)

    drwxr-xr-x.  2 root root   43 Aug 20 11:35 test

   (不加选项‘-d’)

    [root@localhost ~]# cp /tmp/fstab.link ./ 

    [root@localhost ~]# ll

    total 12

    -rw——-. 1 root root 958 Aug  6 06:17 anaconda-ks.cfg

    -rw-r–r–. 1 root root 617 Aug 20 12:11 fstab.link    (可见复制的为源文件本身属性,并非链接文件本身,因为第一字符为‘-’)

    -rw-r–r–. 1 root root  23 Aug 20 11:09 issue.txt

    (加选项‘-d’)

    [root@localhost ~]# cp -d /tmp/fstab.link ./fstab.link2

    [root@localhost ~]# ll

    total 12

    -rw——-. 1 root root 958 Aug  6 06:17 anaconda-ks.cfg

    -rw-r–r–. 1 root root 617 Aug 20 12:11 fstab.link

    lrwxrwxrwx. 1 root root  10 Aug 20 12:17 fstab.link2 -> /tmp/fstab    (复制的是链接文件本身属性,并非源文件本身,第一个字符为‘l’)

    -rw-r–r–. 1 root root  23 Aug 20 11:09 issue.txt

    -p:连同文件属性一起复制,而非使用默认属性

    查看源文件issue属性

    [root@localhost ~]# ll /etc/issue    

    -rw-r–r–. 1 root root 23 Dec  9  2015 /etc/issue

    不加选项-p

    [root@localhost ~]# cp /etc/issue /tmp/issue1

    [root@localhost ~]# ll /tmp/issue1

    -rw-r–r–. 1 root root 23 Aug 20 12:35 /tmp/issue1    (与源文件属性不一样,创建的时间变了)

    加上选项-p

    [root@localhost ~]# cp -p /etc/issue /tmp/issue2

    [root@localhost ~]# ll /tmp/issue2

    -rw-r–r–. 1 root root 23 Dec  9  2015 /tmp/issue2    (文件属性与源文件属性一致)

    -a:相当于‘-pdr’组合,这里就不演示了

    mv:文件或目录移动和重命名 

    [root@localhost ~]# mv /etc/issue  /tmp/    (移动/etc/issue文件到/tmp目录下)

    [root@localhost ~]# ll /etc/issue

    ls: cannot access /etc/issue: No such file or directory    (查询不到/etc/issue文件信息)

    [root@localhost ~]# ll /tmp/issue

    -rw-r–r–. 1 root root 23 Dec  9  2015 /tmp/issue    (已经移动到/tmp/目录下了)

    将/tmp/issue重命名

    [root@localhost ~]# ls /tmp/

    issue

    [root@localhost ~]# mv /tmp/issue /tmp/issue2

    [root@localhost ~]# ls /tmp/

    issue2

    补充:mv目录时,不用加‘-r’选项

          多源移动时,最后的目标文件必须是目录

          同时也拥有‘-i’选项,询问是否覆盖

    rm:删除文件或目录命令

    删除/tmp目录下的issue2文件

    [root@localhost ~]# ls /tmp/

    issue2

    [root@localhost ~]# rm /tmp/issue2

    rm: remove regular file ‘/tmp/issue2’? y    (同时选项‘-i’也是默认的)

    [root@localhost ~]# ls /tmp/

    -f:强制删除,不会提示用户

    强制删除/tmp目录下的fstab文件

    [root@localhost ~]# ls /tmp/

    fstab

    [root@localhost ~]# rm -f /tmp/fstab    (此处没有询问用户是否删除)

    [root@localhost ~]# ls /tmp

    -r:递归删除目录

    删除/tmp/test/目录

    [root@localhost ~]# ls /tmp/

    test

    [root@localhost ~]# rm -r /tmp/test/

    rm: remove directory ‘/tmp/test’? y

    [root@localhost ~]# ls /tmp/

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

   命令返回值状态:

   返回值0:执行成功

   [root@localhost ~]# ll

    total 4

    -rw——-. 1 root root 958 Aug 13 07:46 anaconda-ks.cfg

   [root@localhost ~]# echo $?

    0    (返回值0)

   返回值(1-255):执行失败

   [root@localhost ~]# ll -d /home/test

   ls: cannot access /home/test: No such file or directory

   [root@localhost ~]# echo $?

    2    (返回值1-255之间的数字)

   命令行展开:

   返回用户主目录

    [root@localhost ~]# cd /etc/sysconfig/network-scripts/

    [root@localhost network-scripts]# cd ~

    [root@localhost ~]# 

    在/tmp下创建test1,test2,test3目录

    [root@localhost ~]# mkdir /tmp/{test1,test2,test3}

    [root@localhost ~]# ls /tmp

    ks-script-cR5LUy  test1  test2  test3  yum.log

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

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

    [root@localhost ~]# touch /tmp/{a_{c,d}},b_{c,d}}

    [root@localhost ~]# ls /tmp/

    a_c}  a_d}  b_c  b_d  ks-script-cR5LUy  mylinux  yum.log

 (2)创建/tmp/mylinux目录下的:

/tmp/mylinux

├── bin

├── boot

│   └── grup

├── 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@localhost ~]# mkdir – p /tmp/mylinux/{bin,boot/grup,/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@localhost ~]# tree -d /tmp/mylinux

/tmp/mylinux

├── bin

├── boot

│   └── grup

├── 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@localhost ~]# stat /etc/passwd

    File: ‘/etc/passwd’

    Size: 1040       Blocks: 8          IO Block: 4096   regular file

    Device: fd00h/64768d Inode: 12075       Links: 1

    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)

    Context: system_u:object_r:passwd_file_t:s0

    Access: 2016-08-14 18:12:30.456000517 -0400

    Modify: 2016-08-13 07:45:37.605912316 -0400

    Change: 2016-08-13 07:45:37.606912316 -0400

    Birth: –

    File——文件名

    Size——文件大小,默认单位(B)

    Blocks——文件所占块的数量

    IO Block—— 文件系统的Block大小,默认单位(B)

    regular file——文本文件

    Device: fd00h/64768d——指明存储文件的设备

    Inode: 12075 ——文件的inode值

    Links: 1——文件被硬链接的数量

    Access: (0644/-rw-r–r–)——文件的访问权限

    Uid: (    0/    root)——文件所有者

    Gid: (    0/    root)——文件所属组 

    Access: 2016-08-14 18:12:30.456000517 -0400——文件最近的访问时间

    Modify: 2016-08-13 07:45:37.605912316 -0400——文件最近的修改时间

    Change: 2016-08-13 07:45:37.606912316 -0400——文件属性最近的改变时间

修改文件的时间戳信息:

    先查看test文件当前时间戳信息:

    [root@localhost ~]# stat ./test

    Access: 2016-08-15 11:19:03.849323742 -0400

    Modify: 2016-08-15 11:19:03.849323742 -0400

    Change: 2016-08-15 11:19:03.849323742 -0400

    修改test文件的atime时间戳:

    [root@localhost ~]# touch -a –date="2004-10-08 13:23:45" ./test

    再查看test文件的状态:

    [root@localhost ~]# stat ./test

    Access: 2004-10-08 13:23:45.000000000 -0400  (时间修改为上面命令里指定的时间)

    Modify: 2016-08-15 11:19:03.849323742 -0400

    Change: 2016-08-15 11:34:58.463263349 -0400

    修改test文件的mtime时间戳:

    [root@localhost ~]#  touch -m –date="2005-09-15 10:20:23" ./test

    查看一下:

    [root@localhost ~]# stat ./test

    Access: 2004-10-08 13:23:45.000000000 -0400

    Modify: 2005-09-15 10:20:23.000000000 -0400   (时间已改变)

    Change: 2016-08-15 11:47:10.994217005 -0400

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

    定义命令别名:alias命令

    定义‘lld’为‘ls -ld’命令的别名

    [root@localhost ~]# alias "lld=ls -ld"

    [root@localhost ~]# lld /etc

    drwxr-xr-x. 76 root root 8192 Aug 15 09:27 /etc

    在命令中引用另一个命令的执行结果

    进入当前内核的模块目录:

    [root@localhost ~]# cd /lib/modules/$(uname -r)/kernel/

    [root@localhost kernel]# pwd

    lib/modules/3.10.0-327.el7.x86_64/kernel

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

    [root@localhost ~]# ls /var/l*[0-9]*[a-z]

    ls: cannot access /var/l*[0-9]*[a-z]: No such file or directory

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

    [root@localhost ~]# ls /etc/[0-9]*[^[:digit:]]

    ls: cannot access /etc/[0-9]*[^[:digit:]]: No such file or directory

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

    [root@localhost ~]# ls /etc/[^[:alpha:]][[:alpha:]]*

    ls: cannot access /etc/[^[:alpha:]][[a-z]]*: No such file or directory

九.在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件

    [root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

    [root@localhost ~]# ls /tmp

    ks-script-cR5LUy  mylinux  tfile-2016-08-15-13-41-55  tfile-2016-08-15-13-42-31  yum.log

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

    [root@localhost ~]# mkdir /tmp/mytest1

    [root@localhost ~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1

    [root@localhost ~]# ls /tmp/mytest1

    pam.d  passwd  passwd-  pki  plymouth  pm  popt.d  postfix  ppp  prelink.conf.d  printcap  profile  profile.d      protocols  python

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

    [root@localhost ~]# mkdir /tmp/mytest2

    [root@localhost ~]# cp -r /etc/*.d /tmp/mytest2

    [root@localhost ~]# ls /tmp/mytest2

    bash_completion.d  cron.d     dracut.conf.d  ld.so.conf.d  modules-load.d  popt.d          rc0.d  rc3.d  rc6.d         rwtab.d     sysctl.d    yum.repos.d        binfmt.d           depmod.d   grub.d           logrotate.d   my.cnf.d           prelink.conf.d  rc1.d  rc4.d  rc.d        statetab.d  tmpfiles.d    chkconfig.d        dnsmasq.d  init.d                    modprobe.d       pam.d     profile.d       rc2.d  rc5.d  rsyslog.d     sudoers.d   xinetd.d

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

    [root@localhost ~]# mkdir /tmp/mytest3

    [root@localhost ~]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3

    [root@localhost ~]# ls /tmp/mytest3

    ld.so.conf  libaudit.conf  libuser.conf  locale.conf  logrotate.conf  man_db.conf  mke2fs.conf  nsswitch.conf

    

    

  

 

        

    

   

 

        

   

  

 

原创文章,作者:heianyangguo,如若转载,请注明出处:http://www.178linux.com/35833

(0)
heianyangguoheianyangguo
上一篇 2016-08-20
下一篇 2016-08-20

相关推荐

  • Ansible安装部署及常用模块详解

    Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> -m NAME,–module-name=NAME:指定执行使用的模块 -u USERNAME,–user=USERNAME:指定远程…

    2017-07-11
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp [root@localhost tmp]# vim rc.sysin…

    Linux干货 2016-08-02
  • ​iptables简单介绍

    iptables简单介绍 什么是防火墙? 防火墙是工作在主机或网络边缘,能够对其所匹配到的报文根据事先定义好的规则作出相应处理的组件,可以是软件,也可以是硬件,还能软硬结合实现。 UNIX/Linux中对防火墙的实现 早期在openBSD中通过内核中的ipfw实现简单的数据报过滤功能、后来在Linux 2.2内核中使用ipchains来取代,意为链、后来在L…

    Linux干货 2016-03-31
  • Docker之~集群配置

    一、前言 Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前最新版本为0.6.2。 本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能。以下为Kubernet…

    2015-03-23
  • 自定义命令别名及引用结果

    自定义命令别名及引用结果 alias alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。 语法 alias(选项)(参数) 选项 -p:打印已经设置的命令别名。 参数 命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’” 实例 显示已设置的别名 [root@localhost ~]# alias alias cp=’c…

    Linux干货 2018-03-11
  • 第八周作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。    集线器(HUB)主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。集线器是一种共享设备,HUB本身不能识别目的地址,当同一局域网内的A主机给B主机传输数据时,数据包在以HUB为架构…

    Linux干货 2017-02-27

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 14:07

    写的很好,排版还可以在漂亮一点,加油,3大题2小题在看看原题的要求