2006-10-31

在 command line 下一些好用的按鍵

command line 模式,至今仍然是常為人使用的一種方式,甚至很多 linux 的老手都建議新手進入這個領域時,最好從這個模式入門。

在 linux 中預定的 shell 是 bash,但 bash 真的是一個複雜的 shell,不信,可 man bash 看看。

其實,我要的 shell 功能在編輯上很簡單,只要具備以下功能:

1. 歷史指令(history)紀錄,以及如何方便的叫用先前使用的指令,畢竟在 linux 下的一些目錄或是檔名,都有點給它長,減少一些打字,相信不單單在時間上的節省,對於手腕上的保健、健康上來說,也是件好事。
2. 方便的指令行編輯功能,這些像是一些在 command line 上游標的行動,如到行首、行尾、一個字的向前或退後,或是快速的移動到下一個 word(非一個字元),及刪除 word 功能。

以第一項來說,bash 中雖然有自動完成的功能,但個人覺得不是很完美。從前使用 FreeBSD 時所用的 shell 是 tcsh,在這方面就做得很好。

BASH 是以另一種方式來呈現。例如,我們曾輸入過幾次 gedit xxxx 的指令,用向上鍵來找實在是一個沒效率的方式,那麼是否有較好的方式呢?

// 20061103 修正,感謝網友告知

使用 ctrl-r 來替代吧,會先顯示最近一次類似的指令(如附圖),想執行就直接按 enter,如不是,按 ctrl-r 繼續找下一個吧。 想放棄按 ctrl-g,想不直接執行可用 ctrl-j,這樣可對你想要的指令做進一步的編輯。



另外在上述第二項,其實 linux 和 unix 關係密切,所以以前在 unix 下一些鍵盤下使用的一些特殊按鍵未經消化、整理也帶了進來,在 unix 下的鍵盤和目前 pc 使用的鍵盤差滿多的,所以難免有些怪怪的。

這些像一個字向前或是後退(ctrl-f及ctrl-b)可用 左右方向鍵來替代;移到行首及最後端(ctrl-a及ctrl-e)可用 "Home" 及 "End" 這兩個鍵來取代。

另外像是一些 ctrl-C、ctrl-Z .. 等按鍵就不再說明了。

還有個名詞 META 鍵,這在 pc 鍵盤上是沒有的,我們可使用 "esc" 這個按鍵來代替。

要注意的是使用 meta 這個鍵搭配其它按鍵時,不是一直按著再按其它鍵,而是先按 meta(也就是 esc 鍵)放掉 meta 鍵後,再按其它按鍵,這點請注意一下。

以下是我個人常用的一些按鍵。

● 在刪除部份

1. 清除畫面 -> 使用 ctrl-l
2. 刪除所有目前游標前的東東 -> ctrl-u
3. 刪除游標後所有的字 -> ctrl-k
4. 向前刪一個 word -> ctrl-w
5. 向後刪一個 word -> meta-d

● 快速移動游標

除了前面提到的一些外,個人覺得如何一個 word(如 gedit 這個 word) 而不是一個字元(如 g 這個字元) 的移動是很重要的,尤其在 unix-like 傳統中,參數很多、檔名又臭又長的情況下更是重要。

1. 移到下一個 word -> meta-f
2. 移動前個 word -> meta-b

----

當然,bash 的功能不只這些,這些只是個人所常用的一些按鍵,對 bash 有興趣的人,不妨 man 一下 bash。

2006-07-28

面具

這一陣子有個體會,在日常生活中,不免俗的,你得戴上面具,而且不只一具面具,而是很多具。

這當然和現代的生活生態有關。目前的生活環境,不似從前般單純,你所面對的人也變成多樣化,相對的扮演的角色也愈來愈複雜了,因此連帶著,面具也愈來愈多了。

我們倒底扮演著那些角色呢,俯拾可得的,像是學生、老師、家長、老公、老婆、子女、老闆、員工、主管、總統、人民百姓、政府官員..,而且常常是身兼數職。

這一些角色重點都不同,所以自然的扮演的角色及著力的方向也就不同了。

就拿現在熱門的趙建銘、吳淑珍、陳水扁,和這兩天很紅的黎文正來說,從這其中我們可看到什麼。

於是....

反面思考一下.. 我們是否一定要戴這麼多面具呢?又是否可 "面面" 俱到呢?又為什麼要這麼累呢?

這個答案我想因人而異,每個人處事的方式、EQ、環境不同,自然造就了不同的應對方式。

但我想,應該可以簡化吧,能夠少戴一個就少戴一個,對於自己真正無法接受的角色,不妨把它放掉,也許有所失,但換來的輕鬆、自在是否更可貴呢?

