当前位置:首页 > 日记 > 正文

玩Linux文件描述符和重定向

玩Linux文件描述符和重定向
评论:本文介绍了linux中文件描述符和重定向的知识。文件描述符是与文件输入和输出相关联的整数,用于跟踪打开的文件。
Linux下的文件描述符是一个与文件的输入和输出相关联的整数,用于跟踪打开的文件。
最常见的文件描述符stdin,stdout和stderr,。,我们可以将一个文件描述符指向另一个文件描述符的内容。

下面给出了文件描述符的操作和重定向的一些例子。

1.5.1预备知识

我们经常使用的标准输入(stdin)、标准输出(stdout),和标准错误(stderr)当我们写剧本。

我们的基本任务之一是通过内容过滤将输出重定向到文件。

当命令输出文本时,这些输出文本可能是错误信息,也可以是正常(非错误)输出信息。
通过单独查看输出文本,我们无法区分什么是正常输出文本和哪一个文本是错误的,但是,我们可以通过使用文件描述符来提取与特定描述符相关联的文本来解决这个问题。
文件描述符是一个与打开的文件或数据流相关联的整数。文件描述符0, 1和2是为系统保留的。
0mdash;mdash;stdin(标准输入)
1mdash;mdash;stdout(标准输出)
2mdash;mdash;stderr(标准误差)

1.5.2实践演练

重定向输出文本或将其保存到文件中:
复制代码代码如下所示:
$ echo这是一个示例文本1>下的TEMP.TXT
这种方式节省了输出文本文件下的TEMP.TXT通过截获的文件,也就是说,在echo命令的输出写入到文件中的内容将被清空,第一下的TEMP.TXT。
接下来,看看另一个例子。
复制代码代码如下所示:
这是$ echo 2 > >下的TEMP.TXT示例文本
这种方法将文本到目标文件。
> >与>不一样。虽然这两个操作符可以将文本重定向到文件,但前者将先清空文件,然后写入内容。后者将内容追加到现有文件的结尾。
可以使用以下方法查看文件的内容:
复制代码代码如下所示:
猫下的TEMP.TXT美元
这是示例文本1。
这是示例文本2。
在Linux操作系统中,当使用重定向操作符时,重定向的内容不会出现在终端上,而是直接导入到文件中。重定向运算符默认使用标准输出。如果要使用特定的文件描述符,则必须将描述符放在操作器前面。

>等于1 >;对于>,情况类似(即>等于1 >)。
看一个标准误差是什么和如何重定向。当命令输出的错误信息,错误的信息打印出来。请看下面的例子:
复制代码代码如下所示:
$ +
是:不能访问+:没有这样的文件或目录
这里,+是一个非法参数,因为有些将返回错误消息。
{成功和不成功的订单
当一个命令出错并返回时,它返回一个非0个退出状态;当命令成功完成时,它返回一个0的数字。退出状态可以从特殊变量$(在命令执行语句之后立即运行回声$,并且可以打印出出口状态)}。

打印stderr文本到屏幕上,不在文件。
复制代码代码如下所示:
$ > out.txt
是:不能访问+:没有这样的文件或目录
在下面的命令,但是,它没有输出,因为被重定向到out.txt误差。
复制代码代码如下所示:
$ + 2 > out.txt #正常运行
你可以将stderr重定向到一个文件,将标准输出重定向到另一个文件:
复制代码代码如下所示:
> 1 > 2美元stderr.txt stdout.txt CMD
你也可以使用下面的方法来转换成标准输出,标准错误,stderr和stdout重定向到相同的文件:
复制代码代码如下所示:
2 > 1 output.txt CMD美元
或采用以下方法:
复制代码代码如下所示:
CMD > output.txt美元
有时,可能会有一些不必要的信息(如错误信息)的输出。如果你不想让终端对远端分支的标准,那么你可以重定向标准错误输出/ dev /空,以确保一切都会被清理。假设我们有三A1、A2、A3文件,但普通用户没有A1;读写和执行的权限。如果您需要打印的文件名的所有文件,开始的,你可以使用cat命令。
设置一些测试文件:
复制代码代码如下所示:
回波A1 A1
CP;
$ chmod 000 A1 #清除所有权利
虽然A *可以用来显示文件的所有内容,但是系统显示错误消息,因为文件A1没有可读的权限。
复制代码代码如下所示:
美元A *
猫:A1拒绝许可
A1
A1
其中,猫:A1:权限被拒绝属于STDERR。我们可以重定向标准错误信息到一个文件中,并且输出保持不变。考虑下面的代码:
复制代码代码如下所示:
为猫* 2 > err.txt # stderr重定向到err.txt
A1
A1
猫err.txt美元
猫:A1:拒绝许可
请看下面的代码:
复制代码代码如下所示:
some_command美元2 > / dev /空
本节是播放linux文件描述符和重定向第二页的内容,欢迎继续阅读。

