设为首页 收藏本站
查看: 341|回复: 0

[经验分享] rhel7重定向和文件查找

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-15 08:22:28 | 显示全部楼层 |阅读模式
本节所讲内容:

      重定向的作用
      文件描述符0、1、2
      实现输入输出重定向 >、 >>
      tee 命令介绍
      管道|
      which      查看可执行文件的位置
whereis    查看可执行文件的位置 及相关文件
locate       配合数据库查看文件位置
find          实际搜寻硬盘查询文件名称
      grep      过滤


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

linux下一切皆文件。
STDIN  标准输入  如:键盘文件   文件描述符为:0
STDOUT 标准输出 屏幕终端  文件描述符为:1
STDERR 错误输出 屏幕终端  文件描述符为:2

[iyunv@localhost ~]#echo 123456 | passwd --stdin rm > /dev/null
/dev/null 代表空设备文件,就是Linux中的黑洞。放多少东西都填不满。

输出重定向
>   #输出重定向到哪里
1>   表示stdout标准输出,系统默认值是1,所以">  /dev/null"等同于"1>  /dev/null"
[iyunv@localhost ~]# ls/home/  1>  a.txt
[iyunv@localhost ~]# cata.txt
rm

2>  #表示标准错误输出
[iyunv@localhost ~]# ls/homee  2>  b.txt
[iyunv@localhost ~]# catb.txt
ls: cannot access/homee: No such file or directory

&  & 表示等同于的意思
[iyunv@localhost ~]# ls/home/  /homee  > d.txt 2>&1
[iyunv@localhost ~]# catd.txt
ls: cannot access/homee: No such file or directory
/home/:
rm
[iyunv@localhost ~]# ls/home/  /homee  2> d.txt >&2

&>混合输出
[iyunv@localhost ~]# ls/home/  /homee  &> a.txt
[iyunv@localhost ~]# cata.txt
ls: cannot access/homee: No such file or directory
/home/:
rm

输出重定向,追加和覆盖
> 和>> 的区别
> 每次都产生新文件。

>> 是追加,不产生新的文件。
[iyunv@localhost ~]#echo yangguangqiming > a.txt
[iyunv@localhost ~]# cata.txt
yangguangqiming

[iyunv@localhost ~]#echo yangguangqiming >>  a.txt
[iyunv@localhost ~]# cata.txt
yangguangqiming
yangguangqiming


输入重定向
<
实例1:wc查看文件的字节数、字数、行数
[iyunv@localhost ~]# wc/etc/passwd
  39             77                               2002                      /etc/passwd
行    字数(以空格为分隔符) 大小(字节为单位)

[iyunv@localhost ~]# wc< /etc/passwd
  39   772002

[iyunv@localhost ~]# cat> a.txt <<EOF
>**********************************
> ****  welcome to hero aliance ****
>**********************************
> EOF
[iyunv@localhost ~]# cata.txt
**********************************
****  welcome to hero aliance ****
**********************************

管道
前一个程序的标准输出,交给后一个程序做标准输入。
[iyunv@localhost ~]# ps-aux | grep vim

tee命令:
功能说明:读取标准输出的数据,并将其内容输入成文件。
[iyunv@localhost ~]# ps-aux | grep vim  | tee a.txt
root       3597 0.0  0.1 151456  5232 pts/1   S+   21:20   0:00 vim a.txt
root       3723 0.0  0.0 112640   956 pts/0   S+   21:29   0:00 grep --color=auto vim
[iyunv@localhost ~]# cata.txt
root       3597 0.0  0.1 151456  5232 pts/1   S+   21:20   0:00 vim a.txt
root       3723 0.0  0.0 112640   956 pts/0   S+   21:29   0:00 grep --color=auto vim

文件查找方法
which      查看可执行文件的位置
grep      过滤
whereis    查看可执行文件的位置 及相关文件
locate       配合数据库缓存,快速查看文件位置

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

查找文件:
#which CHMMAND
[iyunv@localhost ~]#which shutdown
/usr/sbin/shutdown
[iyunv@localhost ~]# rpm-qf /usr/sbin/shutdown
systemd-208-20.el7.x86_64
[iyunv@localhost ~]# rpm-qf `which shutdown`
systemd-208-20.el7.x86_64
[iyunv@localhost ~]# rpm-qf $(which shutdown)
systemd-208-20.el7.x86_64

#whereis CHMMAND
[iyunv@localhost ~]#whereis shutdown
shutdown:/usr/sbin/shutdown /usr/share/man/man2/shutdown.2.gz/usr/share/man/man3p/shutdown.3p.gz /usr/share/man/man8/shutdown.8.gz


locate      配合数据库缓存,快速查看文件位置
[iyunv@localhost ~]# locate hucheng

[iyunv@localhost ~]#updatedb
[iyunv@localhost ~]#locate hucheng
/root/hucheng

grep      过滤
[iyunv@localhost ~]# grep  bash  passwd

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

-v  反转
-i  忽略大小写
^#   以#开头
#$   以#结尾
^$   空行

例:-v取反,查找出文件中不带nologin的行
[iyunv@localhost ~]#grep  -v "nologin"   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  忽略大小写进行查找
[iyunv@localhost ~]#grep -i "rm"   passwd
rm:x:1000:1000:rm:/home/rm:/bin/bash
RM********************************************

例:^ 过滤文件中的所有以#号开头的行
[iyunv@localhost ~]#grep "^#"  passwd
#ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
#usbmuxd:x:113:113:usbmuxduser:/:/sbin/nologin
#ntp:x:38:38::/etc/ntp:/sbin/nologin

例:$ 过滤文件中的所有以%结尾的行
[iyunv@localhost ~]#grep "%$"  passwd
nobody:x:99:99:Nobody:/:/sbin/nologin%
abrt:x:173:173::/etc/abrt:/sbin/nologin%
radvd:x:75:75:radvduser:/:/sbin/nologin%

例:^$ 过滤文件中的空行
[iyunv@localhost ~]#grep "^$"  passwd  -n
16:
22:
27:

注:-n 对过滤的内容加上行号

扩展:过滤文件中没有空行和注释行的真实有效的内容
[iyunv@localhost ~]#grep  -v "^$"  /etc/ssh/sshd_config | grep  -v "^#"


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-151258-1-1.html 上篇帖子: 文件查找find命令的使用 下篇帖子: rhel7文件的归档和压缩 定向
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表