zoukankan      html  css  js  c++  java
  • 正则表达式

    配置ip

    临时:

         Ifconfig eth0 1p/24

         route add default gw 网关地址

         /etc/resovl.conf------ànameserver dns的ip地址

         /etc/hosts  #本地解析-------》ip地址 域名

         Hostnamectl set-hostname 主机名

    永久:

         /etc/sysconfig/network-scripts/ifcfg-网卡名

    Onboot=yes

    Bootproto=static

    Ipaddr=ip地址

    Netmark=255.255.255.0

    Gateway=网关地址

    DNS1=DNS的ip地址

    DNS2=DNS的ip地址

    Systemctl restart netmark

    公钥:公共的密钥,所以要发出去

     正则表达式

    grep是 文本操作符

    正则表达式是用来从文本中提取对你有用的信息

    [root@bogon ~]# /etc/profile

    [root@bogon ~]# /etc/bashrc

    [root@bogon ~]# /root/.bash_profile

    [root@bogon ~]# /root/.bashrc

    如果直接在[root@bogon ~]上写python,就是自带的,如果系统启动就能调用python3.6,就要在

    vim /etc/profile下面加上:

    PATH=/usr/local/python3.5.1/bin:$PATH

    export PATH

    我们现在登录的终端的shell,就是一个bash

    由于老师在下面文件的前面加上echo ‘文件名’,所以加载什么文件都会显示

    我们在正常的登录下,会加载/ect/profile,但是如果输入bash后,却不加载这个文件,但会加载

    Bashrc写入固化的语句,就不受是否用bash登录影响了。

    grep

    -n  :显示行号
    -o  :只显示匹配的内容
    -q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容

    -l  :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc 
    -A  :如果匹配成功,则将匹配行及其后n行一起打印出来
    -B  :如果匹配成功,则将匹配行及其前n行一起打印出来
    -C  :如果匹配成功,则将匹配行及其前后n行一起打印出来
    --color
    -c  :如果匹配成功,则将匹配到的行数打印出来
    -E  :等于egrep,扩展
    -i  :忽略大小写

    -v  :取反,不匹配
    -w:匹配单词

    [root@bogon ~]# cat /etc/passwd | grep "root"

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

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

    [root@bogon ~]# grep root /etc/passwd

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

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

    [root@bogon ~]#

    增加-n

    [root@bogon ~]# grep -n 'root' /etc/passwd

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

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

    [root@bogon ~]# grep -o 'root' /etc/passwd

    root

    root

    root

    root

    -q不输出结果

    [root@bogon ~]# grep -q 'root' /etc/passwd

    [root@bogon ~]# echo $?

    0

    -l是文件名

    [root@bogon ~]# grep -l 'root' /etc/passwd

    /etc/passwd

    [root@bogon ~]#

    显示带root的下面两行(报错时,查error时有用)

    [root@bogon ~]# grep -A 2 'root' /etc/passwd

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

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    --

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

    games:x:12:100:games:/usr/games:/sbin/nologin

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

    显示带root的前面两行(报错时,查error时有用)

    [root@bogon ~]# grep -B 2 'root' /etc/passwd

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

    --

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

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

    [root@bogon ~]#

    -C就是上下两行

    [root@bogon ~]# grep -C 2 'root' /etc/passwd

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

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    --

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

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

    games:x:12:100:games:/usr/games:/sbin/nologin

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

    [root@bogon ~]#

    -c是count的意思,数行数

    [root@bogon ~]# grep -c 'root' /etc/passwd

    2

    -i忽略大小写

    [root@bogon ~]# cat 111.txt

    hello

    Hello

    HELLO

    123

    1123

    [root@bogon ~]# grep -i 'hello' 111.txt

    hello

    Hello

    HELLO

    [root@bogon ~]# grep 'hello' 111.txt

    Hello

    取不包含hello的

    [root@bogon ~]# grep -iv 'hello' 111.txt

    123

    1123

    只要root单词,用-w

    [root@bogon ~]# cat 111.txt

    hello

    Hello

    HELLO

    123

    1123

    root123

    root 123

    root_123

    root

    [root@bogon ~]# grep -w 'root' 111.txt

    root 123

    root

    带^root是指以root开头,nologin$是指nologin结尾

    [root@bogon ~]# grep 'root' /etc/passwd

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

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

    [root@bogon ~]# grep '^root' /etc/passwd

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

    [root@bogon ~]# grep 'nologin$' /etc/passwd

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    b与n中间隔着一个字符,任意一个字符

    [root@bogon ~]# grep '^b.n' /etc/passwd

    bin:x:1:1:bin:/bin:/sbin/nologin

    [root@bogon ~]#

    *代表左边那个字符出现0个或1个以上,之后可以任意字符

    [root@bogon ~]# cat a.txt

    a

    ab

    abb

    abbb

    abc

    abcd

    acd

    cd

    [root@bogon ~]# grep 'ab*' a.txt

    a

    ab

    abb

    abbb

    abc

    abcd

    acd

    + 号代表以左边开头的全部字符,不能用grep,要用egrep或grep -E

    egrep包含了grep的所有功能,所以不知道写哪个就写egrep

    [root@bogon ~]# egrep 'ab+' a.txt

    ab

    abb

    abbb

    abc

    abcd

    [root@bogon ~]# egrep 'ab{2}' a.txt

    abb

    abbb

    [root@bogon ~]#

    只要abb,就要用$结尾了

    [root@bogon ~]# egrep 'ab{2}$' a.txt

    abb

    [root@bogon ~]#

    2-4个B

    [root@bogon ~]# egrep 'ab{2,4}' a.txt

    abb

    abbb

    大于等于2个B

    [root@bogon ~]# egrep 'ab{2,}' a.txt

    abb

    abbb

    [root@bogon ~]# egrep 'ab?' a.txt

    a

    ab

    abb

    abbb

    abc

    abcd

    acd

    解释egrep的命令

    [root@bogon ~]# man egrep

     

    只取中括号里面的一个

    [root@bogon ~]# egrep 'r[abc123-/]t' a.txt

    r1t

    r2t

    rat

    -必须要在结尾,否则匹配不到带-的

    [root@bogon ~]# egrep 'r[abc123-/]t' a.txt

    r1t

    r2t

    rat

    r/t

    [root@bogon ~]# egrep 'r[abc123/-]t' a.txt

    r1t

    r2t

    rat

    r-t

    r/t

    [root@bogon ~]#

    点是任意一个的意思

    [root@bogon ~]# egrep 'r.t' a.txt

    rot

    r1t

    r2t

    rat

    r-t

    r/t

    ?是一个或多个

    [root@bogon ~]# egrep 'r?t' a.txt

    root

    rot

    roooot

    r1t

    r2t

    rat

    raat

    r-t

    r/t

    [root@bogon ~]#

    [a-z]内只匹配小a到小z

    [root@bogon ~]# egrep 'r[a-z]t' a.txt

    rot

    rat

    [root@bogon ~]# egrep 'r[a-zA-Z]t' a.txt

    rot

    rat

    [root@bogon ~]# egrep 'r[a-Z]t' a.txt

    rot

    rat

    [root@bogon ~]#

    中间可以有很多在数字

    [root@bogon ~]# egrep 'r[0-9]+t' a.txt

    r1t

    r2t

    r23456789t

    [root@bogon ~]#

    中间有两个数字的:

    [root@bogon ~]# egrep 'r[0-9]{2}t' a.txt

    r99t

    [root@bogon ~]#

    ^以什么开头

    [root@bogon ~]# egrep '^r' a.txt

    root

    rot

    roooot

    r1t

    r2t

    rat

    raat

    r-t

    r/t

    r23456789t

    r99t

    [root@bogon ~]#

    [root@bogon ~]# egrep '^[0-9]' a.txt

    [^0-9]当^在中括号内就取反

    [root@bogon ~]# egrep '^[^0-9]' a.txt

    a

    ab

    abb

    abbb

    abc

    abcd

    acd

    cd

    abbbbbbbb

    root

    rot

    roooot

    r1t

    r2t

    rat

    raat

    r-t

    r/t

    r23456789t

    r99t

    [root@bogon ~]#

    包含abb或abc的命令:

    [root@bogon ~]# egrep 'ab(b|c)' a.txt

    abb

    abbb

    abc

    abcd

    abbbbbbbb

    [root@bogon ~]#

    这样也行

    [root@bogon ~]# egrep -e 'abc' -e 'abb' a.txt

    abb

    abbb

    abc

    abcd

    abbbbbbbb

    [root@bogon ~]#

    通配符与正则表达式

    通配符:提高操作效率

    touch {a..c}.txt

    正则表达式:

    ^行首

    $行尾

    *前面字符的0个或多个

    .单个字符

    上图中x{m,}中,是为了解释{,只是在grep才需要,在egrep是不需要的

    [root@bogon ~]# egrep 'ab{1}' a.txt

    ab

    abb

    abbb

    abc

    abcd

    abbbbbbbb

    [root@bogon ~]# egrep 'ab{1,3}' a.txt

    ab

    abb

    abbb

    abc

    abcd

    abbbbbbbb

    [root@bogon ~]# egrep 'ab{1,}' a.txt

    ab

    abb

    abbb

    abc

    abcd

    abbbbbbbb

    [root@bogon ~]#

     sed流编辑器,是以行为单位的处理程序(定指或命令)

    [root@bogon ~]# head -10 /etc/passwd > b.txt

    [root@bogon ~]# cat b.txt

    输出b.txt所有记录

    [root@bogon ~]# sed '' b.txt

    不打印输出结果用-n(静默模式)

    [root@bogon ~]# sed -n '' b.txt

    可以指定多个规则,跟egrep一样

    [root@bogon ~]# sed -e '' b.txt

    -i如果'' 内没有内容的话,就是打印出来,否则就会直接修改文件

    [root@bogon ~]# sed -i c b.txt

    删除第3行,打印出来,不是真的删除了,文件本身没修改

    [root@bogon ~]# sed '3d' b.txt

    第3行打印一次,然后继续输出第4行等

    [root@bogon ~]# sed '3p' b.txt

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

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

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

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

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

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

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

    只打印第3行 p=print

    [root@bogon ~]# sed -n '3p' b.txt

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    [root@bogon ~]#

    第3行改为111,打印出来(文件没有真的修改)c=change

    [root@bogon ~]# sed '3c 111' b.txt

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

    bin:x:1:1:bin:/bin:/sbin/nologin

    111

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

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

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

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

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

    [root@bogon ~]#

    3a就是追加的意思,在第3行后追加一行

    [root@bogon ~]# sed '3a 111' b.txt

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

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    111

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

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

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

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

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

    [root@bogon ~]#

  • 相关阅读:
    AX 2012 Security Framework
    The new concept 'Model' in AX 2012
    How to debug the SSRS report in AX 2012
    Using The 'Report Data Provider' As The Data Source For AX 2012 SSRS Report
    Deploy SSRS Report In AX 2012
    AX 2012 SSRS Report Data Source Type
    《Taurus Database: How to be Fast, Available, and Frugal in the Cloud》阅读笔记
    图分析理论 大纲小结
    一文快速了解Posix IO 缓冲
    #转载备忘# Linux程序调试工具
  • 原文地址:https://www.cnblogs.com/jensenxie/p/7912412.html
Copyright © 2011-2022 走看看