本文是《Linux 入门指南》的第十三篇文章,以 Ubuntu 21.10 为例,介绍了 Linux 文本编辑。
cat(查看文件内容)
描述:
"concatenate(连续)" 的缩写,查看文件内容。
用法:
cat [选项] [文件名]
选项:
| 选项 | 长选项 | 意义 |
|---|---|---|
| -A | --show-all | 等效于 -vET |
| -b | --number-nonblank | 对非空输出行编号,同时取消 -n 选项效果 |
| -e | 等效于 -vE | |
| -E | --show-ends | 在每行结束处显示"$" |
| -n | --number | 对输出的所有行编号 |
| -s | --squeeze-blank | 不输出多行空行 |
| -t | 与 -vT 等效 | |
| -T | --show-tabs | 将跳格字符显示为^I |
| -u | (被忽略) | |
| -v | --show-nonprinting | 使用^ 和M- 引用,除了LFD和 TAB 之外 |
| --help | 显示此帮助信息并退出 | |
| --version | 显示版本信息并退出 |
实例:
查看文件内容(查看 /etc/issue 的内容)
cat /etc/issue
查看文件内容(查看 id_rsa.pub 的内容,并将内容追加到 authorized_keys)
cat id_rsa.pub >> authorized_keys
head(查看文件的开头)
描述:
"head(头部)" 的全称,查看文件的开头。
用法:
head [选项] [文件名]
选项:
| 选项 | 长选项 | 意义 |
|---|---|---|
| -c | --bytes=[-]K | 显示每个文件的前 K 字节内容;如果数字前附加“-”字符,则除了每个文件的最后 K 字节数据外显示其余全部内容 |
| -n | -lines=[-]K | 显示每个文件的前 K 行内容而非前 10 行内容;如果数字前附加“-”字符,则除了每个文件的最后 K 行数据外显示其余全部内容 |
| -q | --quiet,--silent | 不显示包含给定文件名的文件头 |
| -v | --verbose | 总是显示包含给定文件名的文件头 |
| -z | --zero-terminated | 以 NUL 字符而非换行符作为行尾分隔符 |
| --help | 显示此帮助信息并退出 | |
| --version | 显示版本信息并退出 |
实例:
查看文件的开头(查看 .bash_history 的开头,默认查看前10行)
head .bash_history
查看文件的开头(查看 .bash_history 的开头,查看前20行)
head -n 20 .bash_history
tail(查看文件的结尾)
描述:
"tail(尾部)" 的全称,查看文件的结尾。
用法:
tail [选项] [文件名]
选项:
| 选项 | 长选项 | 意义 |
|---|---|---|
| -c | --bytes=[+]NUM | 输出最后 NUM 字节;或者使用 -c +NUM 以输出每个文件第 NUM 个字节之后的全部内容 |
| -f | `--follow[={name | descriptor}]` |
| -F | 和 --follow=name --retry 相同 | |
| -n | --lines=[+]NUM | 输出最后 NUM 行,而不是最后 10 行;或使用 -n +NUM 输出从第 NUM 行开始 |
| --max-unchanged-stats=N | 使用 --follow=name,重新打开一个在 N(默认 5)次迭代后没有改变大小的 FILE 以查看它是否已被取消链接或重命名(这是轮换日志文件的常见情况); 对于inotify,这个选项很少有用 | |
| --pid=PID | 同 -f 一起使用,当所指定 |
|
| -q | --quiet, --silent | 不输出给出文件名的头 |
| --retry | 即使目标文件不可访问依然重复试图打开 | |
| -s | --sleep-interval=N | 使用 -f,在迭代之间休眠大约 N 秒(默认为 1.0); 使用 inotify 和 --pid=P,每 N 秒至少检查一次进程 P |
| -v | --verbose | 总是输出给出文件名的标题 |
| -z | --zero-terminated | 以 NUL 字符而非换行符作为行尾分隔符 |
| --help | 显示此帮助信息并退出 | |
| --version | 显示版本信息并退出 |
实例:
查看文件的结尾(查看 .bash_history 的结尾,默认查看倒数10行)
tail .bash_history
查看文件的结尾(查看 .bash_history 的结尾,查看倒数20行)
tail -n 20 .bash_history
nano(文本编辑器)
描述:
nano 是一款文本编辑器,可以查看或编辑文本。
用法:
nano [选项] [行]/[列] [文件名]
选项:
| 选项 | 长选项 | 意义 |
|---|---|---|
| -A | --smarthome | 启用智能 HOME 键 |
| -B | --backup | 储存既有文件的备份 |
| -C <目录> | --backupdir=<目录> | 用以储存独一备份文件的目录 |
| -D | --boldtext | 用粗体替代颜色反转 |
| -E | --tabstospaces | 将已输入的制表符转换为空白 |
| -F | --multibuffer | 默认从文件读入到一个新的缓冲区 |
| -G | --locking | 使用(vim 风格)锁文件 |
| -H | --historylog | 记录与读取搜索/替换的历史字符串 |
| -I | --ignorercfiles | 不要参考 nanorc 文件 |
| -J <数字> | --guidestripe=<数字> | 在此栏显示一个导引条 |
| -K | --rawsequences | 修正数字键区按键混淆问题 |
| -L | --nonewlines | 不要自动添加换行符 |
| -M | --trimblanks | 强制折行时移除末尾空白 |
| -N | --noconvert | 不要从 DOS/Mac 格式转换 |
| -O | --bookstyle | 以空白字符起始表示新的段落 |
| -P | --positionlog | 记录并读取光标位置 |
| -Q | <正则表达式> --quotestr=<正则表达式> | 匹配引用的正则表达式 |
| -R | --restricted | 限制对文件系统的访问 |
| -S | --softwrap | 以多行显示过长的行 |
| -T <数字> | --tabsize=<数字> | 令制表符宽度为指定行数 |
| -U | --quickblank | 在下一次按键后清除状态栏内容 |
| -V | --version | 显示版本信息并离开 |
| -W | --wordbounds | 更正确地侦测单字边界 |
| -X <字符串> | --wordchars=<字符串> | 指定哪些其它特殊字符也是单词的一部分 |
| -Y <名称> | --syntax=<名称> | 用于加亮的语法定义 |
| -Z | --zap | 让退格键和删除键清除选中的区域 |
| -a | --atblanks | 软折行时在空白处进行 |
| -b | --breaklonglines | 对过长的行自动强制换行 |
| -c | --constantshow | 持续显示游标位置 |
| -d | --rebinddelete | 修正退格键/删除键混淆问题 |
| -e | --emptyline | 保持标题栏下面的行一直为空 |
| -f <文件> | --rcfile=<文件> | 只使用这个文件配置 nano |
| -g | --showcursor | 在文件浏览器和帮助文本中显示游标 |
| -h | --help | 显示本帮助文本并退出 |
| -i | --autoindent | 自动缩进新行 |
| -j | --jumpyscrolling | 按半屏幕滚动文本,不按行 |
| -k | --cutfromcursor | 从游标剪切至行尾 |
| -l | --linenumbers | 在文本之前显示行号 |
| -m | --mouse | 启用鼠标功能 |
| -n | --noread | 不要读取文件(仅写入) |
| -o <目录> | --operatingdir=<目录> | 设定操作目录 |
| -p | --preserve | 保留XON (^Q) 和XOFF (^S) 按键 |
| -q | --indicator | 显示位置+部分指示器 |
| -r <数字> | --fill=<数字> | 设置强制换行宽度并进行重排 |
| -s <程序> | --speller=<程序> | 使用此替代的拼写检查程序 |
| -t | --saveonexit | 退出时自动保存修改,不要提示 |
| -u | --unix | 默认将文件保存为 Unix 格式 |
| -v | --view | 查看(只读)模式 |
| -w | --nowrap | 不要为过长行强制折行 [默认] |
| -x | --nohelp | 不要显示辅助区 |
| -y | --afterends | 使 Ctrl+Right 在单词末尾处停止 |
| -z | --suspendable | 启用挂起功能 |
| -% | --stateflags | 在标题栏显示某些状态 |
| -_ | --minibar | 在底部显示一个反馈条 |
快捷键:
↑↓←→(移动光标)
↑ 光标向上移动
↓ 光标向下移动
← 光标向左移动
→ 光标向右移动
Ctrl + 6(标记)
按下 Ctrl + 6 键,开始标记。
再次按下 Ctrl + 6 键,取消标记。
移动光标,标记需要复制/剪贴的文本,被标记的文本的背景会变成白色。
Alt + 6(复制)
按下 Alt + 6 键,将被标记的文本复制到剪贴板。
Ctrl + K(剪贴)
按下 Ctrl + K 键,将被标记的文本剪贴到剪贴板。
Ctrl + U(粘贴)
按下 Ctrl + U 键,粘贴剪贴板中的文本。
Ctrl + W(搜索)
按下 Ctrl + W 键,输入关键字,会自动定位到第一个匹配的文本。
再次按下 Alt + W 键,会定位到下一个匹配的文本。
Ctrl + \(替换)
按下 Ctrl + \ 键,先后两次输入关键字,会自动替换匹配的文本。
Ctrl + Y(上一页)
按下 Ctrl + Y 键,光标移动到上一页。
Ctrl + V(下一页)
按下 Ctrl + V 键,光标移动到下一页。
Ctrl + O(保存)
按下 Ctrl + O 键,保存已经修改的内容。
Ctrl + X(退出)
按下 Ctrl + X 键,退出文本编辑器。
如果你修改了内容,会提示你是否保存。
Ctrl + G(显示帮助)
按下 Ctrl + G 键,查看帮助文档。
实例:
编辑文本(编辑 .bash_history 文件)
nano .bash_history
vim(文本编辑器)
描述:
vim 是一款文本编辑器,可以查看或编辑文本。
用法:
vim [选项] [文件名]
选项:
| 选项 | 长选项 | 意义 |
|---|---|---|
| -- | 在这以后只有文件名 | |
| -v | Vi 模式 (同 "vi") | |
| -e | Ex 模式 (同 "ex") | |
| -E | Improved Ex mode | |
| -s | 安静(批处理)模式 (只能与 "ex" 一起使用) | |
| -d | Diff 模式 (同 "vimdiff") | |
| -y | 容易模式 (同 "evim",无模式) | |
| -R | 只读模式 (同 "view") | |
| -Z | 限制模式 (同 "rvim") | |
| -m | 不可修改(写入文件) | |
| -M | 文本不可修改 | |
| -b | 二进制模式 | |
| -l | Lisp 模式 | |
| -C | 兼容传统的 Vi: 'compatible' | |
| -N | 不完全兼容传统的 Vi: 'nocompatible' | |
| -V[N][fname] | 显示 [level N] [log messages to fname] 的详细信息 | |
| -D | 调试模式 | |
| -n | 不使用交换文件,只使用内存 | |
| -r | 列出交换文件并退出 | |
| -r (跟文件名) | 恢复崩溃的会话 | |
| -L | 同 -r | |
| -A | 以 Arabic 模式启动 | |
| -H | 以 Hebrew 模式启动 | |
| -T |
设定终端类型为 |
|
| --not-a-term | 跳过输入/输出不是终端的警告 | |
| --ttyfail | 如果输入或输出不是终端则退出 | |
| -u |
使用 |
|
| --noplugin | 不加载 plugin 脚本 | |
| -p[N] | 打开 N 个标签页 (默认值: 每个文件一个) | |
| -o[N] | 打开 N 个窗口 (默认值: 每个文件一个) | |
| -O[N] | 同 -o 但垂直分割 | |
| + | 启动后跳到文件末尾 | |
| + |
启动后跳到第 |
|
| --cmd |
加载任何 vimrc 文件前执行 |
|
| -c |
加载第一个文件后执行 |
|
| -S |
加载第一个文件后执行文件 |
|
| -s |
从文件 |
|
| -w |
将所有输入的命令追加到文件 |
|
| -W |
将所有输入的命令写入到文件 |
|
| -x | 编辑加密的文件 | |
| --startuptime |
将启动计时消息写入 |
|
| -i |
使用 |
|
| --clean | 'nocompatible',Vim 默认值,无插件,无 viminfo | |
| -h 或 --help | 打印帮助(本信息)并退出 | |
| --version | 打印版本信息并退出 |
模式:
Command mode(命令模式)
使用 vim 时,默认进入命令模式。
按下 i 键,会切换到输入模式。
按下 : 键,会切换到底线命令模式。
命令模式下,只能输入一些最基本的命令。
Insert mode(输入模式)
按下 Esc 键,会切换到命令模式。
输入模式下,可以编辑文本。
Last line mode(底线命令模式)
按下 Esc 键,会切换到命令模式。
底线命令模式下,可以输入更多的命令:
w保存q退出
实例:
编辑文本(编辑 .bash_history 文件)
vim .bash_history