【GNU/Linux实战手记之Emacs篇 上】 (转)
五、Linux下的常用软件--Emacs
有了上面的基础,你已经可以自由的使用Linux的控制台了。但是,光靠这些,你还不能编辑和修改文件,不能归档和压缩(解压缩)文件,不能享受影音娱乐和多媒体。在控制台下,我们确实可以做很多事情,包括听音乐。下面我们来看看控制台下最强大的应用软件--Emacs
Emacs是Linux下的强大的文本编辑环境,说它是一个单纯的文本编辑器就太小看它了。说出来别被吓到,Emacs可以编辑文件,浏览互联网,访问FTP,收发电子邮件,使用控制台命令,编译和调试程序等等。它简直可以充当一个操作系统了!但是,正是因为它拥有这么多的功能,使得想学习使用它的人必须经过一段痛苦的历程。Emacs实在是太复杂了。
让我们现来见识以下Emacs的庐山真面目吧。
$emacsnewtext.txt/*启动Emacs,用它来创建一个新文件newtext.txt*/
如果你是在控制台下开的Emacs,那你可以忽略最上面一行的菜单栏。它在控制台下是没用的。这一点和MS-DOS下的EDIT完全不同。开始的时候我就很不习惯没有Alt-F召唤出的菜单。但是这并不意味Emacs就没有菜单。它有。你按下F10看看(或者Esc-`)。那就是它的菜单。你可以按照它的提示使用。退出菜单用Ctrl-g或者连按三下ESC(这是退出一切Emacs命令的通用方法)。
我们已经新建了一个文件,你现在可以直接输入文字了。这和普通的文本编辑器没区别。
保存文件的方法是“Ctrl-xCtrl-s”;文件另存为是“Ctrl-xCtrl-w”;打开新文件是“Crtl-xCtrl-f”;退出Emacs是“Ctrl-xCtrl-c”。还是那句老话——晕头转向了就退出,没什么可怕的。
在Emacs里有很多向上面的使用组合键的命令。这也是Emacs的复杂之处,需要背的命令太多。记不住了,你可以使用它的菜单。在X下你可以使用鼠标和它的菜单栏(菜单栏这时才有用)。
Emacs是支持多文本多窗口同时编辑的。因此你可以打开多个文件,然后在不同的“窗口”中切换。——注意,Emacs中用Buffer(缓冲区)表示我们平常概念中的窗口,你就当它是一块内存区域。我们用菜单查看现存的Buffer:Esc-`b
看到现有的各个Buffer了吗?你可以用提示你的按键切换到那个Buffer中。(Buffer列表有个快捷键:Ctrl-xCtrl-b)
Buffer既然可以打开,那么它就能被关闭。当我们嫌开的Buffer太多,或者不再需要某些Buffer时,我们就可以将那个Buffer关掉。
调出菜单,依次选择File,Close(currentbuffer)。或者你也可以按下列次序按键:
ESC-`fc
我说过,Emacs是一个集成的编辑环境,它可以运行shell,这就是它的伟大之处,也是世界上顶尖黑客喜爱它的缘故。让我们试试。
Alt-xshell
Emacs就会乖乖的打开一个新Buffer,而你的控制台提示符就在你眼前。还不试试前面学的各种命令。不过用完了要记得exit退出(这里也能用Ctrl-D)。
至于游戏嘛,我告诉你它在哪儿——tools->game。自己慢慢研究吧,里面可是有五子棋和跳棋的哟。
Emacs自带一个很详细的帮助系统,在你需要帮助的时候,按Ctrl-ht,就可以调出帮助教程(Tutorial)。里面详细介绍了如何使用Emacs,是Emacs的官方手册。只可惜,是英文的,对我们这些英文不佳的人来说困难了点。
Emacs就介绍到这里,有关它的更清晰的使用介绍,请参阅IBMDeveloperWorks/Linux里的教程:《生活在Emacs中》找不到就联系我,我给你一份。
实验:就用Emacs修改你的/etc/fstab和/etc/lilo.conf文件。
六、Emacs高级应用
前面介绍了Emacs,和一些基本的unix命令。下面我们将开始接触一种脚本语言Bash(BourneAgainShell)。Bash很像DOS下的批处理语言,但是要比批处理强大许多。掌握了Bash,你就有更多在Unix闯荡的资本;而Bash强大的功能,也足以让你驾驭野性的Linux。本单元学习要求:你至少应了解基本的计算机编程的概念,知道变量、常量、循环、条件判断等编程语言的基本术语。这样不至于我是在对牛弹琴,也不必浪费你的宝贵时间。
今天我们就要在Emacs环境中,“足不出户”,进行Bash编程的学习,同时还可以听着美妙的音乐。
先进行些准备工作———如何安装软件。
对于刚接触Linux的人而言,最令他们头疼的,不是一大堆的命令和参数,而是没有自己所熟悉的软件。再好的系统,没有大量的软件作支撑,也生存不下去(IBM的OS/2就是个典型的例子)。但是现在,GNU/Linux可以使用的软件很丰富,你可以上网搜索,就会找到几大专业的Linux软件搜集下载站点,里面的软件储量很丰富的。
下载你需要的软件包,按照下面的方法安装软件。
1、编译安装源代码包
实际上,绝大多数Unix软件都是以源代码形式发布的,这样做的好处就是,用户可以根据自己系统的实际情况对软件进行修改。下面我们来看看如何安装源代码包。
目标软件:zhcon-0.2.3.tar.gzLinuxConsoleChineseSystem
#mkdirtemp/*建立一个临时目录*/
#cpzhcon-0.2.3.tar.gztemp//*将包拷到临时目录中*/
#cdtemp
#tarvxzfzhcon-0.2.3.tar.gz/*解压、归档一步到位,这时将生成一个新的目录*/
#cdzhcon-0.2.3
#./configure/*配置编译环境*/
#make/*开始编译*/
#makeinstall/*安装*/
至此,zhcon就装好了。最后三步就是安装源代码包的标准操作。执行./configure后安装程序会告诉你程序安装后的所在目录。要卸载该软件,就直接删除该目录即可(别忘了还要删掉/usr/local/bin中的执行命令zhcon)。
2、用RPM安装.rpm包,.src.rpm包
RPM是redhatPackageManager,是RedHat公司做的自动化安装工具。我们用它来装一个MPEG播放器:Candyplayer
#cpcandyplayer-0.1.1-1.i386.rpmtemp/
#cdtemp
#rpm-ivhcandyplayer-0.1.1-1.i386.rpm/*这里是软件包的全名*/
安装时会显示一个进度条,告诉你安装过程。RPM安装之前会先检测系统的完整性,看是否缺少文件。如果缺少所需的文件,则拒绝安装,屏告知所缺的文件。
有时候我们会碰到用RPM打包的源代码.src.rpm,这时就需要我们自己编译。安装这样的包只需要改变RPM命令的参数。
#rpm--rebuilddbtarget.src.rpm/*假设软件包叫target.src.rpm*/
要删除已装的软件,只需下面的命令
#rpm-ecandyplayer/*这里是软件的名字*/
用RPM就这么简单。
3、安装二进制程序
有些软件商不愿公布源代码,因此它们直接将软件做成一个大的安装文件。下面就来装一个这样的东西。
MusicMatchJukebox想必大家不陌生吧?非常优秀的一款音乐播放软件。它出了一个Linux版本,单个二进制安装文件-install-mmjb-1.43.sh。我们来装它。由于它必须在X下安装,我们就假设已经有了窗口环境。打开一个控制台窗口。
#cd/temp
#./install-mmjb-1.43.sh
接着就开始安装了,和windows下安装软件的过程类似。须注意一点,这个软件允许普通用户安装,但是不能向/var目录添加链接,只能装在自己的主目录中。
以上就是Linux系统安装各种软件的方法。下面进入今天的正题。
先从www.mpg123.de下载mpg123-0.59r.tar.gz和playmp3list.tar.gz这两个软件包。启动Emacs,新建Shell缓冲区,su升变成root,安装上述这两个包,还原成普通用户。安装顺序是先装mpg123-0.59r.tar.gz,再装playmp3list.tar.gz。
新建一个Bash脚本addmp3
C-xC-faddmp3/*C-x就是Ctrl-x,同理M-x就是Alt-x或者ESC-x,下同*/
在新的缓冲区里输入下面的命令
#!/bin/bash
#AddMP3filestomyplaylistfile~/playlist.m3u
find~/music/-iname*.mp3>>~/playlist.m3u
存盘
C-xC-s
这样,就有了我们的第一个Bash程序——addmp3。它将搜索存放在你主目录下music文件夹里的所由mp3格式的文件,然后生成播放列表playlist.m3u。
切回Shell,执行addmp3
$chmod+xaddmp3/*变成可执行文件*/
$./addmp3/*运行*/
这样就生成了播放列表。把它放到/usr/local/bin下面,以后你就可以在任何一个目录下运行addmp3了。当你添加了新的mp3文件时,就在那个目录下运行这个程序,它将把新文件追加到播放列表里。
接下来我们到另一个控制台下去运行playmp3list。
Alt-F2/*切换至tty2,登录。*/
$playmp3listplaylist.m3u
我为什么不在Emacs下运行playmp3list呢?因为playmp3list程序运行时用到了ncourse库,生成了伪图形界面,在Emacs里效果很难看,所以我就不在Emacs里用它了。何况Linux是多用户多任务的操作系统,你可以在不同的控制台下执行不同的程序,就象多开了几个窗口一样。而且各个控制台互不干扰,所以你完全可以在另一个控制台下执行playmp3list,照听音乐不误。
用Alt-F1再切回来,继续我们的工作。
Emacs实在是太复杂了,所以今天我们就先到这里吧,还有一些Emacs使用技巧和有关Bash编程的部分留到【GNU/Linux实战手记之Emacs篇下】再详细讲解。
什么?我没讲Bash编程吗?那addmp3是什么?试着先理解它。