一文吃透 Linux 标准流、重定向、管道与 tee 命令(附 vim 实操案例)
一文吃透 vim编辑器的使用、Linux 标准流、重定向、管道与 tee 命令附 vim 实操案例一、Linux中获取帮助1、man手册Linux中有许多的命令和选项 要想全部记住这些几乎不太现实那我们就只能上网去搜索吗这时候man手册就是我们的不二之选1、man 简介manmanual 简称。man使用不同 section 区分手册类别。SECTION内容类型1用户命令可执行命令和shell程序2系统调用从用户空间调用的内核例程3库函数由程序库提供4特殊文件如设备文件5文件格式用于许多配置文件和结构6游戏过去的有趣程序章节7惯例、标准和其他协议、文件系统8系统管理和特权命令维护任务9Linux内核API(内核调用)2、man 命令[xuhaoyucentos7 ~18:34:25]$man--help#输出结果# Usage: man [OPTION...] [章节] 手册页...# -C, --config-file文件 使用该用户设置文件# -d, --debug 输出调试信息# -D, --default 将所有选项都重置为默认值# --warnings[警告] 开启 groff 的警告# ......man手册页面交互操作指令less程序命令结果PageDown或者空格键向前向下滚动一个屏幕PageUp向后向上滚动一个屏幕向下箭头向前向下滚动一行向上箭头向后向上滚动一行d向前向下滚动半个屏幕u向后向上滚动半个屏幕/string在man page中向前向下搜索stringn在man page中重复之前的向前向下搜索N在man page中重复之前的向后向上搜索g转到man page的第一行。G转到man page的最后一行。q退出man 并返回到shell命令提示符3、运用 -k 搜索关键词#查找 调整内核kernel[xuhaoyucentos7 ~19:17:44]$man-kkernel# dmesg (8) - print or control the kernel ring buffer# abrt-action-analyze-oops (1) - Calculate and save UUID and duplicate hash for a problem data dir...# abrt-action-analyze-vmcore (1) - Extracts the oops message from the kernel core and install the ...# abrt-action-save-kernel-data (1) - Creates uReport mandatory files for kernel oopses.# abrt-oops.conf (5) - Configuration file for ABRTs Kernel Oops extractor# add_key (2) - add a key to the kernels key management facility# adjtimex (2) - tune kernel clock# arp (7) - Linux ARP kernel module.那如何更快速的查找到你需要的内容呢答运用管道格式为 man -k a | grep b#查找 调整内核kernel启动boot参数 手册[xuhaoyucentos7 ~19:23:06]$man-kkernel|grepboot# bootparam (7) - introduction to boot time parameters of the Linux kernel# kernel-install (8) - Add and remove kernel and initramfs images to and from /boot# kexec (8) - directly boot into a new kernel# modules-load.d (5) - Configure kernel modules to load at boot# sysctl.d (5) - Configure kernel parameters at boot# systemd-modules-load (8) - Load kernel modules at boot# systemd-modules-load.service (8) - Load kernel modules at boot# systemd-sysctl (8) - Configure kernel parameters at boot# systemd-sysctl.service (8) - Configure kernel parameters at boot二、which 和 whereis 命令which命令就是查看这个词代表什么[xuhaoyucentos7 ~19:26:13]$whichvi# alias vivim# /usr/bin/vimwhereis就是查看这个词在哪[xuhaoyucentos7 ~19:31:29]$whereispasswd#passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz二、vim 编辑器一款新手友好型编辑器# 安装 vim 工具[rootcentos7 ~]# yum install vim1、vim模式command模式该模式下键盘中的字母有特殊含义。例如G跳转到最后一行gg跳转到第一行。edit模式在command模式下按i进入该模式。在该模式可以输入内容。在该模式下按Esc返回command模式。•extended command模式在command模式下按:进入该模式。在该模式下可以保存文件(:w)退出编辑:q强制退出编辑:q!报错并退出:wq。visual edit模式在command模式下按v单个字符选中、V整行选中或者ctrlv按矩形选中进入该模式。在该模式下用于选中文件随后可以复制或删除选中的内容。2、快捷键模式切换与文件操作快捷键功能说明i在光标前进入插入模式q退出 Vim未修改时a:w在光标后进入插入模式wq保存并退出esc返回普通模式q强制退出放弃所有修改w保存文件2、定位文件内容w向后一个word光标在开头$行尾e向后一个word光标在末尾{上一个自然段b向前一个word}}下一个自然段^或0行首gg第一行上一个句子头部G最后一行)下一个句子尾部less 使用g第一行G最后一行。3、进入插入模式i当前位置插入A行末追加I行首插入o向下新开一个空白行adangqianweizhi1追加O向上新开一个空白行4、复制yy复制1行相当于y1y。以此类推 y2y y2w y2b。5、粘贴p 当前位置后粘贴P 当前位置前粘贴6、删除x删除当前单个字符。5x删除当前字符和后续4个字符。X删除前一单个字符。dw删除1个word以此类推 d5w d3b d2d d$。D从当前删除到最后相当于d$。7、回退u撤销上一个操作。U撤销整行修改。Ctrlr反向撤销与u相反。8、修改相当于删除后插入s删除当前字符并进入编辑模式。S删除当前行并进入编辑模式。c代表替换动作例如cw删除1个word并进入编辑模式。以此类推 c5w。C从当前删除到最后并进入编辑模式。8、替换r替换单个字符后回退到命令行模式。R替换模式一直替换直到按Ese返回命令行模式示例完成 DHCP 服务配置文件定制。# 配置仓库[rootcentos7 ~]# curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo[rootcentos7 ~]# curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# 安装dhcp软件[rootcentos7 ~]# yum install -y dhcp# 准备配置文件[xuhaoyucentos7 ~]$cp/usr/share/doc/dhcp*/dhcpd.conf.example ~/dhcpd.conf编辑 ~/dhcpd.conf 文件:set number showcmd显示行号和操作命令gg光标定位到第一行。d46d删除当前行以及后面的45行。:11,28d删除11到28行。/You搜索字符串You并定位到该字符位置。dG删除当前位置行到最后。:%s/10.5.5/10.1.8/g将所有行中10.5.5替换为10.1.8。% 针对所有内容s查找并替换g替换查找到的所有内容。/224定位这个数字。cw替换为0然后esc。将30换成130。光标定位到ns1修改dns为223.5.5.5C然后输入223.5.5.5;。修改路由器为10.1.8.2使用 r 替换末尾1为2。修改广播地址10.1.8.31为10.1.8.255。ZZ保存退出。3、vim 配置两个位置全局/etc/vimrc给所有用户设置一些默认值。全局要进入管理员模式操作用户~/.vimrc特定用户的个性化设置。常见的设置命令[xuhaoyucentos7 ~]$vim~/.vimrcsetnumber# 显示行号setshowcmd# 显示操作命令setaits2# ai自动缩进tstabspace使用2个空格代替,即首行缩进两格setcursorcolumn# 列高亮对齐显示setcursorline# 行高亮对齐显示三、Linux 输入输出重定向1、标准流的核心组成stdin标准输入编号 0是进程接收输入数据的通道默认连接到键盘程序通过它读取用户输入如scanf、read等操作会从stdin获取数据。用法为仅读取只能从该通道输入数据到进程。stdout标准输出编号 1是进程输出正常结果的通道默认连接到终端屏幕程序的普通打印如printf、echo等会输出到stdout。用法为仅写入进程只能向该通道输出数据。stderr标准错误编号 2是进程输出错误信息的通道默认也连接到终端屏幕用于区分正常输出和错误提示如程序崩溃、逻辑错误的提示信息。用法为仅写入专门用于输出错误内容。3 号通道其他文件filename代表进程与自定义文件的交互通道非标准流没有默认连接需要手动指定文件。用法为读取和 / 或写入可根据需求对文件进行读、写操作。流程逻辑输入用户通过键盘向stdin输入数据进程从stdin读取这些输入。输出进程将正常结果写入stdout错误信息写入stderr两者默认都显示在终端同时进程也可通过 3 号通道与其他文件进行数据的读写交互。这种模型是 Unix/Linux 系统中 “一切皆文件” 思想的体现让进程能以统一的方式处理不同来源 / 目标的数据也为重定向Redirect等操作如把stdout输出到文件、把文件内容作为stdin输入提供了基础。2、标准输出重定向到文件用法说明file重定向以覆盖文件file重定向以附加到文件2file重定向以覆盖文件2file重定向以附加文件2/dev/null将错误信息覆盖/dev/null1一般可省略不写/dev/null将正确信息覆盖/dev/null,从而把错误信息扔掉示例# 将找到的文件名清单覆盖写入到passwd.list文件中[xuhaoyucentos7 ~22:23:57]$find/etc-namepasswdpasswd.list# find: ‘/etc/grub.d’: 权限不够# find: ‘/etc/pki/CA/private’: 权限不够# find: ‘/etc/pki/rsyslog’: 权限不够# find: ‘/etc/dhcp’: 权限不够# find: ‘/etc/selinux/targeted/active’: 权限不够# ...#在输出结果中看不到能找到的文件了这是因为所以能找到的文件都被覆盖到passwd.list 中了#而这段代码的还是还是以find 查找查找 /etc 目录下 文件名是passwd的所有文件而不是去查看passwd.list 中的文件#若要查看psswd.list 还是得用cat命令[xuhaoyucentos7 ~22:24:20]$catpasswd.list# /etc/pam.d/passwd# /etc/passwd# 补充说明# 1passwd.list可简写为passwd.list# 1和之间不能有空格# 将错误信息覆盖写入到passwd.err文件中[xuhaoyucentos7 ~22:05:59]$find/etc-namepasswd2passwd.list# /etc/pam.d/passwd# /etc/passwd#输出结果为什么是这样和上面说的一样#更简单 一步到位的方法[xuhaoyucentos7 ~22:30:08]$find/etc-namepasswdpasswd.list2passwd.err#就像我们平时聊天一样我今天吃饭了我今天睡觉了 可简写为我今天吃饭睡觉了#把这段命令拆分下来为 find /etc -name passwd# passwd.list# 2passwd.err# 将错误信息扔掉[xuhaoyucentos7 ~22:27:30]$find/etc-namepasswd2/dev/null# /etc/pam.d/passwd# /etc/passwd# 将多个文件内容合并为1个[xuhaoyucentos7 ~22:36:08]$cat/etc/fstab /etc/hostsallinone# 用于清空文件内容也可用于创建一个空文件testfile[xuhaoyucentos7 ~22:32:38]$testfile#相当于直接将屏幕默认屏幕是没有任何东西的覆盖testfile,用一个啥都没有的东西覆盖那不就是相当于清空嘛# 如果不存在则创建一个文件如果文件存在则啥也不干。[xuhaoyucentos7 ~22:31:53]$find/etc-namepasswdpasswd.list2passwd.errfile 相当于file 21重定向stdout和stderr以覆盖同一个文件file 相当于file 21重定向stdout和stderr以附加同一个文件# 同时将错误信息、正确信息 覆盖 写入到相同文件[xuhaoyucentos7 ~]$find/etc-namepasswdpasswd.all# 同时将错误信息、正确信息 追加 写入到相同文件[xuhaoyucentos7 ~]$find/etc-namepasswdpasswd.all3、标准输出重定向到程序管道符|实现将上一个命令的输出作为标准输入传递给下一个命令。可以理解为“既要有要” 同时满足多个要求健达奇趣蛋说是示例:查看哪个man page 可以resize ext4文件系统大小# 搜索所有ext4相关手册并保存到ext4.man文件中[xuhaoyucentos7 ~]$man-kext4ext4.man# 过滤ext4.man文件中含有resize的行[xuhaoyucentos7 ~]$grepresizer ext4.man# 以上两个命令和合并为一行[xuhaoyucentos7 ~]$man-kext4|grepresizer resize2fs(8)- ext2/ext3/ext4filesystem resizer# 示例2 获取ens33网卡ip地址[xuhaoyucentos7 ~]$ipaddr|grepens33$|awk{print $2}|cut-d/-f110.1.8.88运用标准输出重定向到程序思想就是[xuhaoyucentos7 ~]$echo/etc/passwd|ls-l总用量2#-rw-rw-r--. 1 laoma laoma 0 12月 15 15:08 file#-rw-rw-r--. 1 laoma laoma 0 12月 15 15:08 file-a1、tee命令tee 命令作用接收管道传递过来的stdin并继续作为stdout输出可以这么去理解tee是一个分流器、三通水管一边把命令输出打印到屏幕一边同时写入文件普通重定向 只会存文件屏幕看不到输出tee 两者兼得。[xuhaoyucentos7 ~]$passwd.list[xuhaoyucentos7 ~]$catpasswd.list# tee命令覆盖保存到文件[xuhaoyucentos7 ~]$find/etc-namepasswd2/dev/null|teepasswd.list#/etc/pam.d/passwd#/etc/passwd[xuhaoyucentos7 ~]$catpasswd.list#/etc/pam.d/passwd#/etc/passwd# tee命令追加保存到文件[xuhaoyucentos7 ~]$find/etc-namepasswd2/dev/null|tee-apasswd.list#/etc/pam.d/passwd#/etc/passwd[xuhaoyucentos7 ~]$catpasswd.list#/etc/pam.d/passwd#/etc/passwd#/etc/pam.d/passwd#/etc/passwd# tee的标准输出继续通过管道传递下去[xuhaoyucentos7 ~]$man-kpasswd|teepasswd.man|greppasswd2、标准输入重定向给程序运用 简单理解 和 就看箭头指向谁指向谁就是流向谁# 常规查看文件[xuhaoyucentos7 ~]$cat/etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6# cat 命令标准输入数据[xuhaoyucentos7 ~]$cat/etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain#直观区分#cat 文件cat 主动读文件#cat 文件shell 把文件塞给 cat 的输入流cat 被动接收[xuhaoyucentos7 ~]$cathello# 键盘输入hello后回车hello# 屏幕上显示helloctrld# 输入完成退出# shell读取到EOF时候代表标准输入完成[studentservera ~]$catEOFhelloworldEOF hello world[xuhaoyucentos7 ~]$cathello worldhello world

