作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。

GNU nano是Unix系统下一款常用的文本编辑器,以简单易用著称。与之相比,功能更强大的Vi和Emacs编辑器,学习曲线比nano陡峭很多。由于nano对于一般的文本编辑来说已经足够,所以我想简单介绍一下,以便于更好入门。

基本使用

在Shell中输入下面命令,就可以启动nano:

nano test.txt

命令nano后面跟着想要修改的文件名。如果当前文件夹下存在名为test.txt的文件时,改命令将打开这个文件。否则,nano会创建一个新文件。随后,Shell会进入到nano的编辑界面。nano的编辑方式和常用的记事本工具类似,都是“所见即所得”。用上下左右键,就可以把光标移动到想要编辑的位置,然后输入或删除即可。

完成之后,你可以按Ctrl+O键来保存文件。nano询问你是否保存缓存中的修改:

Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?

输入Y并,改动将存入文件。此时nano会让你再次确认存入文件的文件名:

File Name to Write: test.txt

回车确认后,修订将存入到test.txt文件。

随后,按Ctrl+X可以退出nano,重新回到Shell的命令行。

功能键

nano中有很多功能键。比如上面保持文件用的Ctrl+O,就是一个功能键。nano界面的最下方会给出功能键的提示:

在提示中,^表示Ctrl键,M表示Alt键。因此,^G表示的就是同时暗下Ctrl键和G键。

下面是一些常用的功能键:

M-\  把光标移动到文本开始
M-/  把光标移动到文本结尾M-A  开始选择文本块^K   剪切所在行或选定的文本块
M-6  复制所在行或选定的文本块
^U   粘贴^G   帮助

语法高亮

nano可以支持语法高亮,从而更好的服务于编程。为了使用语法高亮,首先要安装语法高亮文件:

git clone https://github.com/nanorc/nanorc.git
cd nanorc/
make install

安装完成后,可以看到~/.nano/syntax下多了很多语法高亮文件:

ALL.nanorc          go.nanorc           markdown.nanorc     ruby.nanorc
awk.nanorc          html.nanorc         mpdconf.nanorc      sed.nanorc
c.nanorc            ini.nanorc          nanorc.nanorc       shell.nanorc
cmake.nanorc        inputrc.nanorc      nginx.nanorc        sql.nanorc
coffeescript.nanorc java.nanorc         patch.nanorc        systemd.nanorc
colortest.nanorc    javascript.nanorc   peg.nanorc          tex.nanorc
csharp.nanorc       json.nanorc         php.nanorc          vala.nanorc
css.nanorc          keymap.nanorc       pkg-config.nanorc   vi.nanorc
cython.nanorc       kickstart.nanorc    pkgbuild.nanorc     xml.nanorc
default.nanorc      ledger.nanorc       po.nanorc           xresources.nanorc
dot.nanorc          lisp.nanorc         privoxy.nanorc      yaml.nanorc
email.nanorc        lua.nanorc          properties.nanorc   yum.nanorc
git.nanorc          makefile.nanorc     python.nanorc
glsl.nanorc         man.nanorc          rpmspec.nanorc

将语法高亮文件添加到~/.nanorc中,就能让nano启动对相应语言的语法高亮支持,例如:

include ~/.nano/syntax/c.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/java.nanorc
include ~/.nano/syntax/makefile.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/python.nanorc
include ~/.nano/syntax/ruby.nanorc
include ~/.nano/syntax/tex.nanorc
include ~/.nano/syntax/xml.nanorc

如果有需要,还可以把更多的语法高亮文件加入到.nanorc中。这时再打开获得支持的程序文本时,就可以看到语法高亮的效果。下图中用nano打开了一段Python程序:

在nano中,使用M-Y功能键可以开关语法高亮功能。

文件基础操作

用nano编辑文件并保存后,当前目录下就会出现一个新的文件,文件名就是我们使用时的文件名。用下面命令,可以显示Shell当前目录下的文件:

$ls

Linux用文件的形式存储数据。在树莓派中,文件存储于那张SD卡上。除了用户编辑生成的文本,数据还可能是Linux系统中的程序或配置文件。在Unix的哲学下,文件是数据存储的唯一形式,就连硬件也会虚拟成一个文件。既然文件有这么重要的地位,那么Linux中自然少不了用于操作文件的命令,比如删除文件的rm

$rm test.txt

文件存储的位置,称为文件所在的目录(directory)。刚才用nano保存文件后,由于没有说明目录,文件就保存在当前目录下。我们可以用下面命令来查询Shell所在的当前目录:

$pwd

显示的是:

/home/pi

所有目录都可以追溯到一个根源,即根目录(root directory)。根目录下有一个home目录,home下有一个pi目录。我们的当前工作目录,就是这个pi目录。

一个目录下的文件不能重名。因此,如果在/home/pi这样的目录下加上文件名,就唯一确定了这个文件。这称为文件的路径(path)。比如:

/home/pi/test.txt

总结

