2.2 终端 终端:包括显示器、鼠标、键盘、耳机、麦克风、显示器和摄像头等等。...这些外围设备就被称为终端,负责向主机输入数据的就叫输入终端,比如鼠标、键盘、麦克风、摄像头,负责接收主机输出数据的设备就被称作输出终端,比如显示器、耳机。 ....txt后缀的文件一般为文本文件的格式,是我们肉眼可以看得懂的,而二进制文件是我们肉眼看不懂得,但是编译器可以读懂。 四、文件的打开和关闭 如何操作文件呢?...4.1 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了方便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河...,而fprintf是所有的标准输出流都可以,参数可以传文件流也可以跟printf一样传stdout(标准输入流),而sprintf是输出到一个字符串中。
学习如何创建别名:你可以将太长或难以记忆的命令打包成你自己构建的命令。...--color=auto 参数会让 ls 命令在通过标准输出在终端中显示内容时进行着色,而其它情况(例如通过管道输出到文件)下则不进行着色。...alias free='free -m':在 free 命令后面加上 -m 参数,就可以将输出的内存信息以 MiB 这个更方面阅读和计算的单位输出,而不是默认的 Byte 单位。...但你都可以在命令前面加上 \ 修饰符来使用命令的最基本形式(而不是别名)。例如: \free 就是直接执行 free,而不是 free -m。...; grep' grep 命令最基本的用途就是在文件中查找字符串,在熟悉这个命令之后,它一定是最常用的命令之一,因此输入错误导致不得不重输命令就很令人抓狂。
主要用途 需要同时查看数据内容并输出到文件时使用。 参数 FILE(可选):要输出的文件,可以为一或多个。 选项 长选项与短选项等价 -a, --append:追加到文件中而不是覆盖。...'warn-nopipe':当写入到任何输出(而不是管道)报错时诊断。 'exit':当写入到任何输出报错时退出。 'exit-nopipe':当写入到任何输出(而不是管道)报错时退出。...当'--output-error'没有在选项中时,默认的操作是当写入到管道报错时立刻退出,诊断错误信息并写入到非管道输出。 返回值 返回状态为成功除非给出了非法选项或非法参数。...例子 # 将进程信息通过管道输出到标准输出(终端)并覆盖写入到文件中。...ps -ef | tee info_a.log info_b.log # 将进程信息通过管道输出到标准输出(终端)并追加写入到文件中。
标准输出(stdout):向终端输出结果,文件描述符是 1。 标准错误(stderr):向终端输出错误信息,文件描述符是 2。 2. 输出重定向 将命令的输出重定向到文件或设备,而不是显示在终端上。...输入重定向 将文件的内容作为命令的输入,而不是从终端获取输入。 输入重定向(出到交互式终端 将命令输出重定向到终端设备: bash ls > /dev/tty 解释:将 ls 命令的输出直接发送到当前的终端窗口(通常 /dev/tty 代表当前终端设备)。...这个例子展示了如何结合输入、输出、错误输出的重定向,以及如何使用管道和文件描述符来处理复杂的命令场景。...这个示例展示了 Linux 重定向和管道的强大功能,如何管理标准输出、标准错误,并结合使用来处理复杂的脚本任务。
二.详解 管道文件 管道分为匿名管道和命名管道。管道都是一端写入、另一端读取,它们是单方向数据传输的,它们的数据都是直接在内存中传输的,管道是进程间通信的一种方式,例如父进程写,子进程读。...对于bash shell,可以通过nc命令(NetCat)来创建,或者干脆使用两个命名管道来实现对应的功能。如有需要,可自行了解如何在bash shell中使用Unix Domain套接字。...进程1向自己的套接字的send buffer写入数据,将发送到对端的recv buffer中,然后对端的进程2就可以从recv buffer中读取数据,反之亦然。...典型的字符设备是终端(终端分多种,由物理的也有虚拟的)和键盘。 区分块设备和字符设备最简单的方法是看数据访问的方式。能随机访问获取数据的是块设备,必须按字节顺序访问的是字符设备。...同理终端设备也是以一样的,程序将数据输出到终端时,程序先输出字母a再输出数字3,那么显示在终端上时一定是a在前,3在后。
数据文件 文件的内容不一定是程序,而程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。...本小节讨论的是数据文件在以前各章所处理数据文件的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行到显示器上。...如有整数10000,如果以ASCll码的形式输出到磁盘,则磁盘中占用5个字节(每个字符一个字节),而二进制形式输出,则在磁盘上只占4个字节(VS2019测试)。...int i = 0; //for (i = 0; i < 26; i++) //{ // fputc('a'+i, pf); // //fputc('\n', pf); //} //输出到终端...: 文件上写进去abcd了 标准输出流stdout输出到终端 fgetc是C语言中用于从文件中读取单个字符的函数。
源程序文件是还没经历编译和链接时的最初始的文件,而目标文件和可执行程序是源程序文件在编译,链接时产生的文件。 数据⽂件 ⽂件的内容不是程序,不可以运行,该文件只能被读写数据。...⽐如程序运⾏需要从中读取数据的⽂ 件,或者输出内容的⽂件,(其并不会被运行,只是拿来读写) 在以前各章所处理据的输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显⽰到显⽰器上。...(大部分编译器都能打开并正常显示出数据) 文件的打开和关闭 流和标准流 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,我们程序员就是个写代码...• stdin(指向标准输入流) - 标准输⼊流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。...(这证明了其文件信息区为中转站,而流也为中转站,更能证明流就是文件信息区。)也就是说,通过⽂件指针变量能够间接找到与 它关联的⽂件。
重定向与管道符 重定向 --- 作用: 将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上 0 标准输入 键盘 stdin 仅读取 1 标准输出 终端 stdout 仅写入 2 标准错误 终端...读/写 在Linux中构建了一个带有编号标记的通道(文件米描述符)的进程来管理打开文件 通过进程连接到文件,进行文件数据的操作 重定向标准输出 - 1>(1可省略) - 将命令的执行结果输出到指定文件中...,而不是显示在屏幕上,覆盖写 - history > history.txt - find / -user ruochen > history.txt - 1>>(1可省略)...user ruochen &> a.txt - find / -user ruochen &>> a.txt find / -user ruochen >> true.txt 2> /dev/null 管道...: 传送 --- 标识符号 | 就是将管道前面的输出结果作为后面语句的条件执行 格式 - 语句1 | 语句2 | ....
一般在将文件类型输出到管道时才使用此选项。-v 打印程序版本并退出。...-c,--command 运行命令而不是交互式 Shell。 -e,--return 返回子进程的退出代码。...-t,--timing[=]将时间数据输出到标准错误(或文件)。 -V,--version 输出版本信息并退出。...对终端输出进行复制粘贴可能非常乏味,我们使 用一个叫作script的鲜为人知的程序来解决这个问题,它是大多数Linux产品util-linux 软件包的一部分。...中使用一个非常简单的 Shell 来解决这个问题:$ SHELL=/bin/sh PS1="$ " script使用 script 时,不要使用交互式程序或处理窗口的程序,如 vior top,它们会破坏会话的输
如何重定向? (1)什么是重定向? (2)如何重定向?...,文件描述符号为:0,默认从键盘获取输入; 标准输出(STDOUT),文件描述符号为:1,默认输出到显示终端; 标准错误输出(STDERR),文件描述符号为:2,默认输出到显示终端; 2 什么是重定向?...如何重定向? (1)什么是重定向?...IO 重定向是为了改变默认输入、输出的位置,如默认情况下标准输出(STDOUT),标准错误输出(STDERR)都是输出到显示终端,如对标准输出、标准错误输出改变其默认输出位置,可重定向输出到指定的文件中...(2)如何重定向?
在以前各章所处理数据的输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显⽰到显⽰器上。...其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使⽤,这⾥处理的就是磁盘上⽂件。...二进制文件和文本文件也是数据文件,从名字上理解,二进制文件中存放的是二进制数据,而文本文件存储的是文本内容。二进制文件 我们无法读懂,只能机器来读懂,但是文本文件我们就能读懂。...stdout标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出 流中。 stderr标准错误流⼤多数环境中输出到显⽰器界⾯。...说的适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流⼀般指适⽤于标准输出流和其他输出流(如⽂件输出流)。
在 Linux 中,输入重定向和管道符号是两个非常重要的概念,它们可以让我们更加高效地使用命令行工具。输入重定向允许我们将命令所需的输入数据从文件中读取,而不是手动输入。...因此,我们可以通过输入重定向将一个文件的内容作为输入,而不是手动输入数据。对于一个命令来说,输入通常是从终端(也就是键盘)获取的。...例如,如果我们想查看一个文件的内容,我们可以使用 cat 命令:$ cat myfile.txt这个命令会将 myfile.txt 文件的内容输出到终端上。...执行 cat 命令,从标准输入中读取数据并输出到标准输出中。管道符号使用 | 将一个命令的输出作为另一个命令的输入。...结论输入重定向和管道符号是 Linux 命令行工具中非常重要的概念,它们可以让我们更加高效地使用命令行工具。输入重定向允许我们从文件中读取数据,而不是手动输入数据。
在以前各章所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。...其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘上文件。 3. 如何标识文件? ⼀个文件要有⼀个唯一的文件标识,以便用户识别和引用。...那么一个数据在文件中是如何存储的呢? 字符⼀律以ASCII形式存储,数值型数据既可以用ASCII码形式存储,也可以使用二进制形式存储。...以10000为例,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符⼀个字节),而二进制形式输出,则在磁盘上只占4个字节。 5....• stdout: 标准输出流,大多数的环境中输出至显示器界面,\,printf函数就是将信息输出到标准输出流中。 • stderr: 标准错误流,⼤多数环境中输出到显示器界面。
subprocess.PIPE 表示一个可以被用于Popen的stdin 、stdout 和stderr 3个参数的特输值,表示需要创建一个新的管道。...三个数据流默认是表现在用户终端上的执行一个shell命令行时通常会自动打开三个标准文件: 标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件stderr),这两个文件都对应终端的屏幕...进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
每⼀笔⽐特币交易都由输⼊和输出组成,其中输⼊包含交易的数据⾦额以及地址,输出包含交易的输出⾦额以 及输出地址。...在⽐特币交易过程中,每⼀笔交易的输⼊都是来⾃先前的交易的输出,并且每⼀笔交易的输出也可以成为后续交易的输⼊。 因为每⼀笔⽐特币交易都是基于先前的交易输出,所以只有在输⼊被花费之前,才能进⾏新的交易。...,这笔交易输出到三个地址上,输⼊总⾦额为 0.55,输出总⾦额为 0.5, 差异部分为矿⼯的收⼊。...因此在同⼀笔交易⾥,必定满⾜这样的⼀个等式: 总交易输⼊ - 总交易输出 = 交易费 余额计算 所有的交易都是通过 UTXO 账⼾模型的交易保存在区块链上,某⼀个”账⼾”中的余额并不是记录在某个区块上...bitcoin_transaction_inputs 表意指执⾏了 inputs ⾏为的地址相关记录,钱包执⾏了 inputs 动作,那钱 包的的钱⾃然就会流向 outputs,因此如要计算有多少 outputs 就需要使⽤ inputs 表,反之亦然
- 11:40 1:50 0.01s 0.01s -bashroot tty6 - 11:41 13.00s 0.01s 0.01s -bash如何拦截虚拟终端知识点...1.6 如何拦截虚拟终端如何拦截虚拟终端# kill -9 pid-----------------------------------[root@sanchuang-linux dev]# ps auxUSER...,而不是直接显示在屏幕上\>>将命令执行的结果`追加输出到指定文件`重定向标准输入而不是直接显示在屏幕上\>>将命令执行的结果`追加输出到指定文件`重定向标准输入管道符号 | :上一条命令的输出作为下一条命令的输入yum list 默认输出到屏幕yum list | grep tmux yumlist的输出
本篇我们讨论的是数据文件 在大多数处理数据的输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显⽰到显⽰器上。.../data/xxx,表示的就是下下一级路径 文件打开和关闭 流和标准流 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了⽅便程序员对各种设备进...其实就是不同外部设备写入和读取数据操作不一样,就创建了一个中介,这就是流,我们程序员只需要关注如何向流中读取和写入,至于流怎么通过不同方式和外部设备建立联系我们不用关心 对于之后向文件中写入或者从文件中读取数据都是指对于流的操作...那是因为C语⾔程序在启动的时候,默认打开了3个流: stdin-标准输⼊流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。...stdout-标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出 流中。 stderr-标准错误流,⼤多数环境中输出到显⽰器界⾯。
tee命令 tee命令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。 语法 tee [OPTION]... [FILE]......参数 -a, --append: 追加到已有文件的后面,而不是覆盖文件。 -i, --ignore-interrupts: 忽略中断信号。 -p: 诊断写入非管道的错误。...warn-nopipe: 诊断写入任何输出而不是管道的错误。 exit: 当错误写入任何输出时退出。 exit-nopipe: 当写入任何输出(不是管道)时出错时退出。...tee -a file1.txt ls列出当前目录中所有文件扩展名为.txt的所有文件,每行一个文件名,将输出通过管道传输到wc,将行进行计数并输出数字,输出通过管道传输到tee,将输出写入终端,并将信息写入文件
2>1 代表 错误重定向到一个文件 1, 而不是标准输出。 对于 2>&1, & 与 1 结合就代表标准输出了,也就变成错误重定向到标准输出。...stdout的默认目标是终端,stderr的默认目标为也是终端。 其中&需要直接与重定向符号结合使用。 那么 >& 的含义就是把所有输出(stdout,stderr)都重定向到某个地方。...command 2>&1 >file 2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。...) 继续查资料 后来看到有人这样写 command >& /dev/null 然后查阅到资料 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄...而不是从键盘或句柄读入命令输入。 >> 将命令输出添加到文件末尾而不删除文件中已有的信息。
当你 print 某东西时,结果输出到 stdout 管道中;当你的程序崩溃并打印出调试信息时(象Python中的错误跟踪),结果输出到 stderr 管道中。...通常这两个管道只与你正在工作的终端窗口相联,所以当一个程序打印输出时,你可以看到输出,并且当一个程序崩溃时,你可以看到调试信息。...在最简单的例子中,stdout 和 stderr 将它们的输出发送到同一个地方:Python IDE,或终端(如果你正从命令行运行Python)。...我们没有指定一个模块(象 binary.xml),而是指定“-”,这会让我们的脚本从标准输入而不是从磁盘上的一个特别文件中装入语法。(在下个例子中有更多关于它是如何发生的内容。)...那么当语法文件是“-”时我们的脚本是如何中从标准输入读入的呢?没什么神秘的,就是编码。 例 5.36.
领取专属 10元无门槛券
手把手带您无忧上云