我想到我很欣賞的一句話: 對環境不滿,你有能力去改變它,那就去改變它吧;如沒能力改變它,那就試著適應它吧;如果還是沒法適應它,那就找個沒它陰影的地方吧

2006-06-28

USB 隨身硬碟,這個不錯用

前些日子,公司的一台 nb 出了問題,由於是外國貨,加上也有些年紀了,所以就不送修了,但其中的 2.5 吋硬碟還好用,於是就去買了個 USB 硬碟的外殼,將這個 20 GB 的硬碟裝了進去,如下圖。

目前 USB 硬碟的外殼有 2.5 及 3.5 吋的規格,我所買的體積較小,可直接放在口袋內,使用起來比較方便。



於是問題來了,如果該硬碟的分割格式不對或是分割區不符理想時,怎麼辦呢?

第一步就是使用 cfdisk 來分割你的硬碟,要注意的是分割整個硬碟,所以指令應用

# cfdisk /dev/sdb

而不是 sdb1 或 sdb2,會用 sdb,是因為我內裝了一個 3.5 的 scsi 硬碟,所以第一個 USB 硬碟就是 /dev/ddb? 了。

另外在分割區的 type 一般為了可攜性,多是使用 FAT32(VFAT) 這個格式。

cfdisk 使用滿容易的,請 man 一下或自行操作一次,應該就可上手了。



經由以上 step,再來就是 format 了,就要看你分割了幾個區域,以我來說只有一個分割區,就是 /dev/sdb1

# mkfs.vfat /dev/sdb1

現在,應該就可正常使用這個 USB 硬碟了。

另外,如何檢查你的 USB 硬碟呢?

不妨使用 fsck.vfat 這個指令吧?

不加任何參數,會顯示語法(參考附圖)

# fsck.vfat



下圖則是我使用

# fsck.vfat -vrt /dev/sdb1

指令的抓圖:



另外,你也可以使用 lshw 或是 lsusb,來看看相關的 USB 設備,如圖是使用 lsusb 的抓圖:




-----

最後要強調的是:

1. 分割、格式式、檢查 USB 硬碟時,最好先 umount 該硬碟,否則可能會損壞該硬碟
2. 有些指令需以 sudo 來執行

2006-05-30

DNS 修改後的靈異現象

今天在公司被一件事折騰了好久好久。

在公司的一台 ubuntu 主機上的 dns 系統,由於要更改 mail 主機的來源,所以使用 vim 來更新,不過後來卻發現dns 系統無法正向解析了,但是反向解析沒有問題。

對這個問題很納悶,經過許多次的重新設定、重開機(設定個 dns 要重開機?)、甚至重灌 bind9,都沒用。

折騰幾個小時後,福至心靈的想到,乾脆重新建一個一模一樣的 dns 正向解析的檔案,於是問題解決了,正向解析都可正常運作了。

目前對這個問題,還不是很了解,我想可能是在使用 vim 時,一些特殊的文字格式使然,造成了我浪費幾個小時處理這個問題。

不由得發作一下情緒,bind9 在此期間沒有任何的錯誤,想想,bind9 的 debug 功能真的有點問題。

所以下次碰到這類靈異事件時,乾脆重建一個檔案比較方便。

2006-04-30

我不用 msn 及 yahoo 即時傳訊

自從成為聽障人士一員後,由於電話及手機用起來很不方便,因此很多關心的朋友都問我,是否有使用 msn 或是 yahoo 即時傳訊,以做為和朋友們連絡的管道。

我和他們說,打死我都不用 msn 及 yahoo im,為啥:

1. 這兩個系統都是一個封閉系統
2. 安全性問題,君不見 msn 在網路資安上出現多少問題
3. 這兩家業者作法有點賤,為何如此說呢,大家可能有個概念,在網路上要使用某種服務(如 msn、yahoo im、smtp.. )等,一定是透過主機某個 port 來實現的,但 msn 及 yahoo 雖然有內定的 port,但其心可議的是,如果這個 port 被擋掉的話,那麼 msn 及 yahoo im,會利用 port 80 來替代,而這個 port 80 是什麼用呢?就是拿來瀏覽網頁用的,這也可說是這兩家業者心態可議,吃定了大家。

怎麼說呢?由於 msn 及 yahoo im 資安紀錄不佳,假設為了安全問題,在公司或企業內部要將這兩項擋掉,是很難做到的,除非也將 http:// (即 web 瀏覽網頁功能)關掉,才可達到功效,我想這個不便之處 msn 及 yahoo 絕對理解,但為何要如此做呢?是不是很貝戈戈呢..

