首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux命令之通配符&管道符

Linux命令之通配符&管道符

原创
作者头像
闫同学
发布2023-11-09 22:34:19
发布2023-11-09 22:34:19
1K0
举报
文章被收录于专栏:扯编程的淡扯编程的淡

相信你在使用Linux的过程中,一定会用到过诸如“?”、“*”、“%”、“|”等等的符号(一般都是在网上直接复制)

这些符号在Linux的命令中是一种具有特殊功能的符号,被称为通配符或管道符。

1 简介

1.1 通配符

通配符是一种特殊语句,用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。

常用的通配符:

代码语言:shell
复制
* :表示匹配一个或多个字符
? :表示匹配一个字符(不能是0个字符)
[] :类似于正则表达式(只能是匹配一个字符)
1.2 管道符

管道命令符的作用是把前一个命令原本要输出到屏幕的标注正常数据当做是后一个命令的标准输入。一条命令中可以有多个管道符,只要前面的命令有输出结果,管道符后面的命令即可再执行。

常用的管道符:

代码语言:shell
复制
| :是把前一个命令原本要输出到屏幕的标注正常数据当做是后一个命令的标准输入

2 通配符

为了实验方便,我们先新建几个文件

代码语言:shell
复制
[root@iZ1608aqb7ntn9Z Test0901]# touch file01 file02 file03 
[root@iZ1608aqb7ntn9Z Test0901]# ls
file01  file02  file03
2.1 * 的使用
代码语言:shell
复制
[root@iZ1608aqb7ntn9Z Test0901]# ls file*    #查看以file开头的文件
file01  file02  file03
[root@iZ1608aqb7ntn9Z Test0901]# ls
file01  file02  file03
[root@iZ1608aqb7ntn9Z Test0901]# rm -rf *    #删除当前目录下全部文件
[root@iZ1608aqb7ntn9Z Test0901]# ls
[root@iZ1608aqb7ntn9Z Test0901]# 
2.2 ?的使用
代码语言:shell
复制
[root@iZ1608aqb7ntn9Z Test0901]# touch file01 file02 file03 
[root@iZ1608aqb7ntn9Z Test0901]# ls
file01  file02  file03
[root@iZ1608aqb7ntn9Z Test0901]# ls file?1
file01
[root@iZ1608aqb7ntn9Z Test0901]# rm -rf file?2
[root@iZ1608aqb7ntn9Z Test0901]# ls
file01  file03
[root@iZ1608aqb7ntn9Z Test0901]# rm -rf file0?
[root@iZ1608aqb7ntn9Z Test0901]# ls
[root@iZ1608aqb7ntn9Z Test0901]# 
2.3 [] 的使用
代码语言:shell
复制
[root@iZ1608aqb7ntn9Z Test0901]# ls
file01  file02  file03
[root@iZ1608aqb7ntn9Z Test0901]# ls file0[1]
file01
[root@iZ1608aqb7ntn9Z Test0901]# ls file0[12]
file01  file02
[root@iZ1608aqb7ntn9Z Test0901]# ls file0[1-2]
file01  file02
[root@iZ1608aqb7ntn9Z Test0901]# ls file0[0-1]
file01

3 管道符

3.1 基本语法
代码语言:shell
复制
bash命令 | 管道命令
3.2 何为bash命令和管道命令?

首先解释下bash命令,就是Linux中的一切具有能够输入的命令,例如ps输出进程信息,ls输出文件列表等等

管道命令,就是能够接收标准输出,例如grep,less,head,tail等命令

3.3 管道符基本使用
3.3.1 grep

截取出ps -ef命令里带有docker字符的所有命令

代码语言:shell
复制
[root@iZ1608aqb7ntn9Z Test0901]# ps -ef|grep docker
root      369560       1  0 8月03 ?       00:05:24 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root      777276  710637  0 14:37 pts/0    00:00:00 grep --color=auto docker

截取带有java进程的命令也是如此:

代码语言:shell
复制
[root@iZ1608aqb7ntn9Z Test0901]# ps -ef|grep java
root       46858       1  0 5月02 ?       02:03:47 /usr/local/jdk1.8.0_141/bin/java -Djava.util.logging.config.file=/opt/20210406/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -D......
root      779698  710637  0 14:38 pts/0    00:00:00 grep --color=auto java
root     3369864       1  0 8月24 ?       00:07:09 java -jar stumg-0.0.1-SNAPSHOT.jar

使用ls命令也可以哦:

代码语言:shell
复制
[root@iZ1608aqb7ntn9Z Test0901]# ls
file01  file02  file03
[root@iZ1608aqb7ntn9Z Test0901]# ls |grep 02
file02
3.3.2 wc

查看前一条命令输入的个数:

代码语言:shell
复制
[root@iZ1608aqb7ntn9Z Test0901]# ls -a  | wc -l
5
[root@iZ1608aqb7ntn9Z Test0901]# ls   | wc -l
3

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 简介
    • 1.1 通配符
    • 1.2 管道符
  • 2 通配符
    • 2.1 * 的使用
    • 2.2 ?的使用
    • 2.3 [] 的使用
  • 3 管道符
    • 3.1 基本语法
    • 3.2 何为bash命令和管道命令?
    • 3.3 管道符基本使用
      • 3.3.1 grep
      • 3.3.2 wc
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档