当前位置: 首页 > news >正文

【linux】(1)文件操作及vi

文件和目录的创建

创建文件
  1. touch 命令:创建一个新的空文件。

    touch filename.txt
    
  2. echo 命令:创建一个文件并写入内容。

    echo "Hello, World!" > filename.txt
    
  3. cat 命令:将内容写入文件。

    cat > filename.txt
    

    然后输入内容,按 Ctrl+D 结束。

创建目录
  1. mkdir 命令:创建一个新的目录。

    mkdir mydir
    
  2. mkdir -p 命令:递归创建目录。

    mkdir -p parentdir/childdir
    

文件和目录的查看

  1. ls 命令:列出目录内容。

    ls
    
  2. ls -l 命令:详细列出目录内容。

    ls -l
    
  3. ls -a 命令:显示所有文件,包括隐藏文件。

    ls -a
    
  4. cat 命令:显示文件内容。

    cat filename.txt
    
  5. moreless 命令:分页查看文件内容。

    more filename.txt
    less filename.txt
    
  6. head 命令:查看文件开头部分。

    head filename.txt
    
  7. tail 命令:查看文件结尾部分。

    tail filename.txt
    

文件和目录的复制

  1. cp 命令:复制文件。

    cp sourcefile.txt destinationfile.txt
    
  2. cp -r 命令:递归复制目录。

    cp -r sourcedir destinationdir
    

文件和目录的移动和重命名

  1. mv 命令:移动或重命名文件。
    mv oldname.txt newname.txt
    mv filename.txt /newpath/
    

文件和目录的删除

  1. rm 命令:删除文件。

    rm filename.txt
    
  2. rm -r 命令:递归删除目录。

    rm -r mydir
    
  3. rm -f 命令:强制删除文件。

    rm -f filename.txt
    

文件和目录的权限管理

  1. chmod 命令:更改文件权限。

    chmod 755 filename.txt
    
  2. chown 命令:更改文件所有者。

    chown user:group filename.txt
    

文件搜索

  1. find 命令:在目录中搜索文件。

    find /path -name filename.txt
    
  2. grep 命令:在文件内容中搜索特定字符串。

    grep "search term" filename.txt
    

文件和目录的压缩与解压

  1. tar 命令:打包和解包文件。

    tar -cvf archive.tar directory/
    tar -xvf archive.tar
    
  2. gzipgunzip 命令:压缩和解压文件。

    gzip filename.txt
    gunzip filename.txt.gz
    
  3. zipunzip 命令:压缩和解压文件。

    zip archive.zip file1 file2
    unzip archive.zip
    

磁盘空间查看

  1. df 命令:查看文件系统磁盘空间使用情况。

    df -h
    
  2. du 命令:查看文件和目录磁盘使用情况。

    du -sh filename.txt
    du -sh directory/
    

文件编辑vi

启动和退出 Vi
  1. 启动 Vi

    vi filename
    

    如果 filename 存在,Vi 会打开该文件;如果不存在,Vi 会创建一个新文件。

  2. 退出 Vi

    • 保存并退出:
      :wq
      
    • 仅保存:
      :w
      
    • 退出不保存:
      :q!
      
模式

Vi 有三种主要模式:

  1. 命令模式:这是 Vi 的默认模式,在该模式下可以执行各种命令。
  2. 插入模式:在该模式下可以插入和编辑文本。
  3. 底线命令模式:在该模式下可以输入以冒号 : 开头的命令。
切换模式
  1. 进入插入模式

    • 在光标前插入:按 i
    • 在光标后插入:按 a
    • 在行首插入:按 I
    • 在行尾插入:按 A
    • 在当前行下面插入新行:按 o
    • 在当前行上面插入新行:按 O
  2. 回到命令模式

    • 在插入模式下按 Esc
  3. 进入底线命令模式

    • 在命令模式下按 :