在这个例子中,从stderr输出输给文件 / dev /空。 / dev /零是一个特殊的设备文件,以及任何数据文件将会被丢弃。

因此,空设备通常也被用作位桶或黑洞。
当重定向stderr或stdout,重定向的文本会被传递到文件。

因为文字已被重定向到一个文件,没有留下什么可以通过管道(|)以下的订单,这些订单是通过标准输入接收文本。
但是有一个聪明的方法可以将数据重定向到文件。另一方面,它可以提供数据作为后续命令重定向stdin拷贝。

所有这些都可以用三通实现。

例如,在标准输出打印终端和重定向到一个文件中,你可以使用TEE:这样
复制代码代码如下所示:
命令TEE file1 file2 |
在下面的代码中,tee命令从标准输入设备接收数据,写一份stdout的文件out.txt,同时另一份为stdin的遵循了命令。命令猫N加在每行收到来自stdin数据的行数和写入标准输出:
复制代码代码如下所示:
猫* | TEE美元了。txt |猫n
猫:A1:拒绝许可
1 A1
2 A1
看看out.txt内容:
复制代码代码如下所示:
猫out.txt美元
A1
A1
注意,猫:A1:权限被拒绝并没有出现在任何文件的内容。这是因为信息属于内部和TEE只能读取输入。
默认情况下,tee命令覆盖文件,但提供了一个一个的选项,可以用来添加内容。例如:
复制代码代码如下所示:
猫|美元* T恤一个.txt |猫N.
带参数的命令可以写成:命令file1 file2又是类似的,或简单地使用命令文件。
我们可以使用标准输入作为命令参数,只需要将该命令的文件名参数:
复制代码代码如下所示:
cmd1 cmd2美元| | CMD—
例如:
复制代码代码如下所示:
这是谁的T恤| $ echo
是谁啊
是谁啊
或者我们可以使用 / dev /标准输入作为输出文件的名称使用标准输入。
同样, / dev / stderr代表标准错误使用,和 / dev / stdout表示标准输出。这些特殊的设备文件对应stdin,stdout和stderr,分别。

补充内容:
该命令从标准输入读取输入可以多种方式接收数据。此外,我们也可以用猫和管道使我们自己的文件描述符,如:
复制代码代码如下所示:
猫|美元文件cmd
| cmd1 cmd2美元
1。将文件重定向到命令
重定向,我们可以从标准输入读取数据文件:
复制代码代码如下所示:
$ <文件
2。脚本内部的重定向文本块
有时,需要像标准输入那样重定向文本块(多行文本)。考虑一个特殊情况:源代码位于shell脚本中。

查看下面的shell脚本并将头部数据写入日志文件,您可以如下所述:
复制代码代码如下所示:
# /斌/狂欢!
猫log.txt
日志文件头
这是一个测试日志文件。
功能:系统统计
EOF
猫log.txt和下一个EOF线之间的所有文本行被视为输入的数据。的log.txt文件打印如下内容:
复制代码代码如下所示:
猫log.txt美元
日志文件头
这是一个测试日志文件。
功能:系统统计

相关文章

MySQL密码忘记密码恢复的实现

MySQL密码忘记密码恢复的实现

密码,密码恢复,电脑软件,MySQL,1。服务器环境 1。中文企业版SP2系统Windows2003 2、MySQL 5.1.55 3、PHP 5.2.17 4,IIS 6 两。裂化过程 1。停止MySQL服务(作为管理员,在CMD命令行下运行)使用以下命令: 停止使用mysql 2。使用命令启动MySQL…

AdTime:交替新老互动营销模式

AdTime:交替新老互动营销模式

互动,新老,营销模式,电脑软件,AdTime,世界杯已经淘汰了前四名的球队。世界杯给我们带来了太多的惊喜。许多资深的欧洲球队被送回家的时候。老足球霸主已经提醒我们,这是一个特殊的时代,新的和旧的变化。在过去的十年中,互联网已经给人们的生活…

Win8,新的应用程序显示在开始屏幕的

Win8,新的应用程序显示在开始屏幕的

应用程序,显示,桌面,屏幕,溶液,问题: 在Win 8.1中,所有新安装的Metro应用程序默认情况下都不会显示在开始屏幕中。如何解决它 答案uff1a V 操作;程序的输入框,GPEDIT. msc,回车,打开组策略;;面板,选择用户配置→管理模板;-> &lsquo;开始菜单和任务栏…

oracle数据显示水平表旋转表

oracle数据显示水平表旋转表

显示,数据,电脑软件,oracle,1。造表 复制代码代码如下所示: 创建表 创建测试表 ( DM1 char(3), DM2 char(3), MC1类型(20), 值类型(20) ) 2。填写以下数据: DM1 DM2 MC1 瓦尔 一百零一 一 C1 一百 一百零一 一 C2 八十 一百零一 一 C3 四十 一百零一 …

Win8.1清洁C小C薄解决问题

Win8.1清洁C小C薄解决问题

解决问题,清洁,电脑软件,点评:Win8.1应用商店的应用软件默认安装在C盘,不能更改路径,所以磁盘空间越来越小,使用很不方便,这里教你如何清理驱动,解决小C的问题 现在有很多电脑爱好者朋友升级到最新的Win8.1系统,虽然我们使用Win8.1恢复开始菜单,安…

贫富悬殊与快餐化趋势

贫富悬殊与快餐化趋势

趋势,贫富悬殊,快餐,电脑软件,导语:市场研究公司VisionMobile发布的最新报告显示,移动应用开发行业严重,只有1.6%的开发商瓜分了大部分的应用商店的收入,中产阶级的应用开发者正在消失,开发商为了多数人入不敷出。 以下是全文: 虽然应用商店充…

linux下执行程序文本文件忙提示的

linux下执行程序文本文件忙提示的

提示,执行程序,文本文件,解决方案,电脑软件,评论:最近,当使用Linux执行命令时,它提示文本文件忙。百度发现,原始文件被占领的过程中通过定影XXX命令,然后关闭过程中解决问题。 定影XXX命令用来查看是哪个进程的文件占用,然后这个过程是封闭的,和问…

计算机常常自动进入系统的安全模式

计算机常常自动进入系统的安全模式

安全模式,解决方案,系统,电脑软件,问题: 当计算机经常打开时,它会自动进入系统的安全模式,并开始认为系统坏了。重装系统后,问题仍然存在,原因是什么 答案uff1a 计算机常常自动进入安全模式,如果系统被排除在外,大多数情况下都是内存问题: 1,记忆…

对Smartyforeach的使用说明

对Smartyforeach的使用说明

使用说明,电脑软件,Smartyforeach,foreach是另一种方式来处理循环除第(不同的选择是根据不同的需要选择)。foreach来处理简单的数组(数组中的元素的类型),这是比部分简单得多,而缺点是只能处理简单的阵列。 foreach必须使用 / foreach对必须指定…

诺基亚的旅行计划,目的地,将在90天内

诺基亚的旅行计划,目的地,将在90天内

计划,诺基亚,将在,目的地,旅行,{新闻}北京时间7月1日消息,个性化的旅游计划,使用诺基亚地图这部获得了目的地的5月底宣布,将关闭约90服务。 该告知用户应用程序将在9月3日正式关闭。 9月3日之后,用户将无法使用应用程序搜索或保存的旅行记录,…

PHPhtmlspecialchars增强版

PHPhtmlspecialchars增强版

增强版,电脑软件,PHPhtmlspecialchars,复制代码代码如下所示: 取消html代码 功能shtmlspecialchars($string){ 如果(is_array($字符串)){ foreach($字符串作为键=美元美元Val){ 为字符串{ $关键} = shtmlspecialchars(美元值); } {人} $字符串preg_repl…

windows环境下的桥梁设置方法

windows环境下的桥梁设置方法

方法,设置,桥梁,环境,电脑软件,评论:如今,随着网络技术和网络连接的发展,在Windows XP中,连接不同网段的桥梁功能得到了集成,极大地促进了中小型局域网的互联互通和扩展。 如今,随着网络技术和网络连接的发展,在Windows XP中已经集成了不同网段的…