Linux系统文件管理——常用命令day4

文件管理

一、文件的复制(cp)

1.将当前目录下的file文件,复制到/tmp/目录下,并改名为file_copy

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

        cp: overwrite ‘/tmp/file_copy’? y

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

        /tmp/file_copy

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

        [root@oldboy ~]# cp file1 /tmp/

        [root@oldboy ~]# cp file1 /tmp/file1    #此命令不常用

3.在拷贝的文件过程中

(1)如何保持文件原有的属性不发生变化

    #未修改前

    -rw-r--r--. 1 root root  0 Jul 29 10:07 file

    #第一次修改 

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

    #第二次修改 

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

(2)文件权限和身份都发生了变化

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

         cp: overwrite ‘/tmp/file’? y

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

         -rw-r--r--. 1 root root 0 Jul 29 15:24 /tmp/file

(3)在拷贝过程中加上-p参数,保存文件的原有属性

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

         cp: overwrite ‘/tmp/file’? y

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

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

4.如何拷贝一个目录,且目录中有很多的子文件。(-r表示递归复制)

         [root@oldboy ~]# cp /etc/ /tmp/

         cp: omitting directory ‘/etc/’

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

         cp: overwrite ‘/tmp/etc/fstab’? y

         cp: overwrite ‘/tmp/etc/crypttab’? y

         cp: overwrite ‘/tmp/etc/mtab’? y

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

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

         ‘file1’ -> ‘/opt/file1’

         ‘/etc/hostname’ -> ‘/opt/hostname’

         ‘/etc/hosts’ -> ‘/opt/hosts’

          [root@oldboy ~]#

6.拷贝不同路径下不同文件+不同目录至同一个位置

          [root@oldboy ~]# cp -rp file1 oldboy1/ file /etc/ /mnt/ /opt/ 

          [root@oldboyedu ~]# ls /opt/ 

          etc file file1 mnt oldboy1

7.在复制的过程中频繁出现重复性操作,提示确认操作

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

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

          加上\能够取消重复性工作

          cp: overwrite ‘/opt/etc/fstab’? y

          cp: overwrite ‘/opt/etc/crypttab’? ……

8.扩展

         [root@oldboy ~]# cp {file1,file5-bak} -v

         ‘file1’ -> ‘file5-bak’

         ‘file1’ -> ‘file5-bak’[root@oldboy ~]# cp /etc/sysconfig/network-         scripts/{ifcfg-ens32,ifcfg-ens-32-bak}

注:-r  表示递归复制

       -v 显示详 

       -p 保留源文件或目录的详细过程


二、文件管理——查看文件内容

1.cat查看文件内容

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

         cp: overwrite ‘./pass’? y

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

         [root@oldboy ~]# cat -n pass   #查看文件有多少行时用-n

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

2.less和more

(1)less

         [root@oldboy ~]# less /etc/services    #查看/etc/services下的所有内容,    使用光标上下翻动,空格键进行翻页,q退出

(2) more

         [root@oldboy ~]# more /etc/services  #查看/etc/services下的所有内容,使用回车乡下移动,空格键进行翻页,q退出

3.head和tail

(1)head    

         [root@oldboy ~]# head pass       #查看文件头部内容,默认为前10行

         [root@oldboy ~]# head -n pass   #查看文件的前n行内容。-n为指定查看那几行的内容。

(2)tail

          [root@oldboy ~]# tail pass        #查看文件尾部的内容,默认10行

          [root@oldboy ~]#tail -f /var/log/messages #查看尾部的变化

4.grep(过滤|匹配文件的内容)

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

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

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

          operator:x:11:0:operator:/root:/sbin/nologin

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

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

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

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

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

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

(4)显示行号

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

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

(5)扩展

匹配文件中/var/log/secure 文件中Failed字符串,并打印下2行

          [root@oldboy ~]#grep -n -A 2 "Failed" /var/log/secure

匹配文件中/var/log/secure文件中Falied字符串,并打印上2行

          [root@oldboy ~]#grep -n -B 2 "Failed" /var/log/secure

匹配文件中/var/log/secure文件中Failed字符串,并打印上下各2行

          [root@oldboy ~]#grep -n -C 2 "Failed" /var/log/secure

(6)过滤出文件包含ftp的行

          [root@oldboy ~]# grep "ftp" pass

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

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

Linux系统文件管理——常用命令day4_第1张图片
输入grep -v "ftp" pass即显示除ftp以外的所有内容

(8)忽略大小写的方式

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

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

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

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

         sync:x:5:0:sync:/sbin:/bin/sync

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

你可能感兴趣的:(Linux系统文件管理——常用命令day4)