¦b FreeBSD ¤¤¡A«Ü¦h¤é±`ªº¤u§@¬O¦b¤@Ó¥s°µ shell ªº¤å¦r¤¶±¤¤§¹¦¨ªº¡C Shell ªº¥Dn¤u§@´N¬O±q¿é¤J¤¤¦¬¨ì©R¥O¨Ã°õ¦æ¥¦Ì¡C ³\¦h shell ¤]¦³¤º«Ø¤@¨Ç¦³§U©ó¤é±`¤u§@ªº«ü¥O¡A ¹³¬OÀɮ׺޲z¡BÀɮפñ¹ï¡B©R¥O¦C½s¿è¡B«ü¥O¥¨¶°¥H¤ÎÀô¹ÒÅܼƵ¥¡C FreeBSD ¦³¤ºªþ¤F´XÓ shell¡A¹³¬O sh¡A Bourne Shell¡A¥H¤Î tcsh¡A§ï¨}ª©ªº C-shell¡C ÁÙ¦³³\¦h¨ä¥Lªº shell ¥i¥H±q FreeBSD Ports Collection ¤¤¨ú±o¡A¹³¬O zsh ¥H¤Î bash µ¥¡C
±z¥ÎþÓ shell ©O¡H ¨ä¹ê¨CÓ¤Hªº³ß¦n³£¤£¤@¼Ë¡C ¦pªG±z¬O¤@Ó C µ{¦¡³]p®v¡A¨º¹ï©ó¨Ï¥Î¹³¬O tcsh ³oºØ C-like ªº shell ¥i¯à·|·P¨ì¬Û·í´r§Ö¡C ¦pªG§A¬O±q Linux ¸õ¹L¨Óªº¡A©ÎªÌ±z¬O¤@Ó UNIX® ·s¤â¡A¨º±z¤]³\·|·Qn¥Î bash ¨Ó·í§@¤å¦r¤¶±¡C ¨C¤@Ó shell ³£¦³¦Û¤w¿W¯S¤§³B¡A¦Ü©ó³o¨Ç¯SÂI¯à¤£¯à°t¦X±zªº¤u§@Àô¹Ò¡H ¨º´N¬O±z¿ï¾Ü shell ªº«ÂI¤F¡C
ÀɦW¦Û°Ê¸É»ô´N¬O±`¨£ªº shell ¥\¯à¡C º¥ý¿é¤J«ü¥O©ÎÀɮתº«e´XÓ¦r¥À¡A³o®É³q±`±z¥u»Ýn«ö¤U Tab Áä¡A±µ¤U¨Ó shell ´N·|¦Û°Ê§â«ü¥O©Î¬OÀɮצWºÙ³Ñ¾lªº³¡¥÷¸É»ô¡C °²³]±z¦³¨âÓÀɮפÀ§O¥s§@ foobar ¤Î foo.bar¡C ²{¦bn§R±¼ foo.bar¡A¨º»ò¥i¥H¿é¤J¡G rm fo[Tab].[Tab]
Shell ·|¦L¥X³oÓ¡G rm foo[¹Í].bar¡C
[¹Í] ¬O console ªºÅT¹a¡A³o¹Íªº¤@Án¬O shell ¦b§i¶D§Ú»¡¥¦¨S¦³¿ìªk§¹¥þ¦Û°Ê¸É»ôÀɦW¡A¦]¬°¦³¤£¥u¤@ÓÀɦW²Å¦X±ø¥ó¡C foobar ©M foo.bar ³£¬O fo ¶}ÀYªºÀɦW¡A¤£¹L¥¦¦Ü¤Ö¥i¥H¸É»ô¨ì foo¡C ¦pªG±z±µµÛ¿é¤J . µM«á¦A«ö Tab ¤@¦¸¡A¨º shell ´N¯à°÷´À±z§â³Ñ¤UªºÀɦW¶ñº¡¤F¡C
Shell ªº¥t¤@¶µ¯SÂI¬O¨Ï¥Î¤FÀô¹ÒÅܼơC Àô¹ÒÅܼƬO¥HÅܼƻPÁäÈ¡]variable/key¡^ªº¹ïÀ³Ãö«YÀx¦s©ó shell ªºÀô¹ÒªÅ¶¡¤¤¡A¥ô¦ó¥Ñ shell ©Ò²£¥Íªºµ{§Ç³£¥i¥HŪ¨ú¦¹ªÅ¶¡¡A ¦]¦¹³oӪŶ¡Àx¦s¤F³\¦hµ{§Çªº³]©w²ÕºA¡C ¦b¦¹ªþ¤W ¤@¥÷±`¨£Àô¹ÒÅܼƻP¨ä²[¸qªº¦Cªí¡G
ÅÜ¼Æ | ¸Ô²Ó»¡©ú |
---|---|
USER | ¥Ø«eµn¤Jªº¨Ï¥ÎªÌ¦WºÙ¡C |
PATH | ¥H«_¸¹¡]:¡^¹j¶}ªº¥Ø¿ý¦Cªí¡A¥Î¥H·j´M°õ¦æÀɪº¸ô®|¡C |
DISPLAY | Y¦s¦b³oÓÀô¹ÒÅܼơA«h¥Nªí X11 ³sµ²Åã¥Ü¾¹ªººô¸ô¦WºÙ¡C |
SHELL | ¥Ø«e¨Ï¥Îªº shell¡C |
TERM | ¨Ï¥ÎªÌ²×ºÝ¾÷ªº¦WºÙ¡A¯àÂǥѦ¹ÅܼƧPÂ_²×ºÝ¾÷ªº¯à¤O¡C |
TERMCAP | Database entry of the terminal escape codes to perform various terminal functions. |
OSTYPE | §@·~¨t²ÎªººØÃþ¡A¦p¡GFreeBSD¡C |
MACHTYPE | ¥Ø«e¨t²Î©Ò¥Îªº CPU ¬[ºc¡C |
EDITOR | ¨Ï¥ÎªÌ°¾¦nªº¤å¦r½s¿è¾¹¡C |
PAGER | ¨Ï¥ÎªÌ°¾¦nªº¤å¦r¤À¶¾¹¡]text pager¡^¡C |
MANPATH | ¥H«_¸¹¡]:¡^¹j¶}ªº¥Ø¿ý¦Cªí¡A¥Î¥H·j´M manual pages ªº¸ô®|¡C |
¦b¤£¦Pªº shell ©³¤U³]©wÀô¹ÒÅܼƪº¤è¦¡¤]¦³©Ò¤£¦P¡C Á|¨Ò¨Ó»¡¡A¦b C-Style ªº shell ©³¤U¡A¹³¬O tcsh ©M csh¡A§A¥²¶·¨Ï¥Î setenv ¨Ó³]©wÀô¹ÒÅܼơC ¦ý¦b Bourne shells ©³¤U¡A¹³¬O sh ©M bash¡A§A«h¥²¶·¨Ï¥Î export ¨Ó³]©w§A©Ò¨Ï¥ÎªºÀô¹ÒÅܼơC ¦AÁ|Ó¨Ò¤l¨Ó»¡¡AYn³]©w©Î¬O×§ï EDITOR ³oÓÀô¹ÒÅܼơA¦b csh ©Î tcsh ¤U³]©w EDITOR ³oÓÀô¹ÒÅܼƬ° /usr/local/bin/emacs ªº«ü¥O¬O¡G
% setenv EDITOR /usr/local/bin/emacs
¦b Bourne shells ¤U«h¬O¡G
% export EDITOR="/usr/local/bin/emacs"
¤j¦h¼Æªº shell ³£¤ä´©¨Ï¥ÎªÌ¦b©R¥O¦C¤¤±N $ ¦r¤¸©ñ¦bÅܼƤ§«e¡A¥H¨ú±oÀô¹ÒÅܼƪºÈ¡C Á|¨Ò¨Ó»¡¡Aecho $TERM ·| Åã¥Ü¥X $TERM ªº³]©wÈ¡A³o¬O¦]¬° shell ¨ú±o¤F $TERM ªº³]©wÈ¡A ¨Ã±N¨ä¶Çµ¹ echo Åã¥Ü¥X¨Ó¡C
Shell ¤¤¦³¬Y¨Ç¯S§Oªº¦r¤¸¬O¨Óªí¥Ü¯S®íªº¸ê®Æ¡A§Ú̱N¨äºÙ§@ meta-characters¡C ¨ä¤¤³Ì±`¨£ªº¬O * ¦r¤¸¡A¥L¥Nªí¤FÀɦW¤¤ªº¥ô·N¦r¤¸¡C ³o¨Ç¯S®í¦r¤¸¥i¥H¥Î¦bÀɦW®i¶}¡]filename globbing¡^¤W¡AÁ|¨Ò¨Ó»¡¡A¿é¤J echo * ·|©M¿é¤J ls ±o¨ì´X¥G¬Û¦Pªºµ²ªG¡A³o¬O¦]¬° shell ·|±N©Ò¦³²Å¦X * ¦r¤¸ªºÀɮ׶Ǩì©R¥O¦C¤W¡A¦A¥Ñ echo Åã¥Ü¥X¨Ó¡C
¬°¤FÁ×§K shell Âàͳo¨Ç¯S®í¦r¤¸¡A§ÚÌ¥i¥H¦b³o¨Ç¯S®í¦r¤¸«e©ñ¤@Ӥϱ׽u (\) ¦r¤¸¨Ï¥L̸õ²æ(escape) shell ªºÂàĶ¡CÁ|¨Ò¨Ó»¡¡A echo $TERM ·|¦L¥X§A¥Ø«e³]©wªº²×ºÝ¾÷®æ¦¡¡A echo \$TERM «h·|ª½±µ¦L¥X $TERM ³o´XÓ¦r¡C
Åܧó shell ³Ì²³æªº¤èªk´N¬O³z¹L chsh ©R¥O¡C °õ¦æ chsh ±N·|©I¥sÀô¹ÒÅܼƤ¤ EDITOR «ü©wªº¤å¦r½s¿è¾¹¡C ¦pªG¨S¦³³]©w¡A«h¹w³]¬O vi¡C ½Ð¨Ì·Ó»Ý¨D¥h×§ï ¡§Shell:¡¨ ªºÈ¡C
§A¤]¥i¥H³z¹L chsh ªº°Ñ¼Æ -s
¡A
³o¥i¥Hª½±µ³]©w§Aªº shell ¦Ó¤£»Ýn³z¹L¥ô¦ó¤å¦r½s¿è¾¹¡C ¨Ò¦p¡A °²³]·Q§â©Ò¥Îªº shell §ï¬°
bash¡A ¥i¥H³z¹L¤U¦Cªº¤è¦¡¡G
% chsh -s /usr/local/bin/bash
Note: §A©Ò¨Ï¥Îªº shell ¥²¶· ¦C©ó /etc/shells ¸ÌÀY¡C ¦pªG¬O¥Ñ Ports Collection ¨Ó¸Ë shell¡A ¨º³oÓ¨BÆJ¤w¸g§¹¦¨¤F¡C ¦ýY¬O¤â°Ê¦w¸Ë¤F¤@Ó shell¡A ¨º»ò´N¥²¶·¬°·s¦w¸Ëªº shell ¶i¦æ³]©w¡C
Á|¨Ò¨Ó»¡¡AY¤â°Ê¦w¸Ë¤F bash ¨Ã±N¥¦¸m©ó /usr/local/bin ©³¤U¡A§AÁÙ±o¡G
# echo "/usr/local/bin/bash" >> /etc/shellsµM«á¦A«·s°õ¦æ chsh¡C
¥»¤å¤Î¨ä¥L¤å¥ó¡A¥i¥Ñ¦¹¤U¸ü¡Gftp://ftp.FreeBSD.org/pub/FreeBSD/doc/¡C
Y¦³ FreeBSD ¤è±ºÃ°Ý¡A½Ð¥ý¾\Ū FreeBSD ¬ÛÃö¤å¥ó¡A¦p¤£¯à¸Ñ¨Mªº¸Ü¡A¦A¬¢¸ß
<questions@FreeBSD.org>¡C
Ãö©ó¥»¤å¥óªº°ÝÃD¡A½Ð¬¢¸ß <doc@FreeBSD.org>¡C