码迷,mamicode.com
首页 > 系统相关 > 详细

【Linux探索之旅】第二部分第六课:Nano,初学者的文本编辑器

时间:2015-08-30 06:36:52      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:linux   操作系统   程序员联盟   nano   programmerleague   

技术分享


内容简介

1、第二部分第六课:Nano,初学者的文本编辑器

2、第二部分第七课预告:软件安装,如虎添翼



Nano,初学者的文本编辑器


这一课比较简单,没有什么太难的概念。不过这一课会讲如何配置终端噢。


大家可以泡个泡面,烤只烤鸡;剥个卤蛋,慢慢来看。


之前的课程中,我们已经学会了在终端中用多种不同的方式来查看文件的内容,但是我们还不知道如何在终端中修改文件的内容。


为什么我们把文本编辑器推迟到现在来说呢?因为这是终端可以提供的强大功能之一。


在Linux终端的文本编辑器当中,比较著名的有:Nano,Vim,Emacs,等等。其他文本编辑器还有Gedit,Sublime Text,等等。当然了,我们不可能列举所有的文本编辑器,太多了。


在这些文本编辑器当中,Nano是比较适合初学者上手的。之所以称其为初学者的文本编辑器,绝没有贬低Nano的意思,Nano的功能很强大,只是比较容易入门。


之后的课程我们会用专门的一课来学习Vim,要入门Vim可能需要下点功夫。然后也会聊聊Emacs。小编写过一篇关于Emacs的文章《【程序员小助手】Emacs,最强编辑器,没有之一》。

http://blog.csdn.net/frogoscar/article/details/46354789?



Nano初体验


说起nano这个英语单词,很多人可能不陌生。


nano是“毫微”的意思,也就是10的-9次方。著名的纳米科技的“纳米”就是nanometer,由nano和meter组成,nano是“十亿分之一”,meter是“米”。所以纳米就是十亿分之一米。「一米」与「一纳米」的大小相比較,相当于地球的直径和地球上的一颗玻璃弹珠之间的差距。


那么我们这个文本编辑器叫做nano,应该是取其“短小精悍”的寓意吧。就是麻雀虽小,五脏俱全。


Nano相比Vim或Emacs,确实简单小巧很多,远不及后两者复杂。但是对于入门文本编辑器还是很合适的。


Nano是一个文本编辑器,不是文本处理器


你真知道什么是文本编辑器吗?它和文本处理器又有什么区别呢?


文本编辑器是这样一种软件,它可以编辑和查看文本文件,但是不能对文字做格式处理(例如:加粗,斜体,改变颜色,改变字体大小,添加超链接等等)。常见的有Windows下的记事本,Mac OS X下的文本编辑,Linux下的vi、emacs、gedit,DOS下的edit等。在Linux下,默认系统中至少安装了一种文本编辑器。当然,在Mac OS X下,nano也是默认安装的。


文本处理器,也是一种软件,又叫文档编辑器,不仅可以编辑和查看文档,而且可以对其文字进行格式处理(加下划线,设为标题,插入图片等等)。这些软件只能在图形界面下使用。常见的有Windows下的Word,Mac OS X下的Pages,Linux下的OpenOffice Writer等。


文本编辑器处理的文件格式和文本处理器的文件格式一般也不同。


那么什么时候我们需要用到文本编辑器呢?


我们可以用文本编辑器来编辑纯文本文件。纯文本格式,就是没有任何文本修饰的,没有任何粗体,下划线,斜体,图形,符号或特殊字符及特殊打印格式的文本。只保存文本,不保存其格式设置。


在Windows下,我们比较熟悉的纯文本文件就是.txt结尾的文本文档了。在Linux和Mac OS下,后缀名没那么重要,不少纯文本文件是没有后缀名的。


文本编辑器对于程序员来说又是必不可少的。它可以让我们编辑各种编程语言的代码程序:.c(C语言代码文件),.cpp(C++代码文件),.py(Python代码文件),.php(PHP代码文件),.java(Java代码文件),.xml(XML代码文件)等等。


总之,如果你“不幸”成为了一个程序员,那么文本编辑器的学习是逃不了的,这是你的吃饭家伙。


即使你不是程序员,不需要写代码,但是很多系统的配置文件也需要用文本编辑器来编辑。


