分享好友 系统运维首页 频道列表

shell数据流重定向和管道命令

Linux系统  2016-11-22 18:210

标准输入输出和错误

标准输入(stdin) 是指令数据的输入,代码为0,使用<或者<<,默认是键盘

标准输出(stdout)是指令执行成功返回的结果,代码为1,使用>或者>>,默认由屏幕显示

标准错误输出(stderr)是指令执行失败返回的错误信息,代码为2,使用2>或者2>>,默认是屏幕

shell数据流重定向和管道命令

< 指定输入的数据媒介来源

1> 将正确的内容 覆盖输出到指定的媒介

1>> 将正确的内容 追加到指定的媒介

2> 将错误信息覆盖输出到指定媒介

2>> 将错误信息追加输出到指定媒介

shell数据流重定向和管道命令

shell数据流重定向和管道命令

默认只能保存正确的

shell数据流重定向和管道命令

同时分类导出

[admin@localhost110 ~]$ rm -rf success fail result

[admin@localhost110 ~]$ find /root a.txt 1>success 2>fail

[admin@localhost110 ~]$ cat success

/root

a.txt

[admin@localhost110 ~]$ cat fail

find: “/root”: 权限不够

正确错误的均导入文件

[admin@localhost110 ~]$ find /root a.txt >result 2>&1

[admin@localhost110 ~]$ cat result

/root

find: “/root”: 权限不够

a.txt

[admin@localhost110 ~]$ find /root a.txt >result1 2>&1

[admin@localhost110 ~]$ find /root a.txt >result

find: “/root”: 权限不够

[admin@localhost110 ~]$ find /root a.txt &>result2

[admin@localhost110 ~]$

&表示[012]

grep [a-z] -n <a.txt

替换

小写字母替换成大写字母

tr [a-z] [A-Z]<a.txt >a1.txt

管道命令使用

命令通过管道符号|连接

能够接收标准输入(stdin),如tail/more/grep等

能够接收来自于前一个指令的数据成为stdin进行处理 只能处理正确的输出,不能处理错误的输出

ls -8|grep ls

处理不了

grep [-cinv] 'key' filename 支持正则

-c ,计算字符出现的次数

-i,忽略大小写进行查找

-n,输出行号

-v,显示没有该字符的行

[root@localhost110 ~]# cat log -n

1 php

2 ajax

3 java

4 python

5 nginx mysql

6 GO

7 PHP5

8

[root@localhost110 ~]# grep 'php' log

php

[root@localhost110 ~]# grep -n 'php' log

1:php

[root@localhost110 ~]# grep -ni 'php' log

1:php

7:PHP5

[root@localhost110 ~]# grep -ci 'php' log

2

[root@localhost110 ~]# grep -inv 'php' log

2:ajax

3:java

4:python

5:nginx mysql

6:GO

8:

[root@localhost110 ~]# grep -n [a-z] log

1:php

2:ajax

3:java

4:python

5:nginx mysql

[root@localhost110 ~]# grep -nc [a-z] log

5

grep -n --color [a-z] log

shell数据流重定向和管道命令

统计当前登录用户

[root@localhost110 ~]# w

01:53:08 up 18:15, 1 user, load average: 0.00, 0.00, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 192.168.1.101 01:19 0.00s 0.24s 0.13s w

[root@localhost110 ~]# w|grep -n root

3:root pts/0 192.168.1.101 01:19 0.00s 0.11s 0.00s w

[root@localhost110 ~]# w|grep -nc root

1

不是root的

[root@localhost110 ~]# w|grep -v root

01:54:20 up 18:16, 1 user, load average: 0.00, 0.00, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

sort指令

sort [-fbknrtu] filename

-f 忽略大小写

-b 忽略最前面的空格

-M 以月份英文字母排序

-n 使用数字排序

-r 逆向排序

-t 分隔符标识 默认是tab

-k 以第几列来排序

[root@localhost110 ~]# ls

ab anaconda-ks.cfg a.php b.php composer.phar install.log install.log.syslog log mysql_listen.sh 公共的 模板 视频 图片 文档 下载 音乐 桌面

[root@localhost110 ~]# ls|sort

ab

anaconda-ks.cfg

a.php

b.php

composer.phar

install.log

install.log.syslog

log

mysql_listen.sh

[root@localhost110 ~]# ls|sort -r

mysql_listen.sh

log

install.log.syslog

install.log

composer.phar

b.php

a.php

anaconda-ks.cfg

ab

[root@localhost110 ~]# ls|sort

ab

