linux系统管理-输入输出

重定向

将原本要输出到屏幕上的数据信息,重新定向到指定的文件中

运行程序,或者输入一个命令:默认打开4个文件描述符

标准输入与输出

名称

文件描述符

作用

标准输入(stdin)

0

通常键盘,也可以是其他文件或者命令的输出的内容可以作为标准输入

标准输出(stdout)

1

默认输出到屏幕

错误输出(stderr)

2

默认输出到屏幕

文件名称(filename)

3+

/dev/stderr(错误输出) -> /proc/self/fd/22 -> /dev/pts/0

/dev/stdin(标准输入) -> /proc/self/fd/00 -> /dev/pts/0

/dev/stdout(标准输出) -> /proc/self/fd/11 -> /dev/pts/0

输出重定向分类

重定向的特性:覆盖文件

1>:标准输出重定向,将命令执行的正确结果输出到指定的文件或者设备中

2>:错误输出重定向

追加重定向:不会覆盖文件

1>>:标准输出追加重定向,将命令执行的正确结果追加输出到文件末尾

2>>:错输出追加重定向,将命令执行的错误结果追加输出到文件末尾

<< :标准输入重定向,将键盘敲的内容,输入到命令或者文件中

输出重定向的使用

#将正确的内容追加到文件中,错误会输出到屏幕(不会覆盖源文件)

echo "This is network conf" >> abc

#将错误的内容输出到文件中,正确的会输出到屏幕(会覆盖源文件)

find /etc -name "*.conf" 2>b

find /etc -name "*.conf" 1>a 2>b

#合并输出,错误的正确的内容都会输出到一个文件(会覆盖源文件)

find /etc -name "*.conf" >c 2>&1

find /etc -name "*.conf" >c 2>c

find /etc -name "*.conf" &>c

#将错误输出重定向到 ‘黑洞’,正确内容输出到屏幕/dev/pts/x

ls /root/ /err 2>/dev/null

#将错误输出重定向到 ‘黑洞’,正确内容输出到1.txt文件中

ls /root/ /err >1.txt 2>/dev/null

输入的重定向使用

< :0<

<

案例1:

cat >> zls.txt <

zls

qiudao

eof

案例2:

[root@zls ~]# mail zls < /etc/passwd

案例3:

[root@oldboyedu ~]# grep 'root'

rppr

qwe

rootasdasdadzxczxc

rootasdasdadzxczxc

^C

案例4:

[root@oldboyedu ~]# dd if=/dev/zero of=/file1.txt bs=1M count=20

20+0 records in

20+0 records out

20971520 bytes (21 MB) copied, 0.0260574 s, 805 MB/s

[root@oldboyedu ~]# dd /file2.txt bs=1M count=20

20+0 records in

20+0 records out

20971520 bytes (21 MB) copied, 0.011896 s, 1.8 GB/s

案例5:

恢复mysql数据

[root@zls ~]# mysql -uroot -p123 < bbs.sql

案例6:利用重定向建立多行文件

[root@oldboyedu ~]# cat >file1

案例7:

#!/bin/sh

menu(){

cat <

+------------+

| 1 | apple |

+---+--------+

| 2 | pear |

+---+--------+

| 3 | banana |

+---+--------+

| 4 | cherry |

+---+--------+

EOF

read -p "please input a num: " fruit

}

usage(){

echo "USAGE:请输入水果编号"

exit 1

}

color(){

case "$fruit" in

1)

echo -e "\E[1;31mapple \E[0m"

;;

2)

echo -e "\E[1;20mpear \E[0m"

;;

3)

echo -e "\E[1;33mbanana \E[0m"

;;

4)

echo -e "\E[1;35mcherry \E[0m"

;;

*)

usage

esac

}

menu

color

案例8:多条命令重定向

[root@oldboyedu ~]# (ls;date) > a.txt

案例9:后台进程重定向

(while :; do date; sleep 2; done) &>/dev/null &

管道技术 |

连接多个命令,将管道符左侧的标准输出,交给管道符右侧的命令标准输入

案例1:

将/etc/passwd 中的UID取出并按大小排序

[root@oldboyedu ~]# awk -F : '{print $3}' /etc/passwd|sort -n

案例2:

统计当前/etc/passwd 中用户使用的 shell 类型

[root@oldboyedu ~]# awk -F : '{print $NF}' /etc/passwd|sort |uniq|wc -l

5

案例4:统计网站访问量top20

[root@driver-zeng nginx]# awk '{print $1}' driverzeng.com_access.log|sort |uniq -c|sort -nr|head -20

案例5:取出cpu已使用的百分比,只显示数字

[root@oldboyedu ~]# df -h |awk -F '[ %]+' 'NR==2 {print $5}'

4

tee:相当于管道符

[root@zls ~]# date > date.txt

[root@zls ~]# date |tee date.txt

