RHEL7重定向和文件查找

本节所讲内容:

重定向的作用

文件描述符 0、1、2

实现输入输出重定向 >、 >>

tee 命令介绍

管道|

which       查看可执行文件的位置 
whereis    查看
可执行文件的位置 及相关文件
locate       配合数据库查看文件位置 
find         实际搜寻硬盘查询文件名称 

grep 过滤

 

 

文件描述符:内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。

 

linux下一切皆文件。

STDIN 标准输入 如:键盘文件 文件描述符为:0

STDOUT 标准输出 屏幕终端 文件描述符为:1

STDERR 错误输出 屏幕终端 文件描述符为:2

 

[root@xuegod61 ~]# echo 123456 | passwd --stdin rm &> /dev/null

/dev/null 代表空设备文件,就是Linux中的黑洞。放多少东西都填不满。

 

输出重定向

> #输出重定向到哪里

1> #输出重定向到哪里 ,所以"> /dev/null"等同于"1> /dev/null"

[root@xuegod61 ~]# ls /home/ 1> a.txt

[root@xuegod61 ~]# cat a.txt

rm

 

2> #表示标准错误输出

[root@xuegod61 ~]# ls /homee 2> a.txt

[root@xuegod61 ~]# cat a.txt

ls: cannot access /homee: No such file or directory

 

& & 表示等同于的意思

[root@xuegod61 ~]# ls /home/ /homee 1> a.txt 2>&1

 

&> 混合输出

[root@xuegod61 ~]# ls /home/ /homee &> a.txt

 

输出重定向 ,追加和覆盖

> 和>> 的区别
> 每次都产生新文件。

>> 是追加,不产生新的文件。

[root@xuegod61 ~]# echo xuegod > a.txt

[root@xuegod61 ~]# cat a.txt

xuegod

[root@xuegod61 ~]# echo xuegod >> a.txt

[root@xuegod61 ~]# cat a.txt

xuegod

xuegod

 

输入重定向

<

实例1:wc查看文件的字节数、字数、行数

[root@xuegod61 ~]# wc /etc/passwd

  43 87                                           2261/etc/passwd

        字数空格为分隔符)               大小字节为单位)

[root@xuegod61 ~]# wc < /etc/passwd

  43 87 2261

 

[root@xuegod61 ~]# cat > a.txt <<EOF

> *********************************

> *** Welcome to Heros Aliance ****

> *********************************

> EOF

 

[root@xuegod61 ~]# cat a.txt

*********************************

*** Welcome to Heros Aliance ****

*********************************

 

管道 |
前一个程序的标准输出,交给后一个程序做标准输入。

[root@xuegod61 ~]# ps -aux | grep vim

 

tee命令:

功能说明:读取标准输出的数据,并将其内容输入成文件。

[root@xuegod61 ~]# ps -aux | grep vim | tee b.txt

root 3256 0.0 0.0 112644 956 pts/1 S+ 08:15 0:00 grep --color=auto vim

[root@xuegod61 ~]# cat b.txt

root 3256 0.0 0.0 112644 956 pts/1 S+ 08:15 0:00 grep --color=auto vim

 

文件查找方法

which       查看可执行文件的位置 

whereis    查看可执行文件的位置 及相关文件
locate       配合数据库
缓存,快速查看文件位置
 

grep 过滤
find          实际搜寻硬盘查询文件名称
 

[root@xuegod61 ~]# rpm -qf `which useradd`

shadow-utils-4.1.5.1-18.el7.x86_64

 

[root@xuegod61 ~]# whereis useradd

useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz

 

locate 配合数据库缓存,快速查看文件位置 

[root@xuegod61 ~]# touch abc.txt

[root@xuegod61 ~]# locate abc.txt                        #查找不到文件

[root@xuegod61 ~]# updatedb                            #更新数据库

[root@xuegod61 ~]# locate abc.txt

/root/abc.txt

 

grep 过滤
[root@xuegod61 ~]# grep bash /etc/passwd

root:x:0:0:root:/root:/bin/bash

rm:x:1000:1000:rm:/home/rm:/bin/bash

 

-v 反转

-i 忽略大小写

^#       以#开头

#$       以#结尾

^$       空行

 

:-v 取反,查找出文件中不带nologin

[root@xuegod61 ~]# grep -v "nologin" /etc/passwd

root:x:0:0:root:/root:/bin/bash

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

rm:x:1000:1000:rm:/home/rm:/bin/bash

 

:-I 忽略大小写进行查找

[root@xuegod61 ~]# grep -i RM /etc/passwd

rm:x:1000:1000:rm:/home/rm:/bin/bash

RM:x:1001:1001::/home/RM:/bin/bash

 

例:^ 过滤文件中的所有以#号开头的行

[root@xuegod61 ~]# grep -v "^#" /etc/selinux/config

 

例:$ 过滤文件中的所有以shutdown结尾的行

[root@xuegod61 ~]# grep "shutdown$" /etc/passwd

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

 

例:^$ 过滤文件中的空行

[root@xuegod61 ~]# grep -v "^$" /etc/selinux/config

 

:过滤文件中的空行和以#号开头行,显示文件的真实有效信息

[root@xuegod61 ~]# grep -v "^$" /etc/selinux/config | grep -v "^#"

SELINUX=disabled

SELINUXTYPE=targeted

 

-n 过滤的内容加上行号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值