linux15-管理及IO重定向
计算机五大部件:运算器,控制器,CPU,存储器,RAM,输入/输出设备
程序,指令和数据:
指令和数据放在存储器
控制器:读取指令,读取需要进行的运算;
运算器:
存储器:
产生
地址总线:内存寻址
数据总线:传输数据
控制总线:控制指令
寄存器:CPU内部的一个暂时存储空间,比如现在要执行加法运算,已经传过来一个加数和加法,但是还没有传过来被加数,因此无法执行计算,此时需要把传过来的加数和加法就放在这里;被加数从RAM读取过来,RAM是非记忆存储器,掉电数据消失
输入设备/输出设备:I/O设备:硬盘,键盘/鼠标都属于
INOPUT设备:键盘,鼠标,硬盘
OUTPUT设备:硬盘,显示器,
系统设定
默认输入设备:标准输入STDIN ,0
默认输出设备:标准输出STDOUT ,1 正常执行结果
标准错误输出:STDERR,2
passwd --stdin
标准输入设备:键盘
标准输出和错误输出:显示器
I/O重定向:
标准输入输出重定向:
Linux:
输出重定向:>
输入重定向:<
eg: ls /var > /tmp/var.out 将执行的输出重定向到/tmp/var.out中去,
cat /etc/fstab > /tmp/var.out 同理,文件会覆盖上一个var.out 文件;(称为覆盖输出)如果想要保留此文件,则可以使用两个>>叫做追加输出
追加输出:>>,如果使用了一个>则会造成致命错误
set:
-C:如果文件内部已经有文件,禁止使用覆盖重定向
+C:文件内部已经有文件,启用覆盖重定向;
如果在不使用set -C改变并且想覆盖重定向,使用>|可以解决;
如果写ls /varr > /tmp/var2.out 如果写错了,不会输出var2.out因为标准输出和错误输出是两回事;
如果想保存错误输出: 则使用2>,2>>一个是覆盖重定向错误输出,一个是追加输出重定向输出;
如果 ls /var 2> /tmp/var2.out :则会输出到显示器,
ls /varr > /tmp/var3.out 2>/tmp/err.out :保存正确输出和错误输出分保存
&>:重定向标准输出和错误输出为同一个文件;ls /var.6 &> /tmp/res.out
&>>:重定向追加标准输出和错误输出为同一个文件
<:输入重定向:
eg tr ‘a-z' 'A-Z' file此时会报错,但是如果将输入重定向到文件,则文件相当于模拟键盘输入,
此时tr 'a-z' 'A-Z' < file 则会将文件内的小写字母变成大写字母;;
<<:Here Document:
此处生成一个文档: eg: cat << END 输入,以END结束,前面所有的内容作为文档输出
cat>> /tmp/myfile.txt << EOF也可以这样写:cat <<EOF >> /tmp/myfile.md :将输入的文件定向到/myfile.txt用脚本生成一个文件;
管道:命令也可以使用管道:
命令1 | 命令2 |命令3 ... :将前一个命令的输出当作后一个命令的输入叫做管道;
eg: echo "hello world" | tr 'a-z' 'A-Z'得到的输出为:HELLO WORLD
eg:“cut -d: -f1 /etc/passwd |sort -n | tr 'a-z' 'A-Z'将文件以冒号第一项以大小分类排序的结果全部大写
eg:ls /var | tr 'a-z' 'A-Z'
所以管道的意思是组合小命令;
tee:
从标准输入读取并且写在标准输出和文件中;
echo 'l' |tee /tmp/hello.out,结果是tee输出出来的,不是echo输出出来的;
只显示一个文件的行数,不显示多余信息:
wc -l /etc/passwd |cut -d ' ' -f1
Linux I/O重定向及系统管理概述
[*]计算机五大部件
[*]运算器[*]控制器[*]CPU[*]存储器(RAM)[*]输入/输出设备
[*]程序、指令和数据
[*]指令和数据存放于存储器中
[*]控制器职责:读取指令和运算所需数据
[*]运算器职责:执行运算
[*]存储器的作用:临时存储数据和指令
[*]总线及寄存器
[*]地址总线:用于内存寻址
[*]数据总线:用于数据传输
[*]控制总线:用于传输控制指令
[*]寄存器:CPU内部的临时存储空间
[*]I/O设备
[*]输入设备:键盘、鼠标、硬盘
[*]输出设备:硬盘、显示器
[*]系统设定及I/O重定向
[*]默认标准输入设备(STDIN):键盘
[*]默认标准输出设备(STDOUT):显示器
[*]标准错误输出(STDERR):显示器
[*]Linux中的I/O重定向
[*]输出重定向:使用 >
[*]输入重定向:使用 <
[*]示例:将输出重定向至文件 ls /var > /tmp/var.out
[*]追加输出:使用 >>
[*]覆盖保护使用 set -C 和解除保护使用 set +C
[*]强制覆盖:使用 >|
[*]重定向错误输出:使用 2> 和追加 2>>
[*]同时重定向标准输出和错误输出:使用 &> 和追加使用 &>>
例如:
ls /var > /tmp/var.out # 将目录内容输出重定向到文件
ls /var 2> /tmp/err.out # 将错误输出重定向到错误文件
ls /var &> /tmp/res.out # 所有输出重定向到同一个文件
这些命令提供了强大的方式来管理输入和输出流,在处理文件时尤其有用。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2025-3-9 19:09
Linux I/O重定向及系统管理概述
[*]计算机五大部件
好好好,你比我总结的厉害
xunyu 发表于 2025-03-10 07:18
FishC 发表于 2025-3-9 19:09
Linux I/O重定向及系统 ...
谢谢你的认可!如果你还有其他问题或需要进一步的帮助,请随时告诉我。无论是Linux管理还是其他编程相关的问题,我都很乐意提供帮助!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]