参数传递xargs

将参数列表转换成小块分段传递给其他命令

读入stdin的数据转换为参数添加至命令后面

让一些不支持管道的命令可以使用管道。

注意:

1.在管道后面的命令,都不应该在写文件名

2.在管道中只有标准输出才可以传递下一个命令, 标准错误输出会直接输出终端显示, 建议在使用管道前将标准错误输出重定向。

例如: find /etc -name "*.conf" 2>/dev/null | grep rc

3.有些命令不支持管道技术, 但是可以通过xargs来实现管道传递。

例如: which cat|xargs ls-l

例如: ls |xargs rm -rvf

例如: ls |xargs cp -rvft /tmp/ -> ls | xargs -I {} cp -rvf {} /tmp

例如: ls |xargs mv -t /tmp/ -> ls | xargs -I {} mv {} /tmp

Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载五)Linux系统的对话方式

本篇是Linux小白最佳实践第5篇,目的就是让白菜们了解Linux进程之间是如何对话的.之前连载的几篇,在微信上引起了很多的反响,有人也反映图多文字少,感觉没有干货.本篇选了大部分是实战讲解的&quo ...

Linux系统管理10——进程和计划任务管理

Linux系统管理10——进程和计划任务管理 一.程序和进程的关系 1.程序 ·保存在硬盘.光盘等介质中的可执行代码和数据 ·静态保存的代码 2.进程 ·在CPU及内存中运行的程序代码 ·动态执行的代 ...

Linux基础学习(13)--Linux系统管理

第十三章——Linux系统管理 一.进程管理 1.进程查看: (1)进程简介:进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. (2)进程管理的 ...

Linux系统管理和维护常用命令

Linux系统管理和维护常用命令 ls 命令 功能说明 ls 命令显示指定工作目录下的内容,列出工作目录所包含的文件及子目录. 语法结构: ls [选项] [路径或文件] ls 选项及说明 -a 显示 ...

Linux系统管理远程登录工具PUTTY

PuTTY 简介        PuTTY是一个Telnet.SSH.rlogin.纯TCP以及串行接口连线软件.较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植 ...

【转载】茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP

使用动态主机配置协议DHCP(Dynamic Host Configuration Protocol)则可以避免网络参数变化后一些繁琐的配置,客户端可以从DHCP服务端检索相关信息并完成相关网络配置, ...

【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件

除了使用Linux的包管理机制进行软件的安装.更新和卸载,从源代码进行软件的安装也是非常常见的,开源软件提供了源代码包,开发者可以方便的通过源代码进行安装.从源码安装软件一般经过软件配置.编译软件.执 ...

【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户

Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...

【转载】干货来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载七)LAMP集成安装

学Linux做程序开发也好,做系统管理也好,做网络管理员也好,做系统运维也好,不会LAMP和LNMP,那就等于连皮毛都不会!本篇是文字版的LAMP集成安装,下次连载我们要介绍LNMP的文字版安装.有喜 ...

随机推荐

01- Shell脚本学习--入门

简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说有多少 ...

Microsoft&period;Bcl&period;Build 1&period;0&period;10 稳定版发布

Microsoft.Bcl.Build 1.0.10 稳定版发布 解决了之前 1.0.8 在未下载相应的Nuget Package 的情况下项目无法加载的情况 但由于 Microsoft.Net.Ht ...

MySQL多实例

http://www.kancloud.cn/digest/mysqlsummary/132842http://crazy123.blog.51cto.com/1029610/1611887/ htt ...

PagedList 分页

