N21 第二周练习

####1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
复制:cp   移动:mv    删除:rm

  cp:copy,复制文件或目录</br>
  cp [OPTION]… SOURCE… DIRECTORY</br>
      OPTION  -i:交互式
              -r,R:递归复制目录及内部的所有内容
              –preserve[=ATTR_LIST] (default:  mode,ownership,timestamps)
                         ATTR_LIST  mode:权限
                                    ownershi:属主属组
                                    timestamps:linux时间戳
                                    links:文件为软链接时,只拷贝软链接文件。
                                    context:安全上下文
                                    xattr:文件扩展属性
                                    all:包括以上所有
              -d:相当于–no-dereference –preserve=links
              -p:相当于–preserve=mode,ownership,timeststamps
              -a:相当于-dR –preserve=all
              -f:强行复制文件或目录,不论目标文件或目录是否已存在
              -v:显示复制过程                

    SOURCE为单个文件时:
    cp /etc/fstab /tmp/fstabak 
        #1.fstabak不存在时,创建fstabak文件,并且将fstab文件内容填充至fstabak文件内
        #2.fstabak为文件且存在,则将fstab文件内容覆盖填充至fstabak文件内
        #3.fstabak为目录且存在时,在fstabak下创建与fstab文件同名文件,并将fstab文件内容填充至新文件中。
    SOURCE为多个文件时:
    cp /etc/fstab issue  /tmp/bak/
        #在bak目录中创建与各个源文件名相同的文件,并把各个源文件内容填充至各个新文件中(bak只能为目录且必须存在)
    SOURCE为目录时:
    cp -r /etc/yum.d /tmp/yumbak.d
        #1.yumbak.d不存在,创建yumbak.d目录,拷贝yum.d目录中所有文件至yumbak.d目录中
        #2.yumbak.d存在且为目录,拷贝yum.d目录中所有文件至yumbak.d目录中(yumbak.d为文件时报错)

  mv: move,移动文件
  mv [OPTION]… SOURCE… DIRECTORY
         OPTION  -i:交互式
                        -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
                        -v:显示移动过程 

 SOURCE为单个文件时:
    mv /tmp/fstabak /tmp/newfstabak 
        #1.newfstabak不存在时,创建newfstabak文件,并且将fstab文件内容填充至fstabak文件内,并删除fstabak文件
        #2.newfstabak为文件且存在,则将fstabak文件内容覆盖填充至newfstabak文件内,并删除fstabak文件
        #3.newfstabak为目录且存在时,在newfstabak下创建与fstabak文件同名文件,并将fstabak文件内容填充至新文件中,并删除fstabak文件
 SOURCE为多个文件时:
    mv  /tmp/bak/fstab issue  /tmp/newbak/
           #在newbak目录中创建与各个源文件名相同的文件,并把各个源文件内容填充至各个新文件中,并删除bak目录下的fstab,issue文件(bak只能为目录且必须存在)
 SOURCE为目录时:
    mv /tmp/yumbak.d /tmp/newyumbak.d
        #1.newyumbak.d不存在,创建newyumbak.d目录,拷贝yumbak.d目录中所有文件至newyumbak.d目录中,并删除yumbak.d目录
        #2.newyumbak.d存在且为目录,拷贝yumbak.d目录中所有文件至newyumbak.d目录中(yumbak.d为文件时报错),并删除yumbak.d目录

   rm: remove,删除
   rm [OPTION]… FILE…
         OPTION  -i: 交互式
                       -f: 强制删除
                       -r,R: 递归目录及内部的所有内容
                       -v:显示详细过程
####2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
  查看bash的工命令执行状态返回值命令:
         echo $?  #1.若返回值为数字 0 ,则说明命令执行成功
                       #2.若返回值为非 0 数字,则说明命令执行失败

命令行展开
    ~:代表当前登陆用户的家目录
    ~USERNAME:为指定用户的家目录
    {}:可承载一个以逗号分隔的列表,并将其展开为多个路径
         在/tmp目录下创建名为f,s两个目录:mkdir /tmp/{f,s}