在学习了如何使用Nano之后,我们会学习如何修改两个配置文件:.nanorc和.bashrc。这两个文件能让我们分别配置nano和终端。


揭开Nano的面纱


Nano的全称其实是GNU Nano。还记得我们的老朋友GNU么?


是的,就是那个我们提过的GNU项目,在《【Linux探索之旅】开宗明义+第一部分第一课:什么是Linux?》中讲过。


GNU还有个基金会,由Richard Stallman发起,叫自由软件基金会(英语:Free Software Foundation,FSF)是一个致力于推广自由软件的美国民间非营利性组织。它于1985年10月由理查德·斯托曼创建。其主要工作是执行GNU计划,开发更多的自由软件。


GNU计划(英语:GNU Project),又译为革奴计划,一个自由软件集体协作项目,1983年9月27日由理查德·斯托曼在麻省理工学院公开发起。它的目标是创建一套完全自由的操作系统,称为GNU。理查德·斯托曼最早在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。 GNU是“GNU‘s Not Unix”的递归缩写。为避免与单词gnu(非洲牛羚,发音与“new”相同)混淆,斯托曼宣布GNU发音应为“Guh-NOO”(/?gnu?/ ),与“canoe”发音相似。其中,Emacs就是由这个计划孵化而出。


技术分享


我们的Linux的全称也是GNU Linux。因为Linus Torvalds基本只是开发了LInux的内核,Linux的外部程序都是来自世界各地的GNU社区程序员编写。


Nano的设计灵感来自于一个叫Pico的文本编辑器,pico是“10的-12次方”,万亿分之一,比nano还要小1000倍。我们平时说的皮米picometer,就是万亿分之一米。


当然了,nano其实也是 Nano is ANOther editor(意思是“nano是另一种编辑器”)的递归缩写,老外最爱用递归来命名了。比如Linux是Linux is not Unix的递归缩写。


启动nano


很简单,在终端中输入(Ubuntu预装了nano)


nano


回车,就打开了nano文本编辑器:


技术分享


如上图所见,我们的Nano文本编辑器就是长这样的,是不是很简洁?


而你现在就可以在里面输入文字了,如下图:


技术分享


看到了吗,我输入了两句英语。


Nano就是这么方便,因为并不是所有文本编辑器都可以一上来就输入文字的。比如Vim,要输入文字还得先做其他操作,以后会学到。


如果你有使用Emacs的经验,那你可能觉得这一点和Emacs还挺像的,Emacs也是一上来就可以输入文字。


Nano中的键盘快捷键


在上图中的终端下部,我们可以看到有两行帮助文档,如下图:


技术分享


^ 这个符号表示键盘的Ctrl键,所以这些都是Nano的快捷键组合,比如,^X标明的是Exit,那么就是退出Nano,因为exit是英语“退出”的意思。


这些快捷键组合中虽然字母都是大写,但其实就是键盘上对应的字母键,并不需要用Shift键来将其变为大写。


以下给出一些常用的Nano组合快捷键:


  1. Ctrl+G:显示帮助文档

  2. Ctrl+O:保存文件

  3. Ctrl+R:打开其他文件

  4. Ctrl+Y:上一个屏幕

  5. Ctrl+V:下一个屏幕

  6. Ctrl+K:剪切当前一行

  7. Ctrl+X:退出

  8. Ctrl+W:查找

  9. Ctrl+U:黏贴刚剪切的内容

  10. Ctrl+/:替换

  11. Ctrl+F:向前移动一格光标

  12. Ctrl+B:向后移动一格光标

  13. Ctrl+P:向上移动一行

  14. Ctrl+N:向下移动一行


其他还有不少快捷键,一般Nano都会在你操作的屏幕上提醒。所以很方便。但是再论学好英语对编程的帮助,看到这些提示了吗?都是英语写的。


当然了,我们用键盘上的方向键(上,下,左,右)也可以控制光标移动。PaUp和PaDn也分别与Ctrl+Y和Ctrl+V功能一样。


如果你比较熟悉这些快捷键组合之后,你觉得nano下方的帮助文档有点碍眼,那你也可以让它消失,只要先按Esc键,再按X键。就没了。如果要重新调出帮助文档,则同样操作。


Nano的参数


刚才我们打开nano时,是单独用了nano这个命令。当然,nano命令也可以带参数的。


