zoukankan      html  css  js  c++  java
  • 正则一

    1) inode 和 block

    概念说明:
    诞生过程:
    特点说明:
    文件名称是在上一级目录的block进行存储
    查看方式:
    2) 文件类型 文件权限
    file
    r w x - 三个用户
    文件或目录相关的命令
    find tar
    3) 硬链接数 vs 软链接
    概念作用:
    特点说明:
    创建过程:
    目录无法创建硬链接
    4) 属主 属组
    系统中的用户类型
    超级管理员 虚拟用户 普通用户
    5) 文件的时间信息 (修改时间)

    atime 访问时间
    mtime 修改时间
    ctime 改变时间(文件属性)
    
    date
    find -mtime 按天查找数据
    -mmin    

    利用find找出文件之后, 进行批量处理:
    1) 批量删除

    find /oldboy_dir/ -type f -mtime -1|xargs rm -f

    xargs作用:
    01. 可以将多行信息整合为一行 利用空格进行分隔

    [root@oldboy-xiaodao.com.cn oldboy_dir]# find /oldboy_dir/ -type f -mtime -1
    /oldboy_dir/test01.txt
    /oldboy_dir/test02.txt
    /oldboy_dir/test03.txt
    /oldboy_dir/test04.txt
    /oldboy_dir/test05.txt
    [root@oldboy-xiaodao.com.cn oldboy_dir]# find /oldboy_dir/ -type f -mtime -1|xargs
    /oldboy_dir/test01.txt /oldboy_dir/test02.txt /oldboy_dir/test03.txt /oldboy_dir/test04.txt /oldboy_dir/test05.txt

    02. 可以将一行信息拆分为多行 利用空格作为拆分
    结论: 在linux系统中,不是所有的命令都可以直接操作文件

    tr -cd '0-9a-zA-Z' </dev/urandom
    [root@oldboy-xiaodao.com.cn oldboy_dir]# xargs -n 2 <test01.txt
    01 02
    03 04
    05 06
    07 08
    09 10
    [root@oldboy-xiaodao.com.cn oldboy_dir]# xargs -n 3 <test01.txt
    01 02 03
    04 05 06
    07 08 09
    10
    
    01. 

    系统中的符号信息

    系统特殊符号
    系统通配符号
    系统正则符号
    说明: 查询信息的时候,会带来便利

    02. 系统特殊符号
    1) 基础符号系列

    $ 
    a 调取变量信息
    b 区分用户类型 $ 普通用户
    c 结合awk对文件进行取列 
    [root@oldboy-xiaodao.com.cn oldboy_dir]# xargs -n 2 <test01.txt|awk '{print $2}'
    02
    04
    06
    08
    10
    [root@oldboy-xiaodao.com.cn oldboy_dir]# xargs -n 2 <test01.txt|awk '{print $1}'
    01
    03
    05
    07
    09
    [root@oldboy-xiaodao.com.cn oldboy_dir]# xargs -n 2 <test01.txt|awk '{print $0}'
    01 02
    03 04
    05 06
    07 08
    09 10

    !
    a 强制的作用 wq!
    b 可以实现取反 

    [root@oldboy-xiaodao.com.cn oldboy_dir]# awk '!/oldgirl/' test02.txt 
    oldboy01
    oldboy02
    oldboy03
    oldboy04
    
    [root@oldboy-xiaodao.com.cn oldboy_dir]# ll /oldboy_dir/
    total 8
    drwxr-xr-x 2 root root 6 Feb 4 2019 oldboy01
    -rw-r--r-- 1 root root 30 Jan 16 09:16 test01.txt
    -rw-r--r-- 1 root root 46 Jan 16 09:39 test02.txt
    -rw-r--r-- 1 root root 0 Jan 16 09:08 test03.txt
    -rw-r--r-- 1 root root 0 Jan 16 09:08 test04.txt
    -rw-r--r-- 1 root root 0 Jan 16 09:08 test05.txt
    [root@oldboy-xiaodao.com.cn oldboy_dir]# find /oldboy_dir/ ! -type f
    /oldboy_dir/
    /oldboy_dir/oldboy01

    c !信息 可以快速调取执行历史命令(慎用)
    cat ~/.bash_history -- 记录历史命令信息, 但是不会实时记录
    history -- 显示所有输入过的历史命令
    01. 查看你的错误操作,确认错误原因
    02. 回顾高手的操作过程

    |
    a 实现管道功能
    将前一个命令执行的结果交给管道后面的命令进行处理
    一般管道符号 会经常和xargs命令配合使用
    批量删除操作

    find /oldboy -type f -name "oldboy*.txt"|xargs rm
    find /oldboy_dir/ -type f -delete
    find /oldboy_dir/ -type f -exec rm -f {} ;

    查找指定数据信息进行复制

    find /oldboy -type f -name "oldboy*.txt" |xargs -i cp {} /oldgirl/
    find /oldboy -type f -name "oldboy*.txt" |xargs cp -t /oldgirl/
    find /oldboy -type f -name "oldboy*.txt" -exec cp -a {} /oldgirl ;

    查找指定数据信息进行移动

    find /oldboy -type f -name "oldboy*.txt" |xargs -i mv {} /oldgirl/
    find /oldboy -type f -name "oldboy*.txt" |xargs mv -t /oldgirl/
    find /oldboy -type f -name "oldboy*.txt" -exec mv {} /oldgirl ;

    结论: xargs(火眼金睛)后面跟的命令,不识别别名信息

    #
    a 表示对配置文件信息进行注释
    b 表示用户的身份信息 超级管理员用户

    2) 引号符号系列
    "" 基本上和单引号功能类似 但是可以对一些特殊符号做出解析 $ `命令`==$(命令)
    '' 里面编写的什么内容就输出什么内容 所见即所得
    作用:
    01. 指定需要输出的信息
    02. 利用引号将空格分隔的信息汇总为一个整体

    ``($()) 将引号里面命令执行结果,交给引号外面命令进行使用

    3) 重定向符号

    >/1> 标准输出重定向符号
    >>/1>> 标准输出追加重定向符号
    2> 错误输出重定向符号
    2>> 错误输出追加重定向符号 
    < 标准输入重定向符号
    tr xargs
    << 标准输入追加重定向符号

    一条命令生成多行信息

    [root@oldboy-xiaodao.com.cn oldboy_dir]# cat >>oldboy.txt<<oldboy
    > oldgirl01
    > oldgirl02
    > oldgirl03
    > oldboy

    4) 逻辑符号系列
    逻辑: 在完成一件事情的时候,有合理先后顺序
    && 前一个命令操作执行成功了,再操作执行后面的命令
    || 前一个命令操作执行失败了,再操作执行后面的命令

    [root@oldboy-xiaodao.com.cn oldboy_dir]# mkdir /old_dir && echo "create dir sucess" || echo "create dir failed"
    create dir sucess
    [root@oldboy-xiaodao.com.cn oldboy_dir]# mkdi /old_dir && echo "create dir sucess" || echo "create dir failed"
    -bash: mkdi: command not found
    create dir failed

    03. 系统通配符号
    什么通配符号: 用于匹配文件名称信息, 便于快速查找文件信息 find

    * 匹配所有信息

    find /oldboy -type f -name "oldboy*" ---以oldboy开头的信息都查询出来
    find /oldboy -type f -name "*oldboy" ---以oldboy开头的信息都查询出来
    find /oldboy -type f -name "oldgirl*oldboy" 

    ---以oldgirl 开头的信息
    以oldboy 结尾的信息都查询出来
    {} 产生序列信息
    连续序列:

    [root@oldboy-xiaodao.com.cn oldboy_dir]# echo {01..05}
    01 02 03 04 05
    [root@oldboy-xiaodao.com.cn oldboy_dir]# echo {a..z}
    a b c d e f g h i j k l m n o p q r s t u v w x y z
    [root@oldboy-xiaodao.com.cn oldboy_dir]# echo {A..Z}
    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    生成不连续序列
    a 有规律的不连续序列

    [root@oldboy-xiaodao.com.cn oldboy_dir]# echo {01..05..2}
    01 03 05
    [root@oldboy-xiaodao.com.cn oldboy_dir]# echo {a..z..2}
    a c e g i k m o q s u w y

    b 没规律的不连续序列

    [root@oldboy-xiaodao.com.cn oldboy_dir]# echo {www,bbs,blog}
    www bbs blog

    生成组合序列

    [root@oldboy-xiaodao.com.cn oldboy_dir]# echo {1,2}{a,b}
    1a 1b 2a 2b
    [root@oldboy-xiaodao.com.cn oldboy_dir]# echo {1,2}{a,b}{A,B}
    1aA 1aB 1bA 1bB 2aA 2aB 2bA 2bB
    
    echo A{a,b}
    Aa Ab    
    
    A=oldboy.txt
    
    echo oldboy.txt{a,b}    
    oldboy.txta oldboy.txtb    
    
    [root@oldboy-xiaodao.com.cn ~]# echo A{,b}
    A Ab
    A=oldboy.txt    
    b=.bak
    
    cp oldboy.txt{,.bak} == cp oldboy.txt oldboy.txt.bak

    快速备份文件命令

    [root@oldboy-xiaodao.com.cn oldboy_dir]# cp oldboy.txt{,.bak}
    [root@oldboy-xiaodao.com.cn oldboy_dir]# ll
    -rw-r--r-- 1 root root 30 Jan 16 11:12 oldboy.txt
    -rw-r--r-- 1 root root 30 Jan 16 11:56 oldboy.txt.bak

    快速还原数据方法

    [root@oldboy-xiaodao.com.cn oldboy_dir]# cp oldboy.txt{.bak,}
    -rw-r--r-- 1 root root 30 Jan 16 12:02 oldboy.txt
    -rw-r--r-- 1 root root 30 Jan 16 11:56 oldboy.txt.bak
    # echo A{B,}
    AB A
    oldboy.txt{.bak,} == cp oldboy.txt.bak oldboy.txt

    04. 未知不会 别人帮助你
    如何让高手原因帮助

    终极目标
    赵 110101199901045121
    钱 110101199901045121
    孙 11010119990104512X
    李 110101299901045121
    陈 oldboy
    周 110101199981045121
    吴 110101199901045121
    郑 11010149990104512X
    刘 oldgirl
    王 110101199908045121
    冯 110111199901045121

    作业:
    01. 批量数据复制或移动











  • 相关阅读:
    C++虚继承内存布局
    编译OpenJDK记录
    Node.js + Express 调研
    软件工程开发工具
    Servlets & JSP & JavaBean 参考资料
    Eclipse AST 相关资料
    Git & github 最常用操作笔记
    Java入门学习资料整理
    从变量的类型转换看C语言的思维模式
    数学地图(1)
  • 原文地址:https://www.cnblogs.com/nshgo/p/12158708.html
Copyright © 2011-2022 走看看