####3、命令行展开功能来练习
  (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d 

     mkdir -v /tmp/{a,b}_{c,d}
     mkdir: 已创建目录 "/tmp/a_c"
     mkdir: 已创建目录 "/tmp/a_d"
     mkdir: 已创建目录 "/tmp/b_c"
     mkdir: 已创建目录 "/tmp/b_d"

(2)创建/tmp/mylinux目录下相应目录

  tree /tmp/mylinux
    /tmp/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,sbin},var/{lock,log,run}\
    > }
    mkdir: 已创建目录 "/tmp/mylinux"
    mkdir: 已创建目录 "/tmp/mylinux/bin"
    mkdir: 已创建目录 "/tmp/mylinux/boot"
    mkdir: 已创建目录 "/tmp/mylinux/boot/grub"
    mkdir: 已创建目录 "/tmp/mylinux/dev"
    mkdir: 已创建目录 "/tmp/mylinux/etc"
    mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"
    mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"
    mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"
    mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"
    mkdir: 已创建目录 "/tmp/mylinux/lib"
    mkdir: 已创建目录 "/tmp/mylinux/lib/modules"
    mkdir: 已创建目录 "/tmp/mylinux/lib64"
    mkdir: 已创建目录 "/tmp/mylinux/proc"
    mkdir: 已创建目录 "/tmp/mylinux/sbin"
    mkdir: 已创建目录 "/tmp/mylinux/sys"
    mkdir: 已创建目录 "/tmp/mylinux/tmp"
    mkdir: 已创建目录 "/tmp/mylinux/usr"
    mkdir: 已创建目录 "/tmp/mylinux/usr/local"
    mkdir: 已创建目录 "/tmp/mylinux/usr/local/bin"
    mkdir: 已创建目录 "/tmp/mylinux/usr/local/sbin"
    mkdir: 已创建目录 "/tmp/mylinux/var"
    mkdir: 已创建目录 "/tmp/mylinux/var/lock"
    mkdir: 已创建目录 "/tmp/mylinux/var/log"
    mkdir: 已创建目录 "/tmp/mylinux/var/run"

####4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
  文件元数据包括:文件大小,inode节点号,权限,属主属组,时间戳信息 …… 
  可通过 stat 命令查看

     stat /etc/fstab
     File: '/etc/fstab'
     Size: 483           Blocks: 8          IO Block: 4096   regular file
     Device: fd00h/64768d    Inode: 33554562    Links: 1
      Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
     Context: system_u:object_r:etc_t:s0
     Access: 2016-07-18 12:20:01.728182675 +0800
     Modify: 2016-06-11 14:03:10.145086826 +0800
     Change: 2016-06-11 14:42:27.567188424 +0800
    
     stat /etc/fstab
     文件:"/etc/fstab"
     大小:483           块:8          IO 块:4096   普通文件
     设备:fd00h/64768d    Inode:33554562    硬链接:1
     权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
     安全上下文:system_u:object_r:etc_t:s0
     最近访问:2016-07-18 12:20:01.728182675 +0800
     最近更改:2016-06-11 14:03:10.145086826 +0800
     最近改动:2016-06-11 14:42:27.567188424 +0800

   linux文件有三个时间戳信息:
    access time:访问时间,简写为atime,读取文件内容会改变
    modify time: 修改时间, 简写为mtime,改变文件内容(数据)时改变,注意仅修改文件内容atime不会改变
    change time: 改变时间, 简写为ctime,元数据发生改变会改变
  使用touch命令修改时间戳信息
    touch [OPTION]… FILE…
                OPTION  -a:  仅修改atime
                               -m:  仅修改mtime
                               -t STAMP:  将atime,ctime同时修改为设置为STAMP
                                  STAMP时间格式如下:
                                  [[CC]YY]MMDDhhmm[.ss]
                               -c: 如果文件不存在,则不予创建
####5.如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
  使用alias定义命令别名,unalias取消命令别名
    alias: alias [-p] [NAME[=VALUE] … ]
    alias [-p]:显示已定义的命令别名
    alias ll='ls -l –color=auto' #执行命令ll相当于执行 ls -l –color=auto
    unalias -a 取消所有已定义的命令别名
    unalias NAME 取消单个命令别名
    注意:在命令行中定义的别名,仅对当前shell进程有效;如果想永久有效,要定义在配置文件中;
               仅对当前用户:~/.bashrc
               对所有用户有效:/etc/bashrc
               如果别名同原命令名字相同,执行原命令使用 \COMMAND
  引用命令的执行结果可使用反引号 `COMMAND` 或 $(command)

     echo `ls /root`
     Desktop anaconda-ks.cfg initial-setup-ks.cfg
     echo $(ls /root)
     Desktop anaconda-ks.cfg initial-setup-ks.cfg

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

    touch /var/l9c.txt
    touch /var/log96dc.txt
    mkdir /var/log9D.d
    ls -ld /var/l*[0-9]*[[:lower:]]
    -rw-r--r--. 1 root root 0 Jul 18 16:24 /var/l9c.txt
    -rw-r--r--. 1 root root 0 Jul 18 16:25 /var/log96dc.txt
    drwxr-xr-x. 2 root root 6 Jul 18 16:27 /var/log9D.d

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

    touch /etc/23c.txt
    touch /etc/2cc.txt
    mkdir /etc/2D
    mkdir /etc/2D3
    ls -ld /etc/[[:digit:]]*[^[:digit:]]
    -rw-r--r--. 1 root root 0 7月  18 17:01 /etc/23c.txt
    -rw-r--r--. 1 root root 0 7月  18 17:02 /etc/2cc.txt
    drwxr-xr-x. 2 root root 6 7月  18 17:03 /etc/2D

