?? 157.html
字號:
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>www.newok.com::FreeBSD使用大全</title>
<link rel=stylesheet href="newok.css" tppabs="http://www.newok.com/include/newok.css">
</head>
<body>
<div align=center>
<p> </p>
<table width=720>
<tr><td>
<strong>當前所在位置:</strong><a href="javascript:if(confirm('http://www.at.china.com/bsd/index.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.at.china.com/bsd/index.html'" tppabs="http://www.at.china.com/bsd/index.html" class=t1>FreeBSD使用大全>></a>
</td></tr>
</table>
<table width=700>
<tr><th><font color=white>FreeBSD使用大全(14):shell設置 </font></th></tr>
<tr><td> </td></tr>
<tr><td align=left><i>作者:</i>王波</td></tr>
<tr><td> </td></tr>
<tr><td><font color=white> 命令解釋程序shell是與用戶關系最密切的應用程序,用戶主要通過shell使用系統。在每次登錄系統之后
,就啟動了一個與用戶交互的shell,這個shell將給出一個提示符等待用戶輸入,(sh為 “$” ,csh為
“%” ,如果是使用root用戶,登錄提示符將是 “#” ),然后對用戶的輸入進行解釋執行。
<p> FreeBSD的基本系統中可以使用的shell有兩個:sh和csh。這兩個基本shell的風格不太相同
,不同的使用者常常會根據喜好來在兩者之間進行選擇。當然當前有更好的shell程序可供使用者選擇,這些后續的
shell均是根據sh或csh的風格進一步發展出的,因此可以說在shell中,也有兩種風格,需要使用者根據自己的使
用習慣進行選擇。</p>
<p> 對于管理員來將,要為使用不同shell的用戶都設置好基本的環境,就必須了解這兩種風格的shell設置方
式。系統登錄時,sh將首先執行/etc/profile文件,為每個用戶設置最基本的環境,而csh將使用
/etc/csh.cshrc,csh.login和csh.logout作為系統csh資源文件。執行了系統級別的登錄文件
之后,每個用戶的shell就在該用戶的主目錄下尋找該用戶個人的資源文件:sh使用.profile文件,csh使
用.login和.cshrc文件。這些資源文件均使用相應的shell語言,/etc/profile和個人目錄下
的.profile使用sh風格的控制語言,/etc/cshrc和個人目錄下的.login、.cshrc使用csh
風格的控制語言。系統管理員可以改動這些資源文件,為用戶提供一個最方便的使用環境。當然,系統管理員沒有必要直接
去修改個人主目錄下的資源文件,這些文件應該由用戶自己管理,但是系統管理員可以在生成帳號時為用戶產生缺省的資源文
件,以減輕用戶設置資源文件的麻煩。adduser命令缺省使用/usr/share/skel下的文件為用戶提供各
種資源文件的缺省設置,這個目錄下除了可以放入shell的資源文件之外,還可以放入其他應用程序的資源文件。由于這
些資源文件都是以點開頭的隱藏文件,為了表示清楚,在skel目錄下使用了一種轉換方式,如使用dot.profile
作為.profile的模板。</p>
<p> # ls /usr/share/skel</p>
<p> dot.cshrc dot.mail_aliases dot.rhosts</p>
<p> dot.login dot.mailrc dot.shrc</p>
<p> dot.login_conf dot.profile</p>
<p> 在/usr/share/skel中為用戶設置的缺省配置文件,在用戶生成之后,就不會對用戶產生影響了。因
此對系統登錄文件進行修改更有效和直接。對于sh風格的用戶,可以更改/etc/profile文件,對csh應更改
/etc/csh.cshrc文件。在這些文件中可以改動shell使用的環境變量,這樣來改變shell的行為方式
,或者執行一系列自動操作,完成一些用戶登錄時需要自動執行的任務。
</p>
<B><P ALIGN="CENTER">常用的環境變量:</P></B>
<table BORDER=1 CELLSPACING=0 CELLPADDING=5 WIDTH=500 align=center>
<tr><td width=100>EDITOR</td>
<td width=400>設置用戶常用的編輯器,很多程序查看這個變量來啟動具體的編輯器,可以
根據系統的情況更改</td></tr>
<tr><td>HOME</td>
<td>用戶的主目錄的名字,這個變量由login程序設置,一般不需要更改</td></tr>
<tr><td>DISPLAYX</td>
<td>使用這個環境變量來標識具體的顯示位置,格式為“計算機名字:X服務 器序號.顯示屏
序號” ,例如:xt1:0.0,它不需要在資源文件中進行定義</td></tr>
<tr><td>LANG</td>
<td>系統使用的語言,用于系統的本地化,缺省為 “C” ,具體的設置可以查看 /usr/share/locale
目錄,那里定義了不同的語言,可以將其設置為zh_CN.EUC來使得一些軟件使用中文字符。</td></tr>
<tr><td>MAIL</td>
<td>用戶mail文件的位置,也不需要改動</td></tr>
<tr><td>PATH</td>
<td>使用冒號分隔的一系列路徑,系統用它來查找具體可執行程序,因此這個變量非常重要,
可以根據具體的情況改動其值。為了安全的原因,不要將當前目錄作為執行程序的搜尋路徑,
尤其對于root用戶。這樣在當前目錄下啟動程序,需要加上路徑,例如啟動當前目錄下的a.out
程序,輸入 “./a.out” 。</td></tr>
<tr><td>MANPATH </td>
<td>使用冒號分隔的一系列路徑,系統用它來查找具體命令的在線手冊,設置方法與PATH相同。</td></tr>
<tr><td>PS1sh</td>
<td>風格的shell使用這個變量的值作為提示符,缺省值為 “$”(root為 “#” )。更現代
的sh就增強了提示符的靈活性,可以在提示符中加入當前目錄、用戶名、機器名,命令的序號等。</td></tr>
<tr><td>PS2sh</td>
<td>風格的shell使用這個變量的值作為后續提示符,提示命令還沒有完全輸入,缺省為 “>“ </td></tr>
<tr><td>TERM</td>
<td>終端的類型,對于需要全屏操作的程序,非常重要。有時要根據情況對設置進行調整。</td></tr>
<tr><td>TZ</td>
<td>時區設置,具體的時區信息位于/usr/share/zoneinfo目錄下,需要設置為適合本地時區
的標準值</td></tr>
</table>
<p> 可以將用戶的shell設置為特殊的應用程序,來達到對特殊用戶進行限制的目的。例如,僅僅給予用戶一個電子
郵件信箱,但不想給他終端使用權,可以將用戶的shell更改為/bin/true或者其他立即退出的程序。為了安全
起見,用戶shell應該是一個不存在漏洞的二進制程序,最好不要使用解釋性語言腳本作為登錄shell。由于系統認
可的shell程序是在/etc/shells文件中列出的程序,將特殊用戶的shell設置為特殊的應用程序,但這
些應用程序沒有列入shells文件,那么這個用戶就會被一些應用程序區分出與普通用戶的差異,從而拒絕提供服務。例
如ftp服務器程序ftpd,通過檢查用戶的shell是不是標準shell,來區分這個用戶是普通用戶還是用于特定
目的的用戶。</p>
<p> 注意,不能輕易更改root用戶的shell,因為這可能會造成root無法正常登錄,而使得無法正常執行系
統維護。即使是將root的shell更改為其他更新、更強功能的標準shell,例如bash或tcsh,也是不應
該。雖然這些shell也是非常成熟的shell程序,仍然不應該使用它們作為root的shell。主要原因是這些
shell一般沒有被安裝到根分區中,那么當系統進入單用戶狀態時就會發生問題。另外這些shell可能會由于進行版
本升級等原因,而偶然形成故障,造成root無法正確登錄。此外,由于這些非標準shell不一定來自于系統的安裝盤
,因此也存在對shell來源的安全信任問題,必須保證這些shell不是經攻擊者更改過的版本。如果要使用它們
shell提供的方便特性,可以在系統登錄之后再使用全路徑執行它們。
</p>
<ul><h2><P><LI>配置用戶shell</LI><p></P></h2></ul>
<p> 事實上sh與csh,并不是普通用戶的最佳選擇,因為這兩個shell在易用性方面做的不夠好,例如命令行編
輯功能不強、不能利用熱鍵重復執行命令等。較新的shell,如bash和tcsh都具有這些方便用戶使用的功能,但
必須安裝了這些shell程序之后,才能更改普通用戶的shell設置以使用這些shell程序。更改用戶的shell
可以使用pw、vipw或chsh。</p>
<p> 這兩個shell分別遵照sh和csh的風格,因此喜好csh風格的可以選擇tcsh,而喜歡sh風格的選擇
bash。除了這兩種shell之外,還有ksh、zsh等shell可供選擇。如果對兩種shell沒有偏好,可以
選擇bash,它是一個GNU軟件,比標準sh功能強大的多。</p>
<p> 使用了這兩些增強型shell之后,用戶就可以使用shell提供的命令行編輯功能。按照習慣的不同,可以選
擇vi風格的編輯方式或emacs風格的方式,缺省為emacs方式,這種方式使用方向鍵來回溯執行過的命令,并進行
修改,而vi風格使用字母命令作編輯鍵,例如使用h、j、k、l四個鍵來移動光標,vi風格的好處是不使用基本鍵盤之
外的控制鍵,因而可以適用于任何終端設備,并且進行編輯時手不需離開基本鍵盤,熟練操作之后最為快捷。emacs風格
比起vi風格更適合從個人計算機轉向Unix的使用者的習慣。bash, ksh ,zsh下使用下面的命令在emacs
風格和vi風格切換:</p>
<p> bash$ set -o emacs </p>
<p> bash$ set -o vi </p>
<p> tcsh中使用不同的命令:</p>
<p> % bind emacs</p>
<p> % bind vi</p>
<p> 還可以為常用的命令設置別名,簡化用戶輸入,例如:</p>
<p> bash$ alias ec=”echo This is a alias”</p>
<p> bash$ ec</p>
<p> This is a alias</p>
<p> shell用于方便用戶操作的另一項能力是自動補全命令或文件名的功能,因為FreeBSD下的文件名可能很
長,將它們全部輸入比較麻煩。事實上可以輸入部分名字,然后按Tab鍵(在vi風格下是連續兩次按Esc鍵),shell
將自動補全文件名的剩余部分。如果已經輸入的這部分名字不能確定具體的命令或文件,那么shell只將能確定的部
分補上,然后響鈴通知使用者繼續輸入以明確具體的文件。</p>
<p> 事實上即使在基本的sh或csh下,也可以使用 “*” 等特殊字符,用模式匹配的方式來簡化輸入。</p>
<p> bash$ cd /usr/loca*</p>
<p> bash$ pwd</p>
<p> /usr/local</p>
<p> Unix中的多數程序都具備模式匹配的處理能力,而shell的模式匹配功能最為常用。shell可以使用這
些特殊模式來配置多個文件,達到簡化操作的目的。如果要熟練掌握Unix,必須掌握模式匹配。</p>
<p> 當試圖在bash下輸入漢字的時候,除了必須設置終端屬性能接受8位字符之外(執行stty pass8命令
),還需要設置bash的輸入輸出轉換,可以在登錄腳本.profile文件中包括以下設置:</p>
<p> bind 'set convert-meta off'</p>
<p> bind 'set meta-flag on'</p>
<p> bind 'set output-meta on'</p>
<p align=right>未完,待續。。。 </p></font></td></tr>
<tr><td> </td></tr>
<tr><td align=right><i>來源:</i><a href="javascript:if(confirm('http://freebsd.online.ha.cn/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://freebsd.online.ha.cn/'" tppabs="http://freebsd.online.ha.cn/">http://freebsd.online.ha.cn/</a></td></tr>
</table>
<p> </p>
<p> </p>
<p> </p>
聲明:本站的文章和軟件是本人從網上收集整理的(除本人的作品之外),所有版權屬于作者,<br>
如有侵犯您的權益,請指出,本站將立即改正,謝謝.
<hr width=500>
<br>
<font color=#ffffff>Copyright 2000 <a href="javascript:if(confirm('http://www.newok.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.newok.com/'" tppabs="http://www.newok.com/" class=t1>www.newok.com</a></font>
</div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -