[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ 下一頁 ]
這一章節主要是說明如何在指令介面下設定系統組態。 Debian 系統安裝提示, 第 3 章.
如果您關心系統安全性,請閱讀 Securing Debian
Manual
來建構系統的安全性,該文件也可以安裝 harden-doc
套件取得。
Debian 使用 System V 的 init 系統與流程,先閱讀 init
程式, 第 2.4.1 節
了解大概內容。
最簡單控管 init script
的方法是設定在/etc/default
下的檔案中的系統環境變數。 [39]
舉例來說,/etc/default/hotplug
就能控制/etc/init.d/hotplug
的行為。可以自行編輯
motd,sulogin 等服務命令稿並放置在 /etc/init.d/rcS
讓系統開機時即可啟動。
系統日誌是由 syslogd 這支程式控制,編輯 /etc/syslog.conf
設定日誌輸出型態。 透過 colorize
這個套件可以讓日誌檔更容易辨識。
查看 syslogd(8)
和 syslog.conf(5)
可以得到更多的訊息。
Debian 保留了部份硬體最佳化的設定,系統管理者可以在安裝之後進行設定。
hdparm
硬碟讀寫最佳化軟體,效果十分顯著。
請小心使用該軟體,最好先閱讀過 hdparm(8)
再嚐試。
hdparm -tT /dev/hda :測試 /dev/hda 的讀寫速度。
hdparm -q -c3 -d1 -u1 -m16 /dev/hda: 加速新型的硬碟機。( 有可能照成錯誤 )
setcd
光碟機讀寫最佳化軟體。.
setcd -x 2: 設定讀取速度為 2.倍速。
閱讀 setcd(1)
可以得到更多資訊。
setserial
串列埠管理工具集。
scsitools
SCSI 裝置管理工具集。
memtest86
記憶體檢測軟體。
hwtools
低階硬體管理程式的集合。
irqtune
: 改變硬體的 IRQ
優先權,使快速的裝置或服務可以擁有較高的優先權,比如加速串列埠數據機的產量達 3
倍等。
scanport
: 掃描 ISA 裝置從 0x100 到 0x3ff 的輸入輸出位置。
inb
: 從輸出輸入埠傾印資料並轉換成二進制和十六進制。
schedutils
Linux 程序排程工具
包括了 taskset
, irqset
, lsrt
以及
rt
。
另外還有 nice
and
renice
(不包括),可以全盤控制程序的排程參數。
掛載檔案系統時加上 noatime 這個參數能提昇檔案讀寫的效率。 閱讀
fstab(5)
以及 mount(8)
。
部份的硬體裝置可以藉由 Linux Kernel 設定 proc 檔案系統來直接設定及最佳化。 閱讀 透過 proc 檔案系統調整核心, 第 7.2 節。
Debian 納入了許多設定硬體特性的軟體。大部分的軟體都是針對筆記型電腦設計。底下是 Debian 中比較有趣的軟體:
tpconfig
- 觸碰版設定軟體
apmd
- 進階電源管理程式
acpi
- 檢視 ACPI 裝置資訊的工具
acpid
- 使用 ACPI 的工具集
lphdisk
- 提供 Phoenix NoteBIOS 的硬體磁區休眠功能
sleepd
- 設定筆記型電腦休眠狀態的軟體
noflushd
- 讓閒置的硬碟可以停止運轉以節省電源
big-cursor
- 提供 X 更大的滑鼠指標
acme
- 啟動筆記型電腦上的多媒體功能鍵
tpctl
- IBM ThinkPad 硬體裝置設定工具
mwavem
- Mwave/ACP 數據機支援
toshset
- Toshiba 筆記型電腦的硬體設定程式
toshutils
- Toshiba 筆記型電腦相關工具
sjog
- 支援 Sony Vaio 筆記型電腦上的 "Jog Dial" 的軟體
spicctrl
- 調整 Sony Vaio 液晶螢幕亮度的軟體
ACPI 是一個全新的架構是且比 APM 要來的新且完整。
部份的套件需要特定的 Kernel 模組且已經納入最新的 Kernel Source 之中。如果硬體依然不支援,只好自行抓取修正檔並重新編譯 Kernel。
PAM (Pluggable Authentication Modules) 允許管理者控管使用者登入的方式。
/etc/pam.d/* # PAM 控制檔案的位置 /etc/pam.d/login # PAM 控制登入的設定檔 /etc/security/* # PAM 模組參數的設定檔 /etc/securetty # 限制 root 從 console 模式下登入的設定檔 /etc/login.defs # 登入系統之後的環境變數設定檔
如果想允許空白密碼的使用者登入系統,可以編輯 /etc/pam.d/login
並加入以下的訊息,此動作的風險很大,請管理者斟酌。
#auth required pam_unix.so nullok auth required pam_permit.so
xdm
,
gdm
...等軟體透過這樣的步驟也能允許空白密碼的使用者登入。
另一方面,使用 cracklib2
可以加強密碼安全機制,設定
/etc/pam.d/passwd
並加入以下的敘述。
password required pam_cracklib.so retry=3 minlen=6 difok=3
使用 passwd
並加入 -e
這個參數會強迫使用者在下一次登入時必須修改密碼。 閱讀 passwd(1)
以取得更多的資訊。
在 Bash shell 的環境中,可以執行 ulimit -u 1000
來設定執行程序的最大值,或者直接編輯 /etc/security/limits.conf
。
在該檔案中可以找到類似 core 的參數,試著編輯它即可。
PATH
的設定可以藉由 /etc/login.defs
的內容來初始化。
PAM 的文件被包裝在 libpam-doc
之中。在這個套件包裝的文件有:Linux-PAM System Administrator's
Guide,涵蓋了如何設定 PAM 以及相關模組的說明。The Linux-PAM
Application Developers' Guide 以及 The Linux-PAM Module Writers'
Guide。
su
不支援 wheel 群組"
這是 Richard M. Stallman 的慣用語,可以在舊式的 info su
頁面底下找到。請不要擔心,目前 Debian 中的 su
程式是使用
PAM的,所以編輯 /etc/pam.d/su
並加入 pam_wheel.so
的敘述就可以限定那些使用者可以執行 su
。底下以 Debian 中的
adm 群組當作範例;如何實現 BSD 中的 wheel
群組直接執行 su
且不需輸入密碼就能切換成 root。
# anti-RMS configuration in /etc/pam.d/su auth required pam_wheel.so group=adm # Wheel members to be able to su without a password auth sufficient pam_wheel.so trust group=adm
比較特殊的群組:
如果 pam_wheel.so
不加上 group= 參數指定群組名稱,則
root 群組便是 su
所定義的預設 wheel 群組。
adm 群組可以讀取系統紀錄檔。
cdrom 群組可以對光碟機進行存取的動作。
floppy 群組可以讀寫控制軟碟槽。
audio 群組可以讀寫音效裝置。
src 群組擁有管理軟體源碼的權限,比如 /usr/src
下的檔案存取。
staff
針對新上手的系統管理者或是系統諮詢帳號所規劃的群組,該群組的使用者擁有
/usr/local
以及 /home
的讀寫權。
想要了解更多的資料,請閱讀 Securing Debian
Manual
的 "FAQ"。Debian Woody 可以安裝
harden-doc
套件取得該文件。base-passwd
(>3.4.6)
更納入了權限的列表。
sudo
對我而言,sudo
絕大部分是防止我做出愚笨的行為,使用
sudo
會是比直接切換成 root 更好的辦法。
安裝 sudo
之後,編輯好
就能啟動。順便檢查
/etc/sudoers
/usr/share/doc/sudo/OPTIONS
中的 sudo 群組參數。
這個例子是說明 "staff" 群組透過 sudo
的設定之後便能以
root 身份執行任何程式;同樣地,"src" 群組透過 sudo
設定之後便能以 root 身份執行部份程式。
使用 sudo
的好處在於一般 user
只要輸入自己的密碼就能登入並被系統監視。
且能提供部份權限給予新上手的管理者練習。舉例來說:
$ sudo chown -R myself:mygrp .
如果你擁有 root 密碼,那麼你能以 root 權限來執行任何命令:
$ su -c "shutdown -h now" Password:
(我知道我應該要加強管理者帳號的 sudo
權限。但這是我自家使用的伺服器,所以不用去煩惱這個問題。)
安裝 super
這個套件能夠讓一般使用者以 root 權限執行特定指令。
super-server, inetd
, 在開機時被
/etc/rc2.d/S20inetd
(for RUNLEVEL=2)呼叫並啟動,而這個檔案是
/etc/init.d/inetd
的一個 soft link。基本上,inetd
能啟動和控制其他的服務,減低系統負載度。
當一個服務對 inetd
送出需求時,它的通訊協定與服務可以從
/etc/protocols
以及 /etc/services
中找到,然後
inetd
便會搜尋 /etc/inetd.conf
找到適合的網際網路服務來對應,如果是 Sun-RPC 類型的服務,便會搜尋
/etc/rpc.conf
這一個設定檔。
由於系統安全上的考量,請取消 /etc/inetd.conf
中不必要或是不使用的服務。Sun-RPC 服務需要啟動 NFS 以及其他 RPC 為主的程式。
有些時候,inetd
並不會直接啟動,而是透過 tcpd
這個
TCP/IP 服務控制程式並以 /etc/inetd.conf
中已定義的伺服器服務名稱來啟動。這個情況下,tcpd
在登入以及請求時必須使用 /etc/hosts.deny
以及
/etc/hosts.allow
進行附加的檢查,然後在執行相對應的服務程序。
如果您在新版的 Debian 上無法進行遠端登入,請將 /etc/hosts.deny
中的 "ALL: PARANOID" 給註解掉。
想要得知更多的資訊,請閱讀 inetd(8)
, inetd.conf(5)
,
protocols(5)
, services(5)
, tcpd(8)
,
hosts_access(5)
, 以及 hosts_options(5)
.
有關 Sun-RPC 更多的訊息,請參閱 rpcinfo(8)
,
portmap(8)
, 以及
/usr/share/doc/portmap/portmapper.txt.gz
.
請使用 Use Lightweight Directory Access Protocol (LDAP)。 請參考:
OpenLDAP Admin Guide in the openldap-guide
套件
LDP: LDAP Linux
HOWTO
ATAPI/IDE 介面的燒錄器是越來越流行了。對於系統備份或是文件容量 < 640MB
的家用戶來說可是不錯的選擇。閱讀 LDP CD-Writing-HOWTO
能夠得到更進階的資訊喔。
首先,對於光碟片來說,燒錄器將資料寫入光碟片之後,已經無法回覆光碟上的資料。如果預算不是問題,建議直接購買 SCSI 介面的燒錄器來取代 ATAPI/IDE 介面的。如果要連接 IDE 裝置,請使用 PCI 匯流排(例如,在主機板上)而不要使用 ISA 匯流排( SB16 音效卡就是使用它)
如果您的燒錄器是 IDE 介面且 Kernel 為 2.2 或是 2.4 時,則需要 IDE-SCSI 來驅動燒錄功能。所以必須使用 SCSI 泛型驅動程式。底下有兩種方法可以達成上述功能,假設使用的是較新版本的 Kernel(如 2001 年三月的版本)。
Kernel 2.6 能使用原本的 IDE 驅動程式來取代 IDE-SCSI 並直接使用
/dev/hdx
來存取 CD-RW 裝置。搭配 DMA 會更好。
lilo
如果您使用的是 Debian 所包裝的 kernel-image,請在 /etc/lilo.conf
中加入以下的字串。如果有多個選項請用空白分開:
append="hdx=ide-scsi ignore=hdx"
燒錄器的裝置代號標示法為 hdx,其中的 x 代表以下的任一種硬體裝置:
hda for a master on the first IDE port hdb for a slave on the first IDE port hdc for a master on the second IDE port hdd for a slave on the second IDE port hde ... hdh for a drive on an external IDE port or ATA66/100 IDE port
完成上述設定之後,以 root 權限執行以下的命令:
# lilo # shutdown -h now
Debian 使用 make-kpkg
來產生 kernel image。執行
make-kpkg
並加入 --append_to_version
的參數能夠建立多種 kernel images。請參閱 Debian下的Linux核心, 第 7 章。
執行 make menuconfig 加入底下的 kernel 參數與設定:
bzImage
Exclude the IDE CD driver (not a must, but simpler to do this)
Compile in ide-scsi and sg, or make them modules
以下的步驟可讓系統在開機時啟動燒錄器:
# echo ide-scsi >>/etc/modules # echo sg >>/etc/modules # cd /dev; ln -sf scd0 cdrom
手動啟動可以這樣做:
# modprobe ide-scsi # modprobe sg
重新開機之後,您可以用下列方式檢查:
$ dmesg|less # apt-get install cdrecord # cdrecord -scanbus
[Per Warren Dodge] 如果系統同時存在 CD-ROM 以及 CD-R/RW 的話,有時會造成
ide-scsi 和 ide-cd 的衝突。試著增加底下的設定到
/etc/modutils/aliases
並執行 update-modules
和重新開機:
pre-install ide-scsi modprobe ide-cd
這會使得 IDE 驅動程式比 ide-scsi 更早載入到核心。ide-cd 管理所有的 ATAPI CD-ROM—被指明忽略的裝置除外。剩下的裝置才由 ide-scsi 來控制。
如何產生一個 target-directory/
下所有資料的光碟映像檔:cd-image.raw
(可開機, Joliet
TRANS.TBL-enabled format; 如果不需要光碟開機,拿掉 -b 和
-c 參數)?先將一片開機磁片放入軟碟機中並執行
# dd if=/dev/fd0 target-directory/boot.img # mkisofs -r -V volume_id -b boot.img -c bootcatalog -J -T \ -o cd-image.raw target_directory/
另一個方法是產生一個開機 DOS 映像檔。假設一個開機片映像檔放在
boot.img
之下,則當軟碟開機時,CD-ROM
也會被驅動。您可以藉由 freeDOS 來達成這些動作。
光碟映像檔可以當成 loop 裝置來掛載。
# mount -t iso9660 -o ro,loop cd-image.raw /cdrom # cd /cdrom # mc # umount /cdrom
先測試看看 (假設燒錄速度為兩倍)
# nice --10 cdrecord -dummy speed=2 dev=0,0 disk.img
如果無誤,則燒錄到 CD-R 只需執行以下指令
# nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img
或是燒錄到 CD-RW 的片子上
# nice --10 cdrecord -v -eject blank=fast speed=2 dev=0,0 disk.img
對於某些 CD-RW 來說,陸續的指令會好
# nice --10 cdrecord -v blank=all speed=2 dev=0,0 disk.img
接續如下
# nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img
為了預防清除 CD-RW 光碟片時出現 SCSI timeouts,則以上兩個步驟是必須的。而
nice
的值需要特別注意。
有些版權光碟具有防拷的保護使得在使用 dd
時無法正確拷貝 ( Windows
98 便是其中之一 )。 您可以試用 readcd
這個指令來拷貝,readcd
包含在 cdrecord
套件之中。利用該軟體來複製光碟大綱以產生映像檔。如果是資料光碟,請先掛載它,並執行
df
來查詢光碟大小。將得到的 blocks (1 block = 1024 bytes) 數目除以
2 來取得 sector 數目 (1 sector = 2048)。 執行 readcd
並加入以下參數來建立映像檔並燒錄到 CD-R/RW。
# readcd dev=target,lun,scsibusno # select function 11
大部分來說,只要將以上三個參數皆設為 0 就可以了。通常 readcd
所檢查出來的 sectors 數目都會過多!所以改用掛載時所產生的 block,sector
數目會比較好。
dd
對於光碟複製上可能會有些小問題。第一次執行 dd
時可能會產生錯誤訊息且映像檔會失去最末端的資料。第二次執行 dd
時如果沒指定大小,可能會產生過大的映像檔,當然,這些過多的資料都是無用的。目前解決的辦法是在執行第二次
dd
時指定正確的大小,第一次有錯誤時也不要退出光碟。假設由
df
查出來的大小為 46301184
blocks,則執行以下指令兩次來取得正確的映像檔大小。(以我的經驗來說)
# dd if=/dev/cdrom of=cd.img bs=2048 count=$((46301184/2))
您可以在 Debian CD site
取得最新的 Debian 光碟訊息。
如果您有高速網路,則可以考慮網路安裝:
如果您的網路不夠快,則可以考慮從 CD vendor
來購買 Debian
光碟。
除非您是映像檔測試者,否者請不要浪費頻寬來下載光碟映像檔(即使是使用 jigdo)。
另一個值得注意的光碟映像檔為 KNOPPIX - Live Linux
Filesystem On CD
。 您可以在光碟開機之後馬上擁有 Debian
系統而不需安裝到硬碟內。
如何備份重要的資料到 CD-R 呢?您可以採用備份 script
。也請留意 拷貝及建立子目錄, 第 8.3 節 以及 差異備份與資料同步, 第 8.4 節。
"backup"
我沒有測試過喔:
# apt-get install cdrecord cdparanoia # cdparanoia -s -B # cdrecord dev=0,0,0 speed=2 -v -dao -eject defpregap=1 -audio *.wav
或是
# apt-get install cdrdao #disk at once # cdrdao read-cd --device /dev/cdrom --paranoia-mode 3 my_cd # read cd # cdrdao write --device /dev/cdrom --speed 8 my_cd # write a new CD
cdrdao
能夠完整複製光碟(沒有音軌空隙,等...)。
燒錄 DVD 光碟有兩種方式:
使用 growisofs
並搭配 mkisofs
。
請依照 /usr/share/doc/cdrecord/README.DVD.Debian
的說明重新編譯
cdrecord
並加入 dvd 支援來產生本地端建立的套件。
X Window 系統是由 Xfree86
所提供的。 在 Debian 上有兩個主要版本的 X 伺服器: XFree86 版本 3.3(XF3) 以及
XFree86 版本 4.x(XF4);兩者皆是以 X11R6 為基礎並由 X.Org
所建構。
了解 X 的基本概念,您可以閱讀 X(7)
, LDP XWindow-User-HOWTO
,
以及 Remote X
Apps mini-HOWTO
。 您可以閱讀 xfree86-common
套件中的
/usr/share/doc/xfree86-common/FAQ.gz
,這是專對於 Debian
的設計的使用者指南。其中 Branden Robinson 有一些有趣並且有權威的對 key binding
的討論。
此軟體將本地端主機的 X window 視窗或桌面顯示到使用者的螢幕(CRT, LCD) 並接受鍵盤與滑鼠的輸入。
與 X 相容的應用軟體,可以在本地端或是遠地端的主機執行。
這些正好與一般的 "server" 和 "client" 的觀念相反。
有幾種方法可以讓 "X server" (顯示端) 接受遠端連線的 "X client" (程式端):
xhost
方式
主機列表機制 (很不安全)。
未加密的協定 (易受到網路監聽攻擊)。
如果可以,盡量不要使用。
請參閱 連接到遠端的X server – xhost
, 第
9.4.7 節 以及 xhost(1x)
。
xauth
方式
MIT magic cookie 機制 (不算安全,但比 xhost
安全多)。
未加密的協定 (易受到網路監聽攻擊)。
如果是本地端連線,建議採用,比 ssh -X
更省資源。
請參閱 在 X 裡取得 root, 第 9.4.12 節 以及
xauth(1x)
。
xdm
, wdm
, gdm
, kdm
, ...
方式
MIT magic cookie 機制 (不算安全,但比 xauth
安全多)。
請參閱 xdm(1x)
以及 Xsecurity(7)
來建立簡單的存取權限控制。
請參閱 wdm(1x)
, gdm(8)
, 和
kdm.options(5)
了解更多資訊。
請閱讀 自訂 RunLevel, 第
2.4.3 節 來了解如何在不刪除 xdm
套件時取消 xdm
並回到系統啟動的終端機畫面。
ssh -X
方式
透過安全 shell 埠號轉送機制 (很安全)。
加密的傳輸協定 (對於本地端使用簡直是浪費)。
當遠端連線時,建議採用。
以上所有遠地端連接 X 的方式,除了 ssh
之外,都需要設定 X server
啟動 TCP/IP 連線,請閱讀 在TCP/IP的環境中使用X Window, 第
9.4.6 節。
目前在 woody 上已經有許多 meta 套件能降低您安裝 X 系統的難度。
x-window-system-core
此 metapackage 提供最基本工作站使用的 X Window 系統。它提供了 X 函式,X 伺服器
(xserver-xfree86
),以及一些字型和基本的 X clients 與工具。
x-window-system
此 metapackage 提供大部分的 XFree86 計畫的 X Window System
元件,以及一套許多有名的附屬應用程式。(包含了x-window-system-core
、twm
和xdm
等組件,故安裝了它就不用再安裝x-window-system-core
了)
xserver-common-v3
XFree86 3.x X 伺服器(X3)相關的軟體和工具。
xserver-*
X3伺服器器軟體的額外套件,包含了支援對那些新的 X4
伺服器(xserver-xfree86
)不支援的硬體。如X4不支援某些老舊的ATI
mach64卡,某些顯示卡在Woody版的X4中無法工作等等。(要獲得可用的套件,可執行
apt-cache search
xserver-|less。所有這些X3伺服器均是基於xserver-common-v3
的。)
大多數情況下,應該安裝x-window-system
(如果要使用終端模式登入,需停用xdm
,詳細方法參閱
「我不想直接啟動到 X!」, 第 8.1.4
節。)
在安裝系統之前只要先安裝以下軟體就能在配置 X 時偵測週邊硬體:
discover
– 硬體偵測系統。
mdetect
– 滑鼠自動偵測工具。
read-edid
– VESA PnP 的硬體訊息監督器。
請參閱 XFree86(1x)
了解更多 X 伺服器的資訊。
從本地的終端機開啟 X 伺服器的方式:
$ startx -- :<display> vtXX e.g.: $ startx -- :1 vt8 -bpp 16 ... start on vt8 connected to localhost:1 with 16 bpp mode
--後面接的是 X 伺服器的參數。
注意,在使用~/.xserverrc
script 來自訂 X
伺服器啟動時所開啟的軟體時,請確定 執行 的是真正的 X
伺服器。如果沒這麼做會導致 X 伺服器啟動過慢以及退出。例如:
#!/bin/sh exec /usr/bin/X11/X -dpi 100 -nolisten tcp
(重新)設定 XF4 伺服器,
# dpkg-reconfigure --priority=low xserver-common # dpkg-reconfigure --priority=low xserver-xfree86
將會產生 /etc/X11/XF86Config-4
文件並使用 dexconf
script 來設定 X。
(重新)設定 XF3 伺服器,
# dpkg-reconfigure --priority=low xserver-common-v3 # dpkg-reconfigure --priority=low xserver-mach64
將會產生 /etc/X11/XF86Config
文件並使用 xf86config-3
script 來設定 X。
在 Woody
系統上,修改/etc/X11/XF86Config-4
時,請不要修改以下文字間的設定
### BEGIN DEBCONF SECTION [snip] ### END DEBCONF SECTION
正確的作法是 將自訂的內容加在定義段落之前。例如,新增顯示卡,可在設定檔開頭增加類似下面的內容:
Section "Device" Identifier "Custom Device" Driver "ati" Option "NoAccel" EndSection Section "Screen" Identifier "Custom Screen" Device "Custom Device" Monitor "Generic Monitor" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 16 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 24 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection EndSection Section "ServerLayout" Identifier "Custom" Screen "Custom Screen" InputDevice "Generic Keyboard" "CoreKeyboard" InputDevice "Configured Mouse" "CorePointer" EndSection
在 Sarge (本文撰寫時為testing
)系統上,如果您想再升級時保留使用者自訂/etc/X11/XF86Config
的設定,請用
root 執行下列命令:
# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom # md5sum /etc/X11/XF86Config-4 > /var/lib/xfree86/XF86Config-4.md5sum # dpkg-reconfigure xserver-xfree86
如果想美化字體,請依照 在 X 的 TrueType 字型, 第 9.4.13
節 的說明來修改/etc/X11/XF86Config-4
。
並檢查其餘的 X 設定。不良的螢幕設定可能會造成更多比難看字型的問題,所以請調高您的螢幕更新頻率(85 Hz 不錯,75 Hz 還可以,60 Hz 就很糟了)。
絕大多數的 X client 軟體都能用類似下面的命令啟動:
client $ xterm -geometry 80x24+30+200 -fn 6x10 -display hostname:0 &
命令行中個參數的意義如下:
-geometry WIDTHxHEIGHT+XOFF+YOFF: 視窗的初始尺寸與位置。
-fn FONTNAME:用來顯示文字的字體。 FONTNAME 可以是:
a14: 普通字體
a24: 大型字體
... (使用xlsfont查詢可用的字體。)
-display displayname: X server 的名稱。 displayname 可以是:
hostname:D.S表示在名為hostname的主機的螢幕 D 上顯示的稱為 screen S;使用螢幕 D 的 X server 所間聽 TCP 埠號為 6000+D。
host/unix:D.S表示在host
主機的螢幕D上所顯示的稱為 screen S;
使用螢幕 D 的 X server 所監聽 /tmp/.X11-unix/XD
(所以只能從主機
host 登入。
:D.S就是代表 host/unix:D.S,其中 host本地主機名稱。
預設的 X client 程式(應用端)的 displayname 可透過 DISPLAY 環境變數來設定。例如,在執行某 X client 軟體之前,執行下列命令之一就可以完成設定工作:
$ export DISPLAY=:0 # 預設情況下,本地主機使用第一個 X screen $ export DISPLAY=hostname.fulldomain.name:0.2 $ export DISPLAY=localhost:0
軟體啟動程序可以在 ~/.xinitrc
中自定。例如:
xrdb -load $HOME/.Xresources xsetroot -solid gray & xclock -g 50x50-0+0 -bw 0 & xload -g 50x50-50+0 -bw 0 & xterm -g 80x24+0+0 & xterm -g 80x24+0-0 & twm
如 自定 X sessions, 第 9.4.5.1
節所提到的,startx
不理會 Xsession
所有的常規操作。通常使用 ~/.xsession
僅做為最後的辦法。
請參閱xsetroot(1x)
,xset(1x)
以及X 資源, 第 9.4.10 節。
啟動 X session (X server + X client) 的方式如下:
startx
:文字介面下用來啟動 X server 與 client 的
xinit
指令集。如果 ~/.xinitrc
不存在,擇/etc/X11/Xsession
會透過執行
/etc/X11/xinit/xinitrc
時呼叫。
xdm
, gdm
, kdm
, or wdm
:X
顯示管理程式,用來啟動 X server 與 X client 且直接在 X
下控管帳號的登入。/etc/X11/Xsession
也會被呼叫。
請參閱 「我不想直接啟動到 X!」, 第 8.1.4 節 了解從終端機啟動 X 的資訊。
預設的啟動 script
/etc/X11/Xsession
是/etc/X11/Xsession.d/50xfree86-common_determine-startup
以及/etc/X11/Xsession.d/99xfree86-common_start
的組合。
/etc/X11/Xsession
的執行會受到/etc/X11/Xsession.options
的影響,基本上,它使用exec
命令執行系統中的程式,讀取的順序如下:
~/.xsession
or ~/.Xsession
,如果它被定義的話。
/usr/bin/x-session-manager
,如果它被定義的話。
/usr/bin/x-window-manager
,如果它被定義的話。
/usr/bin/x-terminal-emulator
,如果它被定義的話。
Debian alternative 系統對這些命令有詳細的說明,請參閱 Alternative 指令, 第 6.5.3 節。 例如:
# update-alternatives --config x-session-manager ... or # update-alternatives --config x-window-manager
如果想定義某 X
視窗管理程式為預設,同時保留已安裝的GNOME和KDE的session管理程式,可用http://bugs.debian.org/168347
中第二個錯誤報告所附的檔案替換/etc/X11/Xsession.d/50xfree86-common_determine-startup
(我希望它能早日加到發行版中),然後按下面的方法編輯/etc/X11/Xsession.options
取消Xsession管理程式:
# /etc/X11/Xsession.options # # configuration options for /etc/X11/Xsession # See Xsession.options(5) for an explanation of the available options. # Default enabled allow-failsafe allow-user-resources allow-user-xsession use-ssh-agent # Default disabled (enable them by uncommenting) do-not-use-x-session-manager #do-not-use-x-window-manager
如果不想按照上述的方法修改系統,則gnome-session
以及
kdebase
所附的 X session 管理程式就變成預設的了。移除掉他們的話,X
視窗管理程式就變成預設的視窗管理程式。(廢話,還有更好的主意嗎?)
對於那些 /etc/X11/Xsession.options
只包含一行
allow-user-xsession 的系統而言,任何定義了~/.xsession
或
~/.Xsession
的使用者均可以自行定義/etc/X11/Xsession
的行為。
~/.xsession
檔案中的最後一行命令,其格式應該為exec
some-window/session-manager,用來啟動您喜歡的 X 視窗/session
管理程式。
/usr/share/doc/xfree86-common/examples/xsession.gz
提供了一個相當不錯的/usr/share/doc/xfree86-common/examples/xsession.gz
範例。
我使用它來設定每一個使用者的視窗管理員,screen 存取以及語言支援。請參閱針對使用者啟動 X Session, 第 9.4.5.2 節、在 X 裡取得 root, 第 9.4.12 節、多語系的 X 視窗系統範例, 第 9.7.9 節。
如果您希望某些 X client 軟體可以自動啟動,請參閱X clients,
第 9.4.4 節
的範例並寫到~/.xsession
來取代~/.xinitrc
。
使用者新增的 X 資源(resources)可以儲存在~/.Xresources
,請參閱X 資源, 第 9.4.10 節。
使用者自訂的鍵盤與滑鼠按鍵配置檔是存放在~/.xmodmaprc
。請參閱 X 的按鍵和指標按鈕對應, 第 9.4.11 節。
依照 自定 X sessions, 第 9.4.5.1 節
這一節所描述的,要啟動使用者自訂的 X session/window manager
可透過安裝相對應的軟體並在 ~/.xsession
的最後加入以下內容 (我偏好
blackbox
/fluxbox
因為簡潔快速。):
預設的 X session manager
exec /usr/bin/x-session-manager
預設的 X window manager
exec /usr/bin/x-window-manager
GNOME session manager (loaded)
須安裝的套件: gnome-session
exec /usr/bin/gnome-session
KDE session manager (loaded)
須安裝的套件: kdebase
(or kdebase3
for KDE3)
exec /usr/bin/kde2
Blackbox window manager (lightweight, slick)
須安裝的套件: blackbox
exec /usr/bin/blackbox
Fluxbox window manager (lightweight, new blackbox)
須安裝的套件: fluxbox
exec /usr/bin/fluxbox
Xfce window manager (Mac OS-X, SUN CDE–like)
須安裝的套件: xfce
exec /usr/bin/xfwm
IceWM window manager (lightweight, GNOME alternative)
須安裝的套件: icewm
exec /usr/bin/X11/icewm
FVWM2 virtual window manager (lightweight, Win95-like)
須安裝的套件: fvwm
exec /usr/bin/fvwm2
Windowmaker window manager (somewhat NexT-like)
須安裝的套件: wmaker
exec /usr/bin/wmaker
Enlightenment window manager (loaded)
須安裝的套件: enlightenment
exec /usr/bin/enlightenment
要建立完整的 KDE/GNOME 桌面環境,下列的綜合套件是很有用的:
KDE: 安裝 kde
套件
GNOME: 安裝 gnome
套件
使用能夠額外安裝 Recommends 的套件管理程式,如
dselect
and aptitude
,將會提供比 apt-get
更豐富的軟體供您選擇。
如果想從 console 登入,請確定先取消 X display managers,例如
kdm
,gdm
以及wdm
,這會影響「我不想直接啟動到 X!」, 第 8.1.4
節 這一節中所提及的關聯性問題。
如果您想使用 GNOME 取代 KDE 來當視窗管理程式的話,請參閱 Alternative 指令, 第 6.5.3 節
的方法來設定 x-session-manager
。
因為遠端TCP/IP的連線是沒有經過加密的處理所以會有被竊聽的危險性存在,因此在最近的幾個
Debian 版本中都會取消(disable)這個 TCP/IP socket。因此如果要遠端連線就必須使用
ssh
來建立連線(參閱 連線到遠端的 X server
– ssh
, 第 9.4.8 節 )。
這裡所使用的方法並不鼓勵您使用除非您所在的環境是一個在良好的防火牆後方而且只有信任的使用者會使用的安全環境中。如果是這樣請用以下的指令來設定您現在X server的設定。
# find /etc/X11 -type f -print0 | xargs -0 grep nolisten /etc/X11/xinit/xserverrc:exec /usr/bin/X11/X -dpi 100 -nolisten tcp
移除-nolisten讓X server回復對TCP/IP的監聽。
xhost
xhost
以主機名稱(hostnames)為權限設定是非常不安全的。如果一個TCP/IP
socket的連線是被允許的,則以下的步驟將會取消主機(host)的檢查並且允許從任何一個地方的連線。(參閱
在TCP/IP的環境中使用X Window, 第 9.4.6 節):
$ xhost +
你可以用以下的步驟再開啟主機的檢查:
$ xhost -
xhost
並不會區別在遠端主機上不同的使用者。
並且主機名稱(hostnames)也可以被捏造。
如果你是在一個不被信任的網路中,這個方法必須避免使用,即使是在一個高度限制的主機環境中(例如利用PPP撥接上網的環境中)。參閱
xhost(1x)
.
ssh
ssh
能建立一道從本地端的 X server
到遠端的應用程式伺服器的安全連線。
設定遠端主機的/etc/ssh/sshd_config
設定檔,將
X11Forwarding 和 AllowTcpForwarding 的值設成
yes,這免除掉命令列啟動時需要的相關參數。
啟動本地端主機的 X server。
在本地主機開啟一個 xterm
視窗。
執行 ssh
來建立與遠端站台的連線。
localname @ localhost $ ssh -q -X -l loginname remotehost.domain Password: .....
在遠端站台執行 X 應用程式指令。
loginname @ remotehost $ gimp &
這個方式允許輸出遠端的 X 用戶畫面,就像在本地端透過 UNIX domain socket 連接。
xterm
學習 http://dickey.his.com/xterm/xterm.faq.html
中關於 xterm
的所有東西。
許多舊有的 X 程式使用 X 資源資料庫來設定他們的外觀,如
xterm
。~/.Xresources
用來儲存使用者資源明細。該檔在登入時會自動合併到預設的 X 資源。系統預設的 X
資源是儲存在 /etc/X11/Xresources/*
,應用程式預設的資源檔是儲存在
/etc/X11/app-defaults/*
。使用這些設定來當作學習的起點。
這些是對妳的~/.Xresources
有用的設定:
! Set the font to a more readable 9x15 XTerm*font: 9x15 ! Display a scrollbar XTerm*scrollBar: true ! Set the size of the buffer to 1000 lines XTerm*saveLines: 1000 ! Large kterm screen KTerm*VT100*fontList: -*-fixed-medium-r-normal--24-*,\ -*-gothic-medium-r-normal--24-*,\ -*-mincho-medium-r-normal--24-*
要即使改變設定的效果,執行底下指令合併它們到資料庫:
xrdb -merge ~/.Xresources
參閱 xrdb(1x)
。
xmodmap
程式用來編輯和顯示鍵盤修改表和按鍵對應表,用戶端程式用這些表格來轉換 X
裡的按鍵代碼事件(event keycodes)成按鍵符號(keysyms)。
$ xmodmap -pm ... 顯示目前的 modifier 表 $ xmodmap -pk | pager ... 顯示目前的鍵盤對應表 $ xmodmap -e "pointer = 3 2 1" # 設定滑鼠為左手慣用 $ xmodmap ~/.xmodmaprc # 讀取 ~/.xmodmaprc 設定鍵盤
這些通常用者的對話(session)啟動 script ,~/.xsession
中執行。
如何取得按鍵代碼(keycode), 在 X 執行 xev
並按下測試的鍵. 如何取得按鍵符號(keysym)的意義, 查詢
/usr/include/X11/keysymdef.h
檔案中的巨集定義。該檔中的
#define 敘述被命名為 XK_,這些 XK_
是預留給按鍵符號(keysym)的名稱.
參閱 xmodmap(1x)
.
如果一個 GUI 程式在執行時需要 root 特權,使用下列的步驟就能在使用者的 X server 顯示程式的輸出。為了避免可能造成的安全性問題,千萬不要嘗試直接從 root 帳號啟動 X server.
利用普通使用者啟動 X server 並開啟 xterm
主控台. 然後:
$ XAUTHORITY=$HOME/.Xauthority $ export XAUTHORITY $ su root Password:***** # printtool &
當使用su
到非 root 使用者時, 確定 ~/.Xauthority
是允許群組讀取以便該非 root 使用者可以讀取.
要自動化這些指令流程, 建立該使用者帳號的 ~/.xsession
,
包含底下的敘述:
# This makes X work when I su to the root account. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi unset XSTARTUP # If a particular window/session manager is desired, uncomment # the following and edit it to fit your needs. #XSTARTUP=/usr/bin/blackbox # This starts x-window/session-manager program if [ -z "$XSTARTUP" ]; then if [ -x /usr/bin/x-session-manager ]; then XSTARTUP=x-session-manager elif [ -x /usr/bin/x-window-manager ]; then XSTARTUP=x-window-manager elif [ -x /usr/bin/x-terminal-emulator ]; then XSTARTUP=x-terminal-emulator fi fi # execute auto selected X window/session manager exec $XSTARTUP
接著在該使用者的xterm
視窗執行su
(不是 su
-). 現在起, GUI 程式從這個xterm
啟動的能夠在該使用者的 X
視窗顯示以 root 權限執行的程式的輸出畫面.
這個技巧只要在預設的/etc/X11/Xsession
被執行的情況下成立.
如果一位使用者改用~/.xinitrc
或~/.xsession
來自定偏好,則上述展示的環境變數
XAUTHORITY 需要以類似的 script 來設定.
另外, sudo
可用來自動化這些指令流程:
$ sudo xterm ... or $ sudo -H -s
在這裡, /root/.bashrc
必須包含:
if [ $SUDO_USER ]; then sudo -H -u $SUDO_USER xauth extract - $DISPLAY | xauth merge - fi
即使是該使用者的家目錄是 NFS 掛載的位置, 還是能正常運作, 因為 root 不需要讀取
.Xauthority
檔案.
還有幾個針對這個目的的套件: kdesu
, gksu
,
gksudo
, gnome-sudo
和 xsu
.
其他方式可用來達成類似的結果: 建立 /root/.Xauthority
的符號連結到使用者對應的位置; 使用sux
的 script;
或加入 "xauth
merge~USER_RUNNING_X/.Xauthority" 到root 的初使 script.
更多訊息請參閱 debian-devel
mailing list
.
在 XFree86-4 ,標準的 xfs
和 TrueType 字型運作良好。 如果你使用
XFree86-3 ,你必需安裝一 third-party 字型伺服器例如 xfs-xtt
。
你只需要去確認你要使用 TrueType 字型的任何應用程式是靠 libXft 或 libfreetype 連結(如果你是使用pre-compiled .debs,你大概不需要去擔心 )。
首先設定字型支援基礎配備:
安裝 x-ttcidfont-conf
和 defoma
套件。該套件會自動產生fonts.scale
和 fonts.dir
檔案。
# apt-get install x-ttcidfont-conf
編輯 /etc/X11/XF86Config-4
的 Section
"Files" 部份如下
Section "Files" FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" FontPath "/usr/share/fonts/truetype" FontPath "/usr/lib/X11/fonts/CID" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/lib/X11/fonts/100dpi:unscaled" FontPath "/usr/lib/X11/fonts/75dpi:unscaled" FontPath "/usr/lib/X11/fonts/Type1" EndSection
第一行將會安裝 XFree86 來使用任何你從 Debian 套件安裝的 TrueType 字型。 自從 XFree86 支援較少 Type1 字型描繪,Type1的字型目錄就放在比較後面了。 bitmap字型的 :unscaled 方法在新的 XF4 再也不需要,但我在這裡包含它只是做確認。
為了要保存手動修改 /etc/X11/XF86Config-4
的部份,請接著 手動設定 X 伺服器, 第 9.4.3.3 節 的指示。
然後安裝 DFSG 字型套件:
西文 TrueType 字型:
ttf-bitstream-vera
:一套由 Bitstream, Inc創造的高品質 TrueType
字型。 [40]
ttf-freefont
:一套開放高品質 TrueType 字型包含了 UCS 字元集。
ttf-thryomanes
:一套 unicode 的 TrueType 字型,包含了 Latin,
Greek, Cyrillic 和 IPA。
亞洲字型:
tfm-arphic-bsmi00lp
: Chinese Arphic "AR PL Mingti2L
Big5" TrueType font TeX font metric data
tfm-arphic-bkai00mp
: Chinese Arphic "AR PL KaitiM Big5"
TrueType font TeX font metric data
tfm-arphic-gbsn00lp
: Chinese Arphic "AR PL SungtiL GB"
TrueType font TeX font metric data
tfm-arphic-gkai00mp
: Chinese Arphic "AR PL KaitiM GB"
TrueType font TeX font metric data
ttf-baekmuk
: Korean Baekmuk 系列的 TrueType 字型
hbf-jfs56
: Chinese Jianti Fangsong 56x56 bitmap font (GB2312) for
CJK
hbf-cns40-b5
: Chinese Fanti Song 40x40 bitmap font (Big5) for CJK
hbf-kanji48
: Japanese Kanji 48x48 bitmap font (JIS X-0208) for CJK
自從 Free 字型有些限制開始,對 Debian 使用者來說,安裝或分享一些商業性的 TrueType 字型變成一種選擇。 為了要使這程序對使用者來說更加容易, 一些便利的套件被開發出來:
ttf-commercial
msttcorefonts (>1.1.0)
[41]
You'll have a really good selection of TrueType fonts at the expense of contaminating your Free system with non-Free fonts.
所有在 Debian 的字型套件應該能無痛使用且所有的 X 程式只要使用 "core" 字型系統,就應該能使用這些字型。這包含了像是 Xterm, Emacs, 和許多其他非 KDE 和非 GNOME 的應用程式。
現在,執行 xfontsel
並選擇任何在 fndry 選單的 TrueType
字型,你應該能夠在 "fmly" 選單看到許多反灰階項目。
對 KDE2.2 和 GNOME1.4 (搭配 libgdkxft0 使得 GTK 1.2 能做出反鋸齒的效果)
,同樣地,你需要安裝 Xft1。Xft1 是非常過時了,並且基本上只有 GNOME1.4 和 KDE2.2
使用。輯編 /etc/X11/XftConfig
並增加一行
dir "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
在其它 "dir" 行之前。 [42]
針對 GNOME2 和 KDE3 (Sarge 之後的版本),您需要設定 fontconfig
使得
Xft2 能找到字型。 [43]
你不應該需要對這去安裝任何額外的東西,因為每一使用 fontconfig
的套件已經 (間接地) 相依於 (Depends) 它了。
首先,查閱
/etc/fonts/fonts.conf
。應該有類似下面這一行。如果沒有,修改
/etc/fonts/local.conf
並增加
<dir>/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType</dir>
只要在 <fontconfig> 這一行之後即可。
Fontconfig
應該能直接取得字型資訊,"fc-list"
應該能列出您的新字型。另一 fontconfig
的特色是你可以僅在~/.fonts/
中停用字型,而所有字型設定程式能夠即時接受更動。
如果你在 X 下手動安裝非 Debian 套件的新 TrueType 字型,請執行
# xset fp rehash
使得 XFree86 重新查詢目錄的內容並產生新的資料。
在 Woody 發行版本中,納入了一些解析影像功能的網頁瀏覽器套件:
mozilla
Mozilla 瀏覽器 (新增的)
galeon
以 Mozilla 為基礎,套用 Gnome UI 的瀏覽器 (新增的)
konqueror
KDE b瀏覽器
dillo
GTK 瀏覽器
amaya-gtk
W3C 參考瀏覽器
amaya-lesstif
W3C 參考瀏覽器
netscape-...
(很多,舊式的)
communicator-...
(很多,舊式的)
...
mozilla
這個版本需要符合 galeon
所需要的版本。雖然他們在 UI 中不同,這兩個程式共用 Gecko HTML 的描繪引擎。
瀏覽器的外掛程式,例如 mozilla
和 galeon
可以靠著安裝
"*.so" 到 plug-in 目錄和重新啟動瀏覽器來生效。
外掛程式資源:
Java 外掛程式:安裝 http://java.sun.com
的 "J2SE"
二源碼。
Flash 掛外程式:安裝 http://www.macromedia.com/software/flashplayer/
的 "Macromedia Flash Player 5" 二源碼。
freewrl
:VRML 瀏覽器和 Netscape 外掛程式
...
SSH (Secure SHell) 是連接網際網路的一個安全方式。Debian 納入的 free 的 SSH
版本為 OpenSSH,由 ssh
套件取得。
首先,安裝 OpenSSH 伺服器和用戶端程式。
# apt-get update && apt-get install ssh
如果妳需要啟動 OpenSSH 伺服器,請移除
/etc/ssh/sshd_not_to_be_run
。
SSH 有兩種認證的協定:
SSH 協定版本 1:
Potato 發行版本只支援該協定。
可使用的認證方式:
RSAAuthentication: 以 RSA identity key 為主的使用者認證
RhostsAuthentication: 以 .rhosts 的主機認證 (不安全, 預設為取消)
RhostsRSAAuthentication: .rhosts 認證與 RSA host key 的結合(預設為取消)
ChallengeResponseAuthentication: RSA challenge-response authentication
PasswordAuthentication: 密碼為主的認證
SSH 協定版本 2:
Woody 發行版本主要使用該協定。
可使用的認證方式:
PubkeyAuthentication: 以 public key 為主的使用者認證
HostbasedAuthentication: 以 .rhosts
或
/etc/hosts.equiv
並結合 public key 的用戶主機認證 (預設為取消)
ChallengeResponseAuthentication: challenge-response authentication
PasswordAuthentication: 密碼為主的認證
請特別注意這些差異,尤其是轉換到 Woody 或使用其他非 Debian 的系統。
詳情請參閱 /usr/share/doc/ssh/README.Debian.gz
,
ssh(1)
, sshd(8)
, ssh-agent(1)
, 和
ssh-keygen(1)
。
底下是主要的設定檔案:
/etc/ssh/ssh_config
: 預設的 SSH 用戶端設定檔。 參閱
ssh(1)
. 注意項目:
Host: 限制符合匹配條件所指定的 (直到下一個 Host 保留字) 主機
Protocol: 指定 SSH 的協定版本。 預設為 "2,1"。
PreferredAuthentications: 指定 SSH2 用戶端 認證方式。預設為 "hostbased,publickey,keyboard-interactive,password"。
PasswordAuthentication: 如果妳想採用密碼 登入,妳必須確定該欄的值不是 no。
ForwardX11: 預設為取消。執行指令時加入 "-X" 參數可強制啟動。
/etc/ssh/sshd_config
: 預設的 SSH 伺服器設定檔。 參閱
sshd(8)
. 注意項目:
ListenAddress: 指定 sshd
監聽的本地端位址。
多個值是可允許的。
AllowTcpForwarding: 預設為取消。
X11Forwarding: 預設為取消。
$HOME/.ssh/authorized_keys
:
該列表為用戶端以該帳號連接到主機的公開金鑰(public key)。 參閱
ssh-keygen(1)
。
$HOME/.ssh/identity
: 參閱 ssh-add(1)
和
ssh-agent(1)
.
底下的命令會從用戶端建立 ssh
連線。
$ ssh username@hostname.domain.ext $ ssh -1 username@hostname.domain.ext # Force SSH version 1 $ ssh -1 -o RSAAuthentication=no -l username foo.host # force password on SSH1 $ ssh -o PreferredAuthentications=password -l username foo.host # force password on SSH2
對使用者而言,ssh
功能會比 telnet
聰明和安全
(將不會有 ^] 問題)。
如果妳想建立一個從本地端埠號 4025, 連接遠端伺服器埠號 25 的管線,
以及透過ssh
從本地端埠號 4110 遠端伺服器埠號110,
請在本地主機執行:
# ssh -q -L 4025:remote-server:25 4110:remote-server:110 \ username@remote-server
在網際網路上, 這是安全建立連線到 SMTP/POP3 伺服器的方式. 設定遠端主機的
/etc/ssh/sshd_config
檔案中 AllowTcpForwarding 項目,
將其值填入 yes.
使用 RSAAuthentication (SSH1 protocol) 或 PubkeyAuthentication (SSH2 protocol) 可免去記憶每一台遠端主機的登入密碼.
在遠端的系統上, 個別設定 /etc/ssh/sshd_config
檔案中的
"RSAAuthentication yes" 或 "PubkeyAuthentication yes".
然後在本地產生認證金鑰並安裝公開金鑰到遠端主機:
$ ssh-keygen # RSAAuthentication: RSA1 key for SSH1 $ cat .ssh/identity.pub | ssh user1@remote \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t rsa # PubkeyAuthentication: RSA key for SSH2 $ cat .ssh/id_rsa.pub | ssh user1@remote \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t dsa # PubkeyAuthentication: DSA key for SSH2 $ cat .ssh/id_dsa.pub | ssh user1@remote \ "cat - >>.ssh/authorized_keys"
執行 "ssh-keygen -p" 後可更改通關密碼. 記得測試連線以驗證設定正確. 為避免問題, 使用 "ssh -v".
妳可增加額外的選項到authorized_keys
項目來限制主機並指定特定指令.
詳情參閱 sshd(8)
.
注意, SSH2 支援 HostbasedAuthentication. 為了使它運作,
妳必須更改伺服器機器上的/etc/ssh/sshd_config
檔案, 將
HostbasedAuthentication 設定成
yes,或者設定在用戶端機器上的 $HOME/.ssh/config
檔案.
還有其他非 Unix-like 平台的 free SSH 用戶端程式.
puTTY
(GPL)
SSH in cygwin
(GPL)
macSSH
(GPL) [注意, Mac OS X
有內建 OpenSSH; 使用 Terminal application 中的 ssh]
也請參閱 SourceForge.net, site
documentation
,"6. CVS Instructions".
ssh-agent
設定通關密語來保護妳的 SSH 認證金鑰是比較安全。如果尚未設定,執行ssh-keygen -p來設定它。
以以少許密碼連線 – RSA, 第 9.5.3
節描述的密碼為主的方式連線到遠端主機,將你的公開金鑰(例如:~/.ssh/id_rsa.pub
)放在遠端主機的~/.ssh/authorized_keys
。
$ ssh-agent bash # 或改執行 zsh/tcsh/pdksh 程式 $ ssh-add ~/.ssh/id_rsa Enter passphrase for /home/osamu/.ssh/id_rsa: Identity added: /home/osamu/.ssh/id_rsa (/home/osamu/.ssh/id_rsa) $ scp foo user@remote.host:foo ... no passphrase needed from here on :-) $^D ... terminating ssh-agent session
針對 X server 而言,正常的 Debian 啟動的 script 會執行 ssh-agent
來當父程式。所以你只需要執行 ssh-add
一次。
更多訊息請參閱 ssh-agent(1)
和 ssh-add(1)
。
如果你遇到問題,檢查設定檔的權限並加入"-v"參數來執行
ssh
。
當你是 root 且有防火牆上的問題,改使用"-P"參數;這會避免使用伺服器的1–1023的埠號。
如果連線到遠端站台的ssh
連線突然失效,它可能是系統管理者在測試的關係,大部份在系統維護時改變host_key
的值。確定是這個原因造成的而非他人試著駭入並竄改遠端主機的名稱,則移除掉本地端的$HOME/.ssh/known_hosts
的host_key
項目就能重獲得連線。
郵件設定可分成三個種類:
郵件傳送代理(MTA):exim4
, exim
, postfix
,
sendmail
, qmail
, ssmtp
,
nullmailer
, ...
郵件工具:procmail
, fetchmail
, mailx
,
crm114
, ...
郵件用戶代理(MUA):mutt
, emacs
+gnus
, ...
針對全功能的 MTA 來說,使用 Woody 中的 exim
和 Sarge 中的
exim4
。 [44]
參考文件:
針對 exim
的 exim-doc
和 exim-doc-html
套件
針對 exim4
的 exim4-doc-info
和
exim4-doc-html
如果妳考量安全性,另一個可以接受的 MTA 是
postfix
。sendmail
和 qmail
都納入 Debian
套件庫中,但不推薦。
如果妳的隨身系統,例如筆記型電腦不需要 MTA 的 relay 功能,那麼妳可考慮使用這些輕量級的套件:
ssmtp
:需要 SMTP 連線且支援別名,或者
nullmailer
:可spool但不支援別名。
在寫本文時,我發現 exim
更適合我的工作電腦--筆記型電腦。
安裝底下不相容 exim
的套件時,妳就必須移除 exim
:
# dpkg -P --force-depends exim # apt-get install nullmailer # 或 ssmtp
如果您的網路連線是消費性質的,如撥接型,而您想使用 exim4
或
exim
在您的主機上,請先確認送出的郵件是透過 ISP 或其他供應商提供的
smarthost 機制。 [45]
有許多好處:
ISP 的 smarthost 通常有更可靠的連線使得 SMTP 重複寄送郵件。
動態 IP寄出的郵件可避免被當作撥接的 spam 列表。
節省寄出多個收件者的郵件的頻寬。
唯一可想到的壞處是:
您的 ISP SMTP 服務如果出問題時的緊急救援處理。
用來授課講解的實驗。
您的主機是工作用網路伺服器。
為了讓 exim4
或 exim
成為您的 MTA,請設定底下的檔案:
/etc/exim/exim.conf 執行 "eximconfig" 來建立和編輯 (exim) /etc/exim4/* 執行 "dpkg-reconfigure exim4-config" 來建立和編輯 (exim4) /etc/inetd.conf 註解 smtp 的敘述使 exim 能獨立運行 /etc/email-addresses 加入改寫郵件來源位置的列表
執行 exim4
或 exim
並加入 -brw, -bf, -bF, -bV,
... 等參數可用來檢查分析器。
在 /etc/exim/exim.conf
(Woody 或更新的版本) 的 DIRECTORS
部份,在最後的地方 (localuser: director 之後)
加入清潔指揮器來處理該指揮器無法反解的位址 (per Miquel van Smoorenburg):
catchall: driver = smartuser new_address = webmaster@mydomain.com
如果需要了解每個 Virtual Domain 詳細的處理方式,請在
/etc/exim/exim.conf
加入底下的敘述(這對我有用但沒完整測試過):
*@yourdomain.com ${lookup{$1}lsearch*{/etc/email-addresses} \ {$value}fail} T
然後加入 "*" 項目到 /etc/email-addresses
。
寄出郵件的位址重寫會產生適當的 "From:" 標頭,使用 exim
能輕鬆達成該功能。只要設定 /etc/exim/exim.conf
檔案最後的部份:
*@host1.something.dyndns.org \ "${if eq {${lookup{$1}lsearch{/etc/passwd}{1}{0}}} {1} \ {$0}{$1@something.dyndns.org}}" frFs
這將會重寫所有符合 *@host1.something.dyndns.org 的位址。
它搜尋 /etc/password
檔案中的使用者 ($1) 是否為本機帳號。
如果是,將會重寫位址中 ($0) 帳號所在的部份。
如果不是,則重寫網域的部份。
部份 SMTP 服務如 yahoo.com 需要 SMTP 認證才能寄信。設定
/etc/exim/exim.conf
如下所示:
remote_smtp: driver = smtp authenticate_hosts = smtp.mail.yahoo.com ... smarthost: driver = domainlist transport = remote_smtp route_list = "* smtp.mail.yahoo.com bydns_a" ... plain: driver = plaintext public_name = PLAIN client_send = "^cmatheson3^this_is_my_password"
不要忘記最後一行的雙引號喔。
fetchmail
是一套以 daemon 模式運行的郵件擷取軟體。它會透過 ISP
來擷取 POP3 帳號的郵件到本地端的郵件系統。設定檔案:
/etc/init.d/fetchmail /etc/rc?.d/???fetchmail 預設以優先權 30 來執行 update-rc.d fetchmail /etc/fetchmailrc 設定檔 (權限 600,擁有者為 fetchmail)
Potato 版本中,敘述如何從 init.d
script 以 daemon 模式啟動
fetchmail
是錯誤的(Woody 已經修正)。參閱 example scripts
的
/etc/init.d/fetchmail
和 /etc/fetchmailrc
檔案。
如果您的郵件標頭因為 ISP 的郵件程式增加了 ^M 符號,請加入 "stripcr"
參數到 $HOME/.fetchmailrc
:
options fetchall no keep stripcr
procmail
是本地端郵遞和分析程式。使用者必須先建立
$HOME/.procmailrc
才能使用它。範例:_procmailrc
crm114
來處理垃圾郵件
crm114
套件提供了 /usr/share/crm114/mailfilter.crm
script,該 script 是以 CRM114
所撰寫而且題攻了一個非常有效的垃圾信分析器,餵垃圾信給它就能訓練其處理能力。
CRM114 是一套小和用來設計分析器的語言。搭配 grep 能發揮出更大的功能。參閱
crm(1)
。
使用 mutt
搭配 vim
來當作郵件用戶代理 (MUA)。請設定
~/.muttrc
;例如:
# use visual mode and "gq" to reformat quotes set editor="vim -c 'set tw=72 et ft=mail'" # # header weeding taken from the manual (Sven's Draconian header weeding) # ignore * unignore from: date subject to cc unignore user-agent x-mailer hdr_order from subject to cc date user-agent x-mailer auto_view application/msword ....
加入底下的敘述到 /etc/mailcap
或 $HOME/.mailcap
來顯示 HTML 郵件和 MS Word 夾檔:
text/html; lynx -force_html %s; needsterminal; application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
Debian 是國際化的,支援越來越多的語言和區域使用規則。下一節列出目前 Debian 支援不同語言的差異性,下下一節則討論 localization,自訂您工作環境的步驟,允許目前選擇語言的輸入和輸出和日期規則,數字和貨幣格式以及不同於其他區域的差異。
有許多不同的方式來自定 localization 和 國際語言的支援。
Debian 發行版本支援了將近兩打的鍵盤對應表。在 Woody 系統,執行底下指令重新設定鍵盤:
dpkg-reconfigure --priority=low console-data # console
dpkg-reconfigure --priority=low xserver-xfree86 # XF4
dpkg-reconfigure --priority=low xserver-common-v3 # XF3
過半數以上的 Debian 軟體支援處理非美國 ASCII 字元的資料,透過 glibc 的 locale 所提供的 LC_CTYPE 環境變數。
8-bit clean:幾乎所有的程式
其他 Latin 字元集(例如 ISO-8859-1 or ISO-8859-2):半數以上的程式
雙位元組(multibyte)語言,例如中文、日文、韓文:許多新程式
X 能顯示任何編碼,包括 UTF-8並支援所有字型。該列表不只支援 8-bit 字型也包括 16-bit 字型,例如中文、日文和韓文。雙位元組字元輸入法是透過 其他的 X 輸入法, 第 9.7.10 節 技術達到輸入的功能。參閱 多語系的 X 視窗系統範例, 第 9.7.9 節 和 支援 UTF-8 的 X 終端機, 第 9.7.12 節。
日文 EUC 代碼也能在 (S)VGA graphics 主控台下透過 kon2
顯示。目前有另一個新的日文顯示套件--jfbterm
,也是利用 frame-buffer
主控台。在這些主控台環境,日文輸入法必須仰賴軟體的提供。使用 egg
套件搭配 Emacs 和日文化的 jvim
來使用 Vim 環境。
安裝非 Unicode 字型到 X 就能在 X 下顯示任何編碼的文件。所以不用太擔心字型的編碼問題。
許多的文字訊息和文件已經翻譯好並納入 Debian 系統,例如錯誤訊息,標準的程式輸出,選單和說明文件。 目前說明文件支援的語言有--日文、西班牙文、芬蘭文、法文、匈牙利文、義大利文、日文、韓文、波蘭文、葡萄牙文、中文和俄羅斯文,只要安裝manpages-LANG(LANG 是一個以逗號分隔的兩個字母的 ISO 國家代碼列表,執行 apt-cache search manpages-|less 來取得系統提供的 Unix 說明文件) 套件就能取得。
要存取 NLS 說明文件,使用者必須設定 LC_MESSAGE
環境變數。例如,以義大利文的說明文件來說,LC_MESSAGE 必須設定成
it。man
program 將會搜尋
/usr/share/man/it/
底下的義大利文的說明文件。
Debian 支援 locale 機制。 Locale 是一套允許程式提供適合的輸出和對應協定功能的技術,例如字元集、日期和時間格式、貨幣符號...等。它使用環境變數來決定適合的作法。舉例來說,假設您安裝了美式英文和德文的區域資料到系統,許多程式的錯誤訊息可變成多語言化:
$ LANG="en_US" cat foo cat: foo: No such file or directory $ LANG="de_DE" cat foo cat: foo: Datei oder Verzeichnis nicht gefunden
Glibc 的功能以函式提供給程式呼叫。參閱 locale(7)
。
完整的 locale 描述包含三個部份:xx_YY.ZZZZ。
xx:ISO 639 語言代碼(英文小寫)
YY:ISO 3166 國家代碼(英文大寫)
ZZZZ:代碼集合,也就是字元集或編碼標示?
關於語言代碼和國家代碼,請參閱info gettext中的相關敘述。
請注意這個代碼集合部份可能被"內部標準化",為了完成跨平台的相容性,移除所有的-和轉換所有的字元為英文小寫。典型的代碼集合為:
UTF-8:符合所有區域的萬國碼,大部份是 1-3 個八字元組成(new de facto standard)
ISO-8859-1: western Europe (de facto old standard)
ISO-8859-2: eastern Europe (Bosnian, Croatian, Czech, Hungarian, Polish, Romanian, Serbian, Slovak, Slovenian)
ISO-8859-3: Maltese
ISO-8859-5: Macedonian, Serbian
ISO-8859-6: Arabic
ISO-8859-7: Greek
ISO-8859-8: Hebrew
ISO-8859-9: Turkish
ISO-8859-11: Thai (=TIS-620)
ISO-8859-13: Latvian, Lithuanian, Maori
ISO-8859-14: Welsh
ISO-8859-15: western Europe with euro
KOI8-R: Russian
KOI8-U: Ukrainian
CP1250: Czech, Hungarian, Polish (MS Windows origin)
CP1251: Bulgarian, Byelorussian (MS Windows origin)
eucJP: Unix style Japanese (=ujis)
eucKR: Unix style Korean
GB2312: Unix style Simplified Chinese (=GB, =eucCN) for zh_CN
Big5: Traditional Chinese for zh_TW
sjis: Microsoft style Japanese (Shift-JIS)
As for the meaning of basic encoding system jargons:
ASCII: 7 bits (0-0x7f)
ISO-8859-?: 8 bits (0-0xff)
ISO-10646-1: Universal Character Set (UCS) (31 bits, 0-0x7fffffff)
UCS-2: First 16 bit of UCS as straight 2 Octets (Unicode: 0-0xffff)
UCS-4: UCS as straight 4 Octets (UCS: 0-0x7fffffff)
UTF-8: UCS encoded in 1-6 Octets (mostly in 3 Octets)
ISO-2022: 7 bits (0-0xff) with the escape sequence. ISO-2022-JP is the most popular encoding for the Japanese e-mail.
EUC: 8 bits + 16 bits combination (0-0xff), Unix style
Shift-JIS: 8 bits + 16 bits combination (0-0xff), Microsoft style.
ISO-8859-?, EUC, ISO-10646-1, UCS-2, UCS-4, 和 UTF-8 共用同一個 7-bit ASCII 字元代碼。 EUC 或 Shift-JIS 使用 high-bit 字元(0x80-0xff)來指示部份的編碼是 16-bit。UTF-8 也是使用 high-bit 字元(0x80-0xff) 來指示非 7-bit 字元序列位元組而這也是大部分編碼完整的系統處理非 ASCII 字元的方式。
請注意 Unicode 實作位元組順序的差異:
Standard UCS-2, UCS-4: big endian
Microsoft UCS-2, UCS-4: little endian for ix86 (針對特定機器)
字元集的轉換請參閱 利用
recode
來轉換文字檔, 第 8.6.12 節。 更多訊息請參閱 Introduction to
i18n
。
Debian 不預先編譯所有的 locales。/usr/lib/locale
目錄下的 locales 資料(包含預設的
"C")是針對您的系統編譯出來的。如果您預期的 locale
並不存在,您有兩個作法:
編輯 /etc/locale.gen
加入想要的 locale,然後以 root 權限執行
locale-gen
來編譯它。參閱 locale-gen(8)
和 "SEE
ALSO" 段落的說明文件。
執行 dpkg-reconfigure locales 來重新設定 locales
套件。如果尚未安裝,安裝 locales
套件會呼叫 debconf
介面讓您選擇需要的 locales 並編譯該資料庫。
底下的環境變數設定步驟是針對程式給予特定的 locale 資訊:
LANGUAGE:該環境變數包含了依照優先權順序的冒號分隔的 locale 名稱列表。只有在 POSIX locale 被設定成非 "C" 以外的值才使用它[在 Woody 是這樣;Potato 發行版本 LANGUAGE 優先權總是高於 POSIX locale]。(GNU 擴充)
LC_ALL:如果非空的,則該值會套用在所有的 locale 分類(POSIX.1)。通常是 ""(空的)。
LC_*:如果非空的,則該值會套用在對應的分類(POSIX.1)。通常是 "C"。
LC_* 變數是:
LC_CTYPE:字元分類和大小寫轉換。
LC_COLLATE:字母字串順序比較。
LC_TIME:日期和時間格式。
LC_NUMERIC:非貨幣的數字格式。
LC_MONETARY:貨幣格式。
LC_MESSAGES:偵錯訊息和交談回應訊息的格式。
LC_PAPER:紙張大小。
LC_NAME:姓名格式。
LC_ADDRESS:地址格式和位置資訊。
LC_TELEPHONE:電話號碼格式。
LC_MEASUREMENT:度量衡單位 (Metric or Other)。
LC_IDENTIFICATION:辨識 locale 資訊的資料。
LANG:如果非空的且 LC_ALL 未定義,該值會套用在所有的 LC_* 分類,其值也是未定義的。(POSIX.1) 通常是 "C"。
注意,有些程式(如 Netscape 4)會忽略 LC_* 的設定。
locale
程式能顯示目前使用的 locale 設定和可獲得的 locales
資料;參閱 locale(1)
。(注意:locale -a 列出系統支援的
locale;這並不表示所有的資料都編譯好!參閱 啟動 locale 支援, 第 9.7.4 節。)
locale 支援國際時間標準--yyyy-mm-dd(ISO 8601 日期格式),是由
en_DK "English in Denmark" 這個 locale
所提供,然而,這有些好笑 :-)
這看來只能夠用在主控台畫面下執行ls
的時候。
加入底下的敘述到 ~/.bash_profile
:
LC_CTYPE=en_US.ISO-8859-1 export LC_CTYPE
加入底下的敘述到 ~/.bash_profile
:
LANG=fr_FR@euro export LANG LC_CTYPE=fr_FR@euro export LC_CTYPE
按照Localizing 鍵盤, 第 9.7.1.1 節
設定法式鍵盤--"AZERTY";安裝manpages-fr
套件加入法文說明文件。US
的 Right-Alt 鍵在歐洲被稱為
Alt-Gr。按下該組合鍵和其他按鍵後會產生許多特別的腔調字元。例如,Alt-Gr+E 會產生
Euro 記號。
大部分的西歐語系也是同樣的設定方式。
參閱 Debian Euro
HOWTO
來加入歐洲新的貨幣格式。法文的更多訊息請參閱 Utiliser et
configurer Debian pour le français
。
讓我們來建立一個多語系的 X 視窗環境且同時支援日文,英文,德文和法文以及不同終端機下支援 EUC, UTF-8 和 ISO-8859-1 的編碼。
我將會展示如何自訂 Debian 選單系統。參閱 /usr/share/doc/menu/html/index.html
的 Debian 選單系統。我也會示範建立一個 mozilla
網頁瀏覽器捷徑。
[46]
使用 Localization (l10n), 第 9.7 節 章節所提及的方式加入日文 ja_JP.eucJP 的 locale 和其他需要的 locale 資料。(全部)
安裝 Kana-to-Kanji 轉換系統和字典 (針對日文語系):
canna
– 本地端伺服器 ("free-beer" license),或
freewnn-jserver
– 加入網路功能的伺服器 (Public Domain)
安裝日文輸入法系統 (針對日文語系):
kinput2-canna
– X 下 或
kinput2-canna-wnn
– X 下和
egg
– 在主控台下就能搭配 Emacsen 直接輸入日文(額外的)
安裝相容的終端機 (針對所有語系):
xterm
– X (支援 ISO-8859-1 and UTF-8),
kterm
– X (支援日文 EUC),和
mlterm
– X (支援多語系)。
加入所有日文字體套件。(針對所有語系)
依照 自定 X sessions, 第 9.4.5.1 節
章節提及的方式,建立 ~/.xsession
並設定使用者專屬的 X
環境(針對所有語系):
#!/bin/sh # This makes X work when I su to root. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi # Set specific environment through debian menu system. # Reset locale unset LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES unset LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT unset LC_IDENTIFICATION LC_ALL LANG LANGUAGE PAGER # set locale default in X LANG=C # export locale export LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES export LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT export LC_IDENTIFICATION LC_ALL LANG LANGUAGE PAGER ### # activate input method for Japanese with kinput2 kinput2 & XMODIFIERS="@im=kinput2" export XMODIFIERS # How about blackbox window manager (lightweight) exec blackbox #exec xfwm #exec wmaker
針對 Linux 主控台設定 ~/.bash_profile
的 locale 資訊
(針對所有語系)。
移除 ~/.bashrc
已有的 locale 設定 (針對所有語系)。
建立新的檔案到/etc/menu/
(針對所有語系)。
/etc/menu/xterm-local
:(加入新項目到選單) [47]
?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: terminal emulator (en_US.ISO-8859-1)"\ title="XTerm (en_US.ISO-8859-1)"\ command="sh -c 'LC_ALL=en_US.ISO-8859-1 xterm'" ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: terminal emulator (de_DE.ISO-8859-1)"\ title="XTerm (de_DE.ISO-8859-1)"\ command="sh -c 'LC_ALL=de_DE.ISO-8859-1 xterm -T xterm-de'" ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: terminal emulator for X with Unicode support (Japanese)"\ title="UXTerm (ja_JP.UTF-8)"\ command="sh -c 'LC_ALL=ja_JP.UTF-8 uxterm'"
/etc/menu/kterm
:(強制複寫系統預設) [48]
?package(kterm):\ needs="x11"\ section="XShells"\ command="sh -c 'LC_ALL=ja_JP.eucJP PAGER=w3m /usr/X11R6/bin/kterm -xim'" \ title="Kanji Terminal" ?package(kterm):\ needs="x11"\ section="XShells"\ command="sh -c 'LANG=ja_JP.eucJP \ LC_MESSAGES=en_US.ISO-8859-1 PAGER=w3m /usr/X11R6/bin/kterm -xim'" \ title="Kanji Terminal (bilingal)"
/etc/menu/mozilla-local
:(加入新捷徑) [49]
?package(mozilla-browser):needs="x11" section="/" \ title=" Mozilla Navigator" command="mozilla-1.5" hints="Web browsers" \ icon=/usr/share/pixmaps/mozilla.xpm
從 root 帳號執行 update-menus
。
加入底下的敘述到 ~/.muttrc
(針對日文語系):
# UTF-8 support is not popular in popular Japanese EMACS environment # 7-bit encoding of iso-2022-jp is easier for everyone. # default encoding order = us-ascii --> iso-8859-1 --> iso-2022-jp set send_charset="us-ascii:iso-8859-1:iso-2022-jp" set allow_8bit=no
啟動 XIM kinput2
給 X 程式 (針對日文語系):
加入 *inputMethod: kinput2 和 KTerm*VT100*OpenIm:
true 到您的 X 資源檔--~/.Xresources
(Debian
應該會有某些方式自動完成這個動作)。
有些程式 (例如 mlterm
) 也允許您設定 *inputMethod:
和其他資訊,並在執行時動態載入(在 mlterm
按下Ctrl-MouseButton-3)。
執行 startx 來啟動 X 或任一個顯示管理器 (xdm
,
gdm
, kdm
, wdm
, ...) (針對所有語系)。
在kterm
下啟動一個相容日文的程式,例如 Vim 6, (x)emacs21, mc-4.5,
mutt-1.4, ...(針對日文語系)(Emacs 看起來是滿多人用的,雖然我不使用它。)
按下 Shift+Space 來啟動/關閉日文字元輸入模式(針對日文語系)。
在該語系相容的終端機下閱讀翻譯好的說明文件 (針對所有語系)。
針對 CJK 語系支援,請參閱接下來的章節和 SuSE pages for
CJK
。
還有許多其他的 X 輸入法支援的套件:
Language LC_CTYPE XIM server XMODIFIERS Start key Japanese ja_JP* kinput2 "@im=kinput2" Shift-Space Korean ko_KR* ami "@im=Ami" Shift-Space Chinese(T) zh_TW.Big5 xcin "@im=xcin-zh_TW.big5" Ctrl-Space Chinese(S) zh_CN.GB2312 xcin "@im=xcin-zh_CN.GB2312" Ctrl-Space
日文輸入法 kinput2
程式是包在
kinput2-canna-wnn
、kinput2-canna
和
kinput2-wnn
套件。理論上還需要辭典服務器如 canna
和
freewnn-jserver
才能使用。
還有許多 X 終端機支援 8-bit 編碼,安裝相關的字型就能正常顯示:
xterm
– X 終端機
gnome-terminal
– Gnome 的 xterm
konsole
– KDE 的 xterm
rxvt
– VT102 終端機 (lighter)
aterm
– Afterstep WM 的 VT102 終端機
eterm
– Enlightment WM 的 VT102 終端機
wterm
– WindowMaker WM 的 VT102 終端機
xterm
在 UTF-8 的編碼環境下就能支援雙位元組編碼(參閱 支援 UTF-8 的 X 終端機, 第 9.7.12
節)。其他傳統編碼的終端機還在開發中(2003年時)。底下是已經支援傳統編碼的套間:
aterm-ml
– Multi-lingual
kterm
– Multi-lingual (Japanese, ...)
rxvt-ml
– Multi-lingual
wterm-ml
– Multi-lingual
cxterm-big5
– Chinese (Trad., Big5)
cxterm-gb
– Chinese (Simp., GB)
cxterm-ks
– Chinese (KS)
cxterm-jis
– Japanese
hanterm-classic
– Korean (Hangul)
hanterm-xf
– Korean (Hangul)
hztty
– Chinese (GB, Big5, zW/HZ)
使用 kterm
時(或其他終端機),您需要在選單上按下
Ctrl+滑鼠中鍵才能啟動 XIM。
支援 UTF-8 的終端機有 XFree86 4.x 版本的 xterm
套件裡的
uxterm
程式。它支援所有的語言。它是一個啟動後續程式使用
"UXTerm" X 資源集的一個 wrapper(參閱xterm(1)
)。
舉例還說,使用漂亮的大字型來顯示英文、俄文、日文、中文和韓文文字時,安裝對應的字型套件後加入底下的設定到
~/.Xresources
檔案。
! set large font UXTerm*font: -misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1 ! Use XIM for Japanese *inputMethod: kinput2
然後執行 xrdb -merge ~/.Xresources 來更新 X 資源,就像 X 資源, 第 9.4.10 節 這一節所提及的。
雖然大部分的終端機程式,例如 vim
, mutt
和
emacs
已經相容 UTF-8(Woody-Sarge
之後的版本)了。但還是有少許的程式,如 mc
還不支援
UTF-8,可幸的是還有支援了 8-bit 編碼。如果您編輯 7-bit ASCII
字元到未知編碼或是混用編碼的檔案,建議是使用無法辨識 locale 且支援 8-bit
編碼的編輯器是比較安全。
未來,每個人都會用到這些東西。參閱 The Unicode
HOWTO
。
在 debian-installer
程式裡,bterm
是提供 FB
主控台支援 UTF-8 的套件。
當您第一次設定好國際語言環境之後,請使用 tasksel
或 aptitude
來安裝您的語言環境對應的套件。該套件的安裝選單也適用於多國語言設定。如果您在安裝過程時遇到相依性問題時,取消和避免安裝與系統衝突的套件。您或許需要使用
update-alternative
來回復指令安裝前的狀態,因為新安裝的套件有可能有更高的優先權覆蓋指令的連結。
使用 glibc 2.2 版的新版程式通常具備了國際化。所以特定的區域版本程式如
jvim
就不需要另外安裝,因為新的 vim
6.0
版本已經支援了它所提供的功能。事實上,還是有些小問題。由於 jvim
是針對日文輸入法支援所編譯的,所在在終端機上處理其他日文相關的文件,它還是很值得推薦的
:-)
應用程式有時需要忽略locale的設定才能適用於現有的工作環境。安裝
language-env
套件和使用其內建的指令 set-language-env
能很輕鬆地解決這些麻煩的步驟。
請參閱國際化相關文件,Introduction to
i18n
。該文件是針對開發者撰寫但也適用於系統管理者。
安裝 language-env
套件就能完成 Localization
(l10n), 第 9.7 節
的設定步驟,該套件的目標就是將所有的語系視為一種語言。這些套件也使用傳統的編碼方式處理文字檔案。在這個環境下,您不能混用法文和日文文字,因為他們不相容
ISO-8859-1 和 EUC-JP。
使用 Gnome 和 KDE 程式在 UTF-8 的 locale 設定下,就能獲得多國語系的 UTF-8 桌面。(Sarge)在這樣的環境下,您能混用英文、中文、俄文和日文字元在任何 UTF-8 相同的軟體中。 [50]
在這樣的系統下,新的多國語系輸入法建議使用 scim
。由
scim
提供的輸入法只需按下 Ctrl-Space 就能啟動或關閉。滑鼠點選 SCIM
的控制視窗就能切換輸入轉換引擎。
vim
offers the multilingualized environment and can handle both
UTF-8 and conventionally encoded files (EUC-JP, ISO-8859-1, ...) when it is run
under the UTF-8 console such as gnome-teminal
. See vim help
message with pressing [Esc] and typing :help mbyte.txt.
[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ 下一頁 ]
Debian 參考手冊
CVS, 週四 一月 18 11:53:38 UTC 2007osamu#at#debian.org
asho#at#debian.org.tw