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 15:38
下一篇 2016-08-20 22:42

相关推荐

  • Keepalived介绍 , 配置说明 , 及实际应用

    1. Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。 1.1 VRRP协议 VRRP全称 Virt…

    Linux干货 2016-11-04
  • 第六周作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; %s@^[[:space:]]\+@#&@g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的…

    Linux干货 2017-03-03
  • LAPM(linux+httpd+php+mariadb)环境搭建

    前言     LAMP(linux+apache+mariadb+php)以下都以源码安装方式,环境为3台虚拟机内存各4G、2核cpu,apache通过fastcgi连接php,数据库用mariadb。       搭建环境:Centos6.4     服务器一 &nb…

    Linux干货 2015-05-27
  • 基于kubernetes构建Docker集群管理详解

    一、前言        Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前最新版本为0.6.2。本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍…

    2015-03-10
  • Linux的常见文件类型

      在linux中,文件的类型和权限通常以【-rwxr-xr-x】来表示,文件以第一个字符来表示不同的文件类型,具体如下。   – :普通文件;颜色为灰白色   d :目录文件;颜色为蓝色   b :块设备文件;颜色为黄色   c :字符设备文件;颜色为黄色   p :管道文件;颜色为绿…

    Linux干货 2016-10-20
  • Linux网络

    网络概念 OSI模型网络设备TCP/IPIP地址   什么是网络 资源共享的功能和优点数据和应用程序资源网络存储备份设备 常见的网络物理组件 网络应用程序Web 浏览器(Chrome、IE、Firefox等)即时消息(QQ、微信、钉钉等)电子邮件(Outlook、foxmail 等)协作(视频会议、VNC、Netmeeting、WebEx 等)we…

    Linux干货 2017-08-19

评论列表(1条)

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

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