文件编辑与操作
文本编辑器
Windows中编辑文件十分的方便,双击对应的文件,系统会使用相应的软件进行打开,进行编辑后保存关闭即可。但是在Linux环境下,更多使用的是命令行而不是图形化界面,所以文本编辑需要使用TUI编辑器,相比于GUI的编辑器,需要熟悉更多的图形化界面,快捷键也需要使用配置文件的形式去书写。下面简单讲讲两个常用的文本编辑器,Vim和Nano
Nano
这个文本编辑器是相对Vim来说比较简单的一个,从这个界面入手会更简单一些
安装
正常全量安装的情况下是会默认安装的,如果没有安装使用一下命令安装即可
sudo apt install nano打开文件
在终端使用命令的形式使用nano作为编辑器打开文件,我们现在用户目录创建一个文件,暂时使用test.txt命名
# 进入用户目录
cd ~
# 创建文件
touch test.txt使用编辑器打开文件
nano test.txt如果名字太长,可以使用正则匹配的方法打开,不过要注意前缀字符串的唯一性
nano t*.txt文件编辑
打开后出现上半部分纯黑,下半部分是快捷键提示的TUI界面,我们可以先来了解一下这些快捷键
第一列:
| 组合键 | 描述 | 用途 |
|---|---|---|
Ctrl+G | Get Help | 查看帮助 |
Ctrl+O | Write Out | 保存文件 |
Ctrl+R | Read File | 读取文件(插入到当前文件) |
Ctrl+Y | Prev Page | 上一页 |
Ctrl+K | Cut Text | 剪切当前行 |
Ctrl+C | Cur Pos | 显示光标位置 |
第二列:
| 组合键 | 原文 | 用途 |
|---|---|---|
Ctrl+X | Exit | 退出编辑器 |
Ctrl+J | Justify | 段落格式化 |
Ctrl+W | Where Is | 搜索 |
Ctrl+V | Next Page | 下一页 |
Ctrl+U | Uncut Text | 粘贴(撤销剪切) |
Ctrl+T | To Spell | 拼写检查 |
现在我们在文件内写入Hello World!并保存,建议先参照上方快捷键表格和编辑器的提示完成 |
步骤如下:
- 写入:直接写入
Hello World!- 保存:按下快捷键
Ctrl+O- 退出:按下快捷键
Ctrl+X
Vim
安装
正常全量安装的Ubuntu中正常会直接进行安装,没有安装的也可以使用安装命令进行安装
sudo apt install vim打开文件
使用编辑器打开文件
vim test.txt相比于Nano,这个界面会少很多的元素,快捷键不会直接显示出来,而且现在不可以直接进行编辑,所以我们需要简单了解一下这个编辑器
其中有三种模式,Normal,Insert和Visual,想要对文件进行编辑就需要进入Insert模式,从Normal模式进入Insert模式的方法很简单,也就是按下键盘上的i键,退出这个模式也很简单,按下键盘上的Esc键
保存和退出就不使用快捷键的方式,而是通过类似于命令的字母的方式,保存是w退出是q,但是在输入之前需要先输入:唤醒命令输入的界面。其他的快捷键和命令可以参考以下表格:
| 功能 | 操作 | 说明 |
|---|---|---|
| 进入插入模式 | i | 在光标前插入 |
| 退出插入模式 | Esc | 返回普通模式 |
| 保存 | :w | 写入文件 |
| 退出 | :q | 退出编辑器 |
| 保存并退出 | :wq | 写入后退出 |
| 强制退出 | :q! | 放弃修改并退出 |
| 删除当前行 | dd | 在普通模式下 |
| 撤销操作 | u | 在普通模式下 |
| 恢复撤销 | Ctrl+R | 在普通模式下 |
| 显示行号 | :set number | 在命令模式下 |
| 搜索 | /关键词 | 在普通模式下,按 n 跳转下一个 |
可以根据表格的快捷键尝试一下效果
文件的基本操作
里面的功能比较多,再后面会经常使用,下面直接使用表格的形式展示
文件创建与查看
| 功能 | 命令 | 示例 | 说明 |
|---|---|---|---|
| 创建空文件 | touch | touch test.txt | 文件不存在则创建,存在则更新时间戳 |
| 创建多个文件 | touch | touch file1.txt file2.txt | 一次性创建多个 |
| 重定向创建 | > | echo "Hello" > test.txt | 文件不存在则创建,存在则覆盖 |
| 追加内容 | >> | echo "Hello" >> test.txt | 追加到文件末尾 |
| 查看全部内容 | cat | cat test.txt | 一次性输出所有内容 |
| 分页查看 | less | less test.txt | 适合长文件,按 q 退出 |
| 查看前几行 | head | head -n 10 test.txt | 默认显示前 10 行 |
| 查看后几行 | tail | tail -n 10 test.txt | 默认显示后 10 行 |
| 实时追踪 | tail -f | tail -f log.txt | 实时显示文件新增内容 |
文件复制与移动
| 功能 | 命令 | 示例 | 说明 |
|---|---|---|---|
| 复制文件 | cp | cp source.txt dest.txt | 复制文件 |
| 复制到目录 | cp | cp test.txt /home/user/ | 复制到指定目录 |
| 复制并保留属性 | cp -p | cp -p source.txt dest.txt | 保留权限、时间等属性 |
| 移动文件 | mv | mv test.txt /home/user/ | 移动到指定目录 |
| 重命名 | mv | mv old.txt new.txt | 同目录下即为重命名 |
| 移动并重命名 | mv | mv test.txt /home/user/new.txt | 移动的同时重命名 |
文件删除
| 功能 | 命令 | 示例 | 说明 |
|---|---|---|---|
| 删除文件 | rm | rm test.txt | 删除文件 |
| 删除前确认 | rm -i | rm -i test.txt | 删除前提示确认 |
| 强制删除 | rm -f | rm -f test.txt | 不提示,直接删除 |
| 删除目录 | rm -r | rm -r dir/ | 递归删除目录及内容 |
文件查找
| 功能 | 命令 | 示例 | 说明 |
|---|---|---|---|
| 按名称查找 | find | find /home -name "test.txt" | 在指定路径下按名称查找 |
| 通配符查找 | find | find /home -name "*.txt" | 匹配所有 .txt 文件 |
| 忽略大小写 | find | find /home -iname "test.txt" | 不区分大小写 |
| 按文件类型 | find | find /home -type f | 只查找文件 |
| 按大小查找 | find | find /home -size +10M | 查找大于 10MB 的文件 |
文件信息
| 功能 | 命令 | 示例 | 说明 |
|---|---|---|---|
| 查看文件类型 | file | file test.txt | 判断文件类型 |
| 查看详细信息 | stat | stat test.txt | 显示大小、权限、时间等 |