anaconda-ks.cfg

a.php

A.php

b.php

B.php

composer.phar

D.php

install.log

install.log.syslog

log

mysql_listen.sh

默认不区分大小写

按照文件大小写来排序

[root@localhost110 ~]# ls -l|sort -t ' ' -k 5 -n

总用量 1740

-rw-r--r--. 1 root root 6 10月 16 02:17 1

-rw-r--r--. 1 root root 6 10月 16 02:17 B.php

-rw-r--r--. 1 root root 8 10月 16 01:59 a.php

-rw-r--r--. 1 root root 11 10月 16 02:06 A.php

-rw-r--r--. 1 root root 42 10月 16 01:42 log

-rw-r--r--. 1 root root 140 10月 16 02:02 ab

-rw-r--r--. 1 root root 143 10月 16 01:59 b.php

-rwxrwxrwx. 1 root root 272 1月 27 2016 mysql_listen.sh

-rw-r--r--. 1 root root 1112 10月 16 02:17 D.php

-rw-------. 1 root root 1416 1月 13 2016 anaconda-ks.cfg

drwxr-xr-x. 2 root root 4096 1月 13 2016 公共的

drwxr-xr-x. 2 root root 4096 1月 13 2016 模板

drwxr-xr-x. 2 root root 4096 1月 13 2016 视频

drwxr-xr-x. 2 root root 4096 1月 13 2016 图片

drwxr-xr-x. 2 root root 4096 1月 13 2016 文档

drwxr-xr-x. 2 root root 4096 1月 13 2016 下载

drwxr-xr-x. 2 root root 4096 1月 13 2016 音乐

drwxr-xr-x. 2 root root 4096 1月 13 2016 桌面

-rw-r--r--. 1 root root 10033 1月 13 2016 install.log.syslog

-rw-r--r--. 1 root root 46328 1月 13 2016 install.log

-rwxr-xr-x. 1 root root 1640731 6月 7 09:40 composer.phar

设置显示方式

export TIME_STYLE='+%Y-%m-%d %H:%M:%S'

[root@localhost110 ~]# ls -l|sort -k 6

总用量 1740

-rw-r--r--. 1 root root 10033 2016-01-13 17:42:57 install.log.syslog

-rw-r--r--. 1 root root 46328 2016-01-13 17:48:20 install.log

-rw-------. 1 root root 1416 2016-01-13 17:48:28 anaconda-ks.cfg

drwxr-xr-x. 2 root root 4096 2016-01-13 17:52:58 公共的

drwxr-xr-x. 2 root root 4096 2016-01-13 17:52:58 模板

drwxr-xr-x. 2 root root 4096 2016-01-13 17:52:58 视频

drwxr-xr-x. 2 root root 4096 2016-01-13 17:52:58 图片

drwxr-xr-x. 2 root root 4096 2016-01-13 17:52:58 文档

drwxr-xr-x. 2 root root 4096 2016-01-13 17:52:58 下载

drwxr-xr-x. 2 root root 4096 2016-01-13 17:52:58 音乐

drwxr-xr-x. 2 root root 4096 2016-01-13 17:52:58 桌面

-rwxrwxrwx. 1 root root 272 2016-01-27 05:54:08 mysql_listen.sh

-rwxr-xr-x. 1 root root 1640731 2016-06-07 09:40:58 composer.phar

-rw-r--r--. 1 root root 42 2016-10-16 01:42:05 log

-rw-r--r--. 1 root root 8 2016-10-16 01:59:03 a.php

-rw-r--r--. 1 root root 143 2016-10-16 01:59:45 b.php

-rw-r--r--. 1 root root 140 2016-10-16 02:02:19 ab

-rw-r--r--. 1 root root 11 2016-10-16 02:06:07 A.php

-rw-r--r--. 1 root root 6 2016-10-16 02:17:17 1

-rw-r--r--. 1 root root 6 2016-10-16 02:17:21 B.php

-rw-r--r--. 1 root root 1112 2016-10-16 02:17:30 D.php

wc指令

wc [-lwm] filename 统计功能

-l 统计行

-w 统计词

-m 统计字符

[root@localhost110 ~]# wc -l log

8 log

[root@localhost110 ~]# cat log|wc -l

8

[root@localhost110 ~]# cat log|wc -w

10

[root@localhost110 ~]# cat log -n

1 php

2 ajax

3 java

4 python

5 nginx mysql

6 GO p erlang

7 PHP5

8

[root@localhost110 ~]# cat log|wc -m

53

[root@localhost110 ~]# cat log1|wc -m

