【linux】(1)文件操作及vi
文件和目录的创建
创建文件
-
touch
命令:创建一个新的空文件。touch filename.txt
-
echo
命令:创建一个文件并写入内容。echo "Hello, World!" > filename.txt
-
cat
命令:将内容写入文件。cat > filename.txt
然后输入内容,按
Ctrl+D
结束。
创建目录
-
mkdir
命令:创建一个新的目录。mkdir mydir
-
mkdir -p
命令:递归创建目录。mkdir -p parentdir/childdir
文件和目录的查看
-
ls
命令:列出目录内容。ls
-
ls -l
命令:详细列出目录内容。ls -l
-
ls -a
命令:显示所有文件,包括隐藏文件。ls -a
-
cat
命令:显示文件内容。cat filename.txt
-
more
和less
命令:分页查看文件内容。more filename.txt less filename.txt
-
head
命令:查看文件开头部分。head filename.txt
-
tail
命令:查看文件结尾部分。tail filename.txt
文件和目录的复制
-
cp
命令:复制文件。cp sourcefile.txt destinationfile.txt
-
cp -r
命令:递归复制目录。cp -r sourcedir destinationdir
文件和目录的移动和重命名
mv
命令:移动或重命名文件。mv oldname.txt newname.txt mv filename.txt /newpath/
文件和目录的删除
-
rm
命令:删除文件。rm filename.txt
-
rm -r
命令:递归删除目录。rm -r mydir
-
rm -f
命令:强制删除文件。rm -f filename.txt
文件和目录的权限管理
-
chmod
命令:更改文件权限。chmod 755 filename.txt
-
chown
命令:更改文件所有者。chown user:group filename.txt
文件搜索
-
find
命令:在目录中搜索文件。find /path -name filename.txt
-
grep
命令:在文件内容中搜索特定字符串。grep "search term" filename.txt
文件和目录的压缩与解压
-
tar
命令:打包和解包文件。tar -cvf archive.tar directory/ tar -xvf archive.tar
-
gzip
和gunzip
命令:压缩和解压文件。gzip filename.txt gunzip filename.txt.gz
-
zip
和unzip
命令:压缩和解压文件。zip archive.zip file1 file2 unzip archive.zip
磁盘空间查看
-
df
命令:查看文件系统磁盘空间使用情况。df -h
-
du
命令:查看文件和目录磁盘使用情况。du -sh filename.txt du -sh directory/
文件编辑vi
启动和退出 Vi
-
启动 Vi
vi filename
如果
filename
存在,Vi 会打开该文件;如果不存在,Vi 会创建一个新文件。 -
退出 Vi
- 保存并退出:
:wq
- 仅保存:
:w
- 退出不保存:
:q!
- 保存并退出:
模式
Vi 有三种主要模式:
- 命令模式:这是 Vi 的默认模式,在该模式下可以执行各种命令。
- 插入模式:在该模式下可以插入和编辑文本。
- 底线命令模式:在该模式下可以输入以冒号
:
开头的命令。
切换模式
-
进入插入模式
- 在光标前插入:按
i
- 在光标后插入:按
a
- 在行首插入:按
I
- 在行尾插入:按
A
- 在当前行下面插入新行:按
o
- 在当前行上面插入新行:按
O
- 在光标前插入:按
-
回到命令模式
- 在插入模式下按
Esc
- 在插入模式下按
-
进入底线命令模式
- 在命令模式下按
:
- 在命令模式下按
基本命令
-
光标移动
- 向上移动:按
k
- 向下移动:按
j
- 向左移动:按
h
- 向右移动:按
l
- 移动到行首:按
0
- 移动到行尾:按
$
- 移动到文件头:按
gg
- 移动到文件尾:按
G
- 移动到指定行:按
:n
,例如:10
移动到第10行 - 移动到当前行的第 n 个字符:按
n|
,例如5|
移动到当前行的第 5 个字符 - 移动到下一个单词开头:按
w
- 移动到下一个单词结尾:按
e
- 移动到上一个单词开头:按
b
- 向上移动:按
-
删除文本
- 删除当前字符:按
x
- 删除前一个字符:按
X
- 删除当前行:按
dd
- 删除光标到行尾的内容:按
D
- 删除光标到行首的内容:按
d0
- 删除指定数量的字符:按
ndd
,例如3dd
删除3行
- 删除当前字符:按
-
复制和粘贴
- 复制当前行:按
yy
- 复制选定区域:按
y
后跟移动命令(如yw
复制一个单词) - 粘贴复制的内容:按
p
(在光标后粘贴)或P
(在光标前粘贴) - 复制多行:按
nyy
,例如3yy
复制当前行及以下两行
- 复制当前行:按
-
替换
- 替换当前字符:按
r
后跟新字符 - 替换当前行:按
R
进入替换模式,按Esc
退出
- 替换当前字符:按
-
查找和替换
- 查找字符串:按
/
后跟字符串,按n
查找下一个 - 向上查找字符串:按
?
后跟字符串 - 替换当前行的字符串:按
:s/旧字符串/新字符串/
- 替换整个文件的字符串:按
:%s/旧字符串/新字符串/g
- 替换当前行中第一个匹配的字符串:按
:s/旧字符串/新字符串/1
- 替换当前行中所有匹配的字符串:按
:s/旧字符串/新字符串/g
- 查找字符串:按
高级操作
-
显示行号
:set number
-
取消显示行号
:set nonumber
-
撤销和重做
- 撤销:按
u
- 重做:按
Ctrl+r
- 撤销:按
-
宏录制
- 开始录制:按
q
后跟寄存器(如qa
开始录制到寄存器a
) - 停止录制:按
q
- 播放宏:按
@
后跟寄存器(如@a
播放寄存器a
中的宏)
- 开始录制:按
-
可视模式
- 进入可视模式:按
v
- 进入行可视模式:按
V
- 进入块可视模式:按
Ctrl+v
- 在可视模式中选择文本后,可以使用
d
删除,y
复制,~
切换大小写
底线命令
-
保存文件
:w
-
退出 Vi
:q
-
保存并退出
:wq
-
强制退出
:q!
-
读取另一个文件的内容
:r filename
-
保存到另一个文件
:w newfilename
-
打开另一个文件
:e anotherfile
-
查看当前文件名和状态
:f
设置选项
-
设置自动缩进
:set autoindent
-
设置制表符宽度
:set tabstop=4
-
设置扩展名自动补全
:set wildmenu
-
高亮搜索结果
:set hlsearch
-
取消高亮搜索结果
:set nohlsearch
-
显示匹配的括号
:set showmatch
-
忽略大小写搜索
:set ignorecase
-
大小写敏感搜索
:set noignorecase
文件分割与多窗口
-
水平分割窗口
:split filename
快捷键:按
Ctrl-w
后按s
-
垂直分割窗口
:vsplit filename
快捷键:按
Ctrl-w
后按v
-
切换窗口
快捷键:按Ctrl-w
后按w
-
关闭当前窗口
:close
快捷键:按
Ctrl-w
后按c
-
调整窗口大小
快捷键:按Ctrl-w
后按+
或-
进行垂直调整,按>
或<
进行水平调整
标签页管理
-
新建标签页
:tabnew filename
-
切换到下一个标签页
快捷键:按gt
-
切换到上一个标签页
快捷键:按gT
-
关闭当前标签页
:tabclose
-
列出所有标签页
:tabs
其他有用的命令
-
删除多行
快捷键:按:<start>,<end>d
,例如:1,10d
删除第 1 到第 10 行 -
缩进多行
快捷键:按:<start>,<end>><count>
或:<start>,<end><count>
,例如:1,10>>
向右缩进第 1 到第 10 行 -
撤销缩进
快捷键:按:<start>,<end><<count>
或:<start>,<end><count>
,例如:1,10<<
向左缩进第 1 到第 10 行 -
转换大小写
快捷键:按~
切换选中文本的大小写 -
插入当前日期和时间
在插入模式下按Ctrl-r =strftime("%Y-%m-%d %H:%M:%S")
相关文章:
【linux】(1)文件操作及vi
文件和目录的创建 创建文件 touch 命令:创建一个新的空文件。 touch filename.txtecho 命令:创建一个文件并写入内容。 echo "Hello, World!" > filename.txtcat 命令:将内容写入文件。 cat > filename.txt然后输入内容&…...

