2019.4.16 特殊符号与通配符

2019.4.16

1.字符集:文字符号在计算机中标识的方法

(1)临时修改

[root@lsr7 ~]# export LANG='zh_CN.utf8'    zh中文  CN中国  utf8或者UTF-8 万国码,通用的  en英语 US美国

[root@lsr7 ~]# vimtutor     //随便使用一共命令,下面肯出现中文

[root@lsr7 ~]# echo $LANG

zh_CN.UTF-8

(2)永久修改

[root@lsr7 ~]# echo $LANG

zh_CN.UTF-8

[root@lsr7 ~]# ll /etc/locale.conf

-rw-r--r--. 1 root root 19 3月   8 16:32 /etc/locale.conf

[root@lsr7 ~]# cat /etc/locale.conf

LANG=en_US.utf8

[root@lsr7 ~]# source /etc/locate.conf

-bash: /etc/locate.conf: 没有那个文件或目录

[root@lsr7 ~]# source /etc/locale.conf

[root@lsr7 ~]# echo $LANG

en_US.UTF-8

(3)暂时加永久   (设置之后xshell断开再连接一下)

[root@lsr7 ~]# localectl set-locale LANG=en_US.utf8      //或者改中文是LANG=zh_CN.utf8


Echo $LANG和地球上面的字符(语言),输出命令容易出现乱码,所以他们俩必须一致

2.特殊符号系列

`` 等于$()   :反引号 优先执行$()内部的命令,把结果留,()里面必须放命令

 ‘’  :单引号   所见即所得

“”  :双引号  解析里面的特殊符号

:不加引号,可以使用{}

>     :输出重定向

>>    :追加输出重定向

2>    :错误输出重定向

2>>   :标准错误输出,追加重定向

2>&1  :标准错误重定向(不提示,错误正确都放在一个里面)

&&    :前面命令执行成功再执行下一个命令

||    :前一个命令执行失败再执行下一个命令

3.通配符

* :所有

^    :匹配字符串开头

?    :任意一个字符(??任意两个字符) 了解

4.[root@lsr7 ~]# echo "$LANG"    //双引号

en_US.UTF-8

[root@lsr7 ~]# echo '$LANG '    //单引号

$LANG  

[root@lsr7 ~]# echo "$LANG {1..5}"   

en_US.UTF-8 {1..5}

[root@lsr7 ~]# echo '$LANG {1..5}'

$LANG {1..5}

[root@lsr7 ~]# echo $LANG {1..5}    //不加引号

en_US.UTF-8 1 2 3 4 5   




[root@lsr7 ~]# ll $(find /oldboy -type f -name '*.txt')

-rw-r--r-- 1 root root 0 Apr 16 11:02 /oldboy/huahua.txt

5.xargs    //把管道传递内容从字符转换为文件名

[root@lsr7 ~]# find /oldboy -type f -name '*.txt'|xargs ls -l

-rw-r--r-- 1 root root 0 Apr 16 11:02 /oldboy/huahua.txt

6.-exec    执行

[root@lsr7 ame '*.txt'~]# find /oldboy -type f -exec ls -l {} \;    //找出的文件放{}  \是撬棍

-rw-r--r-- 1 root root 0 Apr 16 11:02 /oldboy/huahua.tx

7.查找/etc下所有以.conf为结尾的文件,大于1M,修改时间7天以内的文件,复制到/tmp下

[root@huahua ~]# find /etc -type f -size +1M -mtime -7 -name '*.conf' -exec cp -i {} /tmp \;

[root@huahua ~]# cp -a `find /etc/ -type f -size -2M -name '*.conf'` /tmp/old

[root@huahua ~]# find /etc -type f -size +1M -mtime -7 -name '*.conf' | xargs -i cp {} /tmp

[root@huahua ~]# find /etc -type f -size +1M -mtime -7 -name '*.conf' | xargs cp -t /tmp

8.查看历史命令

[root@lsr7 ~]# !ls    //找出最近执行的以ls开头的命令


[root@lsr7 ~]# history |grep ls


9.以时间命名

(1)压缩/etc/到/tmp/etc下,并以时间命名

[root@lsr7 ~]# tar zcf /tmp/etc$(date +%F-%T).tar.gz /etc/    (注意date后面有空格)

[root@lsr7 ~]# ll /tmp/

-rw-r--r--  1 root root 10190179 Apr 15 20:06 2019-04-15-20:06:48etc.tar.gz


(2)查找/目录下小于2M,七天内,以.conf为结尾的文件,并把它打包到/tmp下,以时间命名

[root@huahua ~]# find / -type f -mtime -7 -size -2M -iname '*.conf' | xargs tar zcf /tmp/$(date +%F).tar.gz


下面的是一些软链接不存在了,不是报错

[root@huahua ~]# tar zcf /tmp/$(date +%F)conf.tar.gz $(find / -type f -name "*.conf" -mtime +7 -size -2M)

2019.4.17三剑客set grep awk

1.

[root@huahua ~]# vim /etc/ssh/sshd_config



[root@huahua ~]# systemctl restart sshd

2.通配符和正则的区别

 作用支持命令

通配符方便我们找文件Linux大部分命令都可用

正则方便我们过滤文件(在文件中找内容)Linux三剑客  开发语言Phython Go PHP JAVA

3.正则表达式(Regular Expression  RE)

    发明1套符号,不同符号有不同含义,方便我们再文件中查找/过滤内容

(1)基础正则(Basic RE    BRE)

^    :以什么开头

$    :以什么结尾

^$   :查找空行(这一行什么都没有)

.*   :所有任意字符

.    :任意一个字符