12

[root@localhost110 ~]# cat log1 -n

1 p h p

2 1 2 3

结尾算一个字符

还有 cut/join/paste等

本文永久更新链接地址 http://www.linuxidc.com/Linux/2016-11/137227.htm

查看更多关于【Linux系统】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
spark-shell报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop
环境:openSUSE42.2hadoop2.6.0-cdh5.10.0spark1.6.0-cdh5.10.0 按照网上的spark安装教程安装完之后,启动spark-shell,出现如下报错:报错信息:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStreamat org

0评论2023-02-10362

Linux Shell基础 多个命令中的分号(;)、与(&&) 、 或(||)
概述在 Bash 中,如果需要让多条命令按顺序执行,则有这样方法,如表 1 所示。多命令执行符格 式作 用;命令1 ; 命令2多条命令顺序执行,命令之间没有任何逻辑关系命令1命令2如果命令1正确执行($?=0),则命令2才会执行如果命令1执行不正确($?≠0),则命令2

0评论2023-02-09913

Linux 基础知识(一) shell的&&和|| 简单使用
  shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中。当 $? == 0 时,表示执行成功;当 $? == 1 时,表示执行失败。  有时候,下一条命令依赖前一条命令是否执行成功。如:在成功地执行一条命令之后再执行另一条命令,或者

0评论2023-02-09827

linux shell读取配置文件
  配置文件CoverageInfoFTP_URL=ftp://svn-fb.sicent.com:21/jenkins/Jifei_Repo/OL-2/IDC_Platform/bar_seats_coverage/trunk/2016-04-06.16FTP_USER=jenkinsFTP_PASS=jenkinsSVN_URL=https://js-yuanshengtao.sicent.corp/svn/idc-server/trunkSVN_VER=16

0评论2023-02-09760

Awk 命令学习总结、AWk命令系列学习(linux shell)
前面的话 学习linux 的同人,都知道linux shell文本处理能力非常强大。有一组强大的文本处理工具:grep,sed,awk 。 其中grep 经常用作查找匹配文本、sed用作文本编辑替换、awk也是最强大的,经常用作报表生成! 它的处理效率非常高,一个几百M文件 ,也能在秒

0评论2023-02-09546

ctf比赛linux文件监控和恢复shell
之前参加ctf比赛时候临时写的,有很多不足,不过可以用,就贴出来分享给大家,希望对大家有帮助。脚本一:记录当前目录情况#!/bin/bashfunction getdir(){    for element in `ls $1`    do          dirfile=$1"/"$element        if [

0评论2023-02-09328

设置Linux shell超时自动退出
Linux shell,一般默认情况下是不会超时退出的,但是有的时候我们想要让它在多少分钟后没有操作自动退出终端(听起来有点像windows多少分钟后自动锁屏一样)。我们可以通过设置来实现这一功能。在/etc/profile.d下有个bash_autologout.sh,在这个文件里面添加

0评论2023-02-09822

VMware Workstation+Linux+Xshell+Xftp+MySQL+SQLyog 配置
这些天在搞这些个东西做项目,配置较繁,这里记下安装过程中的要点。1、VMware Workstation主要是 NAT 方式联网的问题,详述如下,来自网络。NAT 配置那里注意网关,虚拟机中网关的地址需一致。DHCP配置那里有网络段区间,若用静态分配地址,那么静态设置虚拟

0评论2023-02-09635

Linux shell脚本进阶使用
shell的循环控制语句-continue:提前结束某次循环,重新开始下一次-break:提前结束某层循环范例:#求100以内的奇数和#!/bin/bashsum=0for i in `seq 100`;doif [ $[i%2] -ne 0 ];thencontinue elselet sum+=$i fidoneecho $sum#实现100以内的奇数和#!/bin/ba

0评论2023-02-09755

org.apache.hadoop.util.Shell demo/例子
package cn.shell;import java.io.IOException;import org.apache.hadoop.util.Shell;public class ShellDemo {public static void main(String[] args) throws IOException {String pars="ipconfig";String out=Shell.ShellCommandExecutor.execCommand(pars

0评论2023-02-09975

ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接
问题描述:  ubuntu下仅仅获取网卡一的ip地址问题背景:  eth0,eth1,eth2……代表网卡一,网卡二,网卡三……  lo代表127.0.0.1,即localhost sudo ifconfig eth0 | grep 'inet addr' | cut -d : -f 2 | cut -d ' ' -f 1 问题描述:  已知字符串s

0评论2023-02-09839

更多推荐