####8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

     ls -ld /etc/[^[:alpha:]][[:alpha:]]*
     -rw-r--r--. 1 root root 0 7月  18 17:02 /etc/2cc.txt
     drwxr-xr-x. 2 root root 6 7月  18 17:03 /etc/2D
     drwxr-xr-x. 2 root root 6 7月  18 17:05 /etc/2D3

####9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    touch /tmp/tfile-$(date +%F-%H-%M-%S)
    ls /tmp
    mylinux  tfile-2016-07-18-17-12-35

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

    mkdir /tmp/mytest1
    cp -a /etc/p*[^[:digit:]] /tmp/mytest1
    ls -l /tmp/mytest1/
    总用量 60
    drwxr-xr-x.  2 root root 4096 6月  11 15:58 pam.d
    -rw-r--r--.  1 root root 2311 6月  11 16:17 passwd
    -rw-r--r--.  1 root root 2261 6月  11 14:56 passwd-
    -rw-r--r--.  1 root root 1362 6月  10 2014 pbm2ppa.conf
    -rw-r--r--.  1 root root 2872 6月  10 2014 pinforc
    drwxr-xr-x.  9 root root   91 6月  11 14:15 pki
    drwxr-xr-x.  2 root root   27 6月  11 14:18 plymouth
    drwxr-xr-x.  5 root root   49 6月  11 14:04 pm
    -rw-r--r--.  1 root root 6300 6月  10 2014 pnm2ppa.conf
    drwxr-xr-x.  2 root root    6 6月  10 2014 popt.d
    drwxr-xr-x.  2 root root 4096 6月  11 14:24 postfix
    drwxr-xr-x.  3 root root 4096 6月  11 14:14 ppp
    drwxr-xr-x.  2 root root  101 6月  11 14:15 prelink.conf.d
    -rw-r--r--.  1 root root  233 6月   7 2013 printcap
    -rw-r--r--.  1 root root 1750 6月   7 2013 profile
    drwxr-xr-x.  2 root root 4096 6月  11 14:27 profile.d
    -rw-r--r--.  1 root root 6545 6月   7 2013 protocols
    drwxr-xr-x.  2 root root   75 6月  11 14:16 pulse
    drwxr-xr-x.  2 root root   22 6月  11 14:18 purple
    drwxr-xr-x. 13 root root 4096 7月  18 17:16 python