最常用的参数当然就是后接要打开的文件名咯,例如:


nano file.txt


就会用nano打开file.txt,如果你对file.txt有写的权限,那你就可以用nano来修改这个文件了。


如果file.txt文件不存在,那么就会创建一个空文件,名字叫做file.txt,并用nano打开。


nano的其他参数有不少,不过小编挑了三个个人觉得比较实用的:


  1. -m:激活鼠标。如果没有-m参数,那么鼠标在nano里是不起作用的,加了-m参数鼠标可以通过点击来控制光标的位置。

  2. -i:激活自动缩进的功能。这对于程序员写代码太有用了。

  3. -A:激活智能Home键的功能。通常状况下,我们按下键盘的Home键,我们的光标会立即跳到一行的最开始,如果用了-A这个参数,那么按下Home键它会智能地判断,如果一行的开始处有缩进,那么它会使光标跳转到紧跟在缩进之后,而不是一行的最开始。


如果我们要同时激活三个属性,只需要这样用:


nano -miA file.txt



通过.nanorc来配置Nano


现在,既然我们已经初步了解了如何使用nano(当然了,要熟练使用还需要多实践咯)。


我们也看到,nano实在很易用,只需要熟悉一些常用的键盘快捷键组合就可以了。


在今天这课的开始处,我们说了要学习用文本编辑器修改一些配置文件。


Nano也有一个配置文件,可以用于设置nano的一些选项。这个文件叫做 .nanorc


注意,.nanorc的最前面有一个点。表明这是一个隐藏文件。像这样的配置文件,如果用ls -l命令是列不出来的,需要用ls -a来列出。


一般Linux中的配置文件大多以点开头,而且多以rc结尾。比如vim的配置文件 .vimrc,bash shell的配置文件.bashrc,等等。


那这个rc是什么意思呢?当然了,不理解rc什么意思没什么关系,不过我们就满足一下自己的好奇心:


Linux或Unix的许多程序在启动时,都需要“rc”后缀的初始文件或配置文件。


“rc”,它是“runcomm”的缩写――即名词“run command”(运行命令)的简写。 "rc" 是取自 "runcom", 来自麻省理工学院在 1965 年发展的 CTSS系统。相关文献曾记载这一段话:"具有从档案中取出一系列命令来执行的功能;这称为 "run commands" 又称为 "runcom",而这种档案又称为一个 runcom (a runcom)。


" rc”是很多脚本类文件的后缀,这些脚本通常在程序的启动阶段被调用,通常是Linux系统启动时。如/etc/rc(连接到/etc/rc.d/rc)是Linux启动的主脚本,而.bashrc是当Linux的bash shell启动后所运行的脚本。


每个Linux的用户都可以在自己的家目录创建.nanorc这个文件,在每次nano启动前,它会读取此配置文件。


在小编的情况,因为我的用户名是oscar,所以我的.nanorc文件应该是 /home/oscar/.nanorc


但是,我查找了,在我的家目录中,并没有.nanorc这个文件。在你的情况,可能有,也可能没有。但是不要紧。因为如果在你的家目录没有.nanorc,那么nano会用全局的配置文件。


创建.nanorc


如果你的家目录里也没有.nanorc,那么你可以创建一个。怎么创建呢?很简单:


nano .nanorc


技术分享


在这个.nanorc文件中,你可以输入你的配置信息。


每一行一句配置语句,配置语句是以set(用于激活。set是英语“放置,设置”的意思)或unset(用于关闭)开头,后接你要配置的项目。例如:


set mouse


这句话就用于激活鼠标(mouse是英语“鼠标”的意思)。有了这句话,那么每次nano启动时都会激活鼠标操作了,我们启动nano就不必写-m这个参数了,是不是很方便。


我们也可如法炮制,使得我们不用每次启动nano都加上-i和-A参数:


set autoindent


这句是用于激活自动缩进,相当于-i参数的作用。


set smarthome


这句用于激活智能Home键。


如下图所示:


技术分享


如果要保存文件,只要按下Ctrl+O,它会提示你文件名是.nanorc。因为我们已经指定了文件名,直接按下回车,这三行就写入到了.nanorc中。可以看到终端提示:[Wrote 3 lines],表示“写入了3行”。


