目录

一、准确理解输入输出的定义

1、字符设备

2、stdin

3、stdout

4、stderr

二、如何管理系统输出

1、输出重定向

2、追加

3、管道 “|”

 三、如何管理输入

四、命令行获得帮助


一、准确理解输入输出的定义

1、字符设备

字符设备就是显示字符到屏幕上的设备文件被保存在 /dev/pts/ 中

linux如何打印JAVAHOME_linux

2、stdin

标准输入 编号为0 键盘 鼠标 打字机

3、stdout

标准正确输出 标号为1

4、stderr

标准错误输出 标号为2

我们打开shell 会在系统中产生一个进程,从而可以通过ID找到所对应的进程文件

linux如何打印JAVAHOME_linux如何打印JAVAHOME_02

linux如何打印JAVAHOME_linux_03

而我们在shell中所输入及输出的字符会对应的保存到文件中去

linux如何打印JAVAHOME_重定向_04

二、如何管理系统输出

1、输出重定向

>

2>

&>

find /etc -name passwd > westos.out ##重定向正确输出

find /etc -name passwd 2> westos.out ##重定向错误输出

find /etc -name passwd &> westos.out ##重定向所有输出

注意:重定向管理输出后会覆盖原文件内容

linux如何打印JAVAHOME_linux如何打印JAVAHOME_05

 首先需要理解为什么被保存在 /proc/58242/fd/1和/proc/58242/fd/2 会显示在shell桌面上,其实可

以看到 /proc/58242/fd/1 和 /proc/58242/fd/2 是/dev/pts/0 的软目录,因此都会显示在shell桌面上

 可将输出重定向,如将错误输出定向到westos.out中

linux如何打印JAVAHOME_linux_06

2、追加

>>

2>>

&>>

find /etc -name passwd >> westos.out ##追加正确输出

find /etc -name passwd 2>> westos.out ##追加错误输出

find /etc -name passwd &>> westos.out ##追加所有输出

注意:追加和重定向功能类似,但是不会覆盖原文件内容

追加不会覆盖掉原件的内容,在以上重定向的基础上做追加可以得到

linux如何打印JAVAHOME_linux_07

3、管道 “|”

把前一条命令的输出变成输入传递到下一条命令进行操作

注意: *管道只处理正确输出

linux如何打印JAVAHOME_linux_08

如想把错误的输出和正确的输出一起统计,则可以通过 *2>&1把编号为2的输入转换到编号为1的输出中

linux如何打印JAVAHOME_服务器_09

*tee 复制输出到指定位置

*管道在一条命令中可以使用多次 

linux如何打印JAVAHOME_服务器_10

 三、如何管理输入

外界传递到程序中的信息

1.< #输入重定向 tr 'a-z' 'A-Z' < test ##把test文件中的内容定向到tr程序中

linux如何打印JAVAHOME_运维_11

 

linux如何打印JAVAHOME_重定向_12

2.<< 多行录入

tr 'a-z' 'A-Z' <<EOF(字符任意)

test                            ##此处的test不能表示为文件名称只表示test字符

test1

EOF (当首字母再次出现表示录入结束)

linux如何打印JAVAHOME_linux_13

linux如何打印JAVAHOME_重定向_14

 命令 “sh”可直接执行

四、命令行获得帮助

whatis rm ##查看命令的基本用途

##查看过程中出现

#rm: nothing appropriate.

#1.表示要查看内容没有帮助

#2.系统帮助数据未更新用mandb命令更新

"注意:当执行whatis命令出现 nothing appropriate 时大多数情况是因为" "系统的帮助数据库未更新,如何解决此问题,需要在root用户下执行mandb" 

linux如何打印JAVAHOME_运维_15

rm --help ##查看命令的基本用法

[] ##内容可加可不加

... ##内容个数任意

<> ##必须在命令执行时加入的元素 

linux如何打印JAVAHOME_linux如何打印JAVAHOME_16

man rm               ##命令用法详解 man是manual的缩写

man -k passwd      ##passwd关键字有多少级别的man

##man的级别

#1 命令

#2 系统调用

#3 函数库调用

#4 特殊文件(设备文件等)

#5 文件

#6 游戏

#7 特殊的包

#8 系统管理命令

#9 内核信息规则

man rm ##进入到rm命令的帮助 

q ##退出

/关键字  ##搜索关键字,n 向下匹配, N 向上匹配

G ##快速移动到man的最后

g ##表示快速移动到man的最前