第四章 命令行管理文件 3

发布时间:2026/7/16 9:44:26
第四章 命令行管理文件 3 3.编辑普通文件3.1 数据流重定向标准输入standard input简称 stdin默认情况下标准输入指从键盘获取的输入标准输出standard output简称 stdout默认情况下命令执行所回传正确的信息会输出到屏幕上标准错误输出standard error output简称 stderr默认情况下标准错误输出可理解为命令执行失败后所回传的错误信息会输出到屏幕上不管正确或错误的数据都默认输出到屏幕上所以屏幕显示是混乱的。所以就需要用数据流重定向将这两条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去而分别传送所用的特殊字符如下所示标准输入stdin代码为 0标准输出stdout代码为 1标准错误输出stderr代码为 2重定向操作符概念重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。重定向操作符本身不是命令而是命令中附加的可改变命令的输入和输出对象的特殊符号。符号输出重定向操作符 输入重定向操作符 用法命令 文件 或 命令 1文件 : 将命令执行后的结果不在默认的屏幕上显示而是以追加的方式写入到指定文件中若指定的文件不存在则自动创建该文件命令 2文件 : 将命令执行后所产生的错误信息不在默认的屏幕上显示而是以覆盖的方式写入到指定文件中若指定的文件不存在则自动创建该文件命令 2/dev/null 将命令执行后所产生的错误信息不在默认的屏幕上显示而是写入到空设备文件黑洞中即将输出的错误信息丢弃掉ls /home/ /aaa list.txt 21一样命令 文件 命令 文件 将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示而是以覆盖的方式写入到指定文件中若指定的文件不存在则自动创建该文件命令 文件 将命令执行后的正确输出信息以追加的方式写入到指定的文件中不覆盖原文件内容若指定的文件不存在则自动创建该文件命令 文件 使命令从指定的文件中读取数据作为输入命令 结束标识字符串 在命令行读取数据作为输入直到遇到指定的结束标识字符串#将文件读取到数据为输入[rootredhat ~]# tr a-z A-Z /etc/passwd[rootredhat ~]# cat file#设置一个结束标识符表示输入结束[rootredhat ~]# cat file3 end将界面上输入的内容覆盖到文件里当输入到end时结束3.2 echo输出字符串到屏幕上提取变量的值格式echo “字符串”echo “$变量”输出变量的数据#查看变量数据[rootredhat ~]# aahello aa[rootredhat ~]# echo $aa#查看shell文件执行路径[rootredhat ~]# echo $SHELL#合并文件[rootredhat ~]# cat t1.txt t2.txt t3.txt3.3 tee读取标准输入的数据并将其内容输出到文件的同时输出到屏幕即想把输出保存到文件中又想在屏幕上看到内容tee 指令会从标准输入设备读取数据将其内容输出到标准输出设备同时输出到文件。格式tee -选项 文件选项选项功能-a追加#将数据追加到文件里但不会显示在界面上[rootredhat ~]# cat /etc/passwd file1#将数据追加到文件里并显示在界面上[rootredhat ~]# cat /etc/passwd | tee file13.4 vi / vim 编辑器在 Linux 系统中一切都是文件配置一个服务就是使用文本编辑器修改配置文件的参数所有的 Unix 系统都会内建 vi 文本编辑器其他的文本编辑器则不一定会存在很多个别软件的编辑接口都会主动调用 vi如crontab, visudo 等指令Vim 的发布最早可以追溯到 1991 年英文全称为Vi IMproved也就是对 vi 编辑器的提升版本最大的特点是以字体颜色辨别语法的正确性方便程序设计编辑速度快vim编辑器有三个模式命令模式也就是阅读模式可移动光标实现文本删除、复制、粘贴等操作输入模式编辑模式对文件进行编辑末行模式保存、退出、查找文本进入 vim 编辑器的时候默认是在命令模式命令模式→输入模式a、i、o、s、A、I、O、S输入模式→命令模式ESC 键命令模式→末行模式冒号或者 / 键末行模式→命令模式ESC 键注意输入模式和末行模式之间不能直接进入需要通过命令模式转换命令模式按键功能上下左右键移动光标单个字符w光标向后移动单词字符b光标向前移动单词字符^光标跳转到行首$光标跳转到行尾gg光标跳转到首行第一个光标G光标跳转到末行最后一个光标行号gg / 行号G光标跳转到指定行按键功能dd删除光标所在行数字dd删除光标开始向下n行d^删除光标先前至首字符d$删除光标向后至尾字符yy复制光标所在行数字yy复制光标开始向下n行p小写粘贴到光标所在行下一行P粘贴到光标所在行上一行u撤销输入模式按键功能i在光标前插入I在光标所在行行首第一个非空字符插入a在光标后插入A在光标所在行行尾最后一个非空字符插入o在光标所在行下一行插入O在光标所在行上一行插入s删除光标所在字符并进入插入模式S删除光标所在行并进入插入模式末行模式搜索按键功能/word查找word字符串:s/old/new将光标“所在行“查找到的”第一个“单词”old“替换为”new“:s/old/new/g将光标”所在行“查找到的所有单词”old“替换为”new“:n1,n2 s/old/new/g将n1行到n2行全部的”old“替换为”new“:%s/old/new/g将整个文件内容里的”old“替换为”new“保存退出按键功能:q退出没有修改文件才能这样退:q!强制不保存退出退出后文件不会做改变:w保存文件:w/root/file将文件另存为/root/file:wq 或者 ZZ 命令模式下输入保存并退出:wq强制保存并退出其他按键功能:r/home/file将/home/file文件读入当前文件:g/word/d查找包含”word“的行并删除:set nu显示行号:set nonu关闭显示行号:n1,n2 d删除n1 到 n2行的内容:n1,n2 co n3复制n1 到n2行的内容到n3行后面#异常处理#编辑文件时异常退出再次打开文件会出现#按R键回复文件内容#正常处理文件保存退出#异常退出每次会出现以.swp 为结尾的同名文件需要删除rm -rf .a1.swp#再次使用文件回复正常