相关新闻

C4爆炸全图扣血:游戏引擎机制异常分析与修复方案

C4爆炸全图扣血:游戏引擎机制异常分析与修复方案

以防你们不知道,现在C4炸了以后全图扣血:游戏机制深度解析与实战应对策略在最近的游戏更新中,不少玩家发现C4爆炸后竟然出现了全图范围扣血的异常现象。这种突如其来的机制变化让很多老玩家都感到措手不及,更不用说新手玩家了。本…

2026/10/12 12:20:58 阅读更多 →
LinkSwift网盘直链下载助手:九大平台高速下载终极解决方案

LinkSwift网盘直链下载助手:九大平台高速下载终极解决方案

LinkSwift网盘直链下载助手:九大平台高速下载终极解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …

2026/10/2 4:04:09 阅读更多 →
Windows微信自动化终极指南:wxauto快速实现微信机器人开发

Windows微信自动化终极指南:wxauto快速实现微信机器人开发

Windows微信自动化终极指南:wxauto快速实现微信机器人开发 【免费下载链接】wxauto Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人 项目地址: https://gitcode.com/gh_mirr…

2026/10/3 8:44:49 阅读更多 →

最新新闻

CATIA V5R13汽车线束设计:三维布线到展平BOM的避坑指南

CATIA V5R13汽车线束设计:三维布线到展平BOM的避坑指南

