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

文件和目录的创建

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

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

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

    sh 复制代码
    cat > filename.txt

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

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

    sh 复制代码
    mkdir mydir
  2. mkdir -p 命令:递归创建目录。

    sh 复制代码
    mkdir -p parentdir/childdir

文件和目录的查看

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

    sh 复制代码
    ls
  2. ls -l 命令:详细列出目录内容。

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

    sh 复制代码
    ls -a
  4. cat 命令:显示文件内容。

    sh 复制代码
    cat filename.txt
  5. moreless 命令:分页查看文件内容。

    sh 复制代码
    more filename.txt
    less filename.txt
  6. head 命令:查看文件开头部分。

    sh 复制代码
    head filename.txt
  7. tail 命令:查看文件结尾部分。

    sh 复制代码
    tail filename.txt

文件和目录的复制

  1. cp 命令:复制文件。

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

    sh 复制代码
    cp -r sourcedir destinationdir

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

  1. mv 命令:移动或重命名文件。

    sh 复制代码
    mv oldname.txt newname.txt
    mv filename.txt /newpath/

文件和目录的删除

  1. rm 命令:删除文件。

    sh 复制代码
    rm filename.txt
  2. rm -r 命令:递归删除目录。

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

    sh 复制代码
    rm -f filename.txt

文件和目录的权限管理

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

    sh 复制代码
    chmod 755 filename.txt
  2. chown 命令:更改文件所有者。

    sh 复制代码
    chown user:group filename.txt

文件搜索

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

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

    sh 复制代码
    grep "search term" filename.txt

文件和目录的压缩与解压

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

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

    sh 复制代码
    gzip filename.txt
    gunzip filename.txt.gz
  3. zipunzip 命令:压缩和解压文件。

    sh 复制代码
    zip archive.zip file1 file2
    unzip archive.zip

磁盘空间查看

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

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

    sh 复制代码
    du -sh filename.txt
    du -sh directory/

文件编辑vi

启动和退出 Vi
  1. 启动 Vi

    sh 复制代码
    vi filename

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

  2. 退出 Vi

    • 保存并退出:

      sh 复制代码
      :wq
    • 仅保存:

      sh 复制代码
      :w
    • 退出不保存:

      sh 复制代码
      :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. 显示行号

    sh 复制代码
    :set number
  2. 取消显示行号

    sh 复制代码
    :set nonumber
  3. 撤销和重做

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

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

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

    sh 复制代码
    :w
  2. 退出 Vi

    sh 复制代码
    :q
  3. 保存并退出

    sh 复制代码
    :wq
  4. 强制退出

    sh 复制代码
    :q!
  5. 读取另一个文件的内容

    sh 复制代码
    :r filename
  6. 保存到另一个文件

    sh 复制代码
    :w newfilename
  7. 打开另一个文件

    sh 复制代码
    :e anotherfile
  8. 查看当前文件名和状态

    sh 复制代码
    :f
设置选项
  1. 设置自动缩进

    sh 复制代码
    :set autoindent
  2. 设置制表符宽度

    sh 复制代码
    :set tabstop=4
  3. 设置扩展名自动补全

    sh 复制代码
    :set wildmenu
  4. 高亮搜索结果

    sh 复制代码
    :set hlsearch
  5. 取消高亮搜索结果

    sh 复制代码
    :set nohlsearch
  6. 显示匹配的括号

    sh 复制代码
    :set showmatch
  7. 忽略大小写搜索

    sh 复制代码
    :set ignorecase
  8. 大小写敏感搜索

    sh 复制代码
    :set noignorecase
文件分割与多窗口
  1. 水平分割窗口

    sh 复制代码
    :split filename

    快捷键:按 Ctrl-w 后按 s

  2. 垂直分割窗口

    sh 复制代码
    :vsplit filename

    快捷键:按 Ctrl-w 后按 v

  3. 切换窗口

    快捷键:按 Ctrl-w 后按 w

  4. 关闭当前窗口

    sh 复制代码
    :close

    快捷键:按 Ctrl-w 后按 c

  5. 调整窗口大小

    快捷键:按 Ctrl-w 后按 +- 进行垂直调整,按 >< 进行水平调整

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

    sh 复制代码
    :tabnew filename
  2. 切换到下一个标签页

    快捷键:按 gt

  3. 切换到上一个标签页

    快捷键:按 gT

  4. 关闭当前标签页

    sh 复制代码
    :tabclose
  5. 列出所有标签页

    sh 复制代码
    :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")

相关推荐
yunfanleo几秒前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
m51271 分钟前
LinuxC语言
java·服务器·前端
运维-大白同学23 分钟前
将django+vue项目发布部署到服务器
服务器·vue.js·django
糖豆豆今天也要努力鸭31 分钟前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎39 分钟前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
乐大师39 分钟前
Deepin登录后提示“解锁登陆密钥环里的密码不匹配”
运维·服务器
ac.char1 小时前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾1 小时前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程1 小时前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.1 小时前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++