标准文件描述符:

shell将java日志输入到指定文件_重定向

 1.STDIN(标准输入)


在使用输入重定向符号( < )时, Linux 会用重定向指定的文件来替换标准输入文件描述符。 它会读取文件并提取数据,就如同它是键盘上键入的。



2.STDOUT(标准输出)


标准输出就是终端显示器。 shell 的所有输出(包括shell 中运行的程序和脚本)会被定向到标准输出。



3.STDERR(标准错误)


默认情况下,错误消息也会输出到显示器输出中




重定向错误:

文件描述符的使用:文件描述符需要紧紧靠在重定向符之前

例如    1>     2>  ...   等

1.只重定向错误:

command  2>  file    将错误信息写入 file中

例如:由于p1 p2 p3 不在/home文件下,所以无法直接进行访问,需要使用绝对路径。在文件pp1中存放错误信息

shell将java日志输入到指定文件_服务器_02

2.重定向错误和数据

command   1 >  file   2> file1   结果保存到file中,错误信息保存到file1中

shell将java日志输入到指定文件_shell将java日志输入到指定文件_03

 &>  会把所有的输出(数据和错误)发送到同一个位置

shell将java日志输入到指定文件_shell将java日志输入到指定文件_04

在脚本中重定向输出


脚本中重定向输出有两种:


  • 临时重定向行输出
  • 永久重定向脚本中的所有命令

1.临时重定向

在重定向到文件描述符时,你必须在文件描述符数字之前加一个&


 command  >& 文件描述符



shell将java日志输入到指定文件_服务器_05


shell将java日志输入到指定文件_shell将java日志输入到指定文件_06

 2.永久重定向

使用 exec 命令告诉shell在脚本执行期间重定向某个特定文件描述符

 exec  文件描述符 > file

例子:

shell将java日志输入到指定文件_linux_07

 

shell将java日志输入到指定文件_运维_08

两种混合使用的例子:

shell将java日志输入到指定文件_重定向_09

shell将java日志输入到指定文件_重定向_10

脚本输入重定向


exec 命令允许你将 STDIN 重定向到 Linux 系统上的文件中:exec 0< file





shell将java日志输入到指定文件_服务器_11


重定向文件描述符

shell将java日志输入到指定文件_linux_12

shell将java日志输入到指定文件_运维_13

 

shell将java日志输入到指定文件_shell将java日志输入到指定文件_14

创建输入文件描述符

shell将java日志输入到指定文件_shell将java日志输入到指定文件_15

文件描述符6用来保存STDIN的位置,然后脚本将STDIN重定向到一个文件。 read命令的所有输入都来自重定向后的STDIN

 关闭文件描述

 exec 文件描述>&-

 阻止命令输出

一般将没什么用的数据,通常保存到   /dev/null   上,使其不在显示器上显示。

mktemp创建临时文件:

mktemp命令可以在/tmp目录中创建一个唯一的临时文件,shell会创建这个文件,但不用默认的umask值,会将文件的读和写权限分配给文件的属主,并将你设成文件的属主,权限为600

1.创建本地临时文件

格式:  mktemp filename.XXX(X个数>=3,X系统会自动填充,使其为唯一的)

返回相对路径

 

shell将java日志输入到指定文件_shell将java日志输入到指定文件_16

shell将java日志输入到指定文件_运维_17

在/tmp 目录创建临时文件

格式:mktemp -t  会强制在系统临时目录来创建文件

返回绝对路径

 

shell将java日志输入到指定文件_运维_18

创建临时目录

格式: mktemp -d  创建一个临时目录(本地)

shell将java日志输入到指定文件_服务器_19

记录消息,同时把数据发送到显示器和日志文件

  • tee   filename      把数据覆盖  (配合管道命令使用)
  • tee  -a  filename  追加数据     (配合管道命令使用)

shell将java日志输入到指定文件_运维_20

shell将java日志输入到指定文件_shell将java日志输入到指定文件_21