注意,不能輕易更改root用戶的shell,因為這可能會造成root無法正常登錄,而使得無法正常執(zhí)行系統(tǒng)維護 。即使是將root的shell更改為其他更新、更強功能的標(biāo)準(zhǔn)shell,例如bash或tcsh,也是不應(yīng)該 。雖然這些shell也是非常成熟的shell程序,仍然不應(yīng)該使用它們作為root的shell 。主要原因是這些shell一般沒有被安裝到根分區(qū)中,那么當(dāng)系統(tǒng)進入單用戶狀態(tài)時就會發(fā)生問題 。另外這些shell可能會由于進行版本升級等原因,而偶然形成故障,造成root無法正確登錄 。此外,由于這些非標(biāo)準(zhǔn)shell不一定來自于系統(tǒng)的安裝盤,因此也存在對shell來源的安全信任問題,必須保證這些shell不是經(jīng)攻擊者更改過的版本 。如果要使用它們shell提供的方便特性,可以在系統(tǒng)登錄之后再使用全路徑執(zhí)行它們 。
配置用戶shell
事實上sh與csh,并不是普通用戶的最佳選擇,因為這兩個shell在易用性方面做的不夠好,例如命令行編輯功能不強、不能利用熱鍵重復(fù)執(zhí)行命令等 。較新的shell,如bash和tcsh都具有這些方便用戶使用的功能,但必須安裝了這些shell程序之后,才能更改普通用戶的shell設(shè)置以使用這些shell程序 。更改用戶的shell可以使用pw、vipw或chsh 。
這兩個shell分別遵照sh和csh的風(fēng)格,因此喜好csh風(fēng)格的可以選擇tcsh,而喜歡sh風(fēng)格的選擇bash 。除了這兩種shell之外,還有ksh、zsh等shell可供選擇 。如果對兩種shell沒有偏好,可以選擇bash,它是一個GNU軟件,比標(biāo)準(zhǔn)sh功能強大的多 。
使用了這兩些增強型shell之后,用戶就可以使用shell提供的命令行編輯功能 。按照習(xí)慣的不同,可以選擇vi風(fēng)格的編輯方式或eMacs風(fēng)格的方式,缺省為emacs方式,這種方式使用方向鍵來回溯執(zhí)行過的命令,并進行修改,而vi風(fēng)格使用字母命令作編輯鍵,例如使用h、j、k、l四個鍵來移動光標(biāo),vi風(fēng)格的好處是不使用基本鍵盤之外的控制鍵,因而可以適用于任何終端設(shè)備,并且進行編輯時手不需離開基本鍵盤,熟練操作之后最為快捷 。emacs風(fēng)格比起vi風(fēng)格更適合從個人計算機轉(zhuǎn)向Unix的使用者的習(xí)慣 。bash, ksh ,zsh下使用下面的命令在emacs風(fēng)格和vi風(fēng)格切換:
bash$ set -o emacs
bash$ set -o vi
tcsh中使用不同的命令:
% bind emacs
% bind vi
還可以為常用的命令設(shè)置別名,簡化用戶輸入,例如:
bash$ alias ec=”echo This is a alias”
bash$ ec
This is a alias
shell用于方便用戶操作的另一項能力是自動補全命令或文件名的功能,因為FreeBSD下的文件名可能很長,將它們?nèi)枯斎氡容^麻煩 。事實上可以輸入部分名字,然后按Tab鍵(在vi風(fēng)格下是連續(xù)兩次按Esc鍵),shell將自動補全文件名的剩余部分 。如果已經(jīng)輸入的這部分名字不能確定具體的命令或文件,那么shell只將能確定的部分補上,然后響鈴?fù)ㄖ褂谜呃^續(xù)輸入以明確具體的文件 。
事實上即使在基本的sh或csh下,也可以使用 “*” 等特殊字符,用模式匹配的方式來簡化輸入 。
bash$ cd /usr/loca*
bash$ pwd
【14 FreeBSD連載:shell設(shè)置】/usr/local
Unix中的多數(shù)程序都具備模式匹配的處理能力,而shell的模式匹配功能最為常用 。shell可以使用這些特殊模式來配置多個文件,達到簡化操作的目的 。如果要熟練掌握Unix,必須掌握模式匹配 。
當(dāng)試圖在bash下輸入漢字的時候,除了必須設(shè)置終端屬性能接受8位字符之外(執(zhí)行stty pass8命令),還需要設(shè)置bash的輸入輸出轉(zhuǎn)換,可以在登錄腳本.profile文件中包括以下設(shè)置:
bind "set convert-meta off"
bind "set meta-flag on"
bind "set output-meta on"
未完,待續(xù) 。。。
推薦閱讀
- 83 FreeBSD連載:Apache基本安裝
- FreeBSD 中文編碼轉(zhuǎn)換
- FreeBSD下如何訪問MS-DOS文件系統(tǒng)?
- 73 FreeBSD連載:認(rèn)證與加密
- FreeBSD如何保存和使用內(nèi)核更改信息?
- FreeBSD 4.0 Kernel Hacking Guide--i386/i386/m
- FreeBSD 4.0 Kernel Hacking Guide--i386/i386/p
- 40 FreeBSD連載:郵件服務(wù)器
- FreeBSD 簡易編碼
- FreeBSD 4.0 Kernel Hacking Guide--kern/init_m
