重定向和文件查找

简介:

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

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

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

输出重定向

#输出重定向到哪里
1> #输出重定向到哪里 ,所以"> /dev/null"等同于"1> /dev/null"
[root@localhost ~]# ls /home/ 1> a.txt
[root@localhost ~]# cat a.txt
rm

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

& & 表示等同于的意思
[root@localhost ~]# ls /home/ /homee 1> a.txt 2>&1

&> 混合输出
[root@localhost ~]# ls /home/ /homee &> a.txt

输出重定向 ,追加和覆盖

和>> 的区别
每次都产生新文件。
> 是追加,不产生新的文件。
[root@localhost ~]# echo xuegod > a.txt
[root@localhost ~]# cat a.txt
xuegod
[root@localhost ~]# echo xuegod >> a.txt
[root@localhost ~]# cat a.txt
xuegod
xuegod

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

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


* Welcome to Heros Aliance **


EOF

[root@localhost ~]# cat a.txt


* Welcome to Heros Aliance **


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

tee命令:
功能说明:读取标准输出的数据,并将其内容输入成文件。
[root@localhost ~]# 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@localhost ~]# 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@localhost ~]# rpm -qf which useradd
shadow-utils-4.1.5.1-18.el7.x86_64

[root@localhost ~]# whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz

locate 配合数据库缓存,快速查看文件位置 
[root@localhost ~]# yum install mlocate -y
[root@localhost ~]# touch abc.txt
[root@localhost ~]# locate abc.txt #查找不到文件
[root@localhost ~]# updatedb #更新数据库
[root@localhost ~]# locate abc.txt
/root/abc.txt

grep 过滤
[root@localhost ~]# 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@localhost ~]# 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@localhost ~]# grep -i RM /etc/passwd
rm:x:1000:1000:rm:/home/rm:/bin/bash
RM:x:1001:1001::/home/RM:/bin/bash

例:^ 过滤文件中的所有以#号开头的行
[root@localhost ~]# grep -v "^#" /etc/selinux/config

例:$ 过滤文件中的所有以shutdown结尾的行
[root@localhost ~]# grep "shutdown$" /etc/passwd
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

例:^$ 过滤文件中的空行
[root@localhost ~]# grep -v "^$" /etc/selinux/config

例:过滤文件中的空行和以#号开头的行,显示文件的真实有效信息
[root@localhost ~]# grep -v "^$" /etc/selinux/config | grep -v "^#"
SELINUX=disabled
SELINUXTYPE=targeted

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









本文转自信自己belive51CTO博客,原文链接:http://blog.51cto.com/11638205/2048815 ,如需转载请自行联系原作者



相关文章
|
8月前
重定向命令
重定向命令
53 0
|
7月前
|
Windows
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
222 0
|
8月前
|
Linux C++
认识Linux指令之 “ 重定向” 符号
认识Linux指令之 “ 重定向” 符号
179 1
认识Linux指令之 “ 重定向” 符号
|
应用服务中间件
重定向(重要)!!
重定向(重要)!!
187 1
重定向(重要)!!
|
SQL 关系型数据库 MySQL
跟我一起学 Liunx 重定向和管道符
跟我一起学 Liunx 重定向和管道符
137 0
|
数据库 索引
文件查找
which 找可执行文件位置 locate 默认每天0点扫盘,将文件信息作为索引写入数据库。(updatedb可手动更新库) whereis 只能用于搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
703 0
|
Shell 数据库