03.23 通配符与标点符号

第一章:常用标点符号

【|】管道

[root@Never-downtime oldboy]# find /qunchao/ -type f -name "*txt" | egrep oldboy
/qunchao/stu3.txt
/qunchao/stu7.txt
/qunchao/stu6.txt
/qunchao/stu2.txt
/qunchao/stu4.txt
/qunchao/stu1.txt
/qunchao/stu8.txt
/qunchao/stu10.txt
/qunchao/stu9.txt
/qunchao/stu5.txt

【|xargs】传送文件

[root@Never-downtime oldboy]# find /qunchao/ -type f -name "*.txt" |xargs rm -f

【.】当前目录,任意一个字符(正则)

[root@mysql-db01 ~]# ll ./
total 8384
-rw-------. 1 root root    1073 Mar  9 18:14 anaconda-ks.cfg
-rw-r--r--  1 root root     603 May 24 09:55 ansible_61.sh

【..】当前目录的上一级目录

[root@mysql-db01 ~]# cd ..

【*】任意0个或多个字符

[root@mysql-db01 ~]# ll *

【>】输出重定向

[root@mysql-db01 ~]# echo 123 >a.txt
[root@mysql-db01 ~]# cat a.txt 
123

【>>】追加输出重定向

[root@mysql-db01 ~]# echo 456 >>a.txt 
[root@mysql-db01 ~]# cat a.txt 
123
456

【<】输入重定向

[root@mysql-db01 ~]# cat a.txt 
123
456
[root@mysql-db01 ~]# vim b.txt
while read line ;do
  echo $line
done <a.txt
[root@mysql-db01 ~]# sh b.txt 
123
456

【<<】追加输入重定向

[root@mysql-db01 ~]# cat <<END
> 1
> 2
> 3
> 4
> END
1
2
3
4

【#】注释/root超级用户提示符

[root@mysql-db01 ~]#

【$】取变量里的内容

[root@mysql-db01 ~]# a=1
[root@mysql-db01 ~]# echo $a
1

【&&】表示并且 前一个命令成功 你是男生&&你喜欢女生

[root@mysql-db01 ~]# echo 123 >a.txt && cat a.txt 
123

【“】反引号

[root@mysql-db01 ~]# find . -type f -name "*.txt" 
./b.txt
./a.txt
[root@mysql-db01 ~]# rm -f `find . -type f -name "*.txt"`

【;】分号

[root@mysql-db01 ~]# ls ;ll
anaconda-ks.cfg  change_ip_host.sh  install.log.syslog                            PPP
ansible_61.sh    install.log        percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
total 8388
-rw-------. 1 root root    1073 Mar  9 18:14 anaconda-ks.cfg
-rw-r--r--  1 root root     603 May 24 09:55 ansible_61.sh
-rw-r--r--  1 root root    2483 May 24 08:50 change_ip_host.sh
-rw-r--r--. 1 root root   21764 Mar  9 18:14 install.log
-rw-r--r--. 1 root root    5890 Mar  9 18:13 install.log.syslog
-rw-r--r--  1 root root 8534624 Jul 21  2016 percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
-rw-r--r--  1 root root      13 Jul  6 21:06 PPP

【-】横杠

[root@mysql-db01 ~]# cd -

【~】家目录

[root@mysql-db01 ~]#

【^】尖角号 取开头

[root@mysql-db01 ~]# ls|egrep "^a"
anaconda-ks.cfg
ansible_61.sh

【/】根/路径分隔符

[root@mysql-db01 ~]# cd /

【+】匹配重叠 正则表达式

[root@mysql-db01 /]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:5F:9F:90  
          inet addr:10.0.0.51  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5f:9f90/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:29639 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18440 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:34801386 (33.1 MiB)  TX bytes:1590456 (1.5 MiB)
[root@mysql-db01 /]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
10.0.0.51

【!】取反

[root@mysql-db01 ~]# find . -type f ! -name "anaconda-ks.cfg"

第二章:通配符含义

他是shell的内置功能。
通配符(wildcard),用过DOS的应该很了解,也是很常用的。
通配符,只的是包含这些字符的字符串,”?” , ‘[’ ,{}
通配符是用来匹配/查找文件名。
Linux命令基本都支持通配符。
这里写图片描述

第三章:通配符案例详解

【*】找出以stu开头的文件

[root@Never-downtime gqc]# ls -l stu*
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu00.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu01.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu02.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu03.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu04.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu05.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu06.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu07.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu08.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu09.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu10.txt

【?】任何一个字符/文本

[root@Never-downtime gqc]# ls /sbin/??

【[]】表示一个整体,里面有多重情况。我要找a或b或c或d

[root@Never-downtime gqc]# ls *[123]*
oldboy01.log  oldboy03.log  stu01.txt  stu03.txt
oldboy02.log  oldboy10.log  stu02.txt  stu10.txt

【{}】生成序列

[root@Never-downtime gqc]# echo {0..9}
0 1 2 3 4 5 6 7 8 9

【!abc】!表示非 取反

[root@Never-downtime gqc]# ls -l stu0[!1-5].txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu00.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu06.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu07.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu08.txt
-rw-r--r-- 1 root root 0 Mar 22 16:14 stu09.txt

【{}与[]区别】

[root@Never-downtime gqc]# echo oldboy[0-9]
oldboy[0-9]
[root@Never-downtime gqc]# echo oldboy{0..9}
oldboy0 oldboy1 oldboy2 oldboy3 oldboy4 oldboy5 oldboy6 oldboy7 oldboy8 oldboy9

【重定向符号】

>##输出重定向 会清空原文及内容 然后再想文件里面追加内容
>>#追加输出重定向 追加到文件的最后一行
<##输入重定向 tr xargs
<<#cat用来给文件追加文本
[root@Never-downtime gqc]# cat >>oldboy.txt<<PPP
> oldboy
> oldgirl
> PPP

【$】

1.引用变量 去变量的值 或 普通用户的命令提示符 echo $PATH
2.$取第几列 $数3.普通用户的命令提示符

【&&】和 并且

cd  / && tar zcf  /tmp/and.tar.gz etc/bin/usr/local
ifdown eth0 && ifup eth0

【”】

[root@mysql-db01 ~]# echo '$LANG  $(which mkdir) {a..z}'
$LANG  $(which mkdir) {a..z}

【”“】

[root@mysql-db01 ~]# echo "$LANG $(which mkdir) {a..z}"
en_US.UTF-8 /bin/mkdir {a..z}

【不加引号】

[root@mysql-db01 ~]# echo  $LANG $(which mkdir) {a..z}
en_US.UTF-8 /bin/mkdir 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值