####11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

    mkdir /tmp/mytest2
    cp -a /etc/*.d /tmp/mytest2
    ls -l /tmp/mytest2/
    总用量 56
    drwxr-xr-x.  2 root root 4096 6月  11 14:29 bash_completion.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 binfmt.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 chkconfig.d
    drwxr-xr-x.  2 root root   51 6月  11 14:24 cron.d
    drwxr-xr-x.  2 root root   22 6月  11 14:12 depmod.d
    drwxr-xr-x.  2 root root    6 8月   6 2015 dnsmasq.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 dracut.conf.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 exports.d
    drwxr-xr-x.  2 root root    6 9月  11 2015 gdbinit.d
    drwx------.  2 root root 4096 6月  11 14:39 grub.d
    lrwxrwxrwx.  1 root root   11 6月  11 14:06 init.d -> rc.d/init.d
    drwx------.  5 root root 4096 6月  11 14:15 ipsec.d
    drwxr-xr-x.  2 root root 4096 6月  11 14:14 ld.so.conf.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 libibverbs.d
    drwxr-xr-x.  2 root root 4096 6月  11 15:58 logrotate.d
    drwxr-xr-x.  2 root root   22 6月  11 14:13 modprobe.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 modules-load.d
    drwxr-xr-x.  2 root root   30 6月  11 14:09 my.cnf.d
    drwxr-xr-x.  2 root root   68 6月  11 14:13 oddjobd.conf.d
    drwxr-xr-x.  2 root root 4096 6月  11 15:58 pam.d
    drwxr-xr-x.  2 root root    6 6月  10 2014 popt.d
    drwxr-xr-x.  2 root root  101 6月  11 14:15 prelink.conf.d
    drwxr-xr-x.  2 root root 4096 6月  11 14:27 profile.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc0.d -> rc.d/rc0.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc1.d -> rc.d/rc1.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc2.d -> rc.d/rc2.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc3.d -> rc.d/rc3.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc4.d -> rc.d/rc4.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc5.d -> rc.d/rc5.d
    lrwxrwxrwx.  1 root root   10 6月  11 14:06 rc6.d -> rc.d/rc6.d
    drwxr-xr-x. 10 root root 4096 11月 20 2015 rc.d
    drwxr-xr-x.  2 root root   29 6月  11 14:14 request-key.d
    drwxr-xr-x.  2 root root   51 6月  11 14:15 rsyslog.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 rwtab.d
    drwxr-xr-x.  3 root root 4096 6月  11 14:20 sane.d
    drwxr-xr-x.  2 root root 4096 6月  11 14:24 setuptool.d
    drwxr-xr-x.  2 root root    6 11月 20 2015 statetab.d
    drwxr-x---.  2 root root    6 11月 21 2015 sudoers.d
    drwxr-xr-x.  2 root root   27 6月  11 14:14 sysctl.d
    drwxr-xr-x.  2 root root   24 11月 20 2015 tmpfiles.d
    drwxr-xr-x.  2 root root 8192 6月  11 14:13 usb_modeswitch.d
    drwxr-xr-x.  2 root root    6 8月  12 2015 xinetd.d
    drwxr-xr-x.  2 root root 4096 6月  11 15:49 yum.repos.d

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

    mkdir /tmp/mytest3
    cp -a /etc/[l,m,n]*.conf /tmp/mytest3
    ls -l /tmp/mytests    
    总用量 48
    -rw-r--r--. 1 root root   28 2月  28 2013 ld.so.conf
    -rw-r-----. 1 root root  191 10月 29 2014 libaudit.conf
    -rw-r--r--. 1 root root 2391 10月 13 2013 libuser.conf
    -rw-r--r--. 1 root root   19 6月  11 14:40 locale.conf
    -rw-r--r--. 1 root root  662 7月  31 2013 logrotate.conf
    -rw-r--r--. 1 root root 5171 6月  10 2014 man_db.conf
    -rw-r--r--. 1 root root  936 3月   6 2015 mke2fs.conf
    -rw-r--r--. 1 root root 2620 6月  10 2014 mtools.conf
    -rw-r--r--. 1 root root 3390 11月 20 2015 nfsmount.conf
    -rw-r--r--. 1 root root 1717 6月  11 14:40 nsswitch.conf
    -rw-r--r--. 1 root root   91 12月  3 2012 numad.conf

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

(0)
风
上一篇 2016-07-22
下一篇 2016-07-22

相关推荐

  • 搭建双主模型lpvs的高可用集群

    一、实验要求: 1、基于LVS-DR模型上实践; 2、调度器高可用(双主模型); 二、实验拓扑图: 三、实验步骤: 1、  设置RS (a)设置http主页 Yum install httpd Vim /var/www/html/index.html <h1>172.18.24.3 server 1或者172.18.24.5server…

    2017-05-15
  • N25_第一周作业_leon

    第一周博客作业 1.       描述计算机的组成及其功能 计算机主要有五大部分组成:控制器;运算器;存储器;输入设备;输出设备。   功能: 控制器:计算机的指挥系统。控制器通过地址访问存储器,从存储器中取出指令,经译码器分析后,根据指令分析结果产生相应的操作控制信号作用于其他部件,使得…

    Linux干货 2016-12-01
  • 2016/08/21:shell遗留select,包管理器rpm,yum

    select:搭配case更好的显示选项     这个命令用来创建菜单,按数字排列,并等待用户输入,输入对应数字,执行相应操作,更清楚明了     普通版:select var in list        &…

    Linux干货 2016-08-24
  • Hello word!

    初识linux

    2018-03-26
  • N25第二周作业

    第二周作业 一、Linux上的文件管理类命令有哪些,其常用的使用方法以及相关实例演示 演示用结构  [root@centos01 yanshi]# tree -a /tmp/yanshi/   /tmp/yanshi/ ├── a │   └── 1…

    Linux干货 2016-12-14
  • 关于大型网站技术演进的思考(十三)–网站静态化处理—CSI(5)

    原文出处: 夏天的森林   讲完了SSI,ESI,下面就要讲讲CSI了 ,CSI是浏览器端的动静整合方案,当我文章发表后有朋友就问我,CSI技术是不是就是通过ajax来加载数据啊,我当时的回答只是说你的理解有点片面,那么到底什么是CSI技术了?这个其实要和动静资源整合的角度来定义。 CSI技术其实是在页面进行动静分离后,将页面加…

    2015-03-11

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-22 10:41

    写的很好,排版还可以在漂亮一点,加油