似乎意謂者,不是我 msn 及 yahoo im 不讓你們這些員工上網囉,是你們的網管做的,這種將自己的不是推到網管人員身上的做法,真的很惡質。

為了資安問題,而不得不 ban 掉 yahoo im 及 msn 而導致公司內部人員無法上網沖浪,當公司內部人員責難 mis 人員時,是否有人會想到始作俑者是這兩家業者呢?

另外使用 msn 及 yahoo im 造成資安問題,這兩家業者是否會負起責任來呢?

所以我很有志氣的賭一口氣,堅持不用 msn 及 yahoo im。

那麼用什麼 im 軟體呢,不是替 gtalk 打廣告,gtalk 是使用 jabber XMPP 協定,這是一種安全、開放的協定,而且我在許多朋友都使用 gmail 後,自然地這些朋友也有了 gtalk 的帳號,在網路上聊成天來也沒什麼問題了..

甚者,自己也可利用 jabber 或是其 clone 軟體(如 ejabberd)來架設一個朋友間的聊天園地,也是件很容易的事,再也不用這兩家的 im 系統。

2006-03-09

保持電腦主機時間的正確性

想想一個問題,如果你手上這台使用 UBUNTU 電腦是用來當做主機用的,那麼假設電腦上的時間不對,會有怎樣的影響?

由於時間不對,首先新建或更新的檔案時間絕對不正確,再來系統一些依附於正確時間的一些程式會在不正確的時間執行。所以說這個問題是不是很大。

知道這個問題後,那麼要如何保持電腦時間的正確呢?

其實在網路上有很多 "對時" 的主機(用句專用術語,就是 NTP 的主機),提供正確的時間供我們的電腦來對時,在台灣有以下幾台:

tick.stdtime.gov.tw
clock.stdtime.gov.tw
time.stdtime.gov.tw

一個問題,要如何對時呢?ntp 是採用 server 及 client 端的架構,所以要使用這些 ntp server,我們必需安裝 ntp 的 client 端,也就是 ntpdate。

這個軟體在 package 中有,請自行安裝。

由於改變系統時間在 unix-like 系統中是件 "大事",所以必需 使用管理者的權限。

# sudo ntpdate [NTP主機]

其中 "[NTP主機]" 如前所述。

另外,手動調整時間可能較麻煩,不妨將對時工作放在 cron 中或是每日對時乙次,以下是每日對時的方法:

1. 首先在你的 /etc/cron.daily/ 這個目錄中建立以下檔案,假設檔案為 ntpdate,內容很簡單,如下

#!/bin/sh
/usr/sbin/ntpdate tick.stdtime.gov.tw

2. 將這個檔案的屬性設為可執行

chmod +x /etc/cron.daily/ntpdate

這樣你的電腦時間就可保持一定的正確性了。

2006-02-27

[轉貼]Minix 3 : Minix 哪裡去?原作者:ols3

Minix 3 : Minix 哪裡去?
發表人 ols3 於 2006/2/27 11:03:26 (713 人讀取)
Minix 3

若大家對當初 Linus 先生發展 Linux 的歷史稍有認識,
應該會知道 Minix 這套作業系統對設計 Linux 的影響。

Minix 的原意是 Micro UNIX,是一種迷你版的 UNIX 系統,
作者是荷蘭阿姆斯特丹Vrije大學的Andrew S. Tanenbaum教授。

類似的作業系統還有許多,
這些 UNIX clone 都是重新設計的,並未使用到 AT&T 的程式碼。

同樣的 Linux 雖是參考 Minix,但也沒有用到 Minix 的程式碼,
而且二者對核心的發展看法,大相逕庭。

Linux 採用單一化核心(monolithic kernel),而 Minix 則是使用微核心(micro kernel),
二者曾在網路上有過一番精采的激辯。

時至今日,這事仍為人所津津樂道,有興趣的人可參考:
http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html

對於軟體授權,二者也有很大的差異。
Linux 採用 GPL,而 Minix 一開始卻採用比較封閉的低收費政策,
由於 Minix 初期的策略錯誤,在 Linux 出現後,大部份的開發人員便轉向 Linux 平台。

雖然 Minix 在 2000 年改採 BSD 授權,但大勢已去,
它已失去成為被人廣泛使用的作業系統的時機。

那麼,今日的 Minix 哪裡去了?
之前 Minix 做為一個作業系統教學的目的始終沒有太大的改變,
不過,如今情況已有所改變,在 Andrew 撰寫的教科書第三版
Operating Systems Design and Implementation, 3/E
中提到了 Minix 3。



