news 2026/7/16 9:43:49

第四章 命令行管理文件 3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第四章 命令行管理文件 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 2>&1一样)

命令 &>文件 命令 >&文件 : 将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件

命令 >>文件 : 将命令执行后的正确输出信息以追加的方式写入到指定的文件中,不覆盖原文件内容,若指定的文件不存在,则自动创建该文件

命令 <文件 : 使命令从指定的文件中读取数据作为输入

命令 <<结束标识字符串 : 在命令行读取数据作为输入,直到遇到指定的结束标识字符串

#将文件读取到数据为输入

[root@redhat ~]# tr a-z A-Z < /etc/passwd
[root@redhat ~]# cat < file

#设置一个结束标识符,表示输入结束

[root@redhat ~]# cat > file3 << end(将界面上输入的内容覆盖到文件里,当输入到end时结束)

3.2 echo

  • 输出字符串到屏幕上
  • 提取变量的值

格式

echo “字符串”

echo “$变量”(输出变量的数据)

#查看变量数据

[root@redhat ~]# aa="hello aa"

[root@redhat ~]# echo $aa

#查看shell文件执行路径

[root@redhat ~]# echo $SHELL

#合并文件

[root@redhat ~]# cat t1.txt t2.txt > t3.txt

3.3 tee

  • 读取标准输入的数据,并将其内容输出到文件的同时输出到屏幕(即想把输出保存到文件中,又想在屏幕上看到内容)
  • tee 指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时输出到文件。

格式

tee -选项 文件

选项

选项功能
-a追加

#将数据追加到文件里但不会显示在界面上

[root@redhat ~]# cat /etc/passwd > file1

#将数据追加到文件里并显示在界面上

[root@redhat ~]# cat /etc/passwd | tee file1

3.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

#再次使用文件回复正常

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 9:42:50

Windows系统核心特性与高效管理全解析

1. Windows系统概述与核心特性 Windows操作系统作为全球使用最广泛的个人电脑平台&#xff0c;自1985年诞生以来已经迭代了数十个版本。当前主流版本包括Windows 10/11的家庭版、专业版和企业版&#xff0c;以及面向服务器的Windows Server系列。系统采用图形用户界面(GUI)与命…

作者头像 李华
网站建设 2026/7/16 9:42:36

Linux文件共享服务:FTP与NFS配置与安全实践

1. FTP与NFS服务概述在Linux系统中&#xff0c;文件共享是网络服务中最基础也是最重要的功能之一。FTP&#xff08;File Transfer Protocol&#xff09;和NFS&#xff08;Network File System&#xff09;作为两种主流的文件传输协议&#xff0c;各自有着不同的设计理念和应用场…

作者头像 李华
网站建设 2026/7/16 9:40:50

如何利用 jiuwen-deepsearch 多步推理引擎提升复杂问题解决效率

如何利用 jiuwen-deepsearch 多步推理引擎提升复杂问题解决效率 【免费下载链接】jiuwen-deepsearch Jiuwen-deepsearch is a deep search agent equipped with planning-retrieval-reflection capabilities, designed to help developers improve the accuracy and developmen…

作者头像 李华
网站建设 2026/7/16 9:38:50

ATX电源安全改装指南:从原理到实践

1. ATX电源改造的核心价值与风险控制 作为一名折腾过十几个ATX电源改装的硬件爱好者&#xff0c;我深刻理解这种改造的吸引力与潜在风险。ATX电源作为计算机的标准供电部件&#xff0c;其核心优势在于极高的功率密度和成熟的电路设计。一个标准的500W ATX电源在二手市场可能只需…

作者头像 李华
网站建设 2026/7/16 9:38:04

C++分数类(Fraction)实现:从设计到优化的完整指南

1. 项目概述&#xff1a;为什么我们需要一个自定义的分数类&#xff1f; 在C的标准库 <numeric> 里&#xff0c;我们有一个 std::gcd 函数可以求最大公约数&#xff0c;但翻遍整个STL&#xff0c;你也找不到一个现成的、能直接处理像 3/4 或 -5/7 这样有理数的 Frac…

作者头像 李华
网站建设 2026/7/16 9:37:48

电源设计实战:6大关键经验与优化技巧

1. 电源设计中的"黄金法则"&#xff1a;工程师必知的6个实战经验从事硬件设计十多年&#xff0c;我见过太多因为电源问题导致的系统故障——从简单的电压不稳到严重的芯片烧毁。电源就像电子系统的心脏&#xff0c;它的健康状况直接影响整个设备的寿命和稳定性。今天…

作者头像 李华