如果你完成了配置,那么可以按下Ctrl+X来退出nano。


下次你再启动nano的时候,你会发现:鼠标被激活了,自动缩进也激活了,智能Home键也激活了。


配置文件可以大大提高我们的工作效率。


全局的nanorc和语法高亮


在每个用户的家目录中的.nanorc这个文件非常实用,因为它可以帮助你设置自己的nano选项。


但是,如果你的Linux系统中有几十个用户,你想要为所有这些用户都激活nano的鼠标操作,难道你要登录每一个用户的账户,然后在他们各自的.nanorc中添加 set mouse这句话么?那上百个用户呢?岂不是要累坏了。


Linux系统的开发者早就想到了这一点。事实上,nano有一个全局的配置文件,是为系统上所有用户所公共调用的,也叫nanorc,但是在/etc中,是/etc/nanorc。这回nanorc前面没有点了。


这个全局的nano配置文件只能被root用户修改,因为是在系统文件夹/etc中。


在我们以前的课程《【Linux探索之旅】第二部分第三课:文件和目录,组织不会亏待你》中,我们介绍过/etc这个目录,它里面存放系统的配置文件。一般为所有用户共用。


因此,如果我们要修改这个文件,建议用sudo命令。


sudo nano /etc/nanorc


输入你的用户密码,就打开了这个配置文件,如下图:


技术分享


可以看到这个配置文件内容就很多了,当然也有很多是注释,也就是以#开头的。你可以向下滚动这个文件,会发现有300行(小编的情况)。


在这个配置文件里,有所有可以放置在你自己的.nanorc中的语句。比如 set autoindent。但是这些配置语句都是以#开头,就是说默认是注释掉的,也就是说在全局说来,这些配置语句不生效。如果你在/etc/nanorc中把那些配置语句前面的#去掉,就会对全局用户生效了。


技术分享


在这个/etc/nanorc文件的结尾处,你会看到有一块专门设置语法高亮(就是文本会有颜色之分)的区域,如下图:


技术分享


比如,有C/C++代码的语法高亮,nanorc文件的语法高亮,CSS文件的语法高亮,下面还有很多类型的文件的语法高亮。


在小编的情况,这些include前面并没有#,就是说语法高亮对所有用户都是开启的,但你的情况也许每个include语句前面有#号,表示没有开启全局的语法高亮,建议删除那个#,来开启。


按Ctrl+O来保存修改,然后Ctrl+X退出。当然,也可以直接Ctrl+X,它问你是否保存修改,输入y(表示yes,是)或n(表示no,不是)或Ctrl+C取消。



通过.bashrc配置终端


对于nano,我们有一个配置文件叫.nanorc。其实对于我们的终端,也有一个配置文件,叫做.bashrc,这是用户个人的终端配置文件。在小编的情况,位于 /home/oscar/.bashrc


这个文件一般来说是默认存在的。不像我们的.nanorc可能还要自己创建。


我们打开家目录下的终端配置文件看看,只要输入以下命令:


nano .bashrc


技术分享


.bashrc文件比较复杂,初看可能会有点眼花缭乱的感觉。我们暂时不会深入学习它的语法,因为其实bash是一种shell。我们以后的课程会重点来学习shell。暂时只要理解为shell是外壳程序(shell是英语“外壳”的意思),是用于解释我们输入终端的各种命令的。Shell是一个用户跟操作系统之间的一个命令解释器,也就是用户与Linux操作系统之间沟通的桥梁。


bash是最常用的一种shell程序,Ubuntu和大部分常见的Linux发行版默认的shell程序就是bash。


bashrc就是bash这个shell程序的配置文件。


所以bashrc本身的语法也是bash的语法,是一种脚本语言。我们以后会学到,暂时不需要理解。


我们在之前的课程中讲过,我们可以通过配置文件来修改我们的命令行提示符:


oscar@oscar-laptop:~$


你的情况肯定和我不一样,我们在以前的课程中也解释过命令行提示符的各个部分的含义。


在.bashrc文件中,我们可以修改命令行提示符的样式,如果你觉得目前的命令行提示符太繁琐太长了,你可以把它改短一些,简洁一些。


把我们的.bashrc文件向下拉,可以看到有好几行类似这样的:


技术分享


上图中,我们看到有PS1开头的行。这个就是设置命令行提示符的样式的。


