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

相关推荐

  • 网络班23期学习宣言

    马哥Linux运维学院 学习宣言 亲爱的小伙伴:        欢迎大家报名马哥Linux运维网络学习班,跟随马哥学习Linux技术,成就Linux大牛之梦。在这里,我们不仅可以学习到最优秀的技术课程,还可以跟着追梦的小伙伴们一起学习、一起进步。 为了督促大家一直积极认真努力的学习,请各位同学在评论区写出你的学习宣言。…

    2016-09-05
  • MairaDB之基于openssl的主从复制

    一、配置openssl   1、   在master server(node0)上根CA的搭建(及生成自签名证书) [root@node0 ~]# cd /etc/pki/CA/ [root@node0 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) Gen…

    2016-11-19
  • shutil,csv,ini

    序列化和反序列化笔记

    2017-10-29
  • awk入门应用

    awk概述使用语法常用命令选项相关输出命令print item1,item2,…printf FORMAT,item1,item2,….相关格式符相关修饰符相关内建变量相关内置函数相关操作符相关模式相关控制语句及示例if(condition) statementsif(condition){statements} else {statements}while…

    Linux干货 2016-12-04
  • Clonezilla(再升龙)系统备份还原使用

      实验一、单机Centos 系统利用Clonezilla手动备份和还原(VMware vSphere) 实验二、利用Clonezilla+DRBL网络备份和还原   一、简介 DRBL(Diskless Remote Boot in Linux)中文名“企鹅龙”,是基于GNU GPL协议授权下的开源项目,可以实现客户机的远程启动及多客户…

    Linux干货 2015-10-27
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@UncleZ ~]# who | cut -d' ' -f1 | uniq -c 2、取出最后登录到当前系统的用户的相关信息。 [roo…

    Linux干货 2016-12-17

评论列表(1条)

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

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