The Linux Tips HOWTO Paul Anderson paul@geeky1.ebtech.net JF Project - ú{êó JF@linux.or.jp v3.6, June 1998 ±Ì HOWTO ÅÍAÓOÆmçêĢȢ¿åÁƵ½qgâRcðÐîµÄ ¢Ü·B±êðmêÎALinux ÍàÁÆÖÉÈé͸ŷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª Table of Contents 1. ͶßÉ 2. Z¢ tips 2.1. ¨èy Syslog gbN`Tips-HOWTO Çl Paul Anderson 2.2. ³k³ê½ HOWTO ¶ð\¦·éXNvg`Didier Juges, <dj@destin.nfds.net> 2.3. ó«Xy[XÍ[ª©HHH`Hans Zoebelein <zocki@goldfish.cube.net> 2.4. Ot@C|[eBeB`Paul Anderson, Tips-HOWTO Ç Ò 2.5. core t@C|̨èyXNvg`Otto Hammersmith <ohammers@cu-online.com> 2.6. ÙÈét@CVXeÔÅÌfBNgÚ®`Alan Cox <A.Cox@swansea.ac.uk> 2.7. ÇÌfBNgªêÔå«¢©ðmé`Mick Ghazey <mick@lowdown> 2.8. Linux Gazette 2.9. GNU Make 3.70 Ì VPATH ÜíèÌUé¢ðϦépb`Ìê` Ted Sterm <sterm@amath.washington.edu> 2.10. u[g̽ÑÉ¢¿¢¿ fsck ·éÌðâß³¹éÉÍH`Dale Lutz <dal@wimsey.com> 2.11. u[gÌÛA"device busy" ̹¢Å fsck ³êéÌðð¯éû @`Jon Tombs <jon@gtex02.us.es> 2.12. n[hfBXNãÌêÔå«Èt@Cð©Â¯éû@`Simon Amor <simon@foobar.co.uk> 2.13. p`ðJ¯é}[WðæÁÄvgAEg·éû@`Mike Dickey <mdickey@thorplus.lib.purdue.edu> 2.14. Áè̳K\»ðgÁÄt@Cc[ðõ·éû@`Raul Deluth Miller <rockwell@nova.umd.edu> 2.15. vOªèÉìÁ½obNAbvt@CâI[gZ[ut @Cð|·éXNvg`Barry Tolnas <tolnas@nestor.engr.utk.edu> 2.16. êÔðHÁÄ¢évZXðT·û@`Simon Amor <simon@foobar.co.uk > 2.17. C vO~Oü¯É vi ð¢¶é`Paul Anderson Tips-HOWTO ÇÒ 2.18. ctags ðgÁÄAvO~Oðâèâ··éû@ 2.19. Red Hat Å sendmail ªN®É 5 ªÔnO·éR`Paul Anderson <paul@geeky1.ebtech.net> 2.20. Red Hat Å color-ls ðg¤½ßÌÝèû@`Paul Anderson <paul@geeky1.ebtech.net> 2.21. ÁèÌÖª /usr/lib ÌÇÌCuÉ é©T·û@`Pawel Veselow <vps@unicorn.niimm.spb.su> 2.22. C ÌÈPÈ test vOðRpCµ½¯êÇAÀsµÄà ½àoͳêÈ¢I 3. Úµ¢ Tips 3.1. Linux Æ Windows ÅXbvp[eBVð¤L·éû@`Tony Acero <ace3@midway.uchicago.edu> 3.2. íµÄµÜÁ½t@CðÈñÆ©³¹éû@`Michael Hamilton <michael@actrix.gen.nz> 3.3. immutable(sÏ)tOÌg¢û`Jim Dennis <jadestar@rahul.net> 3.4. Vµ¢mðüêéêÉ¢ÄÌñ¾`Jim Dennis <jadestr@rahul.net> 3.5. fBNgàÌt@C¼ð¬¶ÉÏ··é`Justin Dossey <dossey@ou.edu> 3.6. Sendmail ðAbvO[h·éû@`Paul Anderson <paul@geeky1.ebtech.net > 3.7. VlVXeÇÒ̽ßÌ tips `Jim Dennis <jadestar@rahul.net> 3.8. xdm Å X T[oÌzXgIðªÅ«éæ¤É·éÝèû@`Arrigo Triulzi <a.triulzi@ic.ac.uk> 4. ú{êóÉ墀 1. ͶßÉ æ¤±» Linux Tips HOWTO ÖB±êÍALinux ªàÁÆyµÈé¬Uâ ¿åÁƵ½ÅK»Ìû@ðWß½¶Å·B¢ÜÌƱëA±±ÅÐî·é ÌÍí½µªv¢ÂÀèÌ tips ÆAÅ Tips-HOWTO ©ç]Úµ½ tips Å·(ælÌmbÍqط׫ÈÌÅ·)B¨CÉüèÌUâ tips ª Á½ ç½ÅàÁľ³¢BTips-HOWTO ÌÌÅÅÐîµÜ·B Paul Anderson Linux TIPS HOWTO ÌÇÒ <panderso@ebtech.net> ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2. Z¢ tips 2.1. ¨èy Syslog gbN`Tips-HOWTO Çl Paul Anderson /etc/syslog.conf ðÒWµÄAÌsðüêÜ·B # Dump everything on tty8 *.* /dev/tty8 ÓFK¸ Tab ðg¤±ÆI syslog ÍXy[Xð¢Ü·..... ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.2. ³k³ê½ HOWTO ¶ð\¦·éXNvg`Didier Juges, <dj@destin.nfds.net> SÒÌí½µ©ç¯¶SÒÌÐÆü¯ÉAHOWTO ¶ÌõÆ\¦ªÈ PÉÅ«éZ¢XNvgðÐîµÜ·B½Æ¦ÎAí½µÌ«¾Æ HOWTO ¶Í /usr/doc/faq/howto/ ɳk³êÄüÁĢܷB±±ÅA¶Ìt@ C¼ÍAXXX-HOWTO.gz Å èAXXX ̪ͻÌè¼ÆµÜ·Bí½µÍA Ìæ¤È "howto" Æ¢¤XNvgð쬵ÄA/usr/local/sbin Éu«Ü µ½B #!/bin/sh if [ "$1" = "" ]; then ls /usr/doc/faq/howto | less else gunzip -c /usr/doc/faq/howto/$1-HOWTO.gz | less fi øȵÅR}hðÀs·éÆAfBNgàÉ é HOWTO Sð\¦µ Ü·BÉAøƵÄt@C¼ÌÅ̪(nCtæ趤)ðüÍ· éÆA (àÆ̶©ÌÉÍÏXðÁ¦¸É)»Ì¶ððµÄA\¦µÜ· B ½Æ¦ÎASerial-HOWTO.gz ð\¦·éêÍAÌæ¤Éü͵ܷB $ howto Serial ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.3. ó«Xy[XÍ[ª©HHH`Hans Zoebelein <zocki@goldfish.cube.net> }Eg³êÄ¢éfoCX(fBXNACD-ROMAtbs[...)ãÉ[ªÈó «Xy[Xª é©Ç¤©èúIÉ`FbN·éZ¢XNvgB ó«Xy[Xª³ÈéÆAX b²ÆÉbZ[Wª\¦³êAtÌfoC Xª¶¶é½ÑÉ 1 ÊÌ[ªÍ«Ü·B #!/bin/sh # # $Id: Tips-HOWTO.sgml,v 1.4 2001/07/21 14:58:17 senda Exp $ # # # fBXNªêt@CÅtÉÈéÆARpCÉïÈbZ[Wª # \¦³êéæ¤ÉÈÁ½ÌÅA±êð¢ÄAfBXNªtÉÈéOÉx # ª\¦³êéæ¤Éµ½B # # ±ÌXNvgÅNÌT[oªðÆê½ÈçAlɨçÌ[ð # ÁĿ夾¢ zocki@goldfish.cube.net # ±ÌXNvgÅNÌTCgªSŵ½ÈçA¨CÌÅÅ·ªA¨¢µ¢ # bÍ»¤È¢àÌÅ·BÓCܹͦñB # sed ̵¢ÉKn³êÄ¢éûA¨¨ßɩľ³¢B:) # # # ©®»·éû@Frc.local É 'check_hdspace &' ÆLq·é±ÆB # $SLEEPTIME b²ÆÉfBXNãÌó«Xy[Xð`FbNµÜ·B # tbs[âe[vhCuà`FbNÅ«Ü·B:) # ó«Xy[Xª $MINFREE (kb) ȺÉÈéÆAxbZ[Wð\¦µA # âèÌ éfoCX²ÆÉ 1 ÊÌ[ð $MAIL_TO_ME ÉMµÜ·B # îlÈãÌó«Xy[XªmÛ³êéÆAÄxXy[Xs«ÉÈÁ½ # êÉõ¦ÄA[M@\ªõ³êÜ·B # # TODO: foCX²ÆÉÙÈé $MINFREE ðÝèÅ«éæ¤É·é±ÆB # ó«Xy[XªÈÈÁ½êA/*tmp fBNgÌS~t@Cð # |µÄAó«Xy[Xðìéæ¤É·é±ÆB DEVICES='/dev/sda2 /dev/sda8 /dev/sda9' # foCX; fBXNÌÝè MINFREE=20480 # kb; ±êȺÅx\¦ SLEEPTIME=10 # b; `FbNÌÔu MAIL_TO_ME='root@localhost' # N©; x[ÌMæ # ------- ±êȺ̪ÍAÏX·éKvª èܹñ (ó]) :) ------- MINMB=0 ISFREE=0 MAILED="" let MINMB=$MINFREE/1024 # yep, we are strict :) while [ 1 ]; do DF="`/bin/df`" for DEVICE in $DEVICES ; do ISFREE=`echo $DF | sed s#.\*$DEVICE" "\*[0-9]\*""\*[0-9]\*" "\*## | sed s#" ".\*##` if [ $ISFREE -le $MINFREE ] ; then let ISMB=$ISFREE/1024 echo "WARNING: $DEVICE only $ISMB mb free." >&2 #echo "more stuff here" >&2 echo -e "\a\a\a\a" if [ -z "`echo $MAILED | grep -w $DEVICE`" ] ; then echo "WARNING: $DEVICE only $ISMB mb free. (Trigger is set to $MINMB mb)" \ | mail -s "WARNING: $DEVICE only $ISMB mb free!" $MAIL_TO_ME MAILEDH="$MAILED $DEVICE" MAILED=$MAILEDH # put further action here like cleaning # up */tmp dirs... fi elif [ -n "`echo $MAILED | grep -w $DEVICE`" ] ; then # Remove mailed marker if enough disk space # again. So we are ready for new mailing action. MAILEDH="`echo $MAILED | sed s#$DEVICE##`" MAILED=$MAILEDH fi done sleep $SLEEPTIME done ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.4. Ot@C|[eBeB`Paul Anderson, Tips-HOWTO ÇÒ í½µÆÇÒª¯¶Â«É éÆ·éÈçAÇÒÍ 430 lÌo^ÒXgÆA úÉ 100 ÊÈãÌbZ[Wð UUCP ãÅó¯æÁÄ¢é͸ŷB±¤¢¤ êAnbJ[ÈçǤâÁıÌåÈOð·éñŵ天H»¤ A chklogs ðCXg[·ê΢¢ÌÅ·B chklogs Í Emilio Grimaldo <grimaldo@panama.iadhv.nl> ªì¬µ½àÌÅAÅVo[WÌ 1.8 ÍA ftp.iaehv.nl:/pub/users/grimaldo/chklogs-1.8.tar.gz <ftp:iadhv.nl:/pub/ users/grimaldo/chklog-1.8.tar.gz> ©çüèÅ«Ü·BÈÉæèàܸA± êðCXg[µÜµå¤(à¿ëñAdoc TufBNgÉ é info t @Cà`FbN·é±Æ)BCXg[ª®¹µ½çAcrontab ÉÌsð «ñž³¢B ¡¢ # Run chklogs at 9:00PM daily. 00 21 * * * /usr/local/sbin/chklogs -m ¤£ ìÆÌ ¢ÜÉA±Ì\tgEFAªÇêÙÇf°çµ¢©ìÒÉ`¦éÌð YêȢž³¢B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.5. core t@C|̨èyXNvg`Otto Hammersmith <ohammers@cu-online.com> ÌXNvgðLqµ½ rmcores Æ¢¤t@C ( ±ÌvOÌìÒ ÍA±êð handle-cores ÆÄñŢܷ) ð쬵ܷB #!/bin/sh USAGE="$0 " if [ $# != 2 ] ; then echo $USAGE exit fi echo Deleting... find $1 -name core -atime 7 -print -type f -exec rm {} \; echo e-mailing for name in `find $1 -name core -exec ls -l {} \; | cut -c16-24` do echo $name cat $2 | mail $name done »µÄAcron ÌWuƵÄA±êðèúIÉN®µÄ¾³¢B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.6. ÙÈét@CVXeÔÅÌfBNgÚ®`Alan Cox <A.Cox@swansea.ac.uk> éfBXN©ç¼ÌfBXNÖAt@Cc[ð۲ƷÎâÚ®³¹ éû@B (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -) [ÌÅfBNgð_ɵĵÜíÈ¢æ¤ÉA cd /source/directory; tar... ̪ðÏXµÜµ½B±êð³¦Äê½ Jim Dennis <jim@starshine.org> A èªÆ¤B`Çl ] ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.7. ÇÌfBNgªêÔå«¢©ðmé`Mick Ghazey <mick@lowdown> ¨g¢ÌRs [^ÅÇÌfBNgªêÔå«¢©HÁÄvÁ½±ÆÍ èܹñ©HÌR}hÅ»èÜ·B du -S | sort -n ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.8. Linux Gazette Linux Gazette Ìn§ÒAJohn Fisk Éh_ êIf°çµ¢IC}K WÅ éΩèÅÈA³¿IIIÈÌÅ·B±êÈã½ðúҵܷH ÌTCgð`FbNµÄ¾³¢B http://www.linuxgazette.com <http://www.linuxgazette.com/> »ÝALinux Gazette Í (1) §ÉÈèA(2) John Fisk ÍùÉÒWðÞ¢Ä A SSC ªø«p¢Å¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.9. GNU Make 3.70 Ì VPATH ÜíèÌUé¢ðϦépb`Ìê`Ted Sterm <sterm@amath.washington.edu> ±Ìâèðø¦Ä¢élª½¢©Ç¤©Íª©èܹñªAGNU Make Ìo[W 3.70 ÉÍí½µÌCÉüçÈ¢uÁ¥vª èÜ·BVPATH ðâÎpX ¼Å^¦½êA¨©µÈ®ìð·éÌÅ·B±êÉηé«íßÄÀèµ ½pb`ð Paul D. Smith <psmith@wellfleet.com> ªñµÄ¢Ü·Bܽ AÞÍ GNU Make ªXV³êé½ÑÉAj [XO[v gnu.utils.bug Éh L gÆpb`ðeµÄ¢Ü·Bí½µÍAANZX·éVXeÌÙ Ú·×ÄÌ gmake ɱÌpb`ðÄÄÄRpCµÄ¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.10. u[g̽ÑÉ¢¿¢¿ fsck ·éÌðâß³¹éÉÍH`Dale Lutz <dal@wimsey.com> QFu[g̽ÑÉ e2fsck ªfBXNð`FbNµÜ·Bâß³¹éÉÍH J[lðÄ\z·éÆA»Ìt@CVXeÍ "dirty" Æ}[N³êA» ÌÊAu[g̽ÑÉfBXNª`FbN³êĵܢܷB±êðâß³ ¹éÉÍAÌR}hðÀsµÜ·B rdev -R /zImage 1 ±ÌR}hÅJ[lªC³³êéÌÅAt@CVXeÍ "dirty" ¾Æ »f³êé±ÆªÈÈèÜ·B Ó: lilo ðgÁÄ¢éêAlilo ÌÝèt@C (ÊíÍA/etc/ lilo.conf) Ì linux ÝèÌªÉ read-only ðÁ¦Ä¾³¢B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.11. u[gÌÛA"device busy" ̹¢Å fsck ³êéÌðð¯éû@` Jon Tombs <jon@gtex02.us.es> Vbg_EÉ "device busy" G[ªp·éêÍAu[gÉt @CVXeª fsck ³êÜ·BȺÉÈPÈC³û@ðq×Ü·B /etc/rc.d/init.d/halt © /etc/rc.d/rc.0 ÉÚ®µA»µÄ mount -o remount,ro /mount.dir ÌêsðAumout -a ðÄÔOÉA/ ð¢½A}Eg·é\èÌ·×ÄÌt @CVXeÉεÄt¯Á¦Ü·B±¤·êÎA½ç©ÌRÅ shutdown ªvZXÌ kill ɸsµÄfBXNÌ umount ªÅ«È©Á½êÅàA u[gÌÛAfBXNÍ "clean" ÈÜÜÅ·Bu[gÔð©Èèßñµ ÄêÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.12. n[hfBXNãÌêÔå«Èt@Cð©Â¯éû@`Simon Amor <simon@foobar.co.uk> ls -l | sort +4n é¢ÍAfBXNXy[XªÜ³ÉNµÄ¢éêÉÍA¿åÁÆÔª |©èÜ·ªAøÊÄ«ßñÌÌR}hðgÁľ³¢B cd / ls -lR | sort +4n ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.13. p`ðJ¯é}[WðæÁÄvgAEg·éû@`Mike Dickey <mdickey@thorplus.lib.purdue.edu> #!/bin/sh # /usr/local/bin/print # a simple formatted printout, to enable someone to # 3-hole punch the output and put it in a binder cat $1 | pr -t -o 5 -w 85 | lpr ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.14. Áè̳K\»ðgÁÄt@Cc[ðõ·éû@`Raul Deluth Miller <rockwell@nova.umd.edu> í½µÍ±ÌXNvgð "forall" ÆÄñŢܷBÌæ¤ÉµÄgÁÄ ¾³¢B forall /usr/include grep -i ioctl forall /usr/man grep ioctl ȺÍA"forall" ÌgÅ·B #!/bin/sh if [ 1 = `expr 2 \> $#` ] then echo Usage: $0 dir cmd [optargs] exit 1 fi dir=$1 shift find $dir -type f -print | xargs "$@" ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.15. vOªèÉìÁ½obNAbvt@CâI[gZ[ut@C ð|·éXNvg`Barry Tolnas <tolnas@nestor.engr.utk.edu> ȺÅÐî·éÌÍAemacs ÌI[gZ[ut@C( #)AobNAbvt@ C(~)A .o t@CATeX Ì .log t@CÉ¢ÄAt@CKwðÄA Iɺ~µÄí·éÈPÈ 2 smÅ·B.tex Æ README t@C̳k àµÜ·Bí½µÍ±êð "sqeeze" ÆÄñŢܷB #!/bin/sh #SQUEEZE removes unnecessary files and compresses .tex and README files #By Barry tolnas, tolnas@sun1.engr.utk.edu # echo squeezing $PWD find $PWD \( -name \*~ -or -name \*.o -or -name \*.log -or -name \*\#\) -exec rm -f {} \; find $PWD \( -name \*.tex -or -name \*README\* -or -name \*readme\* \) -exec gzip -9 {} \; ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.16. êÔðHÁÄ¢évZXðT·û@`Simon Amor <simon@foobar.co.uk > ps -aux | sort +4n ܽÍA ps -aux | sort +5n ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.17. C vO~Oü¯É vi ð¢¶é`Paul Anderson Tips-HOWTO Ç Ò í½µÍAɪ éÆ C vOð¢ÄÜ·B»ÌÔÉAvi Å C ð «â··é½ßÌC³ðÁ¦Üµ½BȺªí½µÌ .exrc Å·B set autoindent set shiftwidth=4 set backspace=2 set ruler ±êª½ðµÄ¢é©Æ¢¤ÆAܸ autoindent ÍAÅÉêxCfg ðüêéÆ»êȺÌsÅà©®IÉCfgðüêéàÌÅ·B shiftwidth ÍA^T ðXy[X 4 ªÉÝè·éàÌÅAbackspace ÍA backspace [hÉÝè·éàÌAruler ÍAsÔð\¦·éàÌÅ·BÁ èÌsÔÉÚ®·éêA½Æ¦Î 20 sÚÉsÉÍAÌR}hðg ¢Ü·B vi +20 myfile.c ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.18. ctags ðgÁÄAvO~Oðâèâ··éû@ ½¢Ä¢ÌnbJ[ÍARs [^ãÉ ctags ðüêĢܷªAgÁÄÜ ¹ñBÅàA±êÍÁèÌÖðÒW·éÛÉÆÄàÖÅ·B½Æ¦ÎA éÖª èA»êªì¬ÌvOpfBNgà̽³ñÌ\[ Xt@CÌÐÆÂÉüÁÄ¢ÄA¿å¤ÇXV̽ßÉ»ÌÖÌÒWðµ ½¢Ì¾ÆµÜ·B»µÄA±ÌÖ̼OÍAfoo() ¾ÆµÄA±êðÇÌ \[Xt@CÉüê½Ì©YêĵÜÁ½ÆµÜ·Bctags ªÖÈÌÍ» ¤¢¤êÅ·Bctags ðÀs·éÆAtags Æ¢¤t@CªJgfB NgÉ쬳êA»Ìt@CÉ·×ÄÌÖª\¦³êÜ·B»µÄA» êçªÇÌt@CÉ éÌ©A»Ìt@CàÌÇ±É éÌ©ð³¦Ä êÜ·Btags t@CÌgÍÌæ¤ÈàÌÅ·B ActiveIconManager iconmgr.c /^void ActiveIconManager(active)$/ AddDefaultBindings add_window.c /^AddDefaultBindings ()$/ AddEndResize resize.c /^AddEndResize(tmp_win)$/ AddFuncButton menus.c /^Bool AddFuncButton (num, cont, mods, func, menu, item)$/ AddFuncKey menus.c /^Bool AddFuncKey (name, cont, mods, func, menu, win_name, action)$/ AddIconManager iconmgr.c /^WList *AddIconManager(tmp_win)$/ AddIconRegion icons.c /^AddIconRegion(geom, grav1, grav2, stepx, stepy)$/ AddStartResize resize.c /^AddStartResize(tmp_win, x, y, w, h)$/ AddToClientsList workmgr.c /^void AddToClientsList (workspace, client)$/ AddToList list.c /^AddToList(list_head, name, ptr)$/ vim ÅA½Æ¦Î AddEndResize() ðÒW·éêÍAÌæ¤ÉµÜ·B vim -t AddEndResize ±êÉæÁÄAGfB^ÉKØÈt@CªÇÝÜêAJ[\Êuªwè µ½ÖÌÅÉ«Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.19. Red Hat Å sendmail ªN®É 5 ªÔnO·éR`Paul Anderson <paul@geeky1.ebtech.net> ±êÍAFAQ ÌÎÛÉÈéç¢Lmçê½âèÅ·BRed Hat ÌfBXg r [VűÌoOªC³³ê½Ì©Ç¤©ÍmèܹñªA©ªÅ¼ ·±ÆàÅ«Ü·B/etc/hosts t@Cð`ÆAÌæ¤ÉÈÁÄ¢é̪ ª©éÆv¢Ü·B ¡¢ 127.0.0.1 localhost yourbox ¤£ sendmail ÍN®ÉzXg¼(ãLÌáÅÍA yourbox) ðTµÜ·B»µÄ Ayourbox Ì IP ª 127.0.0.1 Å é±Æðméí¯Å·ªAsendmail ͱ Ì IP ª¢ÈÌÅAà¤êxAT»¤ÆµÜ·B±êð½x©JèÔµÄA ÅãÉúßÄI¹µÄµÜ¢Ü·B±Ìâèðð·éÌÍÆÄàÈPÅA/ etc/hosts t@CðJ¢ÄA½Æ¦ÎÌæ¤ÉÏX·é¾¯Å·B ¡¢ 127.0.0.1 localhost 10.56.142.1 yourbox ¤£ ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.20. Red Hat Å color-ls ðg¤½ßÌÝèû@`Paul Anderson <paul@geeky1.ebtech.net> Red Hat fBXgr [VÉÍ color-ls ª¯«³êĢܷªAǤ µÄúÝèÌFg¢ÌÜÜúu³êÄ¢éÌ©ðÉêµÝÜ·BȺÍA »êðC³·éàÌÅ·B ܸAeval `DIRCOLORS` Æ^CvµÜ·B ÉAalias ls='ls --color=auto' ƵܷB »µÄAãL alias..... ð /etc/bashrc ÉLqµÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.21. ÁèÌÖª /usr/lib ÌÇÌCuÉ é©T·û@`Pawel Veselow <vps@unicorn.niimm.spb.su> RpCÌrÅN·éKvª éCuª©½çÈ¢êAÇ ¤µÜ·H gcc ªñ·éÌÍÖ¼¾¯Å·BȺÌÈPÈR}hÅA» ÌÖð©Â¯é±ÆªÅ«Ü·B for i in *; do echo $i:;nm $i|grep tgetnum 2>/dev/null;done ãLÌ tgetnum Æ¢¤ªÉATµÄ¢éÖ¼ªÍ¢èÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2.22. C ÌÈPÈ test vOðRpCµ½¯êÇAÀsµÄà½à oͳêÈ¢I ¨»çA»ÌvOðRpCµÄAtest Æ¢¤¼OÌoCiðì ¬µ½ÌÅÍȢŵ天H Linux ÉÍ test Æ¢¤vOªàÆàÆ ¶ÝµÄ¢Ü·B±êÍA éðª^©Û©ðeXg·évOÅA^ ÌêÍæÊɽà\¦µÜ¹ñBPÉ test ÆÅÂÌÅÍÈA./test ÆÅ ÁÄÝľ³¢B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3. Úµ¢ Tips 3.1. Linux Æ Windows ÅXbvp[eBVð¤L·éû@`Tony Acero <ace3@midway.uchicago.edu> 1. ܸAÎÛÆÈép[eBVð DOS p[eBVƵÄtH[}b gµÄA»Ìp[eBVãÉ Windows Xbvt@Cð쬵ܷ Bµ©µAܾ Windows ÍN®µÈ¢Å¾³¢( Æųkªæø æ¤ÉA±Ì_ÅÍXbvt@CðóɵĨ¢Ä¾³¢)B 2. Linux ðN®µÄAãLp[eBVðt@CƵÄÛ¶µÜ·B½ ƦÎAp[eBVª /dev/hda8 Å éÆ·éÆAȺÌæ¤ÉµÜ ·B dd if=/dev/hda8 of=/etc/dosswap 3. DOS Xbvt@Cð³kµÜ·BÙÚ·×Ä 0 ªÀñÅ¢éÌÅA³ kÍñíÉæø«Ü·B gzip -9 /etc/dosswap 4. /etc/rc t@CÉÌæ¤ÈsðÁ¦ÄALinux ãÉXbvXy[X ðõµACXg[µÜ·B Ó: XXXXX ̪ÉÍAXbvp[eBVÌubNªü èÜ·B mkswap /dev/hda8 XXXXX swapon -av /etc/fstab t@CɱÌXbvp[eBVÌGgðÁ¦éÌ ðYêȢž³¢B 5. ¨g¢Ì init ¨æÑ reboot pbP[Wª /etc/brc © /sbin/brc ðT |[gµÄ¢éêAÌsð /etc/brc Ét¯Á¦Ä¾³¢BT|[ gµÄ¢È¢ÍADOS àµÍ OS/2 ðu[g·éêÅXbvp[ eBVð DOS/Windows o[WÉßµ½¢êÉAºLðè®Åü ͵ľ³¢B swapoff -av zcat /etc/dosswap.gz | dd of=/dev/hda8 bs=1k count=100 Ó: ãLÍAÅÌ 100 ubNðp[eBVãÉ«ß·¾ ¯Å·Bí½µÍAo±ã±êÅ[ª¾ÆvÁĢܷB >> ±Ìû@Ì·ÆZ ·F©ÈèÌfBXNXy[XðßñÅ«é±ÆB ZFXebv 5 𩮻ūȢêAñè®Åü͵ȯêÎÈçÈ¢ ÌÅAu[gª 1 imbxêĵܤ±ÆB:-) ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3.2. íµÄµÜÁ½t@CðÈñÆ©³¹éû@`Michael Hamilton <michael@actrix.gen.nz> ±±ÅÍAí½µª±êÜŽx©gÁ½gbNðÐîµÜ·B íµÄµÜÁ½eLXgt@CðÈñÆ©µÄ³¹éû@B eLXgt@CA½Æ¦Î[â[éÌvO~OìÆ̬ÊÆ¢Á ½àÌðëÁÄíµÄµÜÁ½ÆµÄàAúßĵܤÌÍvÅ·Bt@ CªêUfBXNÉ«ÜêÄ¢½êA·Èí¿A¾¢½¢ 30 bÈã »±É Á½êÍA»ÌàeÍܾfBXNp[eBVÉcÁÄ¢é© àµêܹñB grep R}hðgÁÄA¶ÌfBXNp[eBV (raw disk partition) ðõµAt@CÌgðT·±ÆªÅ«Ü·B ½Æ¦ÎAÅßí½µÍëÁÄ é[ðíµÄµÜ¢Üµ½B»ÌÛA Ü¸í½µÍ[ª¶ÝµÄ¢½p[eBVÌàeðÏXµÄµÜ¤æ ¤ÈìÆð·×Ä}ç¯æèâßܵ½B±ÌÍAt@CðÛ¶µ½èAv OðRpCµ½èµÈ¢æ¤ÉµÜµ½B»êÈOÉàAÀÛÉV XeðVO[U[hÉƵÄA»Ìt@CVXeð umount µ½±Æà èܵ½B ÉAí½µÍAÎÛÆÈéfBXNp[eBVÉ egrep R}h𩯠ܵ½B»ÌÛAíµÄµÜÁ½[Í /usr/local/home/michael/ Éu ©êÄ¢½ÌÅA df R}hÌoÍ©çA»êª /dev/hdb5 É é±Æªª ©èܵ½B sputnik3:~ % df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 18621 9759 7901 55% / /dev/hdb3 308852 258443 34458 88% /usr /dev/hdb5 466896 407062 35720 92% /usr/local sputnik3:~ % su Password: [michael@sputnik3 michael]# egrep -50 'ftp.+COL' /dev/hdb5 > /tmp/x í½µÍAfBXNp[eBVð¢¶éÛÍÉ[ÉTdÉÈéÌÅA±± Åà^[L[ð·OÉAêUÔð¨¢ÄAR}hÌ\¶ª³m©Ç¤ ©mFµÜµ½B±ÌêA[ÉÍ "ftp" Æ¢¤PêªÜÜêÄ¢ÄA» ÌãÉ "COL" Æ¢¤PêÅnÜé¶Íª±¢Ä¢Üµ½B[ÌbZ[W Í 20 s碾Á½ÌÅA-50 ðgÁÄY·é¶ÍÌOã·×ÄÌeLX gðæ¾·éæ¤ÉµÜµ½BÈOÍA-3000 ðgÁÄA\[XR[hÌ·× ÄÌsðæ¾Å«éæ¤Éµ½±Æà è·BܽA±±ÅÍAegrep ÌoÍ ðÊÌfBXNp[eBVÉ_CNgµÄ¢Ü·B±êÍATµÄ¢ é[ªAegrep ÌoÍÅ㫳êĵܤ±Æðh~·é½ßÅ·B ÂâÄAstrings ðgÁÄAæ¾µ½oÍð¸µÄÝܵ½B strings /tmp/x | less vÁ½ÊèA[Í»ÌÉüÁĢܵ½B ±Ìû@ÍAfBXNXy[XÌSܽÍꪷÅÉ㫳êÄ¢éæ ¤ÈêÉÍA¬÷µÈ¢©àµêܹñB ±ÌgbNªLøÈÌÍA¨»çêlÅVXeðgÁÄ¢é꾯© àµêܹñB¡Ì[Uª¢ÄAfBXNªpÉÉ«·¦çêéê¾ ÆAíµ½t@Cªu©êÄ¢½óÔÍ·ÅÉ㫳êĵÜÁÄ¢é ©àµêܹñB»êÉA½¢ÄÌ[UÍAt@Cð·éKvª é Æ«ÅàA}VðèÉÆèèß·éæ¤È±ÆÍūܹñB í½µÌ©îÌVXeÅÍAßNÅ 3 xÙÇAúªÌ¬ÊðÔáÁÄ ÌÄĵÜÁ½ÛÉA±ÌgbNªð§¿Üµ½B±¤µ½ìÆðʶĩ ªÅརÖñiൽÆvÁÄ¢é_ÍAtbs[ÉìÆÌobNAbv ðæÁĨæ¤ÉÈÁ½±ÆÅ·B¨©°ÅA±ÌgbNðg¤@ïÍ ª¸èܵ½B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3.3. immutable(sÏ)tOÌg¢û`Jim Dennis <jadestar@rahul.net> Immutable tOðg¨¤B VXeÌCXg[ÆÝèªÏñ¾çA·®É /binA /sbinA/usr/binA /usr/sbinA/usr/lib (»Ì¼A¨æ»Kv»¤Èê) É¢ÁÄAÇñÇñ chattr +i R}hðÀsµÜ·B»µÄAroot ÉÈÁÄAJ[lt@C Éà»ÌR}hðÀsµÄ¾³¢BÉAmkdir /etc/.dist/ ðÀsµÄ A/etc 鼃 éSt@Cð»ÌfBNgÉRs[µÜ· (í½µÍA êU /tmp/etcdist.tar ðìé±ÆÅARs[ª[v·éÌðh¢Å¢Ü· B/etc/.dist.tar.gz ðìéÆ¢¤ÌÅࢢŵå¤)B»µÄA»êçÌt @Cà immutable ɵܷB ±Ìæ¤ÉµÄ¨ÆAroot ÅOCµ½ÛÅàN±è¤é_[WðŬ ÀÉH¢~ßçêÜ·B_CNVìðëÁÄt@Cðã«·é ±ÆªÈÈèÜ·µArm -fr R}hÅÔáÁÄXy[XðüêĵܢV XeðsÀèɵĵܤ±ÆàÈÈèÜ·(»ÌêÅàAf[^ÉÍ© ÈèÌ_[WªyÔ©àµêܹñªACuÆoCiÌÀS«Íü ãµÜ·)B ܽA±ÌìÆÉæèZL eBSʪ»³êAT[rXðâ~³¹éæ ¤ÈUªsÂ\àµÍæè¢ïÉÈèÜ·(»¤µ½U̽ÍASUID ³ê½vOÌ®ð«pµÄt@Cðã«·éû@ðÆÁĢܷ ªA»¤µ½ SUID ³ê½vOÍ{èÈVFR}hÌÀsð ·àÌÅÍÈ¢©çÅ·)B ±ÌìÆÉæéBêÌZÍAlXÈVXeR}hðrhµÄA make install ·éÛÉsÖª¶¶éÆ¢¤_Å·BÂÜèAmake install ·éê ÅàAt@Cðã«Å«ÈÈÁĵܢܷB ç©¶ß Makefile ð ÇñÅA㫳êé±ÆÉÈét@C(¨æÑt@CªCXg[³ê éfBNg) É뵀 chattr -i ðÀs·éÌðYêéÆAmake ª¸s µÄµÜ¢Ü·B»¤µ½êÍAchattr ðÀsµAÄx make µÄ¾³¢ BܽA»Ì@ïðpµÄAâoCiâCuÈÇð .old/ fB NgÉÚ®³¹½èAl[µ½èA tar ÅÜÆßĨ¢½è·éÆ¢¢ ©àµêܹñB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3.4. Vµ¢mðüêéêÉ¢ÄÌñ¾`Jim Dennis <jadestr@rahul.net> Vµ¢mÍÝñÈ /usr/local © /usr/local/'hostname' ©çnßæ¤B ¨g¢ÌfBXgr [VÌ /usr/local ȺªóÉÈÁÄ¢éÈçA ©ªÅ /usr/local/src â /usr/local/bin ÈÇð쬵Äg¢Üµå¤B¨ g¢ÌfBXgr [VÌ /usr/local ȺɷÅÉt@Cc[ª éêÍAmkdir /usr/local/'hostname' ðÀsµ½ãÅA'wheel' O[ vÉ«Ý À(+w) ð^¦Üµå¤(í½µÍ³çÉASUID ¨æÑ SGID · é±ÆÅAwheel O[vÌÂXÌo¾¯ª»±Ét@Cðu¯A»ê çÌSt@Cª wheel O[vÉ®·éæ¤ÉµÄ¢Ü·)B ±ê©çÍA¢ÂàI¢ÂàI¢ÂàIVµ¢pbP[Wð /usr/local/src /.from/æ¾ê̼O($WHERE_I_GOT_IT)/ Éu¢ÄA/usr/local/src (àµ Í ... /$HOSTNAME/src) ȺÅRpC·éæ¤ÉµÜµå¤BàµuÇ ¤µÄàv/bin â /usr/bin ÉCXg[µÈ¯êÎÈçÈ¢vO Å éÈçA/usr/local/ ȺÌKw©çKvÈêÉV{bNNð £éæ¤ÉµÜµå¤B ±¤µ½ìÆÍÊ|ÅÍ èÜ·ªA±êÉæÁÄAfBXgr [V ÌfBA(ÅßÍ CD ªêÊIÅ·)©çSÌðÄCXg[·éÛÉAo bNAbvâXgA·×«ªÆAÄCXg[·×«ªðª¯â· ÈèÜ·BܽA/usr/local/.from fBNgðg¤±ÆÅA\[XðDZ ©çæÁÄ«½©ðs®SȪçL^µÄ¨±ÆªÅ«éÌÅApbP[W ðXV·éÆ«ÉÖÅ·µAZL eBÖWÌAiEXðÇ¢©¯éÆ «ÉÍñíÉdvÈîñÉÈèÜ·B ©îÌVXeÌÐÆÂ(¡±êð¢Ä¢é}V)ðg¢nß½Aí½ µÍܾ±¤µ½ûjðÀsµÄ¢Ü¹ñŵ½B»êä¦AuCXg[ µ½ÌvóÔÆ»ÝÌóÔƪÇ꾯ᤩ¢¾É檩ÁĢܹ ñB}VÌVXeÝèÍÙÆñÇ¢¶ÁĨç¸A±êðgÁÄ¢éÌÍ ©ª¾¯Å éÉàÖíç¸A»ñÈóµÈÌÅ·B »êÉЫ©¦Aí½µªEê(VXeÇÒÌððâç³êÄ¢½ Å·) ÅÝuµ½VXeÍA·×ÄãLÌû@ÅÝèµÜµ½B»êçÌ}VÍ A_ñæÌ SE âîñÖWÌlXÈÐÆÑÆÉæÁÄdzêīܵ½ªA ¡Åàí½µÍAÅÉCXg[ÆÝèðµ½ãÉgÝüêçê½pbP [WªÇêÈÌ©ðÂÔ³ÉðµÄ¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3.5. fBNgàÌt@C¼ð¬¶ÉÏ··é`Justin Dossey <dossey@ou.edu> Linux Gazette Ì issue 12 ÉfÚ³êÄ¢é 2c tips (óF´¶ÍA±¿ ç <http://www.linuxgazette.com/issue12/lg_tips12.html#lowerit>Å·BÈ ¨A±Ì Tips ÍALinux Gazette issue 13 <http://www.linuxgazette.com/ issue13/lg_tips13.html#notes> ÉfÚ³êĢܷBRû³ñAîññ èªÆ¤²´¢Üµ½B) ÅA¿åÁÆïµ·¬é©sKvÆvíêéèª Ðî³êÄ¢é±ÆÉCt«Üµ½Bû@Í¢ë¢ë éí¯ÈÌÅAí½µ ©çà»ÌèðÐîµÜ·B #!/bin/sh # lowerit # JgfBNgÌSt@C¼ð¬¶ÉÏ··éXNvg # Êít@C¾¯ðÎÛÆ·é --fBNg¼ÍÏXµÈ¢ # ù¶Ìt@Cðã«·éOÉAmFðßé for x in `ls` do if [ ! -f $x ]; then continue fi lc=`echo $x | tr '[A-Z]' '[a-z]'` if [ $lc != $x ]; then mv -i $x $lc fi done ñ`A··¬Ü·Bí½µÈçA±¤¢¤Ó¤ÉܹͫñBÞµëAÌ R}hðg¢Ü·B for i in * ; do [ -f $i ] && mv -i $i `echo $i | tr '[A-Z]' '[a-z]'`; done; ±êÈçAR}hCÅoÜ·B ±ÌeÒÍAÞªgÁÄ¢éû@ðª©èÕ¢XNvgɵ½Æ¢ÁÄ¢ Ü·ª(ºLQÆ)A¿åÁÆá¤Æv¤B Ì tips ÍA[UÌÇÁÆíÉ¢ÄÅ·BGeoff ÍãèâÁÄ¢Ü ·ªAÅãÌèªæÈ¢Bu[gHÞª[UÌí̽ÑÉu[g µÄ¢È¢±Æð]ÝÜ·BÅÌÓ½ÂÌèÅ[ªÅ·B»Ì[UªÇ ñÈvZXðç¹Ä¢éÌŵ天H IRC {bgŵ天H»¤µ ½vZXÍÌR}hÅÈPÉ kill Å«Ü·B kill -9 `ps -aux |grep ^ |tr -s " " |cut -d " " -f2` ½Æ¦ÎA[U¼ª foo ÈçAȺÌæ¤ÉÈèÜ·B kill -9 `ps -aux |grep ^foo |tr -s " " |cut -d " " -f2` ±êÅ[ªÅ·BYêĽ root pX[hªKvÉÈèÜ·ªB Linux Gazette ÅÐî³êÄéð@ÍÅàÄp«ª èÜ·ªAêÔÈPÈ û@Æ¢¤í¯¶á èܹñBLILO â loadlin ðgÁÄ¢éÈçAu[g p^ÆµÄ "single" ðü͵ÄAOC豫âpX[hȵÅf tHgVFð¼ÚN®Å«Ü·B»ÌóÔÅpX[hðÏX·é©í µ½ãÅA"init" ðü͵A}`[U[hÉÚs·ê΢¢Æv¢Ü· B±ÌêAu[gñÍ 1 ñÅÏÝÜ·B»¤Å颮 2 ñKvÅ·B Justin Dossey ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3.6. Sendmail ðAbvO[h·éû@`Paul Anderson <paul@geeky1.ebtech.net > ±±ÅÍA½àC³³êĢȢIWiÌ\[Xðg¢Ü·BܸA sendmail Ì\[XR[hðüèµÜ·Bí½µÍAversion 8.9.0 ðæÁÄ« ܵ½B±êÍA¨Cë©Æv¢Ü·ªAÀèÅÅÍ èܹñBæ¾æÍ A ftp.sendmail.org:/pub/sendmail/sendmail.8.9.0.tar.gz <ftp:// ftp.sendmail.org:/pub/sendmail/sendmail.8.9.0.tar.gz> ŵ½B ±êÍ 1 KOã èA»Ýí½µÍ 8.7.6 ðgÁÄ¢é±Æðl¶·éÆ A±ÌìÆÍÈ©È©åÏÅ·Bã袯Î[ÌâèÆèªÅ«Ü·ª A»¤ÅÈ¢ÆA[ȵÅÍ HOWTO ÌVÅðo¹ÈÈÁĵܢܷ B:) \[XðƵ½çAðµÜ·Bð·éÆAJgfBNgÉ sendmail-8.9.0 Æ¢¤TufBNgªì¬³êÜ·B»ÌfBNgÉ Ú®µÄAREADME Æ README_NOTES ðÇÝܵå¤(»µÄAJÒ½¿ªB ¬µ½XVÊÉÁ±µÜµå¤)BÉAsrc fBNgÉÚ®µÜ·Bì ÆÌÙÆñÇÍA±±Ås¢Ü·B ÈPÈÓ: sendmail ÍARpNgÅptÈñíÉÇÅ«½v OÅ·B sendmail ÌoCiÍA5x86 133MHx Ì CPU Æ 32M oC g RAM Ìí½µÌ«Åà 5 ªÈºÅRpCūܵ½B(Ýèð ¢½)RpCÆCXg[SÌÅA15 ªÈºÅ·I í½µÍi©ªÌVXeãÅ BIND 𮩵ĢȢÌÅAÌsÍA # ifndef NAMED_BIND # define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ # endif 1 ð 0 ÉÏXµAȺÌæ¤ÉµÜµ½B # ifndef NAMED_BIND # define NAMED_BIND 0 /* use Berkeley Internet Domain Server */ # endif Debian 1.3.1 ÌêAftHgÅ db.h ÍAsendmail ÅKvƳêé /usr /include ÅÍÈA/usr/include/db ÉCXg[³êÜ·B»êä¦A srcAmailstatsA makemapA praliasesA rmailA smrsh Ì»ê¼êÌfB NgÉÚ®µÄAÌR}hðÀsµÄ¾³¢B ./Build -I/usr/include/db ÈãªÏñ¾çAcd .. ðÀsµAmake install ÆÅÁľ³¢B±êÅ sendmail version 8.9.0 ªCXg[³êÜ·Ià¿ëñ±êÍA©ªpÌ Ýèt@CðùÉàÁÄ¢éêÅ·Bí½µÍ majordomo ðgÁ½t[ [OXgðzXgµÄ¢éÌÅA·×ÄðX[XÉÒ³¹é½ß ÉAÌsð /etc/sendmail.cf Ét¯Á¦éKvª èܵ½B O DontBlameSendmail=forwardfileinunsafedirpath, forwardfileinunsafedirpathsafe sendmail 8.9.0 ÍAfBNgzuât@Cp[~bVÌÝèðÅß ×©`FbN·éæ¤ÉÈÁÄ¢éÌÅAGCAXÆÈÁÄ¢éfBN gât@CAàµÍO[vÅÌ«Ý Àâ©RÈ«Ý Àª t¯çê½ .forward t@CÉ墀 sendmail ©ç¶åªoé©àµêÜ ¹ñB±¤µ½×©È`FbN@\ðâ~³¹é±ÆÍæ¢l¦ÅÍ èܹ ñªAí½µÍVO[UÅR\[ðgÁÄìƷ龯ÈÌÅA` FbN@\â~ª¬³ÈZL eBz[ÆÈÁ½ÆµÄàåäv¾ë¤Æ vÁĢܷB»Ì ½èÍA²©ªÌÂ«É í¹Ä»fµÄ¾³¢B YMMV ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3.7. VlVXeÇÒ̽ßÌ tips `Jim Dennis <jadestar@rahul.net> /README.'hostname' © /etc/README.'hostname' ÌÇ¿ç©êûàµÍ¼û ðìÁÄA»êðÇ·é±Æ [ é¢ÍA/usr/local/etc/ README.'hostname' Åࢢŵå¤`Çl] VXeÇðnß½»Ìú©çAK¸ICÌOt@CÉL^ðt ¯éæ¤ÉµÜµå¤Broot Ì /bash_logout É "vi /README.$(hostname)" Æ¢¤êsðüêĨ±ÆàÅ«Ü·B é¢ÍAÌæ¤È su àµÍ sudo XNvgð¢Ä¨¢Äàæ¢Åµå¤B function exit \ { unset exit; exit; \ cat ~/tmp/session.$(date +%y%m%d) \ >> /README.$(hostname) && \ vi /README.$(hostname) } script -a ~/tmp/session.$(date +%y%m%d) /bin/su.org - (üÍððL^·éR}hðgÁÄZbVOðæéÆÆàÉAÖð 쬵ĩ®IÉ»ÌOÉÇÁEXVªÈ³êéæ¤ÉµÄ¢Ü·) í½µ©gÍA±¤µ½©®»ðûjƵÄÌpµÄ¢Ü¹ñB±êÜÅè® ÅL^·éKµðçÁīܵ½B½¾A©®»Æ¢¤ÌàA©ÈÆvÁÄ ¢é¾¯Å·(²Ìæ¤ÉAXNvgâVFÖðìÁÄݽè͵Äé í¯Å·)BãLXNvgÅCÉÈé_ÍAscript R}hªüÁÄ¢éÆ ±ëÅ·B±ÌR}hÌ\[XðæÁÄ«ÄA(R}hðÌL^ðêâ ~µ½è~µ½èoéæ¤È)R}hCp^ðt¯Á¦Ä©çA ±êðg¨¤Æl¦Ä¢Ü·B í½µÌ(¡ñÌ)ÅãÌñÄÍA root [UÌpXÍA'PATH=/bin' Ʒ׫Šé Æ¢¤±ÆÅ·Broot ÌpXÉ»êÈOðt¯Á¦é׫ÅÍ èܹñB [gÌìÆÅg¤R}hÍA/bin ©çÌV{bNN©GCAXA àµÍVFÖÆ¢¤©½¿Åñ·é©A é¢ÍA /bin É éXN vg©oCiÆ·é©AâÎpXðwè·é©Ì¢¸ê©É·×«Å·B ±¤µÄ¨¯ÎAroot ÀÅìÆð·élÍA©ªªÇêÙÇoCiðè ɵĢé©(Æ«ÉÍAÉ¢ÙÇ)ª©é͸ŷB}`[UÌzXgð Ƿ髾ÈVXeÇÒÈçA©ªÌ /bin â /.*history t@Cð èúIɲ×ÄAÈñç©Ìp^[ⲯªÈ¢©Ç¤©T·æ¤ÉÈé ŵå¤B {ÉCÌ éVXeÇÒÈçA©®»Å«éÓðTµÄAVX eÌëð¸·évOðKvÈêÉu±ÆÅAroot ÀªK vÈìÆ𢿢¿µÈ¢ÅÏÞæ¤É·éÅµå¤ (XNvgÉæÁÄ@ \ðש²®Å«éAGfB^â MTA »Ì¼ÌÎbIÈåvOÉ ¢ÄÍA§ßIÈt@Câf[^t@Cªp³êé±ÆÉÈéÅµå¤ B½Æ¦ÎA«¼¢ vi Ì ./.exrc â emacs Ì ./.emacsA³çÉÊ|È $EXINIT ¨æÑgÝÝwb_âtb^}NÆ¢Á½àÌÅ·)BRA»¤ µ½R}hÍAÌæ¤ÉÀs·é±ÆàÅ«Ü·B cp $data $some_users_home/tmp su -c $origcommand $whatever_switches cp $some_users_home/tmp $data (IvVâøÍAR}hÉæÁÄÙÈèÜ·) ©îÅp·éêâ[Uª©ª¾¯Æ¢¤êA㼪ÅÌñÄÍå° ³ÅÍ èÜ·ªA}`[UVXeÌÇÒAÁÉC^[lbgÉí Ú±³êÄ¢é(lbgÖAéÆÈÇÌ)VXeÌÇÒÌêA±êçÍ ñíÉLvÈ|V[Å éÆv¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3.8. xdm Å X T[oÌzXgIðªÅ«éæ¤É·éÝèû@`Arrigo Triulzi <a.triulzi@ic.ac.uk> 1. xdm ðN®·ét@C(½¢Ä¢A/etc/rc/rc.6 © /etc/rc.local É èÜ·)ðJ¢ÄAxdm ÌN®ZNVªÌæ¤ÈàeÉÈéæ¤ÒW µÜ·B /usr/bin/X11/xdm exec /usr/bin/X11/X -indirect hostname 2. /usr/lib/X11/xdm/Xservers ðJ¢ÄA[J}VãÌ X T[oðN ®³¹ésðRgAEgµÜ·(·Èí¿AN®µÈ¢æ¤ÉµÜ·) B 3. }Vðu[g·éÆA[J}VãÌ X T[oàA[g}V Ì X T[oà¼ûg¦éæ¤ÉÈèÜ·B ±êðÐî·éÌÍAí½µªÈñÆ©©ª©gÌTulbgðÝèµÄ»Ý ÌóÔÉàÁÄéÛA·×ÄÌâèÌðÉ 2 TÔ¿©©©Á½©çÅ· B ÓFâ SLS (1.1.1) ðg¤êARÍ檩èܹñªAxdm ÌÝè sÉ -nodaemon Æ¢¤Lqðüê½ÜÜÉ·é±ÆàÅ«Ü·B½¾µA±ê ÍA»êÈ~Ìo[WÉÍÄÍÜèܹñB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 4. ú{êóÉ墀 |óFàVáÁv(1996/10/01) <JCD00743@niftyserve.jp> XVFçUTi(2001/03/20) <ysenda@pop01.odn.ne.jp> Z³FRû³ñ(2001/07/07) <keita@kyomu.net> ëóEëEEª èܵ½çA<JF@linux.or.jp> ÜŲA¾³¢B