Linux
基础知识
01搭建Centos7系统
02软件管理仓库
03Shell
04查看帮助命令
05系统工作命令
06系统状态检测命令
07工作目录切换命令
08文本文件编辑命令
09文件目录管理
10打包压缩与搜索命令
11输入输出重定向
12管道符与通配符
13Vim编辑器
14Shell脚本
15shell流程控制语句
16用户管理操作
17文件权限与归属
18文件隐藏属性
19文件访问控制列表
20su与sudo
21存储结构
22物理设备命名规则
23文件系统
24挂载硬件设备
25虚拟机添加硬盘设备
26系统中操作添加硬盘设备
27添加交换分区
28磁盘容器配额
29软硬方式链接
30RAID
31LVM
32程序安装与管理
33计划任务
34日志文件分析
35测试网络联通性
36FTP服务
37操作系统基本符号
38操作系统三剑客
39shell基础
40shell语法
41DNS
42Apache概述
43Nginx概述
44集群概述
Vmware安装Ubuntu
更换源
三剑客
更换源
输入输出
安装VMware-Tools
SSH服务
反弹shell
-
+
首页
输入输出
在 Linux 系统中,输入输出(I/O)是命令与用户、文件或其他进程交互的核心机制,Linux 将所有设备(包括键盘、屏幕、文件等)都抽象为 “文件”,输入输出本质上是对这些 “文件” 的读写操作。 ## 标准输入、输出与错误 Linux 中定义了三个默认的 “标准 I/O 流”,它们本质是特殊的文件描述符(用于标识文件的整数),默认关联到终端(键盘 / 屏幕): | 名称 | 功能 | 文件描述符(FD) | 默认设备 | | ------------------ | -------------------------- | ---------------- | ------------ | | 标准输入(stdin) | 接收输入数据(如键盘输入) | 0 | 键盘 | | 标准输出(stdout) | 输出正常结果(如命令输出) | 1 | 屏幕(终端) | | 标准错误(stderr) | 输出错误信息(如命令报错) | 2 | 屏幕(终端) | ## 输入输出重定向 默认情况下,命令从键盘读入(stdin),向屏幕输出(stdout/stderr)。 重定向可以改变这些默认行为,将输入 / 输出指向文件或其他位置。 > 标准输出重定向 将正常的命令输出写入文件(而非屏幕): >:覆盖写入(若文件存在,原有内容会被清空) 示例:ls > file.txt(将ls的输出写入file.txt,覆盖原有内容) >>:追加写入(若文件存在,新内容加在末尾) 示例:echo "new line" >> file.txt(向file.txt追加一行内容) > 标准错误重定向 将命令的错误信息写入文件(而非屏幕): 2>:覆盖写入错误信息 示例:ls nofile 2> err.txt(ls nofile会报错,错误信息写入err.txt) 2>>:追加写入错误信息 示例:grep "test" wrongfile 2>> error.log(错误信息追加到error.log) > 合并输出与错误 将标准输出和标准错误一起重定向到同一个文件: &>:等价于 “同时重定向 stdout 和 stderr” 示例:command &> all.log(正常输出和错误都写入all.log) > file 2>&1:先将 stdout 重定向到file,再将 stderr(2)指向 stdout(1)的位置(即file) 示例:ls file1 nofile > result.log 2>&1(正确和错误信息都写入result.log) > 标准输入重定向 让命令从文件读取输入(而非键盘): <:指定输入文件 示例:wc -l < test.txt(wc -l统计行数,从test.txt读取内容,而非键盘输入) <<(here 文档):从终端输入多行文本作为命令的输入,直到遇到指定的结束符(如EOF) 示例: ```bash cat << EOF > info.txt # 输入多行内容,直到EOF结束,写入info.txt Name: Linux Version: 5.4 EOF ``` <<<(here 字符串):将字符串作为命令的输入 示例:grep "a" <<< "apple banana"(在字符串中搜索 "a",输出apple banana) ## 管道(Pipe) 管道(|)用于将一个命令的标准输出作为另一个命令的标准输入,实现命令间的协作。 格式:command1 | command2 示例: ```bash ls | grep ".txt" #ls的输出(文件名)作为grep的输入,筛选出含.txt的文件 ps aux | wc -l #ps aux列出所有进程,wc -l统计进程总数 ``` ## 特殊文件:/dev/null /dev/null是一个 “黑洞” 文件,写入其中的内容会被直接丢弃,常用于屏蔽不需要的输出。 示例: ```bash command > /dev/null # 屏蔽标准输出(只显示错误) command 2> /dev/null # 屏蔽标准错误(只显示正常输出) command &> /dev/null # 完全屏蔽所有输出(既不显示正常结果,也不显示错误) ``` ## 实用工具:tee tee命令可以同时将输入输出到屏幕和写入文件(类似 “分流”),常用于既要查看结果又要保存日志的场景。 格式:command | tee file 示例: ```bash ls | tee list.txt # ls的输出既显示在屏幕,又写入list.txt ls | tee -a list.txt # -a表示追加写入(避免覆盖原有内容) ```
毛林
2025年10月22日 10:35
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码