美文网首页
day-4 文件管理(2)

day-4 文件管理(2)

作者: 恩楠 | 来源:发表于2019-07-29 15:30 被阅读0次

    文件管理指复制文件

    cp常用参数及说明

    选项 解释
    -r 递归拷贝,拷贝目录时必须加r
    -p 保持文件原有的属性,不发生变化
    -v 显示拷贝详细信息

    把file拷贝到/tmp下,并重命名为file_copy

    [root@node2 ~]# cp file /tmp/file_copy
    [root@node2 ~]# ll /tmp/
    total 0
    -rw-r--r--. 1 root root 0 Jul 29 10:34 file_copy
    

    -p参数用于保持在复制过程中,文件的原有属性不变

    [root@node2 ~]# ll
    total 0
    -rw-r--r--. 1 root root 0 Jul 29 10:36 file
    # 文件权限为rw-r--r--
    [root@node2 ~]# chmod  777 file 
    # 更改文件的权限
    [root@node2 ~]# chown adm:adm file 
    # 更改文件的所属关系
    [root@node2 ~]# ll
    total 0
    -rwxrwxrwx. 1 adm adm 0 Jul 29 10:36 file
    # 修改后的文件属性
    [root@node2 ~]# cp file /opt/
    # 将文件复制到/opt目录下
    [root@node2 ~]# cp -p file /opt/file1
    # 保持文件的原有属性不变,复制文件到/opt下,并重命名为file1
    cp: overwrite ‘/opt/file1’? y
    [root@node2 ~]# ll /opt
    total 0
    -rwxr-xr-x. 1 root root 0 Jul 29 10:38 file
    # 不加-p参数,复制过程中,文件属性发生了变化
    -rwxrwxrwx. 1 adm  adm  0 Jul 29 10:36 file1
    # 加上-p参数,复制过程中,文件的属性不发生改变
    

    把 file 、 hello / 和/etc复制到/mnt目录下

    [root@node2 ~]# cp -rp file hello/ /etc/ /mnt/
    

    若复制的文件已经存在时,系统会提示是否要覆盖。可以通过\和/bin的方式去强制复制

    [root@node2 ~]# \cp -r /etc/ /mnt/
    #因为cp alias中定义了-i参数,通过\可转义,使-i不生效。
    [root@node2 ~]# ll /mnt/
    total 12
    drwxr-xr-x. 75 root root 8192 Jul 29 10:45 etc 
    [root@node2 ~]# /bin/cp -r /etc/ /mnt/
    #直接执行/bin/cp也可以使alias定义的别名不生效
    [root@node2 ~]# ll /mnt/
    total 12
    drwxr-xr-x. 75 root root 8192 Jul 29 10:46 etc
    

    [root@node2 ~]# alias
    alias cp='cp -i' #alias中定义了-i选项,覆盖既有文件之前先询问用户。
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'

    通过{ }去复制文件

    [root@node2 ~]# cp {test.txt,test.txt.bak} -v
    # 将test.txt复制一份test.txt.bak,-v显示复制过程
    ‘test.txt’ -> ‘test.txt.bak’
    [root@node2 ~]# cp /etc/sysconfig/network-scripts/{ifcfg-ens32,ifcfg-ens32.bak}
    将ifcfg-ens32复制一份,命名为ifcfg-ens32.bak
    [root@node2 ~]# ls /etc/sysconfig/network-scripts/ifcfg-e*
    /etc/sysconfig/network-scripts/ifcfg-ens32
    /etc/sysconfig/network-scripts/ifcfg-ens32.bak
    

    文件管理之查看文件内容

    cat常用参数及说明

    选项 解释
    -n 查看文件时,显示行号
    -A 查看文件时,显示特殊字符

    查看pass文件内容

    [root@node2 ~]# cat pass 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    test17:x:1016:1016::/home/test17:/bin/bash
    

    查看pass文件内容并显示行号

    [root@node2 ~]# cat -n pass 
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  test17:x:1016:1016::/home/test17:/bin/bash
    

    查看pass文件内容并显示特殊字符

    [root@node2 ~]# cat -A pass 
    root:x:0:0:root:/root:/bin/bash$
    # 行尾$表示换行符
    bin:x:1:1:bin:/bin:/sbin/nologin$
    daemon:x:2:2:daemon:/sbin:/sbin/nologin$
    test17:x:1016:1016::/home/test17:/bin/bash$
    

    用cat创建一个文件,并写入内容

    [root@node2 ~]# cat >> test.txt <<EOF
    > TEST1
    > TEST2
    > TEST3
    > EOF
    [root@node2 ~]# cat test.txt
    TEST1
    TEST2
    TEST3
    

    head常用参数及说明

    选项 解释
    -n 打印的行数

    使用head命令,不加任何参数,默认只打印前十行的内容。

    [root@node2 ~]# head -3 pass 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    # 打印pass前3行内容,等同于“head -n 3 pass ”
    

    tail常用参数及说明

    选项 解释
    -n 打印的行数
    -f 查看文件尾部新追加的内容

    打印文件的后3行内容

    [root@node2 ~]# tail -3 pass 
    test99:x:1098:1098::/home/test99:/bin/bash
    test100:x:1099:1099::/home/test100:/bin/bash
    apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
    

    若不加任何参数,默认只打印末尾10行

    使用tail -f可以查看文件尾部的变化

    [root@node2 ~]# tail -f /var/log/secure
    # 等同于 tailf /var/log/secure
    Jul 29 14:05:54 node2 sshd[8613]: error: Received disconnect from 10.0.0.1 port 61962:0:
    Jul 29 14:05:54 node2 sshd[8613]: Disconnected from 10.0.0.1 port 61962
    Jul 29 14:05:54 node2 sshd[8613]: pam_unix(sshd:session): session closed for user root
    

    grep常用参数及说明

    选项 解释
    -n 显示行符
    -v 反转查找
    -i 不区分大小写过滤文件
    -E 多条件过滤
    -A 匹配后,再向下打印
    -B 匹配后,再向上打印

    过滤文中含有root的相关的行

    [root@node2 ~]# grep "root" pass 
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    

    过滤以root开头的行

    [root@node2 ~]# grep "^root" pass 
    root:x:0:0:root:/root:/bin/bash
    

    过滤以bash结尾的行

    [root@node2 ~]# grep "bash$" pass 
    root:x:0:0:root:/root:/bin/bash
    test1:x:1000:1000::/home/test1:/bin/bash
    test2:x:1001:1001::/home/test2:/bin/bash
    test3:x:1002:1002::/home/test3:/bin/bash
    

    显示行符

    [root@node2 ~]# grep -n "bash" pass 
    1:root:x:0:0:root:/root:/bin/bash
    20:test1:x:1000:1000::/home/test1:/bin/bash
    21:test2:x:1001:1001::/home/test2:/bin/bash
    22:test3:x:1002:1002::/home/test3:/bin/bash
    

    使用grep匹配后,再向下打印

    [root@node2 ~]# grep -n -A 2 "4" test.txt
    4:TEST4
    # 匹配到4后在向下打印两行
    5-TEST5
    6-TEST6
    

    使用grep匹配后,再向上打印

    [root@node2 ~]# grep -n -B 2 "4" test.txt
    2-TEST2
    3-TEST3
    4:TEST4
    # 匹配到4后,再向上打印两行
    

    使用grep匹配后,再向上和向下打印

    [root@node2 ~]# grep -n -C 2 "4" test.txt
    2-TEST2
    3-TEST3
    4:TEST4
    # 匹配到4后,再向上和向下各打印两行
    5-TEST5
    6-TEST6
    

    [root@node2 ~]# cat test.txt
    TEST1
    TEST2
    TEST3
    TEST4
    TEST5
    TEST6
    TEST7
    TEST8
    TEST9

    筛选出不含“ftp”的行

    [root@node2 ~]# grep -v "ftp" pass 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    

    不区分大小写过滤出含"ftp"的行

    [root@node2 ~]# grep -i "ftp" pass 
    FTP test
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    

    不区分大小写的打印出以sync结尾或者包含ftp的行

    [root@node2 ~]# grep -Ei "sync$|ftp" pass
    FTP test
    sync:x:5:0:sync:/sbin:/bin/sync
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    

    过滤文件常用的符号

    选项 解释
    . 表示所有
    * 反转查找
    .* 表示匹配所有
    ^ 表示以什么开头
    $ 表示以什么结尾
    ^$ 表示空行

    相关文章

      网友评论

          本文标题:day-4 文件管理(2)

          本文链接:https://www.haomeiwen.com/subject/vvvdrctx.html