本文介绍了Linux下一款简单易用的文本编辑器nano和常用的文件命令。

欢迎阅读“骑着企鹅采树莓”系列文章

树莓派:文本编辑器与文件相关推荐

  1. JavaWeb富文本编辑器与文件上传

    目录 一.富文本编辑器 1.下载富文本编辑器 2.富文本编辑器的应用 二.文件上传 文件上传必须要注意的规则: 文件上传案例 文件夹的访问 一.富文本编辑器 富文本编辑器在项目中很常见,它可以将文本, ...

  2. 树莓派该文件名_树莓派:文本编辑器与文件

    GNU nano是Unix系统下一款常用的 文本编辑器,以简单易用著称.与之相比,功能更强大的Vi和Emacs编辑器,学习曲线比nano陡峭很多.由于nano对于一般的文本编辑来说已经足够,所以我想简 ...

  3. 富文本编辑器CKeditor文件上传下载SmartUpload插件

    目录 富文本编辑器 1.概述 2.常用富文本编辑器 3.CKeditor介绍 4.CKeditor的使用步骤 4.1 进入官网,下载full版本(这个代表的是使用全部功能,如果是simple或者sta ...

  4. UEditor 富文本编辑器-后端实现文件上传功能

    一.背景 前端使用 UEditor 富文本编辑器,前后端分离情况下,需要后端提供一个接口实现文件上传功能 本文根据文章:vue+Ueditor集成 [前后端分离项目][图片.文件上传][富文本编辑] ...

  5. JavaWeb 富文本编辑器(Ckeditor)文件上传

    目录 一.什么是富文本编辑器? 二.CKEditor介绍 三.CKEditor下载 四.使用富文本编辑器 五.文件上传 一.什么是富文本编辑器? 富文本编辑器是一种可内嵌于浏览器,所见即所得的文本编辑 ...

  6. 使用富文本编辑器wangEditor完成图片文件的上传

    项目中一些特定的功能可能需要在页面中用到富文本编辑器来实现文件的输入上传等等,在这里用wangEditor来实现使用富文本编辑器进行文件图面的输入和上传保存,这里wangEditor也可以参考wang ...

  7. PyQt(Python+Qt)学习随笔:纯文本编辑器QPlainTextEdit功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QPlainTextEdit是用于纯文本的一个高级文档编辑器 ...

  8. 文本编辑器的实现课程c语言,c语言文本编辑器

    c语言文本编辑器Tag内容描述: 1.文本编辑器C语言课程设计报告目录1. 设计目的及要求1.1设计目的1.2设计要求1.3题目解析2. 总体设计3. 详细设计3.1流程图3.2程序解析4. 调试分析 ...

  9. java集成富文本编辑器UEditor

    JAVA集成富文本编辑器UEditor 集成前说明 集成UEditor 一.UEditor下载 二.UEditor迁入项目 三.引入ueditor中的js 四.初始化UEditor 五.实现图片上传 ...

最新文章

  1. 容器技术 - docker
  2. 外包网络推广公司浅析想保持稳定的SEO排名和流量,需要做什么呢?
  3. Raevo最近疯狂迷上了WP
  4. FFmpeg avio_alloc_context函数剖析
  5. 基于matlab地球物理,基于MATLAB的《地球物理资料处理和解释》教学研究
  6. JS左右无缝滚动(一般方法+面向对象方法)
  7. 训练日志 2019.1.12
  8. IOS 四种保存数据的方式
  9. runtimeerror怎么解决python_如何解决这个python错误? RuntimeError:字典在迭代期间改变了大小...
  10. 动态时间归整/规整/弯曲(Dynamic time warping,DTW)
  11. 免费抖音视频解析网站_抖音规则解析:抖音视频为什么能火?推荐规则是什么?【揭秘】...
  12. 手机APP测试流程规范和方法你知道多少?
  13. mapper中的 大于 小于 等于 符号的 转义使用
  14. 如何知道股票里面有庄
  15. 卷三十一 汉纪二十三
  16. 学会这5个拍摄技巧,能让你的视频更好看
  17. cv2绘图 cv.line(),cv.circle(),cv.rectangle(),cv.ellipse(),cv.putText() python
  18. 多人使用服务器,如何开个人账户?以及 个人账户如何操作服务器?
  19. app自动化(二)python代码操控手机终端
  20. C/C++:实现象棋游戏

热门文章

  1. Nmap 添加自定义服务指纹
  2. 系统提升架构能力之10种mysql主从实践总结
  3. Python 获取(字典)字符串时间区间并转换类型,判断该时间段属否在时间范围
  4. python制作各种条形图
  5. 循环链表:拉丁方阵问题
  6. BZOJ 1646: [Usaco2007 Open]Catch That Cow
  7. Oracle基础知识-SQL简单命令
  8. 用C语言写PHP扩展 linux
  9. 如何绑定多个action到一个slot
  10. VS.Net 2003/VC6.0常用快捷键集合