zoukankan      html  css  js  c++  java
  • Day4 文件管理-常用命令

    文件管理 --> 创建 移动 删除 复制

    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@oldboyedu ~]# cp file1 /tmp/ 
    [root@oldboyedu ~]# cp file1/tmp/file1    #这种很少使用
    
    3.在拷贝文件的过程中,如何保持文件原有的属性不发生变化
    -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
    在拷贝的过程中,文件权限和身份都发生变化了
     [root@oldboyedu ~]# cp file 
     /tmp/ [root@oldboyedu ~]# ll 
     /tmp/file
     -rw-r--r--. 1 root root 0 Jul 29 
     10:11 /tmp/file
    

    在拷贝过程中加上-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/ cp: omitting directory ‘/etc/’ 
    [root@oldboyedu ~]# cp /etc//tmp/ -r
    
    文件管理之:查看文件内容
    (cat less more head tail grep ...)
    
    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 -rp file1 oldboy1/ file /etc/ /mnt/ /opt/ 
    [root@oldboyedu ~]# ls /opt/ etc  
    file  file1  mnt  oldboy1
    
    7.在复制过程中频繁触发重复复制,提示确认操作?
    [root@oldboyedu ~]# cp -r /etc/ /opt/ 
    [root@oldboyedu ~]# /bin/cp -r /etc/ /opt/
    
    8.扩展项
    [root@oldboyedu ~]# cp {file5,file5-bak} -v ‘file5’ -> ‘file5-bak’ 
    [root@oldboyedu ~]# cp /etc/sysconfig/networkscripts/{ifcfg-ens32,ifcfg-ens32-bak} 
    [root@oldboyedu ~]# cp /etc/passwd ./pass 
    [root@oldboyedu ~]# cat pass        
    
    查看文件的所有内容从头到尾
    [root@oldboyedu ~]# cat -n pass     
    
    查看一个文件有多少行 -n
    [root@oldboyedu ~]# cat -A pass     
    
    查看文件的特殊符号, 比如文件中 存在tab键
    cat扩展使用,创建一个文件,并往里写入内容
    [root@oldboyedu ~]# cat >>         
     test.txt <<EOF    #EOF代表开 始 
    test1 test2 test3 EOF             
     EOF 代表结束
     [root@oldboyedu ~]# cat test.txt 
      test1 test2 test3
    

    9.less、more 分页显示文件内容

    less /etc/services    #使用光标上下翻动,空格进行翻页,q退 出 # more 
    /etc/services         #使用回车上下翻动,空格进行翻页,q退 出
    

    10.head 输出开头部分文件

    [root@oldboyedu ~]# head pass     #查看头部内容,默认前十行 
    [root@oldboyedu ~]# head -n5 查看尾部文件后5行
    pass #查看头部5行,使用-n指定 
    [root@oldboyedu ~]# ps aux | head -5  #了解
    

    11. tail 输出尾部部分文件

    tail pass     #查看文件尾部默认十行
    [root@oldboyedu ~]# tail -20 /var/log/secure #查看头部文件前20行
     [root@oldboyedu ~]# tail -f /var/log/messages #-f查看文 件尾部的变化 
     [root@oldboyedu ~]# tailf /var/log/messages   #查看文件尾部的变化 
    [root@oldboyedu ~]# ps aux | tail -5        #了解
    

    12.grep过滤文件内容

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

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

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

     [root@oldboyedu ~]# grep "^root" pass root:x:0:0:root:/root:/bin/bash     
    
    3.过滤pass文件中,匹配以bash结尾的行
     [root@oldboyedu ~]# grep "bash$" pass 
    root:x:0:0:root:/root:/bin/bash ja ck:x:1000:
    1000::/home/jack:/bin/bash
    
    4.显示行号
     [root@oldboyedu ~]# grep -n "bash$" pass 
    1:root:x:0:0:root:/root:/bin/bash 23:jack:x:1000:1000::/home/jack:/bin/bash
    
    5.扩展了解
     grep -n -A 2 "Failed" /var/log/secure 
    匹配/var/log/secure文件中Failed 
    字符串,并打印它的下2行 
     grep -n -B 2 "Failed" /var/log/secure 
    匹配/var/log/secure文件中Failed 
    字符串,并打印它的上2行 
     grep -n -C 2 "Failed" /var/log/secure 
    匹 配/var/log/secure文件中Failed 
    字符串
    
    6.过滤出包含ftp的行
    [root@oldboyedu ~]# grep "ftp" pass 
    ftp:x:14:50:FTP 
    User:/var/ftp:/sbin/nologin
    
    7.过滤除了ftp的行,其他的全部显示
    [root@oldboyedu ~]# grep -v "ftp" pass 
    

    8.忽略大小写方式

    13今日总结

    1.文件命令 cp cat
     [root@oldboyedu ~]# grep -i  
     "ftp" pass ftp:x:14:50:FTP 
      User:/var/ftp:/sbin/nologin
    

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

    grep  -Ei "sync$|ftp" pass
    
    grep筛选的目标,会将整行打印出来.

    13.grep相关练习题

    1、显示当前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
    
    2、显示/proc/meminfo文件中以不区分大小的s开头的行;
    [root@oldboyedu ~]# grep -i "^s" 
    /proc/meminfo
    
    3、显示/etc/passwd中以nologin
    结尾的行; [root@oldboyedu ~]# grep "nologin$" /etc/passwd
    
    4、显示/etc/inittab中以#开头,而
    后又跟了任意字符的行; 
    [root@oldboyedu ~]# grep -n  "^# .*" /etc/inittab .  代表任意单个字符  
    [a-z]  [A-Z]   [0-9] *  表示所有 
    .* 代表所有的任意字符
    

    今日总结

    day4---->6个命令
     less 
     more 
     head 
     tail 
     tailf 
     grep
  • 相关阅读:
    【MySQL】Mysql模糊查询like提速优化
    mysql实现row_number()和row_number() over(partition by)
    mysql limit 分页优化
    js正则验证方法大全
    如何获取select下拉框中option选中的文本值
    js控制input框只能输入数字和一位小数点和小数点后面两位小数
    js页面 :函数名 is not defined
    算法名称 Alias Method
    解决mybatis报错Result Maps collection does not contain value for java.lang.Integer
    nginx的rewrite规则
  • 原文地址:https://www.cnblogs.com/baozexu/p/11372785.html
Copyright © 2011-2022 走看看