linux中管道命令符号 linux管道符怎么输入

linux系统符号说明

01 系统特殊符号

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都做网站、泰安网络推广、小程序设计、泰安网络营销、泰安企业策划、泰安品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供泰安建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

02 系统通配符号

03 系统正则符号

说明: 查询信息的时候,会带来便利

1) 基础符号系列

  $ 

  a 调取变量信息

  b 区分用户类型  $ 普通用户

  c 结合awk对文件进行取列  

xargs -n 2 test01.txt|awk '{print $2}'

!

a 强制的作用  wq!

b 可以实现取反

awk '!/oldgirl/' test02.txt (排除oldgirl)

find /oldboy_dir/ ! -type f (排除文件)

c !信息  可以快速调取执行历史命令(慎用)

cat ~/.bash_history  -- 记录历史命令信息, 但是不会实时记录

history              -- 显示所有输入过的历史命令

|

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

标准输入追加重定向符号

4) 逻辑符号系列

逻辑: 在完成一件事情的时候,有合理先后顺序

前一个命令操作执行成功了,再操作执行后面的命令

||  前一个命令操作执行失败了,再操作执行后面的命令

mkdir /old_dir echo "create dir sucess" || echo "create dir failed"

  create dir sucess

  mkdi /old_dir echo "create dir sucess" || echo "create dir failed"

  -bash: mkdi: command not found

  create dir failed

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

*  匹配所有信息

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

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

find /oldboy -type f -name "oldgirl*oldboy" 

                                      ---以oldgirl 开头的信息

以oldboy  结尾的信息都查询出来

{} 产生序列信息

连续序列:

echo {01..05}

    echo {a..z}

    echo {A..Z}

生成不连续序列

a 有规律的不连续序列

echo {01..05..2}

    01 03 05

    echo {a..z..2}

  b 没规律的不连续序列

echo {www,bbs,blog}

    www bbs blog

生成组合序列

    echo {1,2}{a,b}

    1a 1b 2a 2b

    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  

echo A{,b}

  A Ab

A=oldboy.txt

b=.bak

cp oldboy.txt{,.bak} == cp oldboy.txt oldboy.txt.bak

快速备份文件命令

cp oldboy.txt{,.bak}

快速还原数据方法

cp oldboy.txt{.bak,}

echo A{B,}

  AB A

oldboy.txt{.bak,} == cp oldboy.txt.bak oldboy.txt

基础正则符号:basic regular expression    (BRE)

扩展正则符号:extended regular expression (ERE)

基础正则符号:

a 尖角符号:^

  以什么开头的信息进行过滤出来

grep -v "^#" nginx.conf.default nginx.conf(对不需要关注的信息取反)

常见错误

find / -type f -name "^oldboy"  错误

find / -type f -name "oldboy*"  正确

b 美元符号:$

以什么结尾的信息进行过滤出来

以m结尾信息, 并且显示上1行 和 下2行的信息

  grep "m$" -A 2 -B 1 test.txt

  常见错误:

如果过滤不出来,确认每行结尾是否有空格信息

方法一:

cat -A test.txt

方法二

  vim 底行模式输入命令 --- :set list

c 尖角美元符号:^$

  取出文件中空行信息

  grep "^$" test.txt

  grep -v "^$" test.txt

d 点符号: .

表示匹配任意一个且只有一个字符

grep "." test.txt  -o(更直观的显示过程)

e 星号符号: *

匹配星号前面一个字符连续出现0次或多次

f 点和星号组合: .*

  匹配所有信息

说明: 正则符号在匹配数据信息的时候具有贪婪特性

避免贪婪特性的方法,是在指定一行信息中唯一节点信息

g 转译符号: \

1) 将一些有意义的符号进行转译, 变为一个普通符号

grep "\.$" ~/oldboy_test.txt

2) 将一些没有意义的符号进行转译,变为有意义符号

\n  换行符号 linux

3) 可以将扩展正则符号转换成普通正则让grep sed命令可以直接识别'

grep "o\?" test.txt

h 括号符号:[]

匹配括号中每一个字符,并且匹配的关系是或者的关系

需求: 找出文件中oldboy 和 oldbey两个单词信息

  grep "oldb[oe]y" test.txt

  企业应用: 找寻文件中字母 数字信息

  grep "[0-9a-zA-Z]" test.txt