@using PagedList.Mvc;@model PagedList.IPagedList @{    ...

java海量大文件数据处理方式

1. 给定a.b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a.b文件共同的url? 方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4 ...

Oracle-04:DDL语言数据表的操作

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- DDL操作: --创建学生表 create table student( sno number(4) not  ...

解决win系统无法安装&period;NET Framework 4&period;0 4&period;6 原因是HRESULT0xc8000222

1.开始----- 运行------- cmd ----- 键入net stop WuAuServ回车(停止windows update服务) 2.开始----- 运行----键入%windir%回车 ...

第一册:lesson ninety-five。

原文: tickets,please. Two return tickets to London please. What time will the next train leave? At nin ...

6个P2P流媒体开源项目介绍

P2P流媒体开源项目介绍  1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据 ...

【scrapy】相关

http://www.cnblogs.com/mophee/archive/2009/03/12/1409562.html css选择器中的空格 http://www.crummy.com/softw ...

linux写含输入输出的代码,linux系统管理-输入输出相关推荐

  1. linux写画小猪佩奇代码,代码绘制一直小猪佩奇

    原标题:代码绘制一直小猪佩奇 今天教大家用python的pillow包来绘制小猪佩奇,python的安装就不用多说了,直接上代码吧 0.首先当然是安装pillow包啦. 关于pillow库的安装有几种 ...

  2. linux下进程的创建代码,Linux下进程创建分析

    如何创建一个进程? 子进程拷贝父进程的代码和数据,进程拥有自己的独占资源(写时拷贝),父,子进程共享代码区,不共享数据区(私有化) 当使用pid_t fork(void)创建进程时,若创建成功,给父进 ...

  3. linux写磁带软件,如何在Linux下安装磁带机

    安装环境: 服务器:LC2. 软件:Red Hat 6.0 (kernel: 2.2.12). 磁带机:DAT8e. 具体步骤:首先将磁带机连接在服务器上,HP的服务器中SCSI卡的类型一般为Adap ...

  4. Linux启动芯片的初始代码,Linux系统初始化流程(简述)

    1,POST[power on self test]: 接通电源后,CPU通过出厂指定的存储地址读取代码[主板芯片上的ROM],然后测试内存,风扇,显示设备等是否正常,并通过BOIS的Boot Seq ...

  5. Linux进程里运行新代码,linux调度器源码分析 - 新进程加入(三)

    中专门描述了copy_process()这个创建函数,而里面有一个函数专门用于进程调度的初始化,就是sched_fork(),其代码如下 int sched_fork(unsigned long cl ...

  6. linux切换成超级用代码,Linux切换为超级用户的命令

    C#项目中文件的具体含义 1.Bin 目录 用来存放编译的结果,bin是二进制binary的英文缩写,因为最初C编译的程序文件都是二进制文件,它有Debug和Release两个版本,分别对应的文件夹为 ...

  7. linux写一个脚本杀进程,linux下如何自动检测并重新启动一个死掉的进程,然后再把它杀死:)(shell脚本实现)...

    . /etc/profile #如果要把这个shell脚本放到crontab中,这句不能少,用来初始化程序环境变量,这是root用户的环境变量文件 PNAME="程序名字"    ...

  8. 嵌入式linux写文件内存增加,嵌入式Linux对内存的直接读写

    本文转载于:http://blog.sina.com.cn/s/blog_838007b101013n0y.html memdev:直接读写内存. 可以在busybox的杂项中找到: CONFIG_U ...

  9. Linux进行syn攻击的代码,Linux遭受SYN洪水攻击设置

    SYN洪水攻击(SYN Flooding Attack)即是指利用了 TCP/IP 三次握手协议的不完善而 恶意发送大量仅仅包含 SYN 握手序列数据包的攻击方式.该种攻击方式可能将导致被攻击计算机为 ...

  10. 手把手教你如下在Linux下如何写一个C语言代码,编译并运行

    文章目录 手把手教你如下在Linux下如何写一个C语言代码,编译并运行 打开Ubuntu终端 创建 helloworld.c 编译C文件 手把手教你如下在Linux下如何写一个C语言代码,编译并运行 ...

最新文章

  1. kafka的topic和分区策略——log entry和消息id索引文件
  2. php根据字符串生成变量名,PHP 自定义字符串中的变量名解析
  3. FastDFS:Java客户都实现文件的上传、下载、修改、删除
  4. 【转】C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
  5. Android学习手记(2) Activity生命周期
  6. mfc文字闪烁如何解决_男同胞福音!如何解决尿尿时最尴尬的难题?建议偷偷收藏(文字版)...
  7. Linux环境下的JFreeChart中文乱码问题解决办法
  8. 3-4HDFS的特点
  9. C#中的复制在unity中使用
  10. java selenium_关于selenium的介绍
  11. 核能版“水变油”登上Nature!谷歌7000万押注,MIT参与,被评争风加水汽车
  12. java打包-exe文件-最终以setup形式发布的解决之道
  13. python能做的java能做吗_java – Jython不能做什么Python?
  14. oauth样例项目【01】之 使用auth-code进行认证授权
  15. 软件计算机考研考英语几,软件工程考研考哪几科
  16. 网狐大联盟服务器环境搭建完整教程
  17. ppt怎么加注解文字_ppt怎么添加备注文字?
  18. 智能健身动作识别:PP-TinyPose打造AI虚拟健身教练!
  19. Scratch(三):跳一跳
  20. mfc vs2010 C++ 连接mysql等数据库

热门文章

  1. Andriod Studio创建数据库并查看自己创建的数据库
  2. 论文笔记:UCTransNet: Rethinking the Skip Connections in U-Net from a Channel-wisePerspective with Transf
  3. 20220925 appreciate和grateful的区别
  4. linux虚拟机释放内存cache
  5. 【人工智能Prolog】mother、father和grandpa
  6. Android控件详解之网格控件
  7. win10点击关机后不能正常关机的处理
  8. paip 破解网站手机验证码
  9. 三维重建 几何方法 深度学习_基于深度学习的三维重建算法综述
  10. Winxp U盘无法复制磁盘写保护解决办法。