Day 8_管道和重定向

管道和重定向及文件管理

文件的描述符

​ 0 - 标准输入,键盘的输入

​ 1 - 标准输出,程序正确的执行,输出在终端上的内容

​ 2 - 错误输出,程序正确的执行,输出在终端上的内容

管道 |

​ 前面的标准输出通过管道传递给后面的命令继续处理。

注意:

​ 1.管道前面是命令,要有标准输出 ls / cat /grep /tail/head

​ 2.管道后面一定要接处理文本内容的命令 sort /grep / head …

​ 3.管道后面的处理命令不要接路径文件

eg: 输出passwd的三到五行

​ head -5 /etc/passwd | cat -n | tail -3

重定向

输出重定向 - 如果目标文件不存在,将自动创建出来

“>” 标准输出重定向,覆盖模式 echo hello > /tmp /a.txt

“>>” 标准输出重定向,追加模式 >>

​ 重定向的目标文件,如果目标文件不存在,则会被创建

● 注:清空一个文件夹: # > /tmp/b.txt

​ 使用重定向创建一个文件 # head -2 /etc/ passwd > /c.txt

2> 错误输出重定向,覆盖模式

2>> 错误输出重定向, 追加模式

&> 所有输出重定向,


设备文件

​ /dev/null 垃圾桶,永远装不满

​ /dev/zero 永远取不完


​ eg :将不存在的用户natasha,不保存,不输出

​ id natasha &> /dev/null

1>&2 将标准输出转换为错误输出

2>&1 将错误输出转换为标准输出

[root@host1 ~]# ls /tmp/a.txt  /tmp/d.txt
ls: cannot access /tmp/d.txt: No such file or directory
/tmp/a.txt

[root@host1 ~]# ls /tmp/a.txt  /tmp/d.txt | cat -n
ls: cannot access /tmp/d.txt: No such file or directory
     1  /tmp/a.txt
     
[root@host1 ~]# ls /tmp/a.txt  /tmp/d.txt 2>&1 | cat -n
     1  ls: cannot access /tmp/d.txt: No such file or directory
     2  /tmp/a.txt

输入重定向(了解)

<

<< 定义输入结束的标识符(eof常用 , 其他亦可)

[root@localhost ~]# cat > /a/a.txt <<-eof

> hello
> world
> eof
> [root@localhost ~]# cat /a/a.txt
> hello
> world

文件管理2

Linux文件的时间

stat 查看文件时间命令

Access(访问):文件当天第一次访问更新 atime

Modify(修改):文件的内容发生改变 mtime

Change(更改):文件的属性发生改变(大小,属主,属组,权限…) ctime

grep – 通过关键词过滤行

grep [选项] “关键词” 文件

选项:

​ -v 反选

​ -i 忽略大小写

​ -n 输出的同时打印行号

​ -c 只打印匹配的行数

关键词

​ ^root — root开头的行

​ root$ — 以root结尾的行

​ ^$ —空行

eg :打印不以 # 开头和 非空行 --用管道

​ grep -v “^#” /etc/rc.local | grep -v “^$”

● wc -l 统计行数

ll /tmp | grep “^d” | wc -l 查看/tmp 目录文件个数

ls /tmp | wc -l 查看有多少个普通文件和目录文件

● sort 排序

​ 默认情况下,按字符的升序排列

sort -n 文件 按数字的大小排列

     	-r					降序排列						

​ -t 定义列的分隔符

​ -k 指定按照第几列排列

eg : sort -t: -k3 -n -r passwd // passwd中第三列UID,

​ 以数值大小降序排列

[root@localhost ~]# sort -t:  -k3   -n   -r   /etc/passwd

     显示的太多,不展示

[root@localhost ~]# tail -5 /etc/passwd | sort -t: -k3 -n -r
bear1:x:1003:1003::/home/bear1:/bin/bash
tom:x:1002:1002::/home/tom:/bin/bash
hr:x:1001:1001::/home/hr:/bin/bash
yue:x:1000:1000:yue:/home/yue:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值