寫這個段落有點掙扎,本來想要讓這個blog全部是Linux的東西,但是這次破例寫了M$的指令
subst 顯示當前的替代路徑
subst [磁碟機代號] [路徑]
將指定的路徑替代為磁碟機代號,該路徑將作為驅動器使用
subst /b 解除
這樣的好處是,可以把一些特殊的應用路徑,設定為固定磁碟機代號,再設定環境變數的時候可以方便一點
subst 顯示當前的替代路徑
subst [磁碟機代號] [路徑]
將指定的路徑替代為磁碟機代號,該路徑將作為驅動器使用
subst /b 解除
command:【Patching the kernel】
$ sudo apt-get install linux-source-2.6.22
$ sudo bash
# cd /usr/src
/usr/src# tar -xjf linux-source-2.6.22.tar.bz2
/usr/src# cd linux-source-2.6.22
command:官方wiki提到,接下來系統『應該』會詢問有關cpu頻率和電壓的問題,如果有的話也只能答yes囉!不過,在我安裝的過程中並沒有看到任何對話框!
/usr/src# sudo apt-get install patch
/usr/src/linux-source-2.6.22# cp /home/fallen/Desktop/linux-phc-0.3.0-pre1/kernel-patch/linux-phc-0.3.0-pre1-kernel-vanilla-2.6.22.patch .
/usr/src/linux-source-2.6.22# patch -p1 <>
command:接下來會有一個 module.symvers 遺失的警告,不過 Linux-PHC Wiki 告訴我們"nothing in this world is perfect",這應該是無關緊要的意思吧,囧rz。
/usr/src/linux-source-2.6.22# make prepare
/usr/src/linux-source-2.6.22# make scripts
/usr/src/linux-source-2.6.22# make M=./arch/i386/kernel/cpu/cpufreq
command
/usr/src/linux-source-2.6.22# cp arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.ko /lib/modules/$(uname -r)/kernel/arch/i386/kernel/cpu/cpufreq
/usr/src/linux-source-2.6.22# rmmod acpi-cpufreq
/usr/src/linux-source-2.6.22# modprobe acpi-cpufreq
Linux-PHC Wiki 並未提到接下來需不需要重新啟動,但是安裝時發現如果這個步驟沒有重新開機,會找不到部份的設定。command:可以發現phc-patch新增了下列六個檔案:
/usr/src/linux-source-2.6.22# cd /sys/devices/system/cpu/cpu0/cpufreq/
/sys/devices/system/cpu/cpu0/cpufreq# ls
command:以Core 2 Duo T7100為例,顯示"45 37 18 11",這4 個數字代表cpu有4個step可以變換,每一個step會對應一個電壓值,其中數字愈小表示電壓電壓愈低,Linux-PHC Wiki 也給了一個intel的網址 (http://developer.intel.com/design/mobile/datashts/314078.htm),可以查詢這些數字代表的意義,不過,有看沒有懂。
/sys/devices/system/cpu/cpu0/cpufreq# cat phc_vids
command:若要檢視是否更改成功,用cat再去讀一次phc_vids 就行了,如何找出適用於CPU的電壓設定,請參考下一篇(還沒寫完 XD)
/sys/devices/system/cpu/cpu0/cpufreq# echo "18 18 11 11" > phc_vids
首先,編輯你的/etc/initramfs-tools/modules文件接著可以用hwinfo --framebuffer參考可以支援的參數,其實可以直接注意/boot/grub/menu.lst的註解就可以了
sudo vi /etc/initramfs-tools/modules
加入如下三行內容
fbcon
vesafb
vga16fb
然後更新一下。
sudo update-initramfs -u
最重要的一步,要把文件/etc/modprobe.d/blacklist-framebuffer裡面的vesafb和vga16fb這兩行給註釋掉。
sudo vi /etc/modprobe.d/blacklist-framebuffer
若要增加 virtual host
則要在 /etc/apache2/sites-avaible 下新增設定檔
用 a2ensite / a2dissite 啟動/關閉設定檔
vim /etc/mysql/my.cnf大致上來說是這樣,待會在看看有沒有必要裝PEAR,我真的離這東西太遠了,之前還在PHP4,轉眼已經到了PHP5,然後大家開始用PEAR
在 [client] 下增加
default-character-set=utf8
在 [mysqld] 下增加
default-character-set=utf8
default-collation=utf8_general_c
M=[1,2,3]這個就是一個1x3的矩陣,接著如果要定義一個2x3,就用分號分開每一個row,如
M=[1,2,3;2,3,4]接著一些基本的矩陣操作如轉置(Transport)M寫作M',如果要求invers就寫M^-1,底下是我們最熟悉的最小平方解的公式,在octave就寫成
x=(M'*M)^-1*M'*b輕輕鬆鬆就得到解答,我還在試驗如何使用中,歡迎討論~呵呵
差在上面的列表中(L2、FSB、Chipset......等等。)
T7、T5、T2系列,各有它的規格和支援技術。
T2是低價雙核,從表中可發現它不支援64位元和其它技術。
T7是目前Intel最新的行動處理器。
T5則是前一代產品。
T2500和T7100比,一個是T2里高階的,一個是T7里低階的
T5600和T7100比,一個是比較舊,一個比較新...............
3.移除舊版有的相關套件(如果有安裝的話)deb http://download.tuxfamily.org/3v1deb feisty eyecandy
deb-src http://download.tuxfamily.org/3v1deb feisty eyecandy
apt-get install git git-core compiz-dev
再來到這個網頁:
http://forum.ubuntu.org.cn/about64461.html
下載這個: http://forum.ubuntu.org.cn/download.php?id=15664&sid=c1c9a32626223c407465d810274f702a
compiz --replace -c emerald
跟
fusion-icon
以下方法適用於 ALC861 and Intel HDA sound drivers,
我的Toshiba a100升級7.04也出現過類似問題,解決方法如下:
試試看
開啟附屬應用程式的終端機
輸入:
cd /etc/init.d
建立一個新文字檔:
sudo gedit soundstartfix
文字檔裡面的內容請輸入:
#!/bin/bash
kill $(lsof -t /dev/dsp* /dev/audio* /dev/mixer* /dev/snd/*)
sudo modprobe -r snd-hda-intel && sudo modprobe snd-hda-intel model=auto
存檔,然後離開文字編輯器。
接下來請在終端機輸入:
sudo update-rc.d soundstartfix defaults
(等候一下...等它完成)
輸入:
sudo chmod +x soundstartfix
重開機,應該可以work的很正常了:)
因為 Ubuntu 原生於 Debian, 所以也是對於自由很堅持,因此希望把自由軟體和非自由軟體拆開來放。有些是因為人力的問題,有些套件是在 Debian 裡面有,但是不被 Ubuntu 官方支援的。所以 Ubuntu 的處理方式是把它們拆成以下四大主要組件庫,類似 Debian 一樣,讓使用者選擇需要。前兩個 Main 和 Restricted 是官方正式支援的,Universe 和 Multiverse 是不被官方正式支援的。而 Restricted 和 Multiverse 裡面是 non-free 的軟體。
大部份常用的自由軟體都會收編在 main 裡面,這裡面所含的軟體需要完全符合 Ubuntu 對自由軟體的定義,詳細規定請見http://www.ubuntu.com/ubuntu/licensing。因此通常使用 main 就可以應付日常所需。而 main 裡面所有軟體,都是官方支援的,所以 Ubuntu 將會提供 main 的安全更新和技術支援。而它的角色和 Debian 裡面的 main 差不多。
裡面所含的是非自由軟體,通常是不公開程式碼的程式或者授權不符合 Ubuntu 的要求。例如顯示卡驅動程式等等。雖然是非自由軟體,但是因為這些都是比較重要的非自由軟體,所以 Ubuntu 在符合該軟體授權下,將會進行穩定性上的測試,並也提供安全更新。因為不是自由軟體,所以 Ubuntu 在遇到問題時不一定能解決,所以維護品質沒有 main 那個好。桌面使用者通常都會使用 Restricted 這個組件庫,來對多媒體支援有比較好的效果。
這裡面大部分的軟體都是自由軟體,而且幾乎都是包含在 Debian 裡面的 main 中。但是因為人力上的問題,所以 Ubuntu 無法親自去包這些套件,而是直接由Debian 裡面抓下來從新編譯,或者是直接從外部程式碼自動編譯出來的。不管怎麼樣,這裡面的軟體是不被 Ubuntu 正式支援的,Ubuntu 雖然有提供它的安全更新,但是不保證能即時修正或能穩定運行。例如國內有名的打 BBS 軟體、 PCManX 就放在這裡面,或國內有名的輸入法程式 gcin 也是包含在這裡面。Ubuntu 預設沒有啟用 universe 套件庫,所以想要用的人得自己在 sources.list 啟用。
裡面的軟體都是非自由軟體,但是因為重要性不足或授權的因素,所以放在這裡。而這裡的軟體也是不被官方正式支援的。而和 universe 一樣,Ubuntu 預設也是沒有啟用它。
而除了以上這幾個組件庫以外,它還有其他附屬的組件庫。因為這些組件庫在穩定版出來以後,就不會再更動,所以當有漏洞的時候怎們辦?或者有 人懶得每半年都更新一次,但是又想要在舊版 Ubuntu 裡面享用一些比較新版的軟體時,總不能自己編譯和搞定 library 的問題吧!所以在上面四大組件庫,都有以下三個分支。
穩定版本正式釋出後,如果程式有重大安全性上的問題,將會在這裡更新。而這裡所謂的更新,通常只會打上 patch (這裡指原始程式碼的修正檔。), 還是同一個版本,所以功能也不會增加。因為 security 套件庫是針對系統安全而更新,所以裡面大部份更新都和伺服器或系統架構有關。而這個組件庫預設是被開啟的。
這也是在穩定版釋出後,提供系統更新的一個方式。但是和 security 不同的是,這裡所做的更新都是和安全性沒有關,而是和程式的 bug 相關。例如某套桌面軟體有時候會當掉,而這個當然和系統安全沒關係了,這種更新就會放在這裡。updates 裡面的更新和 security 一樣,也只做 patch, 所以也是同一個版本,不會有新功能。這個組件庫也是預設被開啟的。
例如 6.06 (Dapper) 中附的網頁瀏覽器是 Firefox 1.5.0.3, 但是在穩定版釋出後,也許這段時間裡面出現了 1.5.1, 1.5.2, 1.5.3 等版本,但是在主套件庫中軟體是一定不會更新的,而預設開啟的 security 或 updates 套件庫除非是有安全性的問題或者是有些 bug,否則不會更新。就算是因為安全性或 bug 而更新,也通常不會換成新版的。所以 backports 就是為瞭解決這樣的問題,開發者會將新版的軟體就會放在 backports 中,讓使用者使用舊版發行版但是可以用到比較新的套件。而通常在 backports 中的程式都是和桌面相關,而不會去更新到系統或伺服器架構,這樣才能保證系統運作穩定。而預設 backports 是沒有使用的,所以要自己修改 sources.list 來啟用。
備註: 使用者可以要求希望哪些軟體進入 backports, 詳細辦法可以參閱http://backports.ubuntuforums.org
Ubuntu 原先釋出的版本是預設採用 Gnome 這套視窗管理程式,但是在 GNU/Linux 的世界裡面有許多種的桌面系統,或者因為版本的訴求與某些使用理念不同,所以 Ubuntu 目前有五種不同的安裝版本可以使用。而這幾種安裝版本的組件庫是採用一樣的,它們可以採用不同的光碟來安裝,安裝後就是預設為不同的衍生版本,因為採用同 樣的組件庫,所以您當然可以在安裝後切換成別的衍生版本。實際上各個衍生版本都是以一個叫作虛擬套件的套件包來控制。也就是那個虛擬套件是空的,但是因為 裡面設定了相依到很多該衍生版所需的套件,所以安裝那個虛擬套件,就會自動把該衍生版所有套件裝起來。安裝方式就是使用這個指令 apt-get install $<$該衍生版套件名稱$>$, 當然這是是給各位一個概念,詳細的安裝說明會在後面提到。
執行 Google 桌面搜索要求你的 Linux 系統至少滿足下列條件:
要在你的 Linux 系統中安裝 Google 桌面搜尋軟體,可以採用以下三種方式之一:
sudo rpm -U google-desktop-linux-1.0.1.0060.rpm
sudo dpkg -i google-desktop-linux_1.0.1.0060_i386.deb
Debian/Ubuntu 可以使用下列源:deb http://dl.google.com/linux/deb/ stable non-free
並添加密鑰:wget -q -O - http://dl.google.com/linux/linux_signing_key.pub | apt-key add -
Google 桌面搜尋軟體預設的安裝位置為 /opt/google/desktop/。
號 | 內容 |
* | 萬用字元,代表 0 個或多個字元(或數字) |
? | 萬用字元,代表『一定有』一個字母 |
# | 註解,這個最常被使用在 script 當中,視為說明! |
\ | 跳脫符號,將『特殊字元或萬用字元』還原成一般字元 |
| | 分隔兩個管線命令的界定; |
; | 連續性命令的界定(注意!與管線命令並不相同) |
~ | 使用者的家目錄 |
$ | 亦即是變數之前需要加的變數取代值 |
& | 將指令變成背景下工作 |
! | 邏輯運算意義上的『非』 not 的意思! |
/ | 路徑分隔的符號 |
>, >> | 輸出導向,分別是『取代』與『累加』 |
' | 單引號,不具有變數置換的功能 |
" | 具有變數置換的功能! |
` ` | 兩個『 ` 』中間為可以先執行的指令! |
( ) | 在中間為子 shell 的起始與結束 |
[ ] | 在中間為字元的組合 |
{ } | 在中間為命令區塊的組合! |
我用的是Ubuntu的Server版本,安裝是很容易的,非常之簡單,不過安裝之後的操作系統幾乎是一個空白的操作系統,幾乎什麼都沒有,所以都得安裝好。
因為是Dapper (6.06) 版本,所以我用以下方法更換軟件源:
vim /etc/apt/sources.list
用以下內容替換文件中的所有內容
deb http://archive.ubuntu.com/ubuntu/ dapper main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ dapper-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ dapper-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ dapper main restricted universe multiverse
這裡你也可以直接使用更快速的ubuntu.cn99.com的源(推薦):
deb http://ubuntu.cn99.com/ubuntu/ dapper main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ dapper main restricted universe multiverse
這裡你還可以使用速度也非常快的的mirror.lupaworld.com的源:
deb http://mirror.lupaworld.com/ubuntu/archive/ dapper main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu/archive/ dapper-security main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu/archive/ dapper-updates main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu/archive/ dapper-backports main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu/ubuntu-cn/ dapper main restricted universe multiverse
如果是教育網用戶推薦使用上海交通大學的源:
deb http://ftp.sjtu.edu.cn/ubuntu/ dapper main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ dapper-backports main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ dapper-proposed main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ dapper-security main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ dapper-updates main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu-cn/ dapper bleeding main multiverse restricted universe
教育網用戶也推薦使用清華大學計算機系學生科協的源:
deb http://mirror.net9.org/ubuntu/ dapper main multiverse restricted universe
deb http://mirror.net9.org/ubuntu/ dapper-backports main multiverse restricted universe
deb http://mirror.net9.org/ubuntu/ dapper-proposed main multiverse restricted universe
deb http://mirror.net9.org/ubuntu/ dapper-security main multiverse restricted universe
deb http://mirror.net9.org/ubuntu/ dapper-updates main multiverse restricted universe
deb http://mirror.net9.org/ubuntu-cn/ dapper main multiverse restricted universe
保存編輯好的文件
sudo apt-get update
剛裝好的系統的root是進不去的,需要更改密碼:
sudo passwd root
反正是內網用,所以就直接用root了,sudo太麻煩!
接下來安裝SSH用以遠程登陸:
apt-get install ssh
OK,接著裝編譯器:
apt-get install gcc
apt-get install make
apt-get install autoconf
apt-get install automake
apt-get install libtool
apt-get install gdb
apt-get install g++
編輯器,我偏好使用vim,就裝上了它
apt-get install vim
默認下,vim是沒有語法染色的,
修改/etc/vim/vimrc
只要把syntax on的註釋去掉就可以了。
想要讓vim好用,還需要安裝一些必須的插件,這裡我引用兩篇文章:
第 一部分介紹了一些基本的 Vim 使用技巧。掌握這些技巧可以很大地提高編輯效率,但是 Vim 的強大功能並不僅限於此。Vim 還可以通過「插件」來進行功能擴展。精確地說,是通過腳本來進行擴展,腳本類型有插件、語法加亮、配色方案、文件類型檢測等多種。大部分的腳本都是由 Vim 的用戶寫的,解決了用戶身邊的問題,使 Vim 變得更加有用。本章將介紹最常用的一些腳本,其中除了一個屬於「語法加亮」腳本外,其它都屬於「插件」類型。關於如何寫腳本的一些基礎知識將在下一部分進 行一些介紹。
作者:Bram Moolenar
網站腳本編號:無(包含在 Vim 的標準發佈之中)
安裝說明:無
功能說明:
該腳本使得 Vim 可以直接打開使用 gzip [1]、bzip2 [2] 和 compress [3] 壓縮的文件(要求存在相應的命令行工具)。後綴為「.gz」、「.bz2」和「.Z」的文件會在打開時被動態解壓縮,並在寫操作時被自動重新壓縮。
打開壓縮文件時,屏幕上出現一個(不正確的)「[noeol]」的提示是正常的,不必進行理睬。
作者:Charles E. Campbell, Jr.(綽號 Dr. Chip)
網站腳本編號:1075(Vim 的標準發佈之中可能包含一個較老的版本)
安裝說明:
Vim 6.4 的標準發佈帶的版本是 42,較老、功能不齊全,但無須安裝。建議:
1. 在 Vim 網站上下載版本 62(更新的版本只能用於 Vim 7);
2. 使用「tar xvfj netrw.tar.bz2 -C ~/.vim」解開;
3. 在Vim中運行「:helptags ~/.vim/doc」安裝文檔。
功能說明:
支持直接讀寫網絡上的文件,支持的協議有 ftp、http、rsync、scp 等。比如,使用 FTP 協議以用戶名 adah 打開服務器 server 上 ~/temp 目錄下的 test.cpp 文件,可以直接在命令行上使用:
|
Vim會自動提示用戶輸入口令,然後打開文件。
更多的幫助內容請參考「:help netrw」。
作者:Charles E. Campbell, Jr.(綽號Dr. Chip)
網站腳本編號:195
安裝說明:
在 Vim 網站上下載最新版本(engspchk.tar.gz);
使用「tar xvfz engspchk.tar.gz -C ~/.vim」解開;
在Vim中運行「:helptags ~/.vim/doc」安裝文檔。
提示替換拼寫功能需要 agrep [4],可能需要另外下載安裝。
功能說明:
一個Vim專用的拼寫檢查器,其最主要的特點是:
圖 5 中的窗口裡 engspchk 正在運行中。其中可以看到,紅色部分是插件所不能識別的單詞,黃色部分是當前英文變體(缺省是美國英語)中不正確的拼法,而青色部分是很少見的單詞。圖中 運行的是包含圖形界面支持的 Vim,因而還可以看到一個名為 DrChip 的菜單項(參見圖6),在其中可通過菜單選擇拼寫檢查相關的各項功能;同時還能看到快捷鍵:「\ec」開始拼寫檢查,「\ee」結束拼寫檢查,「\ea」 選擇替換拼寫,等等。在文本模式的 Vim 中,我們一般就只使用這些快捷鍵了。
更多的幫助內容請參考「:help engspchk」。
作者:Yasuhiro Matsumoto
網站腳本編號:52
安裝說明:
在 Vim 網站上下載文件 calendar.vim,存到 ~/.vim/plugin 目錄中。
功能說明:
圖 6 的下半部分就是 calendar 的運行示例,是直接在正常模式下鍵入「\caL」顯示出來的。光標在該窗口中時,可使用左箭頭或上箭頭顯示前一個月,右箭頭或下箭頭顯示後一個月,「t」 回到「今天」,「q」關閉日曆窗口。在有鼠標支持時,也可以使用鼠標在黃色字樣的「Prev」、「Today」、「Next」上雙擊達到類似的效果。
除 使用「\caL」外,「\cal」也可以打開一個日曆窗口,但顯示位置是在 Vim 的左側而不是下方。另外,命令「:Calendar」效果和「\cal」相同,但其後可以跟參數:一個參數的話表示月份,兩個參數的話則分別表示年份和月 份。「:CalendarH」與「:Calendar」類似,但日曆窗口的打開位置和「\caL」(而不是「\cal」)一樣,是在下方而不是左側。
作者:Aric Blumer
網站腳本編號:69
安裝說明:
1. 在 Vim 網站上下載最新版本(project-1.3.tar.gz);
2. 使用「tar xvfz project-1.3.tar.gz -C ~/.vim」解開;
3. 在 Vim 中運行「:helptags ~/.vim/doc」安裝文檔。
功能說明:
該 插件可以把文件組織成一棵樹的形式,以便於查找和管理。使用命令「:Project」即可打開一個用戶的「項目文件」(~/.vimprojects)。 項目文件採用普通的文本文件的形式,非常易於瀏覽和修改。圖 7 是一個示例。其中左邊窗口部分的就是一棵項目樹,完整內容如下:
|
在 這個項目文件中存在兩個項目:CvsMenu 和 Nvwa。引號中的內容表示路徑,「CD=.」則表示打開該項目中的文件時,當前目錄會更改到項目所在的目錄。項目下面可以再分子項目,如 Nvwa 項目下有 doc 和 nvwa 兩個子項目,沒有「CD=.」表示打開子項目裡的文件時不再更改當前目錄。
圖中並沒有顯示出完整的 內容,因為其中的內容可以摺疊(缺省打開項目文件時是完全摺疊起來的,即在上面的例子中,只能看到兩個項目的名字「CvsMenu」和「Nvwa」)。在 非文件名行上使用鼠標雙擊或回車鍵可以進行展開或摺疊,在文件名行上使用鼠標雙擊或回車鍵則可以打開對應的文件。
更多的幫助內容請參考「:help project」。
作者:Yegappan Lakshmanan
網站腳本編號:273
安裝說明:
1. 確保機器上有一個可用的 Exuberant Ctags 的版本(可以執行命令「ctags」)
2. 在 Vim 網站上下載 taglist(假設為 taglist.zip);
3. 使用「unzip taglist.zip -d ~/.vim」解開;
4. 在 Vim 中運行「:helptags ~/.vim/doc」安裝文檔。
雖然 taglist 使用 ctags,但並不要求 tags 文件的存在。
功能說明:
使用命令「:Tlist」啟用/關閉 taglist,效果請先看一下圖 8。Taglist 的主要特性有:
更多的幫助內容請參考「:help taglist」。
作者:Thorsten Maerz/吳詠煒
網站腳本編號:1245
安裝說明:
1. 在 Vim 網站上下載文件 cvsmenu.vim,存到 ~/.vim/plugin 目錄中;
2. 啟動 gvim,在菜單中選擇「CVS-Settings-Install-Install updates」(文本模式的 Vim 可以使用快捷鍵「,cgii」),從網上(SourceForge)的 CVS 中安裝最新版本和幫助文檔(此步驟可選)。
功能說明:
在 Vim 中集成 CVS [24]版本管理功能。該插件最初由 Thorsten Maerz 編寫,在 2002 年以來沒有再得到維護。我在 2005 年初開始使用這個插件後,非常喜歡它,修正了其中存在的錯誤,並一直維護該插件。如果大家發現有 bug,報告給我就可以了。
主要功能可在圖 9 的菜單中看到:
瞭解 CVS 環境的基本信息和 cvsmenu 中的變量設定(參見圖 10);根據實際使用的需要,除了修訂錯誤之外,我加入了一些編碼相關 的支持。拿一個最實際的情況,如果使用「set encoding=utf-8」,但源代碼中仍使用了 GBK 編碼的中文字符,那麼,必須在 .vimrc 中加入一行「let g:CVScvsoutputencoding='gbk'」才能保證「cvs annotate」操作的結果是正確的。
Thorsten 把該插件的易用性設計得相當好。舉例來說,在作文件比較時,按 Tab 可跳轉到下一個不同處,左側的比較窗口中按一下「q」即可關閉該窗口。更多的幫助內容請參考「:help cvsmenu」。
作者:Michael Geddes
網站腳本編號:5
安裝說明:
1. 在 Vim 網站上下載最新版本(doxygen.zip);
2. 使用「unzip doxygen.zip」解開;
3. 執行「cp -p doxygen.vim ~/.vim/syntax」和「cp -p doxygen.txt ~/.vim/doc」複製文件到 Vim 目錄下;
4. 在 Vim 中運行「:helptags ~/.vim/doc」安裝文檔。
5. 如果 ~/.vim/after/syntax 目錄不存在,使用「mkdir -p ~/.vim/after/syntax」創建該目錄;
6. 進入 ~/.vim/after/syntax 目錄,使用下面三行創建語法文件之間的關聯,使得在 C、C++ 和Java 文件中可以識別文檔註釋:
|
6. 可選地,看一下我的個人編程網頁 [6] 下有沒有對 doxygen.vim 的更新(裡面包含有作者尚未併入到標準發佈中去的我的更改——好奇的話,你可以在 doxygen.vim 文件中數一下,看一看 Wu Yongwei 的名字出現了幾次:-))。
功能說明:
如果你用過文檔註釋,相信我不需要多說,看一下圖 14你就知道這個腳本的功能了。如果你沒有用過文檔註釋,強烈建議你到 Doxygen [7] 的網站上看一下,瞭解一下這個非常有用的工具。作為示例,可在 http://nvwa.sourceforge.net/doc/debug__new_8cpp.html#a17 看一下圖中的代碼使用 Doxygen 自動生成的 HTML 網頁。
作者:Don Yang
網站腳本編號:1189
安裝說明:
在 Vim 網站上下載文件 matrix.vim,存到 ~/.vim/plugin 目錄中即可。
功能說明:
是的,說的就是電影 Matrix!Vim 的腳本並不是都干「正經事」的。想看一下電影裡那些酷酷的字符在 Vim 的窗口裡翻滾嗎?發一個命令「:Matrix」即可(按任意鍵退出)。效果見圖 15。
[1] The gzip home page: http://www.gzip.org/
[2] bzip2: http://www.bzip.org/
[3] Compress for UNIX: http://www.answers.com/compress#Wikipedia
[4] agrep: http://www.answers.com/agrep
[5] CVS-Concurrent Versions System: http://www.nongnu.org/cvs/
[6] Wu Yongwei's Programming Page: http://wyw.dcweb.cn/
[7] Doxygen: http://www.stack.nl/~dimitri/doxygen/tar xzvf xxx.tar.gz
tar cvzf xxx.tar.gz directory
compress/gzip your_file
bzip2 -z your_file
gzip/bzip -8 your_file
compress/gzip/bzip -d compressed_file
#本來device被對應成UUID,那麼如何取得UUID呢?
proc /proc proc defaults 0 0
# Entry for /dev/sda2 :
UUID=0e4aa4fb-46cf-4b5e-9dad-cc9e7eeda693 / reiserfs defaults 0 1
# Entry for /dev/sda1 :
UUID=a56f8c86-92b7-4de8-a9dd-f959bacce64e /boot reiserfs notail 0 2
# Entry for /dev/sda3 :
UUID=abd8bfbe-006c-44f9-aa91-720bc9b4ab5c /home reiserfs defaults 0 2
# Entry for /dev/sda4 :
UUID=c26ad5ec-652d-48aa-a33c-bcafde4451f7 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
不過話說回來,人們對於使用UUID的褒貶不一,有人說以前的/dev/sda之類的方式還很清楚,改成UUID這一串長長的字串,反而不容易辨識由於新增或移除儲存裝置,會導致現有裝置的檔案名稱跟著變動,所以當系統重開機之後,可能會面臨儲存裝置無法存取的命運。底下一連串動作,就有可能導致這樣的結果:
系統管理者加裝一張 SCSI 控制卡,並在上面接了兩顆新的硬碟(現有的 SCSI 卡已經接滿了)。
舊的 SCSI 硬碟(包括卡上接的第一顆硬碟 /dev/sda)不做任何更動。
重開機
因為新 SCSI 介面卡上的第一顆硬碟叫做 /dev/sda,所以先前叫做 /dev/sda 的 SCSI 硬碟得有個新名字
理論上,這聽起來是個大問題;不過事實上不會那麼嚴重。第一,這種硬體變動很少出現。第二,系統管理者多半會停機一陣子,好更動系統;停機時間需要事先仔細規劃,以免超出預計的時間,影響正常運作。這事先規劃的好處,則是讓管理者評估任何裝置名稱改變,可能帶來的問題。
然而,有些企業與系統設定就可能遇到這麻煩。常常更動儲存環境,以符合某些需求的公司,有時候就不容許任何停機時間。像「熱插拔(hotpluggable)」這種硬體就很容易安裝或移除;但在這種環境下,裝置的命名問題,就常常會帶來問題。幸好 Red Hat Enterprise Linux 的功能,可以降低這類問題發生的機會。
5.9.1.2.1. 檔案系統的標籤
有些檔案系統(這部份將在第 5.9.2 節討論)包含一組獨一無二的「標籤(label)」 — 用來分辨檔案系統所儲存的資料。當掛載檔案系統時,就可以利用這標籤,減低使用裝置名稱的需求。
檔案系統標籤用起來不錯;不過這標籤一定要獨一無二。如果同一台電腦裡,有兩個以上的重複標籤,您就沒辦法用這方式存取硬碟。同時要注意的是,有些系統設定並不使用檔案系統(例如某些資料庫),就不能享受標籤的好處。
5.9.1.2.2. 使用 devlabel
devlabel 指令會以另一種方式解決裝置的命名問題。Red Hat Enterprise Linux 開機時(以及使用者新增或移除熱插拔裝置時),會自動執行 devlabel。
devlabel 執行時,會從設定檔(/etc/sysconfig/devlabel)讀取裝置清單。每個清單上的裝置,都有個(由系統管理者所選定的)symbolic link,以及該裝置的 UUID(通用唯一識別碼,Universal Unique IDentifier)。
devlabel 指令能確保 symbolic link 永遠指向原始的裝置 — 即使裝置名稱改變也沒關係。這樣一來,系統管理者就能使用像 /dev/projdisk 之類的名稱,而不是 /dev/sda12。
因為 UUID 直接來自硬體,所以 devlabel 只要在系統中,尋找相符合的 UUID,並更新 symbolic link 即可。
要了解更多 devlabel 的資訊,請參閱《Red Hat Enterprise Linux 系統管理手冊》。
有某甲在網路或者其他通路買到一片動畫光碟,然後這張光碟本身是盜版的(某甲購買的時候不知情);接著在看完的狀況下,某甲再把它賣出,如果是正版,當然沒啥問題,可是這屬於販賣盜版的行為,所以有出版商就提出告訴。即使他在得知這對方真的不是盜版商人,它還是會堅持提告,真是心態可議,某甲可能為了息事寧人的狀況下,目出數十萬的賠償,本身還可能比這張光碟可以賣得的利潤還高。聽說有出版商很喜歡這樣作~
很多人喜歡看外國影片,尤其是日文,但是看不懂中文的很多,中文出版商對於這部份又是愛理不理(因為有些作品沒$賺),所以就直接輸入不翻譯等等;網路上有人就發起了中文的翻譯字幕的念頭,可是這部份似乎犯法了,單單就翻譯字幕檔案的部份(本身不涉及散播動畫檔案)
DVD被全球劃分成數個區塊,然後每個區塊有他自己代號,一般來說你只能用對應的區號的解碼器(不論軟體、硬體),解開那一區塊代碼的影片,軟、硬體製作商應該也是被要求對於每個區碼付出相對應的權利金。
裝置 | 代號 |
IDE硬碟 | /dev/hd[a-d](大概是因為IDE一般只有連接四個裝置吧) |
SCSI設備 | /dev/sd[a-p](SATA硬碟也算是這一種) |
USB設備 | /dev/sd[a-p](同上) |
CDROM | /dev/cdrom |
軟碟機 | /dev/fd[0-1](應該比較少人在用了吧) |
印表機 | /dev/lp[0-2] |
滑鼠 | /dev/mouse |
磁帶機 | /dev/ht0(IDE介面) /dev/st0(SCSI介面) |
http://www.howtoforge.com/perfect_setup_ubuntu704_p5
從上面網址看來的,作一下筆記
In order to install Postfix with SMTP-AUTH and TLS do the following steps:
apt-get install postfix libsasl2 sasl2-bin libsasl2-modules libdb3-util procmail
You will be asked two questions. Answer as follows:
General type of configuration? <-- Internet Site
Mail name? <-- server1.example.com
Then run
dpkg-reconfigure postfix
Again, you'll be asked some questions:
General type of configuration? <-- Internet Site
Where should mail for root go <-- [blank]
Mail name? <-- server1.example.com
Other destinations to accept mail for? (blank for none) <-- server1.example.com, localhost.example.com, localhost.localdomain, localhost
Force synchronous updates on mail queue? <-- No
Local networks? <-- 127.0.0.0/8
Use procmail for local delivery? <-- Yes
Mailbox size limit <-- 0
Local address extension character? <-- +
Internet protocols to use? <-- all
Next, do this:
postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
Afterwards we create the certificates for TLS:
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csropenssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
Next we configure Postfix for TLS:
postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
postconf -e 'myhostname = server1.example.com'
The file /etc/postfix/main.cf should now look like this:
cat /etc/postfix/main.cf
# TLS parameters
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
Restart Postfix:
/etc/init.d/postfix restart
Authentication will be done by saslauthd. We have to change a few things to make it work properly. Because Postfix runs chrooted in /var/spool/postfix we have to do the following:
mkdir -p /var/spool/postfix/var/run/saslauthd
Now we have to edit /etc/default/saslauthd in order to activate saslauthd. Set START to yes and change the line OPTIONS="-c" to OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":
vi /etc/default/saslauthd
#
# Settings for saslauthd daemon
#
# Should saslauthd run automatically on startup? (default: no)
START=yes
# Which authentication mechanisms should saslauthd use? (default: pam)
#
# Available options in this Debian package:
# getpwent -- use the getpwent() library function
# kerberos5 -- use Kerberos 5
# pam -- use PAM
# rimap -- use a remote IMAP server
# shadow -- use the local shadow password file
# sasldb -- use the local sasldb database file
# ldap -- use LDAP (configuration is in /etc/saslauthd.conf)
#
# Only one option may be used at a time. See the saslauthd man page
# for more information.
#
# Example: MECHANISMS="pam"
MECHANISMS="pam"
# Additional options for this mechanism. (default: none)
# See the saslauthd man page for information about mech-specific options.
MECH_OPTIONS=""
# How many saslauthd processes should we run? (default: 5)
# A value of 0 will fork a new process for each connection.
THREADS=5
# Other options (default: -c)
# See the saslauthd man page for information about these options.
#
# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
# Note: See /usr/share/doc/sasl2-bin/README.Debian
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Now start saslauthd:
/etc/init.d/saslauthd start
To see if SMTP-AUTH and TLS work properly now run the following command:
telnet localhost 25
After you have established the connection to your Postfix mail server type
ehlo localhost
If you see the lines
250-STARTTLS
and
250-AUTH PLAIN LOGIN
everything is fine.
The output on my system looks like this:
root@server1:/etc/postfix/ssl# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (Ubuntu)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
Type
quit
to return to the system's shell.
Run this to install Courier-IMAP/Courier-IMAP-SSL (for IMAPs on port 993) and Courier-POP3/Courier-POP3-SSL (for POP3s on port 995):
apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0
You will be asked two questions:
Create directories for web-based administration ? <-- No
SSL certificate required <-- Ok
If you do not want to use ISPConfig, configure Postfix to deliver emails to a user's Maildir*:
postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart
*Please note: You do not have to do this if you intend to use ISPConfig on your system as ISPConfig does the necessary configuration using procmail recipes. But please go sure to enable Maildir under Management -> Server -> Settings -> EMail in the ISPConfig web interface.