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

相关推荐

  • sed的基本用法详解

    在Linux的世界中,有着一个文本三剑客的称呼,它们分别代表grep(文本过滤),sed(流编辑器),awk(gawk)(报告生成器)。 它们是强大的文本处理工具,了解并掌握它们,可以让你对文本的处理更加从容和轻松。 今天我们主要是围绕sed来进行分析。 一、初识sed sed:Stream Editor 从名字上也可以直观的了解到它是一个流编辑工具。何为流…

    Linux干货 2015-06-08
  • N25期–第十七周作业

    1、  结合图形描述LVS的工作原理; 针对高可伸缩、高可用网络服务的需求,给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。 虚拟服务器的体系结构如图所示,一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它们的前端有一个负载调度器(…

    2017-05-08
  • 使用replicate-rewrite-db 实现复制映射 + Replicate_Wild_Do_Table实现复制过滤

    实验环境:CentOS7.2 + MySQL5.7 node1(192.168.2.171)和node2(192.168.2.172) 为两台不同业务的MySQL服务器。 业务方有个需求,需要将node1上的employees库的departments 、dept_manager 这2张表同步到 node2 的 hellodb 库下面。 node1的empl…

    Linux干货 2017-05-06
  • 文件通配符练习

    课后资料补充 * : 通配符,代表任意字符(0到多个)? : 通配符,代表一个字符# : 注释/ : 跳转符号,将特殊字符或通配符还原成一般符号| : 分隔两个管线命令的界定; : 连续性命令的界定~ : 用户的根目录$ : 变量前需要加的变量值! : 逻辑运算中的&q…

    Linux干货 2016-08-08
  • LAMP

    练习:编译安装amp,提供两个基于主机名的虚拟主机      (1) https, 部署pma      (2) 部署wordpress 编译安装: mariadb: # wget 10.1.0.1:/pub/Sources/7.x86_64/mariadb/…

    Linux干货 2016-10-12
  • 第5周

    1, ~]# grep "^root\>" /etc/passwd | cut -d: -f7 4,~]# ifconfig | grep "\<[0-9][0-9][0-9]\>" 7, ~]# find /var -user root -group mail 8,~]# fin…

    Linux干货 2016-09-15

评论列表(1条)

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

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