i 尖号和中括号组合使用 : [^]

对中括号里面匹配的字符信息进行排除

grep  "[^0-9a-zA-Z]" test.txt  --- 将字母数字都排除,只留下符号信息

尖号和中括号组合使用 : ^[]

以中括号里面匹配的字符作为一行开头的字符

  grep "^[zx]" test.txt

正则符号注意事项

按照每行信息进行过滤处理

注意正则表达符号禁止中文

附上颜色信息进行正则过滤 --color=auto/--color

基础正则符号可以被三剑客命令直接识别 grep sed awk

扩展正则符号不可以被三剑客命令中老二和老三直接识别

sed命令想识别正则符号: sed -r

grep命令想识别正则符号: egrep / grep -E

a 加号符号:+

匹配加号前面一个字符连续出现1次或者多次

b 竖线符号:|

或者关系符号

egrep "oldboy|oldbey" test.txt

c 括号符号:()

将多个字符信息进行汇总为一个整体

egrep "(oldboy)" test.txt

进行后向引用前向的一个操作(sed)

echo "123456"|sed -r "s#(..)(..)(..)#\1\2\3#g"

修改配置文件内容

sed -rn "s#(^S.*UX=).*#\1enforcing#gp" /etc/selinux/config

SELINUX=enforcing

d 括号符号:{}

指定花扩号前一个字符连续匹配多少次

* 连续匹配 0 次 或 多次

+ 连续匹配 1 次 或 多次

1) {n,m}  n表示最少连续匹配多少次  m表示最多连续匹配多少次

2) {n}  n表示只连续匹配n次

3) {n,}  n表示至少连续匹配n次,至多没有限制

4) {,m}  m表示至多连续匹配n次,至少0次

e 问号符号:?

表示匹配问号前面一个字符出现0次或者1次

linux--10、管道命令符和命令行通配符

管道命令符 " | " 的作用是将前一个命令的标准输出当作后一个命令的标准输入,格式为"命令A|命令B"。

例如:

搜索rsyslogd进程: $ ps -ef | grep rsyslogd

用反野形式查看/etc 目录中有哪些文件: $ ls -l /etc/ | more

bash解释器支持多种文本通配符,包括:

我们之前在学文本查询搜索命令时就用到了通配符,例如,在 /etc 目录下搜索所有的以host开头的文件:

$ find /etc -name "host*"

另外,bash解释器还支持很多的特殊字符扩展:

例如:

先定义名称为PRICE的变量值为5

$ PRICE=5

输出“价格是5”:

输出“价格是$5”,但因为美元符号与代表变量取值的$符号冲突,所以需要用到转义字符:

使用单引号,变量将不再被取值:

执行 uname -a 后可以查看到本机内核的版本与架构信息(反引号里面的命令会被执行):

Linux中的管道如何理解

简单来说就是,一个命令的结果作为另外一个命令(结果)的输入,管道是linux提供的一种常见的进程通信工具,也是很多shell命令能够灵活组合产生强大用途的一个重要工具。

管道是Linux由Unix那里继承过来的进程间的通信机制,它是Unix早期的一个重要通信机制。其思想是,在内存中创建一个共享文件,从而使通信双方利用这个共享文件来传递信息。由于这种方式具有单向传递数据的特点,所以这个作为传递消息的共享文件就叫做“管道”。

在管道的具体实现中,根据通信所使用的的文件是否具有名称,有“匿名管道”和“命名管道”。

16. Linux 管道符( ‘|’ )

利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。 连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。

注意:

1、管道命令只处理前一个命令正确输出,不处理错误输出。

2、管道命令右边命令,必须能够接收标准输入流命令才行。

这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有licq字符的RPM包来。

这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。

区别是:

1、左边的命令应该有标准输出 | 右边的命令应该接受标准输入

左边的命令应该有标准输出 右边只能是文件

左边的命令应该需要标准输入 右边只能是文件

2、管道触发两个子进程执行"|"两边的程序;而重定向是在一个进程内执行

这些都是网上总结很多的,其实只要多加清楚用法,也一定有自己的一份不同描述。


当前题目:linux中管道命令符号 linux管道符怎么输入
本文来源:http://myzitong.com/article/dopdshj.html