* :匹配前一个字符    只能放字符后面,不允许放前面 前一个字符连续出现0次或0次以上

[]   :匹配里面任意一个字符(综括号)

[^]  :不要里面的任意字符

\    :转义字符

 [root@huahua ~]# cat /etc/ssh/sshd_config > /tmp/test.txt    //把/etc/ssh/sshd_config的内容放在/tmp/test.txt里面

[root@huahua ~]# grep '^#' /tmp/test.txt    //筛选出/tmp/test.txt下以#开头的文件


[root@huahua ~]# grep 'no$' /tmp/test.txt    //筛选出/tmp/test.txt下以$结尾的文件


[root@huahua ~]# grep -n '^$' /tmp/test.txt    //筛选/tmp/test.txt下的空格   -n显示行号


[root@huahua ~]# grep 'n*' /tmp/test.txt    //匹配带n的字符


[root@huahua ~]# grep -nv "^$" oldboy.txt    //-v排除空行  -n显示行号


[root@huahua ~]# grep " " oldboy.txt    //过滤出空格  (空格看不出来,拉黑就看到红色的空格)


[root@huahua ~]# grep -o "......" oldboy.txt    //一次查看六个字符   (6个.代表一次查看6个字符 -o是显示过程)


①撬棍系列

加撬棍,是转移字符,作用,脱掉马甲,打回原型

\n    回车(换行)

\t    tab(空格)

[root@huahua ~]# grep ".$" oldboy.txt    //以任意字符为结尾

[root@huahua ~]# grep "\.$" oldboy.txt    //查看oldboy.txt中以.为结尾


②echo

-n    不输出每行结尾的回车

-e    让echo支持转义符 \n \t

[root@huahua ~]# echo -e "\nhuahua\txixi\zhizhi"    //可以看到huahua换行了,huahua和xixi之间有空格



追加123之后查看,可以看到有4个字符,加上-n追加可以看到有3个字符

[root@huahua ~]# grep "0*" oldboy.txt    //连续(重复)出现的0


[root@huahua ~]# grep '[a-z]' /tmp/test.txt    //匹配字母a-z的


[root@huahua ~]# grep " [a-zA-Z] " oldboy.txt    //匹配a-z A-Z

[root@huahua ~]# grep " [0-Z] " oldboy.txt    //匹配0-9 a-z A-Z

[root@huahua ~]# grep " [a-Z] " oldboy.txt    //匹配a-z A-Z

[root@huahua ~]# grep "[0-9]" /tmp/test.txt    //匹配带数字的


[root@huahua ~]# grep '^[mno]' oldboy.txt    //显示以m或n或o开头的行

[root@huahua ~]# grep '[mn.]$' oldboy.txt    //以m或n或点结尾的行

[root@huahua ~]# grep '^[mno].* [mn.]$' oldboy.txt    //显示以m或n或o开头的并且以m或n或点结尾的行

[root@huahua ~]# grep "[^abc]" oldboy.txt    //不要abc

(2)扩展正则(Extended RE  ERE)

|     或者

+     匹配前一个字符出现一次和一次以上(>=1)

()    后向引用

{}    前一个字符出现最少n次,最多m次

b{m,n} 前1字符连续出现至少m次和最多n次

b{m}前一个字符连续出现m次

b{m,}前1个字符连续至少出现m次

b{,n}前一个字符最多出现n次

?   前一个字符出现0次或1次

[root@huahua ~]# egrep '[a-Z]+' oldboy.txt    //匹配a-Z出现1次或1次以上


[root@huahua ~]# egrep 'oldboy|linux' oldboy.txt    //查找'oldboy或linux


[root@huahua ~]# egrep 'oldb[oe]y ' oldboy.txt    //查找oldboy或者oldbey

[root@huahua ~]# egrep 'oldb(o|e)y ' oldboy.txt    //查找oldboy或者oldbey


[root@huahua ~]# egrep  '0{1,3}' oldboy.txt    //查找0至少出现1次,最多出现3次


出现的5个0是因为grep具有贪婪性

[root@huahua ~]# egrep  '0{2,4}' oldboy.txt


[root@huahua ~]# egrep  '0{3}' oldboy.txt


[root@huahua ~]# egrep '[0-9]{17}[0-9X]$' id.txt    //查找身份证号


[root@huahua ~]# egrep 'go?d' oldboy.txt    //查找god或者go (oldboy.txt内必须有god和go)


4.括号表达式

[[:alnum]]:大小写字母或数字(也就是0-9)

[root@huahua ~]# egrep [[:alnum:]] oldboy.txt    

5.man grep    info grep    //info比慢更详细

6. Cat -A    文件中所有隐藏符号,每行结尾加上$

[root@huahua ~]# cat -A oldboy.txt

 

7.

 基础正则扩展正则

 grep   sed   awkegrep   sed -r   awk

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容

  • 1.grep参数 -i忽略大小写 -v取反显示除了xx的其它内容 -n显示行号 -o显示过程 -e支持扩展正则(e...
    小孟灬阅读 292评论 0 0
  • 1. [root@huahua ~]# vim /etc/ssh/sshd_config [root@huahua...
    小孟灬阅读 273评论 0 0
  • Linux启动过程 1.开机自检BIOS 2.MBR引导 3.GRUB菜单 4.加载内核 5.运行init进程 6...
    康乐_SH阅读 347评论 0 0
  • tar命令的介绍 saves many files together into a single tape or ...
    温东阅读 1,109评论 0 0
  • 今天放学了,吃完晚饭,妈妈带着我和弟弟去逛超市,妈妈给弟弟买了一个玩具汽车,它有六个车轮,能变形,能唱歌,妈妈又给...
    白泽航阅读 228评论 0 0