Linux 查看与编辑文件:cat、less、head、tail 和 nano
Linux 服务器入门 · 第 08 篇 / 共 18 篇
cat 很适合读几行文字,但长文件会把终端刷满。先换一种读法,再练习编辑,避免把“查看”和“修改”混在一起。
在 Ubuntu 服务器上进入练习目录。需要 less 和 nano;若 command -v less 或 command -v nano 没有结果,先按安装篇安装对应软件,或请管理员准备。
先准备两份教学文件
下面会写入本节专用文件,已有同名文件时先确认可以覆盖:
mkdir -p ~/linux-practice/documents
cd ~/linux-practice
printf 'first linux note\nkeep original file\n' > documents/read-demo.txt
seq 1 60 > documents/lines.txt第一份是两行短文本;第二份从 1 到 60,每行一个数字。后面的输出都以这两份教学文件为准。
短文件直接读,长文件翻页读
cat documents/read-demo.txt
less documents/lines.txt进入 less 后,屏幕暂时由分页工具接管。按空格向后翻一屏,b 向前翻,输入 /40 后回车搜索 40,按 n 找下一个匹配,按 q 退出。数字 40 也可能出现在别的文本中,搜索匹配的是字符内容。
只想看开头或末尾时:
head -n 3 documents/lines.txt
tail -n 3 documents/lines.txt前一条显示 1、2、3,后一条显示 58、59、60。-n 后面是行数;它属于当前命令的选项,不是所有命令中都表示相同含义。分页操作见 less 手册。
修改副本,不动原稿
cp -i documents/read-demo.txt documents/read-demo-edit.txt
nano documents/read-demo-edit.txt若复制时提示目标已经存在,先确认是否覆盖。打开编辑器后,在末尾增加一行 edited in nano。
nano 底部的 ^ 表示 Ctrl 键,例如 ^O 是 Ctrl+O。按 Ctrl+O 写入文件,再按回车确认文件名,最后 Ctrl+X 退出。未保存退出时可能询问是否保存,按提示选择,不要机械连按按键。
cat documents/read-demo-edit.txt
cat documents/read-demo.txt副本应多出新的一行,原稿仍是两行。这个检查比“编辑器已经关了”更能说明文件是否保存正确。编辑操作依据见 nano 手册。
卡住时先看现在运行的是什么
如果屏幕停在长文本上,先确认是不是还在 less;它通常用 q 退出。若在 nano,按其提示保存和退出。Ctrl+C 在不同程序里的作用不同,不是所有界面的退出键。
自己练习:在数字文件中找到 42,退出分页工具;修改文本副本后保存,再用 tail -n 1 读取最后一行。