Minix 3 是一個新的開放原始碼的作業系統,設計的精神則基於穩定、彈性、安全。
整個核心相當地小,實際載入執行的程式碼不過4000條。

Minix 3 和之前的 Minix 1,2 二版有許多關鍵點不同,Minix 1 和 2 主要做為教學用的工具,
而 Minix 3 則加入了一個新的發展目標,它意欲成為開發手持行動設備及家用設備嵌入式運作環境下的一個穩定嚴謹的作業系統。

Minix 3 的適用目標條列如下:

1. 應用程式需要高度穩定性者
2. 單晶片、低記憶體、低電力,以及100美元的筆記型電腦專案
3. 嵌入式的系統 (比如: 相機、DVD撥放器、手持行動設備等)
4. 認為 GPL 授權太嚴格者 (MINIX 3 使用 BSD 授權)
5. 教育用途 (比如: 大學計算機系中的作業系統課程)

Minix 3 的硬體需求不高:

386, 486, 或 Pentium 以上相容的 CPU
16MB RAM
* 50MB 硬碟安裝空間,整個包含原始碼則建議要有 600MB 的空間。

Minix 3 採用 Live CD 發行(也可以安裝到硬碟),下載位址:

http://www.minix3.org/download/

Minix 3 網址如下,有興趣的朋友不妨去瞧瞧。

http://www.minix3.org/

----
OLS3 撰文。

2006-01-31

新年新希望

不管過去一年過的如何,終究是過去的事了,不免俗的難免在新的一年,每個人或多或少都會有一些新的期許。

每個人所想、所重視的都有所不同,於是造就了這個願望的差異,無論如何,都希望大家美夢成真。

個人今年的願望呢?就是 "享受生命,讓生命發光"。

或許在世俗的價值觀上,我是個失敗者,但人生只有這一回,何必一定要循著世俗的腳步前進呢?是不是成家、立業才是人生的唯一呢?又成功的定義到底是什麼?

這種種困擾著不少人,我想?

不循著世俗標準而行,往往易受到關心者的關愛,這是條很難走的路,但又有誰想在閉上眼睛的一刻,才突然覺醒到;自己從來沒有真正活過!

每個人在這個世界上都是獨一無二的,別人的路不一定適合自己,so 找出你的路,並努力向前吧!

自定執行程式的 shortcut 鍵

在 UBUNTU 中如果想要自定一個程式的 shortcut 鍵,要如何做呢?

例如,想當按下 ctrl+alt+g 時執行 gimp,以下列出 step:

1. 執行gconf-editor 或由 Menu → Applications → System tools → Configuration editor 來執行 gconf-editor

接著下來,要設定二個要項,一個是 gimp 這個 key 值,另一個則是要設定 ctrl+alt+g 這個 key 值

2. 設定程式名稱:

在 gconf-editor 視窗中(參考下圖)選 apps → metacity → keybinding_commands 後,在右上方的視窗中是否有 command_1 到 command_12 12 個鍵值,這就是可以設定程式名稱的地方。由於個人的 command_1 已設定給 gedit 使用,所以將 command_2 這個 key 值設定給啟動 gimp 使用,只需在該 key 值上按 mouse 右鍵(或左鍵兩次)則會出現 edit key 這個視窗,將 Value 這個欄位填入程式名稱,即 gimp 這個值。



3. 設定好程式名稱後,接下來要給這個程式一個 shortcut 鍵值(以 ctrl+alt+g),設定方式和 2 類示,只是設定的值在 apps → metacity → global_keybindding 這個項目,同時設定 key 值是 run_command_2 這個值,同樣的在該 key 值上按 mouse 右鍵(或左鍵兩次)則會出現 edit key 這個視窗,將之修改為你所想要設定的 shortcut 值(參考下圖):




設定好後,試試按下所設定的 shortcut 鍵值,是否會叫出所設定的程式。


ps:在設定 shortcut 鍵值時,最好用複合鍵來設定,如 ctrl+alt+英文字母,而不要單獨用 control+字母 或是 alt+字母 鍵,因為系統中,這些設定很多都已被使用了。

2006-01-27

看字型的軟體

據個人的經驗,在 GNU/LINUX 中有兩個看字型的程式,一個是 gfontview,另一個則是 KDE 的 kfontview。

區區較喜歡使用 kfontview,為何,因為 kfontview 在看字型時,可自行設定想要顯示的字,而 gnome 的 gfontview 就沒這個功能了。

以下是使用 kfontview 看 fireflysung.ttf 的抓圖。注意到了嗎?在工具列中有兩個按鈕,一個是 Open,另一個則是 Change Text 按鈕。




以下這張圖,則是透過工具按鈕的 Change Text 來設定想要顯示的字。