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 10:11
下一篇 2016-07-22 10:12

相关推荐

  • N26—第二周博客作业

    一、Linux常用管理命令     1、cp命令:复制         cp 源文件 目标文件 [root@localhost ~]# cp /etc/fstab /tmp cp: overwrite&nbsp…

    Linux干货 2017-01-06
  • N22-第4周作业-冥界之王

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。    [root@CentOS6 ~]# cp -r /etc/skel/ /home/tuser1/    [r…

    Linux干货 2016-09-19
  • TCP三次握手与四次挥手

                                                      &nbsp…

    2017-09-04
  • linux中数组的定义与使用

            我们常说,程序=指令+数据,往细一点的方向说,指令具体指的有哪些?数据又有哪些? 总结一下: 指令大概包括,编程语言中的语法关键字(如bash编程中的关键字有for,while,case,if,until,continue,break),还包括系统中的命令,和一些自己编写的函数,这些…

    2017-05-23
  • awk用法进阶

    一、控制语句 1 if-else语句        使用场景:对awk取得的整行或某个字段做条件判断        语法:         &nbsp…

    Linux干货 2016-09-21
  • shell变量的浅谈

    变量本质上是存储数据的一个或多个计算机内存地址,变量的命令规则包括: 1) 不能使用程序中的保留字,如if, for 2) 变量由字母、下划线和数字组成,且不能以数字开头 3) 要求风名知义 4) 统一命名规则:驼峰命名法 变量主要分为本地变量、环境变量、局部变量、位置变量和特殊变量 (1)本地变量:只对当前shell…

    2017-08-05

评论列表(1条)

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

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