运维基础-IO 管道
什么是文件描述符FD或者文件句柄?
通过构建一个带有编号标记的通道(文件描述符)的进程结构来管理打开的文件。今晨连接到文件,从而达到这些文件所代表的的数据内容或者设备。通过使用通道0、1、2(称为标准输入,标准输出,标准错误)的默认连接创建进程。进程使用3号及以上标号的通道连接其他文件。
掌握常见文件描述符的作用
表示stdin(标准输入),默认连接为键盘,仅读取 表示stdout(标准输出),默认连接为终端,仅写入 表示stderr(标准错误),默认连接为终端,仅写入 + 表示filename(其他文件),可以读取/写入
示例:
保存时间戳
[root@localhost ~]# date
2018年 08月 24日 星期五 :: CST
[root@localhost ~]# date > /tmp/saved-timestamp
[root@localhost ~]# cat /tmp/saved-timestamp
2018年 08月 24日 星期五 :: CST
[root@localhost ~]#
将一个文件的最后100行保存到另一个文件
[root@localhost ~]# tail -n /var/log/demsg > /tmp/last--boot-messages
[root@localhost ~]#
将四个文件合并为一个
[root@localhost ~]# cat file1 file2 file3 file4 > /tmp/all-four-in-one
[root@localhost ~]#
累出家目录中的隐藏文件名和常规文件名保存到文件中
[root@localhost ~]# ls -a > /tmp/my-file-names
[root@localhost ~]# cat /tmp/my-file-names
.
..
anaconda-ks.cfg
.bash_history
.bash_logout
.bash_profile
.bashrc
.cache
.config
.cshrc
.dbus
Desktop
.gitconfig
initial-setup-ks.cfg
.mozilla
.pki
.ssh
.tcshrc
.viminfo
.xauthKYrxVH
.Xauthority
[root@localhost ~]#
使用普通用户对系统目录进行访问会被拒绝,将错误从定向到文件
[root@localhost ~]# find /etc -name passwd > /tmp/errors
[root@localhost ~]#
将命令的输出和错误消息分别保存到单独的文件中
[root@localhost ~]# find /etc/-name passwd > /tmp/output > /tmp/errors
[root@localhost ~]#
忽略并丢弃错误消息
[root@localhost ~]# find /etc/ -name passwd > /tmp/output > /dev/null
[root@localhost ~]#
基于输出及输入重定向实现管理
head /tail/wc/cut/sort/uniq/diff/patch/tr/grep
进程管道PIping
示例:
将ls长葛市输出分页显示
[root@localhost ~]# ls -l /usr/bin/ | less 总用量
-rwxr-xr-x. root root 11月 [
-rwxr-xr-x. root root 8月 a2p
-rwxr-xr-x. root root 8月 abrt-action-analyze-backtrace
-rwxr-xr-x. root root 8月 abrt-action-analyze-c
-rwxr-xr-x. root root 8月 abrt-action-analyze-ccpp-local
-rwxr-xr-x. root root 8月 abrt-action-analyze-core
-rwxr-xr-x. root root 8月 abrt-action-analyze-oops
-rwxr-xr-x. root root 8月 abrt-action-analyze-python
计算ls输出的行数并且保存到文件
[root@localhost ~]# ls | wc -l > /tmp/how-many-files
[root@localhost ~]# cat /tmp/how-many-files [root@localhost ~]#
将ls输出的前10行保存到文件
[root@localhost ~]# ls -t | head -n > /tmp/ten-last-changed-files
[root@localhost ~]# cat /tmp/ten-last-changed-files
Desktop
initial-setup-ks.cfg
anaconda-ks.cfg
[root@localhost ~]#
只有三行。。。
在终端商显示ls列表,同时将文件列表存储到文件中
[root@localhost ~]# ls -l | tee /tmp/saved-output
总用量
-rw-------. root root 8月 : anaconda-ks.cfg
drwxr-xr-x. root root 8月 : Desktop
-rw-r--r--. root root 8月 : initial-setup-ks.cfg
[root@localhost ~]# cat /tmp/saved-output
总用量
-rw-------. root root 8月 : anaconda-ks.cfg
drwxr-xr-x. root root 8月 : Desktop
-rw-r--r--. root root 8月 : initial-setup-ks.cfg
[root@localhost ~]#
确定当前窗口的终端设备,将ls结果作为邮件发送,并在此窗口查看输出内容
[root@localhost ~]# ls -l | tee /dev/pts/ | mail -s subject seven_nighter@.com
总用量
-rw-------. root root 8月 : anaconda-ks.cfg
drwxr-xr-x. root root 8月 : Desktop
-rw-r--r--. root root 8月 : initial-setup-ks.cfg
您在 /var/spool/mail/root 中有邮件
[root@localhost ~]#
掌握参数传递机制Xargs
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具,它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并且将其转换成特定的命令的参数。xargs也可以将单行或者多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令时echo,空格是默认的定界符,这就意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代,xargs是构建单行命令的重要组件之一。
具体操作百度。。
wc - print newline, word,and bytes counts for each file
计算文件的行数,单词数,字节数
[root@localhost ~]# wc /etc/passwd
/etc/passwd
[root@localhost ~]#
[root@localhost ~]# wc -l /etc/passwd
/etc/passwd 行数
[root@localhost ~]#
[root@localhost ~]# wc -w /etc/passwd
/etc/passwd 单词数
[root@localhost ~]#
[root@localhost ~]# wc -c /etc/passwd
/etc/passwd 字节数
[root@localhost ~]#
按列提取文件
-d 指明列分隔符 默认tab
-f 选择输出的区域
-c 指定字符位置
[root@localhost ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
operator
[root@localhost ~]# cut -c1- /etc/passwd
roo
bin
dae
adm
lp:
syn
shu
sort - sort lines of text files
排序输出,默认按照首字符从头至尾的顺序排序
-r 逆序(倒叙)
-n 按数字排序
-t 指明分隔符 与 -k 连用
-k 按指定的域排序
[root@localhost ~]# sort -t: -k3 /etc/passwd | cut -d: -f3 | head -n [root@localhost ~]#
[root@localhost ~]# sort -t: -k3 -n /etc/passwd | cut -d: -f3 | head -n [root@localhost ~]#
[root@localhost ~]# sort -t: -k3 -n -r /etc/passwd | cut -d: -f3 | head -n [root@localhost ~]#
。。。。更加纤细的请自行百度。
运维基础-IO 管道的更多相关文章
- Linux系统运维基础测试题
1 Linux运维基础测试题(第一关) 通过这段时间学习Linux基础命令,为了检测自己对Linux基础命令掌握的情况,从网上整理13到测试题,并将其整理出来供大家参考学习. 1.1 习题 ...
- 第一阶段·Linux运维基础-第1章·Linux基础及入门介绍
01-课程介绍-学习流程 02-服务器硬件-详解 03-服务器核心硬件-服务器型号-电源-CPU 01-课程介绍-学习流程 1.1. 光看不练,等于白干: 1.2 不看光练,思想怠慢: 1.3 即看又 ...
- Linux运维基础采集项
1. Linux运维基础采集项 做运维,不怕出问题,怕的是出了问题,抓不到现场,两眼摸黑.所以,依靠强大的监控系统,收集尽可能多的指标,意义重大.但哪些指标才是有意义的呢,本着从实践中来的思想,各位工 ...
- Linux运维基础
一.服务器硬件 二.Linux的发展史 三.Linux的系统安装和配置 四.Xshell的安装和优化 五.远程连接排错 六.Linux命令初识 七.Linux系统初识与优化 八.Linux目录结构 九 ...
- linux运维基础知识
linux运维基础知识大全 一,序言 每一个微不足道的知识,也是未来的铺垫.每一份工作的薪资职位,也是曾经努力的结果. 二,服务器 1,运维人员工作职责: 1)保证数据不丢失:2)保证服务器24小时运 ...
- HBase运维基础--元数据逆向修复原理
背景 鉴于上次一篇文章——“云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据”的读者反馈,对HBase的逆向工程比较感兴趣,并咨询如何使用相应工具进行运维等等.总的来说,就是想更深层 ...
- linux运维基础__争取十月前研究的差不多
转来的一编,考虑在十月前研究的差不多 linux运维人员基础 1.很多地方经常会用到的rsync工具 实施几台服务器的同步效果 我们公司就是使用这个工具完成服务器的游戏的服务端和客户端同步,有几个文章 ...
- 网络配置——Linux运维基础
今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自 ...
- [转帖] Linux运维基础知识学习内容
原作者地址:https://www.cnblogs.com/chenshoubiao/p/4793487.html 最近在学习 linux 对简单的命令有所掌握 但是 复杂的脚本 shell pyt ...
随机推荐
- 【bzoj2339】[HNOI2011]卡农 dp+容斥原理
题目描述 题解 dp+容斥原理 先考虑有序数列的个数,然后除以$m!$即为集合的个数. 设$f[i]$表示选出$i$个集合作为满足条件的有序数列的方案数. 直接求$f[i]$较为困难,考虑容斥,满足条 ...
- APUE 学习笔记(五) 进程环境
1.main函数 C程序总是从main函数开始执行,当内核执行C程序时,在调用main函数之前先调用exec函数从内核获取命令行参数和环境变量值 2.进程终止 正常终止: (1)在main函数内执 ...
- scanf()总结--从网上收来的,感觉很好,用来提醒自己,c语言真是博大精深!!【转】
转自:http://www.cnblogs.com/xiaocai905767378/archive/2011/06/01/2067526.html scanf杂谈 不得不说C语言真 ...
- 40深入理解C指针之---指针与单链表
一.指针与单链表 1.定义:通过使用指针将节点(结点)链接起来成为链表 2.节点(结点): 1).数据域:主要用来存储数据,可以基本数据类型,也可以是构造数据类型: 2).指针域:主要用来当前节点(结 ...
- sqlite 使用
'''SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说 没有独立的维护进程,所有的维护都来自于程序本身. 在python中,使用sqlite3创建数据库的连接,当我们指定的数据库文件不 ...
- 关于Red5整合springMVC提示scope not found 的错误
https://www.cnblogs.com/qgc88:
- AC日记——教辅的组成 洛谷 P1231
题目背景 滚粗了的HansBug在收拾旧语文书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本语文书里面发现了一本答案,然而他却明明记得这书应该还包含一份练习题.然而出现在他眼前的书 ...
- Codeforces Round #321 (Div. 2) Kefa and Dishes 状压+spfa
原题链接:http://codeforces.com/contest/580/problem/D 题意: 给你一些一个有向图,求不超过m步的情况下,能获得的最大权值和是多少,点不能重复走. 题解: 令 ...
- 使用JAXP对xml文档进行DOM解析基础
XML解析方式分为两种:dom和sax dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式. sax: ...
- Elasticsearch分词导致的查找错误
这周在做视频搜索的过程中遇到一个问题,就是用下面的查询表达式去Elasticsearch检索,检索不到想要的结果.查询语句如下: 而查询的字段的值为: "mergeVideoName&quo ...