【5】MySQL数据库备份-XtraBackup - 全量备份
MySQL数据库备份-XtraBackup-全量备份 前言环境版本 安装部署下载RPM 包二进制包 安装卸载 场景分析全量备份 | 恢复备份恢复综合 增量备份 | 恢复部分备份 | 恢复 前言 关于数据库备份的一些常见术语、工具等,可见《MySQL数据库-备份》章节,当前不再重…...
数据治理-数据标准演示
数据字典 数据标准-数据字典 词根 数据标准-词根 业务字典映射 数据标准-业务字典映射 标准文档 数据标准-标准文档...

基于Chisel的FPGA流水灯设计
Chisel流水灯 一、Chisel(一)什么是Chisel(二)Chisel能做什么(三)Chisel的使用(四)Chisel的优缺点1.优点2.缺点 二、流水灯设计 一、Chisel (一)什么是Chise…...

LabVIEW齿轮调制故障检测系统
LabVIEW齿轮调制故障检测系统 概述 开发了一种基于LabVIEW平台的齿轮调制故障检测系统,实现齿轮在恶劣工作条件下的故障振动信号的实时在线检测。系统利用LabVIEW的强大图形编程能力,结合Hilbert包络解调技术,对齿轮的振动信号进行精确分析…...

AI帮写:探索国内AI写作工具的创新与实用性
随着AI技术的快速发展,AI写作正成为创作的新风口。但是面对GPT-4这样的国际巨头,国内很多小伙伴往往望而却步,究其原因,就是它的使用门槛高,还有成本的考量。 不过,随着GPT技术的火热,国内也涌…...