基本命令
  1. 光标移动

    • 向上移动:按 k
    • 向下移动:按 j
    • 向左移动:按 h
    • 向右移动:按 l
    • 移动到行首:按 0
    • 移动到行尾:按 $
    • 移动到文件头:按 gg
    • 移动到文件尾:按 G
    • 移动到指定行:按 :n,例如 :10 移动到第10行
    • 移动到当前行的第 n 个字符:按 n|,例如 5| 移动到当前行的第 5 个字符
    • 移动到下一个单词开头:按 w
    • 移动到下一个单词结尾:按 e
    • 移动到上一个单词开头:按 b
  2. 删除文本

    • 删除当前字符:按 x
    • 删除前一个字符:按 X
    • 删除当前行:按 dd
    • 删除光标到行尾的内容:按 D
    • 删除光标到行首的内容:按 d0
    • 删除指定数量的字符:按 ndd,例如 3dd 删除3行
  3. 复制和粘贴

    • 复制当前行:按 yy
    • 复制选定区域:按 y 后跟移动命令(如 yw 复制一个单词)
    • 粘贴复制的内容:按 p(在光标后粘贴)或 P(在光标前粘贴)
    • 复制多行:按 nyy,例如 3yy 复制当前行及以下两行
  4. 替换

    • 替换当前字符:按 r 后跟新字符
    • 替换当前行:按 R 进入替换模式,按 Esc 退出
  5. 查找和替换

    • 查找字符串:按 / 后跟字符串,按 n 查找下一个
    • 向上查找字符串:按 ? 后跟字符串
    • 替换当前行的字符串:按 :s/旧字符串/新字符串/
    • 替换整个文件的字符串:按 :%s/旧字符串/新字符串/g
    • 替换当前行中第一个匹配的字符串:按 :s/旧字符串/新字符串/1
    • 替换当前行中所有匹配的字符串:按 :s/旧字符串/新字符串/g
