本文是《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}] 随文件增长即时输出新增数据;若未给定选项参数,则默认使用 '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 使用 替代任何 .vimrc
--noplugin 不加载 plugin 脚本
-p[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
-O[N] 同 -o 但垂直分割
+ 启动后跳到文件末尾
+ 启动后跳到第
--cmd 加载任何 vimrc 文件前执行
-c 加载第一个文件后执行
-S 加载第一个文件后执行文件
-s 从文件 读入正常模式的命令
-w 将所有输入的命令追加到文件
-W 将所有输入的命令写入到文件
-x 编辑加密的文件
--startuptime 将启动计时消息写入
-i 使用 取代 .viminfo
--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