`

【GNU/Linux实战手记之Emacs篇 上】 (转)

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

分享到:
评论

相关推荐

    学习Debian GNU / LinuxLearning Debian GNU/Linux

    根据提供的文件信息,我们将深入探讨Debian GNU/Linux的相关知识点,主要关注新Linux用户以及桌面Linux应用程序的需求。 ### Debian GNU/Linux简介 Debian GNU/Linux是一种免费的操作系统,它基于GNU工具集和Linux...

    GNU / Linux高级管理GNU/Linux Advanced Administration

    涵盖高级GNU / Linux系统管理。 学生将学习如何安装,配置和优化GNU / Linux操作系统以及使用最广泛的计算机服务。

    Debian GNU / Linux:安装和使用指南Debian GNU/Linux: Guide to Installation and Usage

    面向不熟悉Debian GNU / Linux的读者,假定他们没有GNU / Linux或其他类似Unix的系统的先验知识。

    gnu/linux编程指南源码

    《GNU/Linux编程指南》是一本深入探讨GNU/Linux操作系统下编程实践的宝贵资源,它涵盖了从基本的编程概念到高级的系统级编程技术。这个源码集合对于那些希望在GNU/Linux环境中提升编程技能或者想要深入了解操作系统...

    Debian GNU/Linux 安装手册

    ### Debian GNU/Linux 安装手册知识点详析 #### 一、Debian GNU/Linux 简介 **1.1 什么是Debian?** Debian 是一个由社区支持的开源操作系统,以其高度稳定性和安全性著称。它遵循自由软件基金会制定的自由软件...

    透视Debian GNU/Linux.pdf

    《透视Debian GNU/Linux》这本书深入探讨了Debian GNU/Linux操作系统,这是一款在全球范围内深受开发者和高级用户喜爱的Linux发行版。Debian以其开源、免费和社区驱动的特点,吸引了大量忠实用户。它并非由商业实体...

    gnu/linux嵌入式快速编程一书的完整源代码

    在GNU/Linux嵌入式开发领域,编程涉及到许多关键知识点,特别是在使用像BeagleBone Black这样的开发板时。这本书“GNU/Linux嵌入式快速编程”提供了丰富的实践指导,其完整的源代码是深入理解这一领域的宝贵资源。...

    GNU/Linux Basic operating system

    GNU/Linux 操作 介绍 英文版 Joaquín López Sánchez-Montañés Sofia Belles Ramos Roger Baig Viñas Francesc Aulí Llinàs 1. Introduction 2. Basic concepts and commands 3. Knoppix workshop 4. GNU/...

    GNU/Linux 编程指南(第二版)

    GNU/Linux 编程指南(第二版),Linux下 C语言的必看书!

    《Debian GNU/Linux高级应用大全》简介.pdf

    《Debian GNU/Linux高级应用大全》简介.pdf

    GNU Linux Application Programming

    The wide range of applications available in GNU/Linux includes not only pure applications, but also tools and utilities for the GNU/Linux environment. GNU/Linux Application Programming takes a ...

    Debian GNU / Linux桌面生存指南Debian GNU/Linux Desktop Survival Guide

    指导您遍历GNU / Linux系统的许多不同区域,重点是使桌面环境能够完成您想要的工作。

    GUN/LINUX环境编程(第2版) 源代码

    《GNU/Linux环境编程(第2版)》源代码是一份宝贵的学习资源,它涵盖了与在GNU/Linux操作系统下进行系统级编程相关的广泛主题。这个压缩包中的源代码是书中的实例和练习,按照章节进行分隔存储,便于读者按需查阅和...

    GNU/Linux Rapid Embedded Programming

    An annotated guide to program and develop GNU/Linux Embedded systems quickly About This Book Rapidly design and build powerful prototypes for GNU/Linux Embedded systems Become familiar with the ...

    GNU/Linux编程指南(第二版)中文版含光盘

    第1章 Linux及Linux编程综述 第2章 设置开发系统 第3章 使用GNU CC 第4章 使用GNU make管理项目 第5章 创建可移植的自配置软件 第6章 比较和合并源代码文件 第7章 使用RCS和CVS控制版本 第8章 调试 第9章 出错处理 ...

    GNU_Linux_Programming_Unleashed/GNU/linux编程指南

    通过《GNU/Linux编程指南》,无论是初学者还是有经验的开发者,都能从中受益,提升在GNU/Linux平台上的编程能力。书中的每一个章节都结合了理论与实践,旨在培养读者的独立思考和解决问题的能力,为他们在Linux世界...

    NJUPT GNU/Linux编程课件和代码

    "NJUPT GNU/Linux编程课件和代码"这个标题表明这是一个与GNU/Linux操作系统相关的编程教学资源,来源于南京邮电大学(NJUPT)。内容可能包括课件和实际的编程代码示例,旨在帮助学习者掌握在GNU/Linux环境下进行软件...

    GNU/Linux编程指南

    本书“GNU/Linux编程指南”旨在帮助开发者理解和掌握在这个开源平台上进行软件开发的基本原理和实践技巧。 书中的内容可能涵盖以下几个关键领域: 1. **shell脚本编程**:GNU/Linux系统的交互式命令行界面(CLI)...

    GNU/Linux环境编程第二版 源码

    通过深入研究《GNU/Linux环境编程第二版》的源码,开发者可以学习到以上这些核心概念,并进一步提升在Linux平台上的编程技能。这个源码库不仅提供了理论知识,还包含了实际示例,使得学习更为直观和实用。

    GNU/Linux开发第一步.pdf

    这篇文档《GNU/Linux开发第一步》旨在引导初学者如何在GNU/Linux环境下进行编程开发,特别适合已经掌握C语言但不熟悉Linux操作系统的开发者。文档强调了通过实例学习的方法,以帮助读者将理论知识转化为实际技能。 ...

Global site tag (gtag.js) - Google Analytics