内容简介
1、第二部分第六课:Nano,初学者的文本编辑器
2、第二部分第七课预告:软件安装 , 如虎添翼
Nano,初学者的文本编辑器
这一课比较简单,没有什么太难的概念 。不过这一课会讲如何配置终端噢 。
大家可以泡个泡面,烤只烤鸡;剥个卤蛋,慢慢来看 。
之前的课程中,我们已经学会了在终端中用多种不同的方式来查看文件的内容,但是我们还不知道如何在终端中修改文件的内容 。
为什么我们把文本编辑器推迟到现在来说呢?因为这是终端可以提供的强大功能之一 。
在Linux终端的文本编辑器当中,比较著名的有:Nano , Vim,Emacs , 等等 。其他文本编辑器还有Gedit,Sublime Text , 等等 。当然了,我们不可能列举所有的文本编辑器,太多了 。
在这些文本编辑器当中,Nano是比较适合初学者上手的 。之所以称其为初学者的文本编辑器,绝没有贬低Nano的意思 , Nano的功能很强大,只是比较容易入门 。
之后的课程我们会用专门的一课来学习Vim , 要入门Vim可能需要下点功夫 。然后也会聊聊Emacs 。小编写过一篇关于Emacs的文章《【程序员小助手】Emacs,最强编辑器,没有之一》 。
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组合快捷键:
Ctrl+G:显示帮助文档
Ctrl+O:保存文件
Ctrl+R:打开其他文件
Ctrl+Y:上一个屏幕
Ctrl+V:下一个屏幕
Ctrl+K:剪切当前一行
Ctrl+X:退出
Ctrl+W:查找
Ctrl+U:黏贴刚剪切的内容
Ctrl+/:替换
Ctrl+F:向前移动一格光标
Ctrl+B:向后移动一格光标
Ctrl+P:向上移动一行
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的其他参数有不少,不过小编挑了三个个人觉得比较实用的:
-m:激活鼠标 。如果没有-m参数,那么鼠标在nano里是不起作用的,加了-m参数鼠标可以通过点击来控制光标的位置 。
-i:激活自动缩进的功能 。这对于程序员写代码太有用了 。
-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就是被替换成的实际的终端命令 。
全局的bashrc
之前的nano也有全局的配置文件:/etc/nanorc
我们的终端所有的bash也有它的全局配置文件:/etc/bash.bashrc
对于每个用户来说 , 家目录下的.bashrc文件的优先级比系统的/etc/bash.bashrc文件高 。例如同样的配置选项,如果.bashrc和/etc/bash.bashrc不同,那么以.bashrc的为准 。
profile配置文件
在我们的家目录下,其实还有一个.profile文件,而且它也有对应的全局profile文件,是 /etc/profile
这个profile文件和bashrc有什么区别呢?
简单来说是这样的:
profile这个配置文件是用户登录的终端的配置文件,也就是我们以前学过的tty1~tty6这6个命令行终端(没有图形界面的,分别通过Ctrl+Alt+F1~F6进入) 。profile是这些需要登录的 , 非图形界面的终端的配置文件 。
bashrc这个配置文件是不用用户登录的终端,也就是我们一直在使用的终端形式 , 图形化的终端的情况 。这种终端是读取bashrc为配置文件的 。
有一点需要记?。簆rofile文件会调用bashrc,所以其实我们修改了bashrc , 也就是间接修改了profile文件 。因为profile文件会把profile本身的配置再加上bashrc的配置 。
可以用下图帮助理解:
在我们修改了bashrc和profile文件后 , 默认是在用户下次登录系统时才能生效 。但是我们可以用source命令来使改动立即生效:
source .bashrc
source .profile
总结
文本编辑器也是一种程序,它可以打开文本文件(比如说Windows中的记事本就是一种文本编辑器),也可以用于修改文件内容(如果有写的权限的话) 。我们程序员经常用文本编辑器来编写代码,也会用它来修改配置文件 。
有一些文本编辑器功能非常完善,可以做很多事情,例如Vim和Emacs 。
Nano是最容易上手的文本编辑器之一,所以我们初学Linux的时候才会用它来做例子 。
在Nano中我们可以用很多键盘快捷键来帮助我们:Ctrl+w用于查找;Ctrl+x用于退出;Ctrl+o用于保存,等等 。
我们可以用Nano来修改.bashrc这个终端的配置文件,也可以修改.nanorc这个nano的配置文件 。这样我们就可以定制我们的软件了 。
第二部分第七课预告
今天的课就到这里,一起加油吧!
下一课我们学习:软件安装,如虎添翼
【[Linux探索之旅]第二部分第六课Nano编辑器和终端配置】本文到此结束,希望对大家有所帮助!
猜你喜欢
- 信用卡逾期两年,1.5万额度要还4.7万,现在让第三方催收,他们说要上门
- 小说:我身上出现诡异斑痕,一位道士美女见到后眉头一皱:是尸斑
- 菜鸟就java“进一步理解get和set”而谈
- Baby丨你就是我的唯一,我就是你的咪咪
- 负债者的出路~~个人债务重组
- 那些贷款二手车是真实可靠的吗?
- 推荐6个优秀的人脸识别开源项目
- 线上贷款和线下贷款有什么区别?借款人该如何选择?
- 搜索引擎SEO优化实战记录:如何在3个月内提高网站权重和关键词排名
