【GNU/Linux實戰手記之Emacs篇 上】 (轉)

amyz發表於2007-11-16
【GNU/Linux實戰手記之Emacs篇 上】 (轉)[@more@]

【/實戰手記之Emacs篇 上】
作者:葉魏彬 to::fritz_yea@.com">MSN:fritz_yea@hotmail.com
Copyright(C)Free Software Library,Org()
本文依照GNU Free Document Lience釋出,任何人都可以將本文原封不動的複製、轉載,但請務必保留此宣告。作者不對本文所導致的任何結果負責。

五、Linux下的常用--Emacs
  有了上面的基礎,你已經可以自由的使用Linux的控制檯了。但是,光靠這些,你還不能編輯和修改,不能歸檔和(解壓縮)檔案,不能享受影音娛樂和多。在控制檯下,我們確實可以做很多事情,包括聽。下面我們來看看控制檯下最強大的應用軟體--Emacs
Emacs是Linux下的強大的文字編輯環境,說它是一個單純的文字編輯器就太小看它了。說出來別被嚇到,Emacs可以編輯檔案,瀏覽網際網路,訪問,收發電子,使用控制檯命令,編譯和等等。它簡直可以充當一個操作了!但是,正是因為它擁有這麼多的功能,使得想學習使用它的人必須經過一段痛苦的歷程。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是一個整合的編輯環境,它可以執行,這就是它的偉大之處,也是世界上頂尖喜愛它的緣故。讓我們試試。
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,和一些基本的命令。下面我們將開始接觸一種指令碼語言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
#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是 Package Manager,是RedHat公司做的自動化安裝工具。我們用它來裝一個MPEG器:Candy
#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 --rebuild 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
  接著就開始安裝了,和下安裝軟體的過程類似。須注意一點,這個軟體允許普通使用者安裝,但是不能向/var目錄新增連結,只能裝在自己的主目錄中。

  以上就是Linux系統安裝各種軟體的方法。下面進入今天的正題。
  先從下載mpg123-0.59r.tar.gz和playlist.tar.gz這兩個軟體包。啟動Emacs,新建Shell緩衝區,su升變成,安裝上述這兩個包,還原成普通使用者。安裝順序是先裝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是什麼?試著先理解它。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982765/,如需轉載,請註明出處,否則將追究法律責任。

相關文章