简介:针对CATIA V5R13汽车线束设计的PPT课件,面向电气工程初学者与CATIA V5新用户,系统讲解线束在数字样机中的创建、装配与连接方法。在整车开发中,线束承担汽车电气系统中电能与信号传输,设计质量直接影响整车布线合…

2026/10/13 14:21:17 阅读更多 →
机器学习从入门到精通:一份带路标的实操地图

机器学习从入门到精通:一份带路标的实操地图

经常被问到同一个问题:学Python机器学习,到底怎么从入门走到精通?问的人五花八门,有想转行的程序员,有在校学生,也有做数据分析正考虑转型的同事。大家手里不缺教程,收藏夹里躺着几十个视频和几…

2026/10/13 14:21:17 阅读更多 →
新人接手项目管理:第一周先做三张表,快速建立掌控感

新人接手项目管理:第一周先做三张表,快速建立掌控感

1. 新人接手项目管理的真实困境:不是不会管,是不知道先管什么刚入职不久就被拉进项目群、丢过来一份需求文档、告诉你"这个项目你来跟",这种场景在不少公司都挺常见。尤其是节奏快、业务复杂度高的环境里,新人往往还没搞…

2026/10/13 14:21:17 阅读更多 →
三月份实习笔记:数据整理、需求梳理与竞品调研的实战复盘

三月份实习笔记:数据整理、需求梳理与竞品调研的实战复盘

1. 三月份实习笔记的缘起与记录逻辑三月份是很多团队一年中节奏切换最明显的节点。春节后的复工潮刚过,年度目标已经拆解到季度,各种项目开始从规划阶段进入实际执行。对于实习生来说,这个时间点进入团队,既赶上了业务最忙碌的窗口…

2026/10/13 14:21:17 阅读更多 →
Tableau标靶图实战:从坐标重构到业务决策穿透

Tableau标靶图实战:从坐标重构到业务决策穿透

1. 标靶图不是炫技,是业务问题的视觉翻译器“手把手教你 Tableau 绘制标靶图(十)”——这个标题里藏着一个被很多人忽略的关键信号:它不是第1次讲,而是第10次。这意味着标靶图在真实业务场景中已被反复验证、持续迭代&…

2026/10/13 14:21:17 阅读更多 →
JVMTI Agent开发避坑指南:从加载失败到生产级稳定

JVMTI Agent开发避坑指南:从加载失败到生产级稳定

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:20:16 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →