计算机的硬件设备有很多种,常见的输入设备有键盘、鼠标、手写板等,输出设备有显示器、投影仪、打印机等。不过,在 Linux 中,标准输入设备指的是键盘,标准输出设备指的是显示器(屏幕)。
Shell会自动为我们打开和关闭0、1、2这三个文件描述符,我们不需要显式地打开或关闭它们。
在日常使用Linux命令时候,经常使用重定向或者管道的方式处理命令的结果。以前对这两个命令的使用场景存在一些困惑,所以本文对这两个命令进行详细的总结。
Linux由内核、外壳程序、实用程序、应用程序构成,而Shell就是作为Linux操作系统的外壳,为用户使用操作系统提供结构
将把 dir 命令的标准屏幕输出重定向到文本文件 filelisting.txt 文件里
1、Linux标准输入输出 Linux标准输入、输出设备主要是键盘和显示器,详细介绍如下表所示。
1. 标准输入的控制 语法:命令 文件将命令的执行结果送至指定的文件中。 例如: ls -l > list 将执行“ls -l” 命令的结果写入文件list 中。 语法:命令>! 文件将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖。 例如: ls -lg >! list 将执行“ls - lg” 命令的结果覆盖写入文件list 中。 语法:命令>& 文件将命令执行时屏幕上所产生的任何信息写入指定的文件中。 例如: cc file1.c >& error 将编译file1.c 文件时所产生的任何信息写入文件error 中。 语法:命令>> 文件将命令执行的结果附加到指定的文件中。 例如: ls - lag >> list 将执行“ls - lag” 命令的结果附加到文件list 中。 语法:命令>>& 文件将命令执行时屏幕上所产生的任何信息附加到指定的文件中。 例如: cc file2.c >>& error 将编译file2.c 文件时屏幕所产生的任何信息附加到文件error 中。 3. 命令语法 command > filename 把标准输出重定向到一个新文件中 command >> filename 把标准输出重定向到一个文件中(追加) command 1 > fielname 把标准输出重定向到一个文件中 command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中 command 2 > filename 把标准错误重定向到一个文件中 command 2 >> filename 把标准输出重定向到一个文件中(追加) command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加) command filename2 把command命令以filename文件作为标准输入,以filename2文件作为标准输出 command &m 把标准输出重定向到文件描述符m中 command
小编最近在研究Linux下的脚本编写,其中很多环节涉及到和多个命令组合使用,如:自动输入系统密码等;而在Linux下最常用的就是管道和重定向。
为什么2>&1一定要写到>log后面,才表示标准错误输出和标准输出都定向到log中?
输入重定向:把指定文件导入到命令中 输出重定向:把原本要输出到屏幕的信息写入到指定文件中 输出重定向分为:标准输出重定向和错误输出重定向 [root@linuxprobe ~]# touch linuxprobe [root@linuxprobe ~]# ls -l linuxprobe total 0 drwxr-xr-x. 3 root root 14 Jun 11 15:07 a [root@linuxprobe ~]# ls - xxxxxxx ls: cannot access -: No su
这条命令的意思就是说: 运行test.py脚本,且将运行过程中本来要输出到屏幕/控制台的内容(如脚本里面的print语句、报错信息等)输出到test.log日志文件中去。
1. 标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 我们以cat命令为例,cat命令的功能是从命令行给出的文件中读取数据,并将这些数据直接送到标准输出。若使用如下命令: $ cat config 将会把文件config的内容依次显示到屏幕上。但是,如果cat的命令行中没有参数,它就会从标准输入中读取数据,并将其送到标准输出。例如: $ cat Hello world Hello world Bye Bye $ 用户输入的每一行都立刻被cat命令输出到屏幕上。 另一个例子,命令sort按行读入文件正文(当命令行中没有给出文件名时,表示从标准输入读入),将其排序,并将结果送到标准输出。下面的例子是从标准输入读入一个采购单,并将其排序。 $ sort bananas carrots apples apples bananas carrots $ 这时我们在屏幕上得到了已排序的采购单。 直接使用标准输入/输出文件存在以下问题: 输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。 输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。 为了解决上述问题,Linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道。 输入重定向 输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。也就是说,输入可以不来自键盘,而来自一个指定的文件。所以说,输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输入源。 例如,命令wc统计指定文件包含的行数、单词数和字符数。如果仅在命令行上键入: $ wc wc将等待用户告诉它统计什么,这时shell就好象死了一样,从键盘键入的所有文本都出现在屏幕上,但并没有什么结果,直至按下<ctrl+d>,
在 Unix 或 Linux 系统中,我们通常会使用 Shell 来与操作系统交互。在这个过程中,数据的输入和输出是两个非常基础且重要的操作。
1 什么是数据流重定向? Linux中,数据流的重定向被分为输入重定向 和 输出重定向。 输出重定向 将原本应该输出到屏幕上的信息输出到文件中。 当执行一个命令后,该命令输出的结果本应该显示在屏幕上。但输出重定向能让命令的执行结果保存到文件中去。 此外,由于Linux中的设备都是以文件的形式存在,因此输出重定向还可以将命令执行的结果输出到指定设备上去。 命令 > 文件 命令的执行结果将会保存到>后面的文件中去,而不会在屏幕上显示。 输入重定向 将原本应该从键盘输入数据的方式改为从文件中读取
原文链接:https://rumenz.com/rumenbiji/linux-shell-redirect.html
在Linux环境下,我们输入一段命令并运行以后,屏幕里会显示两种结果:运行成功结果即标准输出、运行失败结果即标准错误输出。
大家知道,在 Linux 下,一切皆文件,对于设备文件也是如此。我们在工作的过程中,经常会看到 /dev/null 这个玩意,那它到底是什么呢?
比如有些人可能会这么想:2是标准错误输入,1是标准输出,>是重定向符号,那么"将标准错误输出重定向到标准输出"是不是就应该写成"2>1"就行了?是这样吗?
上一节中 [[16-linux程序后台执行指西]],我们提到了,重定向操作,对于后台执行命令来说,很有用,这一节来详细说说。
在介绍上述符号表示什么之前,我们需要先知道在linux中有三种标准的文件描述符(也支持自定义),分别为:
cut 是一种在 Linux 系统中实现文本处理的命令,主要用于提取文件中指定列的内容。它是一个非常有用的命令,可以帮助用户快速获取需要的信息。然而,在实际使用过程中,我们经常需要将输出结果保存到文件中,以便进行后续分析和处理。为了实现这个目标,我们需要掌握输出重定向符号的使用方法。本文将介绍 cut 命令的基本概念、进阶使用技巧和输出重定向符号的使用方法。
15.1 理解输入和输出 现在知道两种显示脚本输出的方法 1)在显示器屏幕上显示 2)将输出文件重定向到文件中 15.1.1 标准文件描述符 Linux系统将每个对象当做文件处理。这包括输入和数出进程。 Linux用文件描述符来标识每个文件对象。 它是一个非负整数,可以唯一标识会话中打开的文件。 每个进程一次最多可以有九个文件描述符 bash shell保留的前3个文件描述符(0、 1、 2) 1.STDIN 标准输入(0) STDIN文件代表shell的标准输入。 对终端界面来说,标准输入是键盘。 she
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
I/O输入/输出(Input/Output)的简称,I 即为输入,常见的输入设备有键盘和鼠标。O为输出,常见的打印机等。
让学生了解shell的启动过程,shell的功能,shell的命令形式,shell程序的建立和运行,理解管道和重定向,环境变量和系统变量以及变量引用方式。
把多个 Linux 命令适当地组合到一起,使其协同工作,以便更加高效地处理数据。要做到这一点,就必须搞明白命令的输入重定向和输出重定向的原理。
I/O重定向允许我们将命令的输入和输出重定向到文件中,以及将多个命令连接到一起成为管道。本文就来介绍有关重定向的知识。
原文链接:https://rumenz.com/rumenbiji/linux-file-stdin-stdout.html
命令的结果可以通过%>的形式来定义输出 /dev/null :代表空设备文件 > :代表重定向到哪里,例如:echo "123" > /home/123.txt 1 :表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2 :表示stderr标准错误 & :表示等同于的意思,2>&1,表示2的输出重定向等同于1 1 > /dev/null 2>&1 语句含义: 1 > /dev/null : 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。 2>&1 :接着,标准错误输出重定向(等同于)标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
系统操作 #使用shutdown命令马上重启系统 [root@H32 ~]# shutdown –r now #使用shutdown命令马上关闭系统 [root@H32 ~]# shutdown –h now #使用shutdown命令设置在15分钟以后自动重启系统 [root@H32 ~]# shutdown –r +15 显示在线登陆用户 who 显示当前操作用户 whoami 显示主机名hostname 显示系统信息uname
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。
线上服务器往往没有安装系统桌面,在进行耗时时间长的操作过程中,有时中途不得不离开,回来之后,因为网络断开,往往操作没有完成。欲哭无泪,不得不重新开始,自从学会了下面两个命令,再也不担心操作被某些原因中断啦。
前言:在看完上一篇博客,Linux基本指令才了解一点点,现在让我们更深入了解一下其他的指令
nohup java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -jar $JAR_PATH/test-0.0.1-SNAPSHOT.jar --spring.profiles.active=daily -verbose:class &
拢共有 11 篇 Linux 知识点梳理的文章,这次是第 7 篇,梳理完以后 Linux 每日一练就结束更新了,但是还没有完结,后续如果有什么比较重要的 Linux 知识会单独抽出来再讲。
相信大家平时都会有需要复制粘贴数据的时候,如果是打开文件进行复制粘贴,就不可避免的需要较多的鼠标与键盘的操作,就会比较繁琐。那么有没有可以省掉这些繁琐操作的复制粘贴的方法呢? 答案是肯定的,那就是重定
---------------------------------接Part 2------------------------------
命令格式: 命令1 | 命令2,有一定的编程思想在里面 命令1的正确输出作为命令2的操作对象,和逻辑与不一样
从字面意义上我们可以这样理解:输出本来是当我进行命令后,输出到屏幕上,现在我不让他输出到屏幕,改变他的输出方向,把他输出到文件当中,就叫输出重定向。
在一般使用时,默认的是标准输出,即1.当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中:./program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。 另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。 Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
标准输入、标准输出和标准错误 一个程序的的输入可以来自于键盘,也可以来自于文件或者其他设备;同样的,一个程序也可以将输出显示在屏幕或者保存到文件中。这就涉及到标准输入、标准输出和标准错误。 程序的输入是标准输入,默认是键盘,用户可以将其指定为文件或其他设备。 程序的输出有两种,即标准输出和标准错误,其中标准输出是程序的正常输出、标准错误是程序的错误输出。二者默认都被指定为屏幕,用户可以将其指定为文件或其他设备。 下面的程序从键盘读取输入,将结果显示在屏幕上,即标准输入、标准输出和标准错误都采用默认的设置:
输入重定向是指把文件导入到命令中,而输出重定向则是把原本要输出到屏幕的数据信息写入到指定文件中。
领取专属 10元无门槛券
手把手带您无忧上云