Day 4-文件管理之文件复制、查看和筛选

文件管理 : 复制、查看和筛选


1、回顾:


    1)、mkdir   创建目录

​     2)、touch   创建文件

​     3)、mv       移动或重新命名

​     4)、rm        删除文件

2、今日内容:


  1)、cp: 复制命令


         -v:详细显示命令执行的操作   

         -r: 递归处理目录与子目录   

         -p: 保留源文件或目录的属性

(1).将当前目录下的file文件,复制到/tmp/目录下,并重新命名为 file_copy

         [root@oldboyedu ~]#  cp file /tmp/file_copy

         [root@oldboyedu ~]# ls /tmp/file_copy

         /tmp/file_copy

(2).将file1复制到/tmp目录下

         [root@oldboyedut ~]# cp file1 /tmp/ [很少会使用cp file1 /tmp/file1 这种命令]

(3).在拷贝文件的过程中,保持文件原有的属性不发生变化

         a.经过修改将文件权限和身份全部做了改变

         -rwxrwxrwx. 1 adm adm 0 Jul 29 10:03 file

         b.如果不做其他操作,在拷贝的过程中,文件权限和身份都会发生变化了

         [root@oldboyedu ~]# cp file /tmp/

         [root@oldboyedu ~]# ll /tmp/file

          -rw-r--r--. 1 root root 0 Jul 29 10:11 /tmp/file

         c.如果在拷贝过程中加上-p参数,将保存文件原有的属性

         [root@oldboyedu ~]# cp -p file /tmp/

          [root@oldboyedu ~]# ll /tmp/file

           -rwxrwxrwx. 1 adm adm 0 Jul 29 10:03 /tmp/file

(4).拷贝一个目录,并且目录中有很多的子文件 (-r:递归复制)

         [root@oldboyedu ~]# cp /etc/ /tmp/ -r

(5).拷贝不同路径下的不同文件至同一个目录下 (-v:显示详细过程)

          [root@oldboyedu ~]# cp file1  /etc/hostname  /etc/hosts /opt/ -v

         “file1” -> ”/opt/file1”

         ”/etc/hostname” -> ”/opt/hostname”

        ”/etc/hosts” -> ”/opt/hosts”

(6).拷贝不同路径下的不同文件和不同的目录至同一个位置

        [root@oldboyedu ~]# \cp -rpv file1 oldboy1/ file /etc/ /mnt/ /opt/

                         ................................................................

         /etc/student.txt" -> "/opt/etc/student.txt"

        "/etc/wgetrc" -> "/opt/etc/wgetrc"

        "/mnt/" -> "/opt/mnt"

          [root@oldboyedu ~]# ls /opt/ etc 

         file  file1  mnt  oldboy1

(7).在复制过程中频繁触发重复复制,提示确认操作

        [root@oldboyedu ~]# cp -r /etc/ /opt/

         cp:是否覆盖"/opt/etc/fstab"?

         [root@oldboyedu ~]#  \cp -r /etc/ /opt/

        /:代表去除原有的别名的属性,只保留当前的属性

  2)、查看文件内容


(1).cat

         [root@oldboyedu ~]# cp /etc/passwd ./pass

         [root@oldboyedu ~]# cat pass        查看文件的所有内容,从头到尾

         [root@oldboyedu ~]# cat -n pass    查看一个文件有多少行

         [root@oldboyedu ~]# cat -A pass    查看文件的特殊符号, 比如文件中存在tab键

      tac 操作与cat相似,tac是文件从尾部向头部倒序显示

     *cat扩展使用,创建一个文件,并往里写入内容*

        [root@oldboyedu ~]# cat >> test.txt <<EOF   

        test1

        test2

        test3

        EOF

   (以EOF开始,以EOF结束,“EOF”可以是任意字符)

(2).less和more

         a.[root@oldboyedu ~]#  less /etc/services  使用光标上下翻动,空格进行翻页,q退出

         b.[root@oldboyedu ~]#  more /etc/services  使用回车上下翻动,空格进行翻页,q退出

(3).head

        [root@oldboyedu ~]# head pass      查看文件头部内容,默认十行

        [root@oldboyedu ~]# head -n pass    查看头部行,-n指定行数

(4).tail

        a.[root@oldboyedu ~]#  tail pass    查看文件尾部内容,默认十行

        b.[root@oldboyedu ~]# tail -f /var/log/messages    查看文件尾部的变化

           [root@oldboyedu ~]# tailf /var/log/messages       查看文件尾部的变化

  3)grep:过滤文件内容


(1).过滤出pass文件中的root相关的行

         [root@oldboyedu ~]# grep "root" pass

(2).在过滤pass文件中,匹配以root开头的行

         [root@oldboyedu ~]# grep "^root" pass

(3).过滤pass文件中,匹配以bash结尾的行

         [root@oldboyedu ~]# grep "bash$" pass

(4).显示行号

         [root@oldboyedu ~]# grep -n "bash$" pass

(5)过滤除了ftp的行,其他的全部显示

         [root@oldboyedu ~]# grep -v "ftp" pass

(6).忽略大小写方式

        [root@oldboyedu ~]# grep -i "ftp" pass

(7).过滤pass文件中以sync结尾的,或者ftp相关的行,打印出来.同时不区分大小写

        [root@oldboyedu ~]# grep  -Ei "sync$|ftp" pass

(8).扩展了解

         a.过滤/var/log/secure文件中Failed字符串,并打印它的下2行

         # grep -n -A 2 "Failed" /var/log/secure

        b.过滤/var/log/secure文件中Failed字符串,并打印它的上2行

        # grep -n -B 2 "Failed" /var/log/secure

        c.过滤/var/log/secure文件中Failed字符串,并打印它的上下各2行

        # grep -n -C 2 "Failed" /var/log/secure

(9).grep相关练习题

0、显示当前pass文件中,root、adm或ftp用户相关的信息

        [root@oldboyedu ~]# grep -E "^root|^ftp|^adm" pass

        root:x:0:0:root:/root:/bin/bash

        adm:x:3:4:adm:/var/adm:/sbin/nologin

        ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

1、显示/proc/meminfo文件中以不区分大小的s开头的行;

        [root@oldboyedu ~]# grep -i "^s" /proc/meminfo

2、显示/etc/passwd中以nologin结尾的行;

        [root@oldboyedu ~]# grep "nologin$" /etc/passwd

3、显示/etc/inittab中以#开头,而后又跟了任意字符的行;

         [root@oldboyedu ~]# grep -n  "^# .*" /etc/inittab

注意 :.  :代表任意单个字符  [a-z]  [A-Z]   [0-9]

            *  :表示所有

            .* :代表所有的任意字符

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容