n后问题 回溯笔记
问题描述 在nn格的棋盘上放置彼此不受攻击的n个皇后。 按照国际象棋的规则,皇后可以攻击与之处在同 一行或同一列或同一斜线上的棋子。n后问题等价于在nn格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。 代码 import java.uti…...
简述Java中实现Socket通信的步骤
在Java中,实现Socket通信通常涉及客户端和服务器端两个角色。以下是它们各自的基本步骤: 服务器端(Server) 创建ServerSocket对象: 在服务器端,首先需要创建一个ServerSocket对象。这个对象会监听来自客户…...

Asp.Net Core 实现分片下载的最简单方式
技术群里的朋友遇到了这个问题,起初的原因是他对文件增加了一个属性配置 fileResult.EnableRangeProcessing true;这个属性我从未遇到过,然后,去F1查看这个属性的描述信息也依然少的可怜,只有简单的描述为(获取或设置为 启用范围…...
[Mac软件]Leech for Mac v3.2 - 轻量级mac下载工具
黑果魏叔推荐Leech是由Many Tricks开发的适用于Mac OS X的轻量级且功能强大的下载管理器。 Leech让您完全控制下载,并与浏览器完全集成。您可以将下载排队,暂停和恢复,从受密码保护的服务器下载,并将密码存储在系统范围的安全钥匙…...

留给“端侧大模型”的时间不多了
端侧大模型(Edge AI models),也就是只在设备本地(如智能手机、IoT设备、嵌入式系统等)运行的大模型,过去一两年来非常流行。 具体表现在,终端设备厂商,如苹果、荣耀、小米、OV等&…...

Pytest框架中的Setup和Teardown功能
在 pytest 测试框架中,setup 和 teardown是用于在每个测试函数之前和之后执行设置和清理的动作,而pytest 实际上并没有内置的 setup 和 teardown 函数,而是使用了一些装饰器或钩子函数来实现类似的功能。 学习目录 钩子函数(Hook…...

yolov10/v8 loss详解
v10出了就想看看它的loss设计有什么不同,看下来由于v8和v10的loss部分基本一致就放一起了。 v10的论文笔记,还没看的可以看看,初步尝试耗时确实有提升 好记性不如烂笔头,还是得记录一下,以免忘了,废话结束…...
Typescript高级: 深入理解infer关键字
概述 在 TS 中,infer 是一个高级类型操作,特别是条件类型和映射类型中非常有用的关键字它在泛型中使用也会是一个强大工具,增强了类型推断的能力,让开发者更灵活地处理和操作类型它允许在泛型类型推导过程中捕获一个具体的类型&a…...

JQC-3FF-S-Z 继电器模块使用(arduino)
前言 继电器模块可以控制电流的接通和非接通状态,和开关一样。实际上是用小电流去控制大电流运作的一种“自动开关” 本文只是简单使用继电器模块做一个 led 点亮和熄灭的案例,结合案例可以和 nodemcu 等板子结合做出远程控制开关。 材料准备 杜邦线…...

黑马一站制造数仓实战2
问题 DG连接问题 原理:JDBC:用Java代码连接数据库 Hive/SparkSQL:端口有区别 可以为同一个端口,只要不在同一台机器 项目:一台机器 HiveServer:10000 hiveserver.port 10000 SparkSQL:10001…...

网络I/O模型
网络I/O模型 同步I/O阻塞I/O非阻塞I/OI/O多路复用select函数接口示例 poll函数接口示例 poll 和 select 的区别epoll原理:示例 异步I/O 同步I/O 阻塞I/O 一个基本的C/S模型如下图所图:其中 listen()、connect()、write()、read() 都是阻塞I/O࿰…...

Docker 简介和安装
目录 Docker 是什么 跟普通虚拟机的对比 打包、分发、部署 Docker 部署的优势 Docker 通常用来做什么 重要概念:镜像、容器 安装 镜像加速源 Docker 是什么 Docker 是一个应用打包、分发、部署的工具 你也可以把它理解为一个轻量的虚拟机,它只虚…...

【源码】Spring Data JPA原理解析之Repository自定义方法命名规则执行原理(二)
Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 5、Spring Data JPA自定…...
Vue前端中从后端获取图片验证码
前端发送请求 <template><el-form :model"user" :rules"rules" ref"userForm" class"login" label-width"auto" style"max-width: 600px"><el-form-item label"用户名" prop"name…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...