\u表示用户名(例如小编的用户名是oscar),\h是电脑的名称(小编的情况是oscar-laptop),@就是分割用户名和电脑名的那个@号。等等。


如果你学过shell语法,那么你可以试着修改。


不过,这里我们不带大家修改了,因为比较复杂,对于初学者来说,不要把.bashrc文件搞乱了为好。


不过我们来学习一下如何将命令行提示符设为高亮(就是不再是白色的了,而是彩色的)。


看到有一行是#force_color_prompt=yes 了吗?


技术分享


去掉 #force_color_prompt=yes 最前面那个分号之后,保存退出,再启动一个新的终端,可以看到我们的命令行提示符已经高亮显示了,有颜色了,是不是感觉颜值瞬间提高了很多?嗯嗯。


技术分享


创建别名


别名是这样一些命令,在你运行时会转换为其他命令。就好比我的英文名是oscar,那别人叫oscar的时候,我知道其实是叫我。


别名的英语是alias。如果我们向下查找我们的.bashrc文件,会发现有alias开头的行,如下所示:


技术分享


也不难理解:


当我们在终端输入比如ll(两个小写的L),其实就是等同于 ls -alF


当我们在终端输入比如la,其实就是等同于 ls -A


等等。


所以说,别名设置得好,可以降低我们的工作量,因为输入ll总比输入ll -alF简单吧。


在.bashrc中创建别名的语法是这样的:


alias name=‘command‘


name就是别名的名字,而command就是被替换成的实际的终端命令。


全局的bashrc


之前的nano也有全局的配置文件:/etc/nanorc


我们的终端所有的bash也有它的全局配置文件:/etc/bash.bashrc


技术分享


对于每个用户来说,家目录下的.bashrc文件的优先级比系统的/etc/bash.bashrc文件高。例如同样的配置选项,如果.bashrc和/etc/bash.bashrc不同,那么以.bashrc的为准。


profile配置文件


在我们的家目录下,其实还有一个.profile文件,而且它也有对应的全局profile文件,是 /etc/profile


技术分享


技术分享


这个profile文件和bashrc有什么区别呢?


简单来说是这样的:


  1. profile这个配置文件是用户登录的终端的配置文件,也就是我们以前学过的tty1~tty6这6个命令行终端(没有图形界面的,分别通过Ctrl+Alt+F1~F6进入)。profile是这些需要登录的,非图形界面的终端的配置文件。

  2. bashrc这个配置文件是不用用户登录的终端,也就是我们一直在使用的终端形式,图形化的终端的情况。这种终端是读取bashrc为配置文件的。


有一点需要记住:profile文件会调用bashrc,所以其实我们修改了bashrc,也就是间接修改了profile文件。因为profile文件会把profile本身的配置再加上bashrc的配置。


可以用下图帮助理解:


技术分享


在我们修改了bashrc和profile文件后,默认是在用户下次登录系统时才能生效。但是我们可以用source命令来使改动立即生效:


source .bashrc
source .profile



总结


  1. 文本编辑器也是一种程序,它可以打开文本文件(比如说Windows中的记事本就是一种文本编辑器),也可以用于修改文件内容(如果有写的权限的话)。我们程序员经常用文本编辑器来编写代码,也会用它来修改配置文件。

  2. 有一些文本编辑器功能非常完善,可以做很多事情,例如Vim和Emacs。

  3. Nano是最容易上手的文本编辑器之一,所以我们初学Linux的时候才会用它来做例子。

  4. 在Nano中我们可以用很多键盘快捷键来帮助我们:Ctrl+w用于查找;Ctrl+x用于退出;Ctrl+o用于保存,等等。

  5. 我们可以用Nano来修改.bashrc这个终端的配置文件,也可以修改.nanorc这个nano的配置文件。这样我们就可以定制我们的软件了。



第二部分第七课预告


今天的课就到这里,一起加油吧!

下一课我们学习:软件安装,如虎添翼

版权声明:本文为博主原创文章,转载请务必注明出处,否则追究法律责任。

【Linux探索之旅】第二部分第六课:Nano,初学者的文本编辑器

标签:linux   操作系统   程序员联盟   nano   programmerleague   

原文地址:http://blog.csdn.net/frogoscar/article/details/48099491

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!