高级操作
  1. 显示行号

    :set number
    
  2. 取消显示行号

    :set nonumber
    
  3. 撤销和重做

    • 撤销:按 u
    • 重做:按 Ctrl+r
  4. 宏录制

    • 开始录制:按 q 后跟寄存器(如 qa 开始录制到寄存器 a
    • 停止录制:按 q
    • 播放宏:按 @ 后跟寄存器(如 @a 播放寄存器 a 中的宏)
  5. 可视模式

  • 进入可视模式:按 v
  • 进入行可视模式:按 V
  • 进入块可视模式:按 Ctrl+v
  • 在可视模式中选择文本后,可以使用 d 删除,y 复制,~ 切换大小写
底线命令
  1. 保存文件

    :w
    
  2. 退出 Vi

    :q
    
  3. 保存并退出

    :wq
    
  4. 强制退出

    :q!
    
  5. 读取另一个文件的内容

    :r filename
    
  6. 保存到另一个文件

    :w newfilename
    
  7. 打开另一个文件

    :e anotherfile
    
  8. 查看当前文件名和状态

    :f
    
设置选项
  1. 设置自动缩进

    :set autoindent
    
  2. 设置制表符宽度

    :set tabstop=4
    
  3. 设置扩展名自动补全

    :set wildmenu
    
  4. 高亮搜索结果

    :set hlsearch
    
  5. 取消高亮搜索结果

    :set nohlsearch
    
  6. 显示匹配的括号

    :set showmatch
    
  7. 忽略大小写搜索

    :set ignorecase
    
  8. 大小写敏感搜索

    :set noignorecase
    
文件分割与多窗口
  1. 水平分割窗口

    :split filename
    

    快捷键:按 Ctrl-w 后按 s

  2. 垂直分割窗口

    :vsplit filename
    

    快捷键:按 Ctrl-w 后按 v

  3. 切换窗口
    快捷键:按 Ctrl-w 后按 w

  4. 关闭当前窗口

    :close
    

    快捷键:按 Ctrl-w 后按 c

  5. 调整窗口大小
    快捷键:按 Ctrl-w 后按 +- 进行垂直调整,按 >< 进行水平调整

标签页管理
  1. 新建标签页

    :tabnew filename
    
  2. 切换到下一个标签页
    快捷键:按 gt

  3. 切换到上一个标签页
    快捷键:按 gT

  4. 关闭当前标签页

    :tabclose
    
  5. 列出所有标签页

    :tabs
    
其他有用的命令
  1. 删除多行
    快捷键:按 :<start>,<end>d,例如 :1,10d 删除第 1 到第 10 行

  2. 缩进多行
    快捷键:按 :<start>,<end>><count>:<start>,<end><count>,例如 :1,10>> 向右缩进第 1 到第 10 行

  3. 撤销缩进
    快捷键:按 :<start>,<end><<count>:<start>,<end><count>,例如 :1,10<< 向左缩进第 1 到第 10 行

  4. 转换大小写
    快捷键:按 ~ 切换选中文本的大小写

  5. 插入当前日期和时间
    在插入模式下按 Ctrl-r =strftime("%Y-%m-%d %H:%M:%S")

相关文章:

【linux】(1)文件操作及vi

文件和目录的创建 创建文件 touch 命令&#xff1a;创建一个新的空文件。 touch filename.txtecho 命令&#xff1a;创建一个文件并写入内容。 echo "Hello, World!" > filename.txtcat 命令&#xff1a;将内容写入文件。 cat > filename.txt然后输入内容&…...

【5】MySQL数据库备份-XtraBackup - 全量备份

MySQL数据库备份-XtraBackup-全量备份 前言环境版本 安装部署下载RPM 包二进制包 安装卸载 场景分析全量备份 | 恢复备份恢复综合 增量备份 | 恢复部分备份 | 恢复 前言 关于数据库备份的一些常见术语、工具等&#xff0c;可见《MySQL数据库-备份》章节&#xff0c;当前不再重…...

数据治理-数据标准演示

数据字典 数据标准-数据字典 词根 数据标准-词根 业务字典映射 数据标准-业务字典映射 标准文档 数据标准-标准文档...

基于Chisel的FPGA流水灯设计

Chisel流水灯 一、Chisel&#xff08;一&#xff09;什么是Chisel&#xff08;二&#xff09;Chisel能做什么&#xff08;三&#xff09;Chisel的使用&#xff08;四&#xff09;Chisel的优缺点1.优点2.缺点 二、流水灯设计 一、Chisel &#xff08;一&#xff09;什么是Chise…...

LabVIEW齿轮调制故障检测系统

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

AI帮写:探索国内AI写作工具的创新与实用性

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

n后问题 回溯笔记

问题描述 在nn格的棋盘上放置彼此不受攻击的n个皇后。 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同 一行或同一列或同一斜线上的棋子。n后问题等价于在nn格的棋盘上放置n个皇后&#xff0c;任何2个皇后不放在同一行或同一列或同一斜线上。 代码 import java.uti…...

简述Java中实现Socket通信的步骤

在Java中&#xff0c;实现Socket通信通常涉及客户端和服务器端两个角色。以下是它们各自的基本步骤&#xff1a; 服务器端&#xff08;Server&#xff09; 创建ServerSocket对象&#xff1a; 在服务器端&#xff0c;首先需要创建一个ServerSocket对象。这个对象会监听来自客户…...

Asp.Net Core 实现分片下载的最简单方式

技术群里的朋友遇到了这个问题&#xff0c;起初的原因是他对文件增加了一个属性配置 fileResult.EnableRangeProcessing true;这个属性我从未遇到过&#xff0c;然后&#xff0c;去F1查看这个属性的描述信息也依然少的可怜&#xff0c;只有简单的描述为(获取或设置为 启用范围…...

[Mac软件]Leech for Mac v3.2 - 轻量级mac下载工具

黑果魏叔推荐Leech是由Many Tricks开发的适用于Mac OS X的轻量级且功能强大的下载管理器。 Leech让您完全控制下载&#xff0c;并与浏览器完全集成。您可以将下载排队&#xff0c;暂停和恢复&#xff0c;从受密码保护的服务器下载&#xff0c;并将密码存储在系统范围的安全钥匙…...

留给“端侧大模型”的时间不多了

端侧大模型&#xff08;Edge AI models&#xff09;&#xff0c;也就是只在设备本地&#xff08;如智能手机、IoT设备、嵌入式系统等&#xff09;运行的大模型&#xff0c;过去一两年来非常流行。 具体表现在&#xff0c;终端设备厂商&#xff0c;如苹果、荣耀、小米、OV等&…...

Pytest框架中的Setup和Teardown功能

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

yolov10/v8 loss详解

v10出了就想看看它的loss设计有什么不同&#xff0c;看下来由于v8和v10的loss部分基本一致就放一起了。 v10的论文笔记&#xff0c;还没看的可以看看&#xff0c;初步尝试耗时确实有提升 好记性不如烂笔头&#xff0c;还是得记录一下&#xff0c;以免忘了&#xff0c;废话结束…...

Typescript高级: 深入理解infer关键字

概述 在 TS 中&#xff0c;infer 是一个高级类型操作&#xff0c;特别是条件类型和映射类型中非常有用的关键字它在泛型中使用也会是一个强大工具&#xff0c;增强了类型推断的能力&#xff0c;让开发者更灵活地处理和操作类型它允许在泛型类型推导过程中捕获一个具体的类型&a…...

JQC-3FF-S-Z 继电器模块使用(arduino)

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

黑马一站制造数仓实战2

问题 DG连接问题 原理&#xff1a;JDBC&#xff1a;用Java代码连接数据库 Hive/SparkSQL&#xff1a;端口有区别 可以为同一个端口&#xff0c;只要不在同一台机器 项目&#xff1a;一台机器 HiveServer&#xff1a;10000 hiveserver.port 10000 SparkSQL&#xff1a;10001…...

网络I/O模型

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

Docker 简介和安装

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

【源码】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…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...