《linux入门教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
linux入门教程前言在你使用UNIX之前~你必须在workstation上有account(须号)~才你能须去使用。在login:出须後~打入须名~号称然後须入密须~须在你已须完成login的须作~须入UNIX了。在须入之後~系须须会启"shell"~须个程式接受会你打的指令~去须行它~shell有好须~有几cshtcshshbashksh...~我主要指的是csh。基本上~我须待会的指令都是在须shell下须入的。须当你入set指令~你会看到一些须~看数来几个重要的,home:家。Home是须你有的地方~可以在须你个目须下放置任何须须。一须你入系须~一定是先到须里的。path:路。通径常须行是档放在不同的地方~系须须著会path中的目须一个个去找须行。档term:须端机。表示须在的须端机形须~常用vt100、vt102、ansi。set
1UNIX的档案系须呈须须须~包状构含了目须(Directory)和案档(file)。如果须你以前有接须触DOS~那须须不陌生~如果有~那没你须须仔须瞧瞧。一、目须(Directory)一,安装方式1)图形安装(直接回车)2)字符安装(linxutext)3)检测光盘(skip跳过)4)安装语言(china中文)/dev/sda硬盘/dev/sda1分区/dev/sdb移动/dev/sda1第一个主分区/dev/sda2第二个主分区/dev/sda5第一个逻辑分区命令1)ls-----查看文件夹的内容ls–l查看权限ls–a查看隐藏文件蓝色---文件夹黑色---普通文件绿色---可执行文件现在查看权限和隐藏文件-l是权限drwxr-xr-x这个是权限的设置告诉我什么用户和组可以对这个文件夹进行什么操作。这个后面告诉你,-a是隐藏文件你看是不是比ls不打参数多了两个文件2)mkdir----创建文件夹格式:mkdirfilename3)cd----进入文件夹cdfilenamt.代表当前目录..返回上一级目录
24)rmdir-----删除文件夹5)touch----创建文件格式:touchfielname6)rm---删除文件(夹)格式:rm–rffilename不提示删除直接删除*代表所有,代表单一7)cp----复制cp源文件目的文件8)mv------移动mv文件名../移动到上一级目录mv文件名../../../../移动四级以上目录重命名-----mv原名新名9)vi编辑器Vi文件名-------编辑文件模式:1)命令模式2)输入模式按i键进入输入模式按ESC退出到命令模式命令模式:q—不保存退出wq---保存退出q~----强制不保存退出wq~----强制保存退出setnu------显示行数/-----查找字符n---下一个10)ls|more-----分屏显示more---分屏telnet聊天(闲玩)群聊:wall话私聊:write用户pts16回车在输入要说的话Ctrl+D发送不让别人影响聊天:wall回车在输入话在回车案档(file)案档是须存须料的地方~须须料可能个是一文字份档~也可能是一可须个行的程式~不同功能的案~有著档不同的性属~须在看来看。%ls-l
3total1059drwx------4jong512Sep614:54Maildrwxr-xr-x2jong512Oct2219:02Newslrwxrwxrwx1jong5Oct2916:05bin->gamesdrwxr-xr-x2jong512Oct2916:05games-rw-------1jong9915Sep614:55mboxdrwxr-xr-x2jong512Oct110:06ok-rw-r--r--1jong107171Apr141993soccer.zipdrwxr-xr-x4jong1024Oct2720:54xtype-r-xr-xr-x3jong925696Aug2814:48xv在每个档案前有十个字~第一个档字元是案形式~d指目须~-指案档~l指须须(link)档案。从二到十是属性~三字一须~一共三须。一须三字代表,须、写、须行,~即rwx~-须表无此性。第属一须是owner~第二须是group~第三须是others。
4须出和须入须然是硬须体须~但UNIX却把它须须须案档~然是既档案~就不需要知道到底是什须~可能是keyboard、monitor~也可能是磁上的一碟个档。一般须~须来准须出(standardinput)是monitor~须准须入(standardoutput)是keyboard~但我须能须把须须向它到须的案档~也就是从档案须入须料~或是须出须料到某。个档">"用来须向output~"<"用来须向input~">>"须是须果附加将在案後面档。
5。UNIX是多工的系须(multitasking)~可以同须须行多程式~须个好人同几个须使用系须~须行程式。须行程式可分须须两,前景须行(foreground)和背景须行(background)。一般我须在shell下须行程式~一直要等到程式须束才能须须须入指令~须就是前景须行。如果须我须不想等待程式须束~或是须行须须太须~就可以程式将放到背景去须行~系须自须须行会它你~而就可以去做须的事了。须才能把怎程式放入背景,只要在指令後面加上"&"就可以了。一但在背你景须行程式~系须会须回"[n]xxxx"~n是jobid~xxxx是processid。每一个process都有processid~而且不有重会覆。要想停止前景须行的程式~可以按
6c*代表cat~cp~cal...任意须度且须须须c。ca?代表cat~cal...三个字且前二字须ca。ca[a-z]代表caa~cab~caz...三个字且须二字须ca第三字须a到z。附须,指令介须yppasswdchangeyourpasswordman
7cat
8ggroupoothersaallrreadaccesswwriteaccessxexecuteaccess
93211p00:00-(csh)1570p00:00ps3455p00:01elmusingfloppy:mdirlistmsdosdiskmcopya:dosfileunixfiletransferfilesfrom/tofloppymcopyunixfilea:dosfilemdela:dosfiledeletefloppyfilesejectejectfloppyfilesdisk附须,AverybrieflookatUnixhistoryUnixhistorygoesbackto1969andthefamous"little-usedPDP-7inacorner"onwhichKenThompson,DennisRitchie(theRinK&R)andothersstartedworkonwhatwastobecomeUnix.Thename"Unix"wasintendedasapunonMultics(andwaswritten"Unics"atfirst--UNiplexedInformationandComputingSystem).Forthefirst10years,UnixdevelopmentwasessentiallyconfinedtoBellLabs.Theseinitialversionswerelabeled"Versionn"or"NthEdition"(ofthemanuals),andwereforDEC'sPDP-11(16bits)andlaterVAXen(32bits).Somesignificantversionsinclude:V1(1971):1stUnixversion,inassembleronaPDP-11/20.Includedfilesystem,fork(),roff,ed.Wasusedasatextprocessingtoolforpreparationofpatents.Pipe()appearedfirstinV2!V4(1973):RewritteninC,whichisprobablythemost
10significanteventinthisOS'shistory:itmeansUnixcanbeportedtoanewhardwareinmonths,andchangesareeasy.TheClanguagewasoriginallydesignedfortheUnixoperatingsystem,andhencethereisastrongsynergybetweenCandUnix.V6(1975):FirstversionofUnixwidelyavailableoutsideBellLabs(esp.inuniversities).ThiswasalsothestartofUnixdiversityandpopularity.1.xBSD(PDP-11)wasderivedfromthisversion.J.Lionspublished"AcommentaryontheUnixOperatingSystem"basedonV6.V7(1979):Formany,thisisthe"lasttrueUnix",an"improvementoverallprecedingandfollowingUnices"Bourne.ItincludedfullK&RC,uucp,Bourneshell.V7wasportedtotheVAXas32V.TheV7kernelwasamere40Kbytes!TheseVnversionsweredevelopedbytheComputerResearchGroup(CRG)ofBellLabs.Anothergroup,theUnixSystemGroup(USG),wasresponsibleforsupport.AthirdgroupatBellLabswasalsoinvolvedinUnixdevelopment,theProgrammer'sWorkBench(PWB),towhichweowe,forexample,sccs,namedpipesandotherimportantideas.BothgroupsweremergedintoUnixSystemDevelopmentLabin1983.WorkonUnixcontinuedatBellLabsinthe1980s.TheVserieswasfurtherdevelopedbytheCRG(StroustrupmentionsV10inthe2ndeditionofhisbookonC++),butwedon'tseemtohearmuch
11aboutthisotherwise.ThecompanynowresponsibleforUnix(SystemV)iscalledUnixSystemLaboratories(USL)andismajority-ownedbyAT&T.NovellhasboughtUSL(early93)?!ButmuchhappenedtoUnixoutsideAT&T,especiallyatBerkeley(wheretheothermajorflavorcomesfrom).Vendors(esp.ofworkstations)alsocontributedmuch(e.g.Sun'sNFS).Thebook"LifewithUnix"byDonLibesandSandyResslerisfascinatingreadingforanyoneinterestedinUnix,andcoversalotofthehistory,interactions,etc..Muchinthepresentsectionissummarizedfromthisbook.三.系须须流启程:系须须完启成如下工作:.机器本身所须行的必要的有限的自须.须一可找个引须须须.从引须须须上须取核内.找内到核初始化并外须.启须基本系须任须.运行那些能提供服须的shellscript.其他须用程序须始在系须启须须程中,须大多数启须信息同将须到主控写台须须和系须日志文件,系须日志文件可以考系参须文档syslogd和配置文件/etc/syslog.conf,syslog.conf文件的最后一行须系须日志文件的位置.1.初始化须程
12核内:/vmunix,/unix或/boot/zImage,位于/文件系须,kernel须行后行运init,init将会须建一些正常操作所需要的子须程.须些操作包括须须主机名,须须相须的磁须加须文并件系须,启须系须日志,配置须网接口,启网须须和须件服须,清除须须分区,存须coredump,要理解须些功能是如何须须的,需要更深入的了解父须程是如何操作的,SYSV/BSD须须一父须程之须称init,但其各自的须用方式却差须很大..配置文件linux使用一非常活个灵的init须程,init会直接建立在/etc/inittab中所列出的任须,init通用行运须须如下:0shutdown1系须管理方式,所有的文件可以须须须须,但只有超须用须可以从主控台须须系须2系须须入正常多用须操作方式3多用须操作方式,但同须须启须程文件共享,启须一些须外的须程以允须须程文件共享,加须须程须源,同须向上公布其网须程须源(如nfs)4用须自定须多用须须境5自定须多用须须境,不同unix之须有所差须,如有些unix须须须须机须须并须源6须须机器后重新须启到行须须运2或3,不同unix不完全相同S/s须用须方式,通常在inittab须失或不须须使用此方式Q/q不改须运行须状,重新须须inittab,不重启机器而须始新的改须.示列文件/etc/inittab
13##inittabThisfiledescribeshowtheINITprocessshouldsetup#thesysteminacertainrun-level.##Author:MiquelvanSmoorenburg,
14l6:6:wait:/etc/rc.d/rc6#Thingstorunineveryrunlevel.ud::once:/sbin/update#TrapCTRL-ALT-DELETEca::ctrlaltdel:/sbin/shutdown-t3-rnow#WhenourUPStellsuspowerhasfailed,assumewehaveafewminutes#ofpowerleft.Scheduleashutdownfor2minutesfromnow.#Thisdoes,ofcourse,assumeyouhavepowerdinstalledandyour#UPSconnectedandworkingcorrectly.pf::powerfail:/sbin/shutdown-f-h+2"PowerFailure;SystemShuttingDown"#Ifpowerwasrestoredbeforetheshutdownkickedin,cancelit.pr:12345:powerokwait:/sbin/shutdown-c"PowerRestored;ShutdownCancelled"#Rungettysinstandardrunlevels1:12345:respawn:/sbin/mingettytty12:2345:respawn:/sbin/mingettytty23:2345:respawn:/sbin/mingettytty34:2345:respawn:/sbin/mingettytty45:2345:respawn:/sbin/mingettytty56:2345:respawn:/sbin/mingettytty6#Runxdminrunlevel5#x:5:respawn:/usr/bin/X11/xdm-nodaemonx:3:respawn:/usr/bin/envKDEDIR=/opt/kde/opt/kde/bin/kdm-nodaemon文件每一行格式如下:
15identifier:runlevel:action-keyword:processidentifier:最须4个字符,唯一须须一须run-level:须空表示所有须须,默须行须运须通常须2或3action-keyword:init所采取的须作。具体参数含须如下:KeywordActionWaitRestart-------------------------------------------------------------bootExecutedonlyduringasystemboot.NONOmultiuserafterthesystemisstarted.initdefaultStartwiththisuponboot.TheprocessfieldN/AN/Aisignored.IfleveloffKillprocesseswheninagivenlevel.IgnoreN/AN/Aiftheprocessdoesn'texist.onceRuntheprocessonce.NoNopowerfailRunprocesseswhenapowerdownisrequested.NoNopowerwaitRunprocesseswhenapowerdownisrequested.YesNorespawnIftheprocessdoesn'texist,startit.IfNoYestheprocessdoesexist,donothing.sysinitRunprocessesbeforetheloginpromptissentYesNotothesystemconsole.waitStartprocessesonce.YesNoctrlaltdel(Linuxonly.)ThesequencewaspressedonNoNothekeyboard.Shutdown.kbrequest(Linuxonly.)Keyboardspawnedrequest.Thisisill-defined.
16powerokwait(Linuxonly.)Powerhascomebackon.YesNoprocess:指作一daemon,shellscript或program.须须个程可以须行其他二须制文件或shellscript.在上面的示例中~系须加须后默须的行须须运状3,不同的行须须所运要须行的命令由shellscript/etc/rc.d/rc控制~/etc/rc.d/rc根据参数(运数行须须)的不同决定须行/etc/rc.d/rc$runlevel.d/S*,而行须须运1-6须如果有到主控没台的mingetty须启须mingettytty?,而须于用须的须须须启求须生新会启须机器(ctrlaltdel).BSD须型的系须须使用外一另须活性灵稍差的init须程~init运行一基本的个重启序列~根据所须用的方式不同~启须一多用个须或须用须系须。init通须信号改须须~使状用kill命令须来送相须的信号~比如当从多用须切须到须用须须~超须用须须送一个kill-TERM1.rcscript(系须启须脚本程序).BSD:/etc/rc/etc/rc.conf/etc/rc.conf.local...SYSV:/etc/init.d/*/etc/rc$runlevel.d/S*系须须启rcshellscript,须行须序按文件名
17字数从小到大~如先须行S10*,再须行S12*./etc/rc$runlevel.d/K*系须须机rcshellscript,须行须序与启须文件相反~先须行字数大的。通常情况下/etc/rc$runlevel.d/*是到/etc/init.d/目须下相须文件的须接。可须行ls-aF/etc/rc2.d/或file/etc/rc2.d/S*看一下。多个不同行须运须的目须下的须文件启可能须接会到/etc/init.d/下的同一个文件。LinuxRedhat:/etc/rc.d/init.d/*/etc/rc.d/rc$runlevel.d/S*/etc/rc.d/rc$runlevel.d/K*/etc/rc.d/rc启须控制文件须配置网文件:/etc/sysconfig/network/etc/sysconfig/network-script/*模须配置文件:/etc/conf.modulesLinuxSlackware:/etc/rc.d/*.启须守须须程及程序使用psaux|more须可以看到如下须程,init须程号永须须1~用须任须及大多系须任数须的父须程inetdInternetSuperServer,此须程须听来网自须上的socket须接~须用并相须的服须须理所来收到的信息~须须服须包括ftp,telnet,finger,talk,rsh等。getty须置须端须型、速度、须路及其他方式syslogd须须系须信息的守须须程crond定须守须须程~可在指定须须及日期须行在crontab中所指定的任须。namedDNS服须
18routed路由表须须须程~使用RIP须须~用于须信息网须须gated路由表须须须程~所使用的路由须须比routed更多~功能更强只有在使用须须路由须须的路由器上才有必行运routed或gated,普通主机不用行运须两个守须须程。nfsd/biodNFS相须须程telnetdTELNET守须须程,当有须程telnet须求须由inetd启须telnetdftpdFTP守须须程,当有须程ftp须求须由inetd启须ftpd注,如果有文件/etc/nologin存在~须只有超须用须可以主从控台须入系须~此须如果有其他用须须须须接系须须看会到/etc/nologin的文本内容。2.须机须机会依次须掉所有的须程~同步buffer与disk中的内容~然后umuont所有的文件系须~须机须最好看一下前是当否有用须在使用系须。可以使用shutdown,reboot,init,sync及halt须须须源。最好不要使用halt须机~因须须须有可能须坏文件系须。推荐使用,shutdown[-h|-r][-y][grace]grace用须退出的须须~须位须秒~默须须须60秒。文件/etc/shutdown.allow列出可以须行shutdown的用须名。TIPS,须启、须机须取好看一下主控台信息。Redhat配置文件介须,1./etc/sysconfig/mouse
19MOUSETYPE="ps/2"XMOUSETYPE="PS/2"FULLNAME="Generic3ButtonMouse(PS/2)"XEMU3=no2./etc/sysconfig/network网须配置文件NETWORKING=yes#肯定是YES~不用须有必要网使用LINUX须,FORWARD_IPV4=no#IPV4须须~的当你机器作路由器须此须将须须yesHOSTNAME=helius.dlut.edu.cn#主机名GATEWAY=202.118.66.1#默须须网;路由器,GATEWAYDEV=eth0#与网默须须在同一物理上的网网卡须须须须名#须于大多用须须须数是eth0,除非的你机器作路由或有须以两上网卡3./etc/sysconfig/soundcard#THISFILEISWRITTENBYSNDCONFIG#PLEASEUSESNDCONFIGTOMODIFY#TOCHANGETHISFILE!#Thereshouldbenospacesatthestartofaline#oraroundthe'='signCARDTYPE=SB324./etc/sysconfig/sendmailsendmail启参数须须须~具须体参数参启考系须须文件、sendmail文档及FAQ~示例文件内容如下,DAEMON=yesQUEUE=1h
205./etc/sysconfig/static-routes须路由静表配置文件~可使用linuxconf或control-pannel配置生成此文并件~格式如下,须须须网卡须名须送须route命令的参数(不须add)示例文件格式如下,eth0net202.118.68.0netmask255.255.252.0gw202.118.66.16eth0net202.118.65.0netmask255.255.255.0gw202.118.66.13eth0net202.199.128.0netmask255.255.240.0gw202.118.66.2536./etc/sysconfig/pcmciaPCMCIA卡配置文件~台式机上不用配置此文件~示例文件内容如下,PCMCIA=noPCIC=PCIC_OPTS=CORE_OPTS=6./etc/sysconfig/network-scripts/*网须配置启须文件及参数配置ifcfg-*相须须接网口须配置网~如eth0须须文件ifcfg-eth0,内容如下,#以后须注须~配置文件中不用加文件ifcfg-eth0DEVICE=eth0#此须须名一定要和文件名中的须须名须须~如ifcfg-eth1文件中此#须须名须eth1IPADDR=202.118.66.81#IP地址
21NETMASK=255.255.255.0#网屏须须蔽位~通常须255.255.255.0NETWORK=202.118.66.0#网地须址~在网须屏蔽位是255.255.255.0须将IP地址最后#一位须须0即可BROADCAST=202.118.66.255#广播地址~在须须网屏蔽位是255.255.255.0须将IP地址最后#一位须须255即可ONBOOT=yesBOOTPROTO=none此目须下除ifcfg-*之外~须有ifup-*~ifdown-*等文件~须于大多用须而数言~须些文件不用修改。7./etc/conf.modules此文件须核内模须配置文件~系须在启须须此文从件中须取网卡声卡、等须须的配置~具须体参明须考/usr/doc/HOWTO/下相须的须明文。档示例文件内容如下,aliaseth0tulipaliassoundsboptionsopl3io=0x388aliasmidiawe_wavepost-installawe_wave/usr/bin/sfxload/etc/midi/GU11-ROM.SF2optionssbio=0x220irq=5dma=1dma16=5mpu_io=0x3303.网配置文件须3.1/etc/hosts
22#/etc/hosts#文件格式:IPaddresshostnamealiases#文件功能:提供主机名到IP地址的须须须系~建须自将己须常使用的主机#加入此文件中~也可将没有DNS须须的机器加入到此文件中~#须须方便会网须须用127.0.0.1localhostlocalhost.localdomain202.118.66.81helius.dlut.edu.cnhelius3.2/etc/resolv.conf文件功能,DNS客须机配置文件~须置DNS服须器的IP地址及DNS域名相须文件,/etc/host.conf文件格式,domainname域名search域名nameserverPrimary_DNS_Server_IP_addressnameserverSecond_DNS_Server_IP_address其中domainname和search可同须存在~也可只有一~个nameserver可指定多个示例文件内容,searchdlut.edu.cnnameserver202.118.66.63.3/etc/host.conf功能,指定主机名须方找法~通常指先须找文件/etc/hosts,找不到须再向DNS服须器须求。须于大多用须数不用改须此文件内容。
23Linux:/etc/host.conf文件内容orderhosts,bindmultionSoalris:/etc/nsswitch.conf中的hosts须hostsfiles,dns3.4/etc/HOSTNAME(LinuxRedhat5.xDistribution)功能,须置主机名~不同LINUX之须可能有所差须~须使用egrephostname/etc/rc.d/init.d/*或egrephostname/etc/init.d/*须相须找版本上的主机名须置文件及方法。LinuxRedhat5.x须须文件:/etc/sysconfig/network的HOSTNAME须。3.5/etc/inetd.confInternet超须服须器,相须程序:/usr/sbin/inetd相须服须:telnetftppop3r*rshrcprlogin(建须最好须须r服须)其他服须最好须掉##inetd.confThisfiledescribestheservicesthatwillbeavailable#throughtheINETDTCP/IPsuperserver.Tore-configure#the
24runningINETDprocess,editthisfile,thensendthe#INETDprocessaSIGHUPsignal.##Version:@(#)/etc/inetd.conf3.1005/27/93##Authors:OriginaltakenfromBSDUNIX4.3/TAHOE.#FredN.vanKempen,
25ftpstreamtcpnowaitroot/usr/sbin/tcpdin.ftpd-l-atelnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetdgopherstreamtcpnowaitroot/usr/sbin/tcpdgn#donotuncommentsmtpunlessyou*really*knowwhatyouaredoing.#smtpishandledbythesendmaildaemonnow,notsmtpd.ItdoesNOT#runfromhere,itisstartedatboottimefrom/etc/rc.d/rc#.d.#smtpstreamtcpnowaitroot/usr/bin/smtpdsmtpd#nntpstreamtcpnowaitroot/usr/sbin/tcpdin.nntpd##Shell,login,execandtalkareBSDprotocols.#shellstreamtcpnowaitroot/usr/sbin/tcpdin.rshdloginstreamtcpnowaitroot/usr/sbin/tcpdin.rlogind#execstreamtcpnowaitroot/usr/sbin/tcpdin.rexecdtalkdgramudpwaitroot/usr/sbin/tcpdin.talkdntalkdgramudpwaitroot/usr/sbin/tcpdin.ntalkd#dtalkstreamtcpwautnobody/usr/sbin/tcpdin.dtalkd##Popandimapmailservicesetal#pop-2streamtcpnowaitroot/usr/sbin/tcpdipop2dpop-3streamtcpnowaitroot/usr/sbin/tcpdipop3dimapstreamtcpnowaitroot/usr/sbin/tcpdimapd##TheInternetUUCPservice.##uucpstreamtcpnowaituucp/usr/sbin/tcpd/usr/lib/uucp/uucico-l#
26#Tftpserviceisprovidedprimarilyforbooting.Mostsites#runthisonlyonmachinesactingas"bootservers."Donotuncomment#thisunlessyou*need*it.##tftpdgramudpwaitroot/usr/sbin/tcpdin.tftpd#bootpsdgramudpwaitroot/usr/sbin/tcpdbootpd##Finger,systatandnetstatgiveoutuserinformationwhichmaybe#valuabletopotential"systemcrackers."Manysiteschoosetodisable#someoralloftheseservicestoimprovesecurity.##cfingerisforGNUfinger,whichiscurrentlynotinuseinRHSLinux#fingerstreamtcpnowaitroot/usr/sbin/tcpdin.fingerd#cfingerstreamtcpnowaitroot/usr/sbin/tcpdin.cfingerd#systatstreamtcpnowaitguest/usr/sbin/tcpd/bin/ps-auwwx#netstatstreamtcpnowaitguest/usr/sbin/tcpd/bin/netstat-finet##Timeserviceisusedforclocksyncronization.#timestreamtcpnowaitnobody/usr/sbin/tcpdin.timedtimedgramudpwaitnobody/usr/sbin/tcpdin.timed##Authentication#authstreamtcpnowaitnobody/usr/sbin/in.identdin.identd-l-e-o
27##Endofinetd.conflinuxconfstreamtcpwaitroot/bin/linuxconflinuxconf--http3.6inetd.conf相须文件/etc/services(SYSV/BSD/LINUX相同)基本不用须须,linux自须的已包含大部分服须,Solaris可能需要增加(POP3),考相参须的服须器安装须明~在此文件中列出了所有可用的须网服须。##servicesThisfiledescribesthevariousservicesthatare#availablefromtheTCP/IPsubsystem.Itshouldbe#consultedinsteadofusingthenumbersintheARPA#includefiles,or,worse,justguessingthem.##Version:@(#)/etc/services2.0004/30/93##Author:FredN.vanKempen,
28chargen19/tcpttytstsourcechargen19/udpttytstsourceftp-data20/tcpftp21/tcptelnet23/tcpsmtp25/tcpmailtime37/tcptimservertime37/udptimserverrlp39/udpresource#resourcelocationname42/udpnameserverwhois43/tcpnicname#usuallytosri-nicdomain53/tcpdomain53/udpmtp57/tcp#deprecatedbootps67/udp#bootpserverbootpc68/udp#bootpclienttftp69/udpgopher70/tcp#gopherserverrje77/tcpfinger79/tcphttp80/tcp#wwwisusedbysomebrokenwww80/tcp#progs,httpismorecorrectlink87/tcpttylinkkerberos88/udpkdc#Kerberosauthentication--udpkerberos88/tcpkdc#Kerberosauthentication--tcpsupdup95/tcp#BSDsupdupd(8)hostnames101/tcphostname#usuallytosri-niciso-tsap102/tcpx400103/tcp#ISOMailx400-snd104/tcpcsnet-ns105/tcp
29pop-2109/tcp#PostOfficeV.2pop-3110/tcp#PostOfficeV.3pop110/tcp#PostOfficeV.3sunrpc111/tcpsunrpc111/tcpportmapper#RPC4.0portmapperUDPsunrpc111/udpsunrpc111/udpportmapper#RPC4.0portmapperTCPauth113/tcpident#UserVerificationsftp115/tcpuucp-path117/tcpnntp119/tcpusenet#NetworkNewsTransferntp123/tcp#NetworkTimeProtocolntp123/udp#NetworkTimeProtocolnetbios-ns137/tcpnbnsnetbios-ns137/udpnbnsnetbios-dgm138/tcpnbdgmnetbios-dgm138/udpnbdgmnetbios-ssn139/tcpnbssnimap143/tcp#imapnetworkmailprotocolNeWS144/tcpnews#WindowSystemsnmp161/udpsnmp-trap162/udpexec512/tcp#BSDrexecd(8)biff512/udpcomsatlogin513/tcp#BSDrlogind(8)who513/udpwhod#BSDrwhod(8)shell514/tcpcmd#BSDrshd(8)syslog514/udp#BSDsyslogd(8)printer515/tcpspooler#BSDlpd(8)talk517/udp#BSDtalkd(8)ntalk518/udp#SunOStalkd(8)efs520/tcp#forLucasFilmroute520/udprouterrouted#521/udptootimed525/udptimeservertempo526/tcpnewdatecourier530/tcprpc#experimentalconference531/tcpchatnetnews532/tcpreadnews
30netwall533/udp#-foremergencybroadcastsuucp540/tcpuucpd#BSDuucpd(8)UUCPserviceklogin543/tcp#Kerberosauthenticatedrloginkshell544/tcpcmd#andremoteshellnew-rwho550/udpnew-who#experimentalremotefs556/tcprfs_serverrfs#Brunhoffremotefilesystemrmonitor560/udprmonitord#experimentalmonitor561/udp#experimentalpcserver600/tcp#ECDIntegratedPCboardsrvrmount635/udp#NFSMountServicepcnfs640/udp#PC-NFSDOSAuthenticationbwnfs650/udp#BW-NFSDOSAuthenticationkerberos-adm749/tcp#Kerberos5admin/changepwkerberos-adm749/udp#Kerberos5admin/changepwkerberos-sec750/udp#Kerberosauthentication--udpkerberos-sec750/tcp#Kerberosauthentication--tcpkerberos_master751/udp#Kerberosauthenticationkerberos_master751/tcp#Kerberosauthenticationkrb5_prop754/tcp#Kerberosslavepropagationlisten1025/tcplistenerRFSremote_file_sharingnterm1026/tcpremote_loginnetwork_terminalkpop1109/tcp#PopwithKerberosingreslock1524/tcptnet1600/tcp#transputernetdaemoncfinger2003/tcp#GNUfingernfs2049/udp#NFSFileServiceeklogin2105/tcp#Kerberosencryptedrloginkrb5244444/tcp#Kerberos5to4ticketxlatorirc6667/tcp#InternetRelayChatdos7000/tcpmsdos#Endofservices.linuxconf98/tcp#addedbylinuxconfRPM3.7/etc/hosts.allow/etc/hosts.deny(Linux下,或使用了tcpd,参考inetd.conf)
31/etc/hosts.allow须置允须使用inetd服须的机器~如:All:202.118即允须所有自来202.118.x.x的须求/etc/hosts.deny须置不允须使用inetd的机器须文两个件的须定须序须考在参须文,档mantcpdmanhosts.allowmanhosts.denyInternet网须服须须须控制文件,须于安全性要求须高的服须器建须采用xinetd替代inetd,xinetddebian自须,其他的可以用源代须须行须须安装3.8/etc/networks/etc/netmasks列出路由所需要的须网地址,相须命令/usr/sbin/route~然当也可以不使用须两个文件~在须须路由表须可直接使用IP地址及网屏须须蔽位。Example:/etc/networksdlrin202.199.128.0/etc/netmasks202.199.128.0255.255.240.0加入静须路由表须:+---------------+DDN|Cisco2511+<-------------->DLMU202.118.64.0/255.255.255.0|+<-------------->DLNA210.47.192.0/255.255.240.0
32+-------+-------+|202.118.66.254|202.118.66.16+-------+-------++-------------++-----------+|Switch/HUB+-------+网须中心+-----+LANRouter++-------+-------++-------------++------+----+||||202.118.68.0/255.255.252.0|+--------------++--------------+202.118.66.81+(须须机器)|+--------------+|||202.118.66.1(DefaultRouter)+-------+-------+|路由器++-------+-------+|202.112.30.65/255.255.255.252|DDN|PPP||202.112.30.66/255.255.255.252Cernet/Internet
33(1)202.118.66.81(Helius)<->202.118.66.18(peony)202.118.066.081255.255.255.0And-------------------202.118.066.0网须地址在同一个ip网须段IPAddress<->MAC(MediaAccessAddress)202.118.66.1808:00:20:96:01:6A202.118.66.8100:80:C8:4C:6A:D0202.118.66.100:60:5C:F3:FF:75202.118.66.81->202.118.66.18以太的网数据包:08:00:20:96:01:6A+00:80:C8:4C:6A:D0+ip数据(2)202.118.66.81->202.112.0.36不在同一个ip段,通须须接须送(通须路由器).[hbwork@lindenhbwork]$netstat-rnKernelIProutingtableDestinationGatewayGenmaskFlagsMSSWindowirttIface202.118.66.00.0.0.0255.255.255.0U150000eth0127.0.0.00.0.0.0255.0.0.0U358400lo0.0.0.0202.118.66.10.0.0.0UG150000eth0^^^^^^^DefaultRouter(3)加入须路由静相须命令,/usr/sbin/route或/sbin/route
34linux下需要加入自己网须的路由表须/sbin/routeadd-net202.118.66.0netmask255.255.255.0eth0/sbin/routeadd-net202.199.128.0netmask255.255.240.0gw202.118.66.254Or:/sbin/routeadd-netdlringw202.118.66.254Or:/sbin/routeadd-netdlringwdlrin-gw/sbin/routeadddefaultgw202.118.66.19./etc/passwd用须口令文件10./etc/shadow(如果有此文件,系须支持shadow机制)$ls-l/etc/shadow-rwx------root..../etc/shadow11./etc/fstabFileSystemTable#须须名MountPointFilesystemType加须须须...fsck须志/dev/hda1/ext2defaults11/dev/hda6/homeext2defaults12/dev/hda3/usrext2defaults12/dev/hda5/varext2defaults12/dev/hda2swapswapdefaults00/dev/fd0/mnt/floppyautosync,user,noauto,nosuid,nodev,unhide00/dev/cdrom/mnt/cdromautouser,noauto,nosuid,nodev,ro00none/procprocdefaults00
35Solairs下须须文件:/etc/vfstab12./etc/exportsNFS(NetworkFileSystem)Server须出文件系须表,最好不使用NFS.nfs相须须程:Solaris:mountd,nfsiod/etc/init.d/nfs.serverLinux:内核支持nfs,/proc/filesystem,也可以通须加须modules须须,13./etc/defaultrouter(Solaris2.x)内容须DefaultRouter的ip地址,在linux下:Redhat5.x:/etc/sysconfig/networkGATEWAY=202.118.66.1GATEWAYDEV=eth0Debian:/etc/init.d/network#!/bin/shifconfiglo127.0.0.1routeadd-net127.0.0.0IPADDR=202.118.66.88NETMASK=255.255.255.0NETWORK=202.118.66.0BROADCAST=202.118.66.255GATEWAY=202.118.66.1ifconfigeth0${IPADDR}netmask${NETMASK}broadcast${BROADCAST}
36routeadd-net${NETWORK}["${GATEWAY}"]&&routeadddefaultgw${GATEWAY}metric114./etc/bashrc/etc/csh.cshrc/etc/profile/etc/bashrcBASH(BourneAgainShell)RunTimeCommandShellScript用的最多系须用须默须的须境须置,PATH,umask,TERMType/etc/csh.cshrcCSHRuntimeCOmmand15./etc/ftpaccessFTP须须控制文件,文件位置可须,通须#egrepftp/etc/inetd.confftpstreamtcpnowaitroot/usr/sbin/tcpdin.ftpd-l-a^^^^^^ftp服须器守须须程文件名#whichin.ftpd/usr/sbin/in.ftpd#strings/usr/sbin/in.ftpd|egrepftpaccess/etc/ftpaccess相须配置在ftp服须器配置中须述。16./etc/ftpusers不允须ftp的用须列表,一般包括root,uucp,bin等17./etc/ftpconvions/etc/ftpgroupsFTP服须器配置文件18./etc/group用须须文件19./etc/sendmail.cf(Linux)Sendmail(EMAIL服须器)配置文件
37/etc/sendmail.cw本地主机名主机名:gingko.dlut.edu.cn希望接收:user@gingko.dlut.edu.cnuser@mail.dlut.edu.cnuser@dlut.edu.cn/etdc/aliases须件须名文件/etc/aliases.db须件须名二须制数据文件,用newaliases建立/etc/sendmail.hfsendmail帮助文件,$telnetmailserver25Trying202.118.66.8...Connectedtogingko.Escapecharacteris'^]'.220gingko.dlut.edu.cnESMTPSendmail8.9.1/8.9.1;Tue,2Feb199910:41:20+0800(CST)HELP214-ThisisSendmailversion8.9.1214-Topics:214-HELOEHLOMAILRCPTDATA214-RSETNOOPQUITHELPVRFY214-EXPNVERBETRNDSN214-Formoreinfouse"HELP
38214-ForlocalinformationsendemailtoPostmasteratyoursite.214EndofHELPinfo以上目须须构是Linux的目须须构,Solaris2.x目须须是构:/etc/mail/sendmail.cf/etc/mail/sendmail.cw/etc/mail/sendmail.hf/etc/mail/aliases/etc/mail/aliases.db20./etc/issue系须须站提示信息(主控台用)/etc/issue.nettelnet须须示信息(stringsin.telnetd|egrepissue)/etc/motd用须须入系须后的提示信息21./etc/named.bootDNS(BIND4.9.x)启须文件示例文件:(CachingOnlyServer)directory/etc/namedbprimary0.0.127.in-addr.arpanamed.localcache.root.cache其中root.cache文件可通须dig得到:dig@ns.internic.net.ns>/etc/namedb/root.cachenamed.local文件内容如下:@INSOAlocalhost.root.localhost.(1999020301108003600
398640086400)INNSlocalhost.1INPTRlocalhost./etc/named.confDNS(BIND8.1.x)启须文件(在Redhat5.2下可用/usr/doc/bind-8.1.2/named-bootconf.pl将bind4.9.x的named.boot文件须须须bind8的named.conf文件格式,须行须程如下:/usr/doc/bind-8.1.2/named-bootconf.pl/etc/named.boot>/etc/named.conf)22./etc/host.equiv$HOME/.rhostsR*(rlogin,rsh,rcp,rexec)服须信任主机格式:主机名(FQDN)用须列表23./etc/ld.so.conf(LINUX)须须须接须文件目须列表,相须命令ldconfig$LD_LIBRARY_PATHSolaris下相须的须境须量用ldd列出相须文件所使用的须须须接须/etc/default[119]ldd/usr/ucb/lslibc.so.1=>/usr/lib/libc.so.1libdl.so.1=>/usr/lib/libdl.so.1
40*修改须此文件之后须使用命令ldconfig重新生成目须列表及须接须文件列表。24./etc/pam.d/login(LinuxRedhat)authrequired/lib/security/pam_securetty.so/etc/securetty(LinuxRedhat,Debian)root可登须的须端须须列表,tty[1-8]须主控台上的须须,ttyp*(LINUX)须程登须须端(TELNET)须须/etc/default/login(Solaris)#IfCONSOLEisset,rootcanonlyloginonthatdevice.#Commentthislineouttoallowremoteloginbyroot.#CONSOLE=/dev/console注须掉相须的须须可允须即超须用须root从须程主机telnet登须/etc/login.defsLinuxDebian登须控制文件25.LinuxLoader/etc/lilo.conf多重启须文件,****修改完此文件后一定需要须行lilo,****重新须须安装新的linuxkernel修改此文件并须行lilo26./etc/syslog.confsyslogdconfigurationfile,27./etc/smb.confSAMBA服须器配置文件,将linux的文件系须与Windows9x/NT共享28./etc/nologin
41系须在要须机须不希望用须登须须~就须生来此文件~此文件内容须须示须用须的有须拒须须接的信息~用须此须就不能须入系须。系当须重新须启须如果有此文件~须机器须后任启何用须不能使用系须~此须可考须须须或从光须引须须除此文件~然后再重新启须系须。29./etc/security须定那些须端可以须root登须~一般情况下须定须只有console上的用须可能用root.注,Redhat下使用了PAM机制~相须的文件须/etc/securetty.30./etc/X11/*XFree86配置文件。31./etc/shells用须可以使用的shell列表~如果强行修改/etc/passwd文件~也可以使用不在列表中的shell程序~但须于shell不在此列表中的用须将无法使用FTP须接本系须。32./etc/mtab系须在须须须启建的信息文件~内容须已须mount的文件系须~此文件内容是须须更新的~考参/proc/mounts。四、UNIX系须常用命令UNIX系须常用命令格式,command[flags][argument1][argument2]...
42其中flags以-须始~多个flags可用一个-须起~来如ls-l-a与ls-la相同。根据命令的不同~分参数须可须的或必须的~所有的命令从须准须入接受须入~须出须果须示在须准须出~而须须信息须须示在须准须须须出须须。可使用重定向功能须须些须须须行重定向。命令在正常须行须果后返回一个0须~如果命令出须可未完全完成~须返回一个非零须(在shell中可用须量$?须看).在shellscript中可用此返回须作须控制须须的一部分。注,不同的UNIX版本的flags可能有所不同。1、用须与相须的命令1.1login(在LINUXRedhat下此命令功能与Solaris/BSD不同~须行login会退出当前任须).login:Password:相须文件,在下面的须些文件中须定shell运行须必要的路径,须端须型,其他须量或特殊程序.$HOME/.profile(Bourneshell,sh,bash)$HOME/.cshrc(csh,tcsh)
43$HOME/.tcshrc(tcsh)/etc/passwd文件中列出每用须个的shell/etc/csh.cshrc/etc/csh.login/etc/profile(Bourneshell,bash)/etc/login(Bourneshell,bash)csh:/etc/csh.cshrc和$HOME/.cshrc每次须行都须取~会而/etc/csh.login和$HOME/.login只有注册shell才须行修改相须文件后使用source.cshrc使能相须修改~如果修改了path须须需使用rehash刷新可须行文件hash表。tcsh:$HOME/.tcshrc,没有些文件须取.cshrcsh:/etc/profile和$HOME/.profile注册shellbash:/etc/profile和$HOME/.bash_profile注册shell须取.bashrc交互式非注册shell才须取。在sh/bash下手工须行相须文件:./etc/profile相须文件须行须序sh:/etc/profile->$HOME/.profilecsh/tcsh:/etc/csh.cshrc->/etc/csh.login->$HOME/.cshrc->$HOME/.login须量的须置:sh/bash:TERM=vt100;exportTERMOR:exportTERM=vt100(bash)csh:setenvTERMvt100
44常用须量:(1)Backspace$HOME/.profile$HOME/.cshrcsttyerase^H(2)umask新建文件或目须的保须性属(3)TERM(4)切忌PATH中加入.1.2.rlogin与telnet须似,须接到须程主机.rloginremotehost[-lloginname]Or:rsh[-lloginname]remotehost[command]相须文件:须程主机的/etc/hosts.equiv和$HOME/.rhosts相须须配置网文件:/etc/inetd.conf文件中的r系须服须.Redhat下须shell,login,exec,须须的网须守须须程(daemon)须in.rshd,in.rlogind,in.rexecd.建须:从安全角度出须,须须r系列服须.1.3.telnettelnetremotehost[port]相须文件:/etc/inetd.conf文件中的telnet服须./etc/issue.netTIPS:strings/usr/sbin/in.telnetd|egrepissue
451.4.passwd更改口令1.5exit退出前当shell2.命令或文件的须找相须shell须量:csh/tcsh:$path.cshrcsetpath=(/usr/bin/usr/local/bin$path)sh/bash:$PATH.profile.bash_profilePATH=/usr/local/bin:$PATH;exportPATH2.1whichSyntax:whichcommandwhich须bash/tcsh内须命令[hbwork@toshiba]$whichwhichwhich:shellbuilt-incommand.2.2where(tcsh)Syntax:wherecommand2.3locate(LINUX)Syntax:locatefilename相须命令:updatedb更改locate文件名数据须3.须看命令的用法man相须文件:/etc/man.config4.管理须常用命令
464.1install用于安装个一新的命令或daemon等.一般情况下可以不用,但很多须件在其安装shellscript中使用install将目须文件须制到相须的目须须并置正的确属性等.NAMEinstall-copyfilesandsettheirattributesSYNOPSISinstall[options][-s][--strip]sourcedestinstall[options][-s][--strip]source...directoryinstall[options][-d,--directory]directory...Options:[-c][-ggroup][-mmode][-oowner][--group=group][--mode=mode][--owner=owner][--help][--version]4.2shutdown不同的unix参数尽不相同,在linux下常用如下方式须机:shutdown-hnowshutdown-rnow(等同于reboot)4.3haltpoweroff须机,在多用须方式下(Runlevel3)不建须使用,4.4ulimitkornshell和bourneshell中可用此命令,在csh系列中相须的命令须limit.用于限制每须个程可使用的系须须源,通常分须两限制:.Hardlimits系须所定须的须源,只有root能更改
47.须限制须新建须程所使用的限制,可增加到系须的HardLimit.Flags:-a列出须限制-Ha列出HardLimit-csize须置coredumpsize的须大小-tsizecputime-fsizefilesize4.5umask系须管理须用于须置用须默须的umask须.5.与须程相须的命令须程基本念概:须程与命令的须行相须,但不是一并一须须;一条命令可能须须若干个须程(如shellscript,pipe等).但最须须的命令与umask只有一须程个.须程分须:.交互式须程:可以前台或后台须行,前后台可切须.批须理须程:不通须须端提交,一般须将它放在任须须列中须序须行.如通须at和crontab提交的任须..deamon:永不须止的须程,等待须响来自其他须程的服须须求.如sendmail,named(DNS),POP3及apache等.须程的相须性属:PIDRealUIDEffectiveUID(SUID)RealGIDEffectiveGID(SGID)
48Priority(NiceNumber)须行的须先须5.1psProcessStatus,列出前当运行的须程状,须根据须须不同,可列出所有的或部分须程.无须须须只列出前须端从当上须的须启程(SYSV)或前当用须($USER)的须程(BSD),不同的UNIX版本之须有差须.linux使用BSD版本的ps.BSD版本ps命令使用方法:pspsaux列出系须中所有的须程的须须情况psaux|egrepinetd须出信息内容:PIDTerminal如无相须须端须须-cputimeUserIDorUsername须程须须启须或日期须程须状(Stat:S(leep)R(unnable)D(uninterruptsleep)Z(ombie)W须程有没须留须面,N:须程的nice须须须须5.2killkill[-signal]PIDkill-l列出可用信号量常用信息量:-HUP(1)重须启程
49psax|egrepinetdkill-HUP pid_of_inetd-KILL(9)强制中止PID取须含须:>0指特定须程(须须须程)=0同须用须的所有process(PGID)=-1EffectiveUID=须行命令用须之uid<0&&!=1取须须须之须程5.3nice用于改须一或个多须程的个须先须;但只有root或提高须程的须先须,普通用须只能降低须程的须先须.nice用须表数示提高须先须,而正数表明降低须先须,通常此须范须是-20~20.如未指定提高须先须,nice会降低或不改须须程的须先须.当然如果有须没限的须须程的须先须不有会任何改须.一般情况下我须用nice来降低后台须程的须先须(默须须先须须10).nicefind.-name"*.c"-print&nice16find.-name"*.c"-print&5.4waitwaitPID等待作须须束,参数须pid,在shellscript中有须用到.5.5nohupnohupcommand&5.6sleep
50sleepseconds须程前后台切须:Ctrl-Z,fg,bg6.通须6.1ftp6.2mailx6.3minicom(串口须端,MODEM)7.文件比须cmpcommdiff(用于比须文本文件)diff3(比须3个文件)sdiff8.文件操作touch须建文件,修改文件日期等chmodchwonchgrprm慎用rm-rfmv移须文件或改名cpcp-r须制目须catrcp须程须制ln默须情况下须硬须接,每个文件具有相同的inodeln-ssourcefiletargetfile9.目须操作
51mkdir[-p][-mmode]directoryrmdir[-p]directory10.文件信息命令lsfind最基本的功能是须找一文件名个或目须~常用格式如下,find.-print(须似于ls-lR)find可使用如下性须行须属找,-name须文件名~找含通配符*?的文件名用引括起号来-perm00x000八须制文件性属-atimenn天之前须须须的文件-mtimenn天之须修改须的文件-ctimen文件的须在状n前之须修改须-execcommand如命令的返回代须须零(找到相须的文件)须~真command必须以\;须果~此外在命令的须行中{}须须找到的文件路名径-okcommand与exec相须似~但在须行每个命令之须要求用须须确-print打印当前路名径-newerfilename如文件的最后修改日期须filename新须须真-typecc=[b,c,d,l,p,f]文件须型-userusername如文件的主须属username须须真-nouser文件主在属/etc/passwd文件中不存在-groupgrouname文件须须须运算符,-a-o!示列,
52find$HOME\(-namea.out-o-name"*.o"\)-atime+7-execrm{}\;find.-atime0-printfind/.name.profile-printfind.-perm777-a-mtime7-execchmod755{}\;filemorelesstail(tail-ffilename)headwcread用于shell须程colpg(SYSV)11.须须器viedjoe12.文件内找容须grepegrep正须表式达:.*^$+?[]strings13.任须须度at
53atq列出须列中的任须crontab14.存须,须须及须须compress.Zuncompress.Zcpioddddif=inputfileof=outputfileddif=boot.imgof=/dev/fd0H1440pack.z30%-50%文本文件pcatpactfile.zgzip.gzgunziptartar-[txc]vftargetfile[sourcefile]tar-cvftarget.tarsourcefilelisttar-tvftarget.tar[filename]tar-xvftarget.tar[filename]GNUTAR:tar-zcvftarget.tar.gzsourcefilelisttar-zxvftarget.tar.gz[filelist]tar-ztvftarget.tar.gz[filelist]zcat.Zuuencodeuudecode15.其他命令
54dateenvunix2dos(linux没有)dos2unixunameuptimefreetimetop16.文本须理cutfmt每行格式须化须72列,用于须件格式化fold折行须理,一行到多行,一般须80列joinpastesorttrtr'\"''' 55sed流须须器sed's/96/tt/'student.txtawkawk'{print$1""$2}'sourcefileawk-fclass.awkstudent.txt>linux-student.txt文件class.awk内容如下,##class.awk#BEGIN{printf"%-12s%s 56","班须","学号姓名";printf"------------------------------------------- 57 58"}/[1-9]+\B*$/{class=$0}/^9[5-8]+/{printf"%-12s%s 59",class,$0|"sort"}#Enfofclass.awkawk-ftraffic.awktraffic.txt文件traffic.awk内容如下,##traffic.awk#{if($2<10000)t_0+=$2;if($2>10000&&$2<50000)t_10+=$2;if($2>50000&&$2<100000)t_50+=$2;if($2>100000)t_100+=$2;total+=$2} 60END{printf"t_0=%dKB%5.2f\% 61",t_0,t0*100/total;printf"t_10=%dKB%5.2f\% 62",t_10,t10*100/total;printf"t_50=%dKB%5.2f\% 63",t_50,t_50*100/total;printf"t_100=%dKB%5.2f\% 64",t_100,t_100*100/total;printf"Total=%dKB 65",total}#Endoftraffic.awk17.网须配置命令及故障排除命令17.1ifconfigInterfaceConfig,网卡配置命令,相须文件:/proc/net/dev须须使用须明:manifconfig示例:#ifconfigloLinkencap:LocalLoopback网卡须须封装须型:本地回须inetaddr:127.0.0.1Bcast:127.255.255.255Mask:255.0.0.0IP地址:127.0.0.1广播地址:127.255.255.255子网掩须:255.0.0.0UPBROADCASTLOOPBACKRUNNINGMTU:3584Metric:1已启须接受广播本地回须正在运行最大须须须元:3584路由距离向量:1RXpackets:718errors:0dropped:0overruns:0frame:0已接受数据包:718TXpackets:718errors:0dropped:0overruns:0carrier:0已须送据数包:718collisions:0碰撞:0 66eth0Linkencap:EthernetHWaddr00:80:C8:4C:6A:D0网卡须须封装须型:Ethernet硬件(MAC)地址:00:80:C8:4C:6A:D0inetaddr:202.118.66.81Bcast:202.118.66.255Mask:255.255.255.0IP地址:202.118.66.81广播地址:202.118.66.255子网掩须:255.255.255.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1已须接受启广播正在运行多点广播最大须须须元:1500路由距离向量:1RXpackets:13900errors:0dropped:0overruns:0frame:0已接受数据包:13900TXpackets:5859errors:0dropped:0overruns:0carrier:0已须送据数包:5859collisions:0碰撞:0Interrupt:10Baseaddress:0xe400中断(IRQ):10端口地址:0xe400#ifconfigeth0须示eth0的相须信息#ifconfig-a须示所有须须须网的配置信息#ifconfigeth0downDown掉eth0#ifconfigeth0202.118.66.81broadcast202.118.66.255[up]#ifconfigeth0202.118.66.81broadcast202.118.66.255netmask255.255.255.0#ifconfigeth0up17.2route路由表须须命令,相须文件:/proc/net/route$/sbin/routeKernelIProutingtable 67DestinationGatewayGenmaskFlagsMetricRefUseIfacelocalnet*255.255.255.0U0049eth0192.168.1.0*255.255.255.0U00655eth1192.168.2.0*255.255.255.0U00498eth2192.168.3.0*255.255.255.0U00825eth3127.0.0.0*255.0.0.0U0013lodefaultolive.dlut.edu.0.0.0.0UG104834eth0#routeadddefaultgw202.118.66.1#routeadddefaultgw202.118.66.1eth0#/sbin/routeadd-net202.118.68.0netmask255.255.252.0gw202.118.66.16#/sbin/rouetdeldefault202.118.66.1#/sbin/routedel-net202.118.68.0netmask255.255.252.0gw202.118.66.1617.3netstat须示主机前当路由表,相须文件:/proc/net/routenetstat-rn/home/hbwork[102]netstat-rnRoutingTable:DestinationGatewayFlagsRefUseInterface-----------------------------------------------------------------202.118.70.27202.118.66.16UGHD01202.118.69.254202.118.66.16UGHD01202.118.68.243202.118.66.16UGHD01202.118.70.21202.118.66.16UGHD00202.118.71.10202.118.66.16UGHD01202.118.71.204202.118.66.16UGHD01 68202.118.68.160202.118.66.16UGHD01202.199.128.52202.118.66.254UGHD02202.118.68.66202.118.66.16UGHD01202.118.69.69202.118.66.16UGHD01202.118.69.228202.118.66.16UGHD01202.118.71.68202.118.66.16UGHD01202.118.70.37202.118.66.16UGHD01202.118.66.0202.118.66.18U312259hme0224.0.0.0202.118.66.18U30hme0default202.118.66.1UG070354127.0.0.1127.0.0.1UH041316lo0Destionation:目须须或主机网Gateway:下一个路由,须须距离目须须近的路由的IP地址,在数据须送须须将往须一IP地址.Flags:URouterisup,目须可达HSpecificrouter,到特定主机的路由G此路由须其他路由须行须接须须到的,如果有没G须志须表明相须的路由器或主机是直接须接在相须的路由器上的.D此路由是ICMP须须的路径重定向信息所建立的.M由ICMP之重定向信息所修改REFS:在此路由上须在正在使用的须接数,须些须接可能是由须须须须须须的ftp或 69telnet任须,每使个用tcp的服须或须用在须行须此列须均加1.Use:自TCP/IP启须以通须来此路由器的数据包量.Interface:网卡名须须,UNIX不同取名不同.17.4nslookupNameServerLookup,DNS服须器须断工具使用示列:[hbwork@heliushbwork]$nslookupwww.dlut.edu.cnServer:cedrus.dlut.edu.cnAddress:202.118.66.6Name:peony.dlut.edu.cnAddress:202.118.66.18Aliases:www.dlut.edu.cn[hbwork@heliushbwork]$nslookupDefaultServer:cedrus.dlut.edu.cnAddress:202.118.66.6>www.dlut.edu.cnServer:cedrus.dlut.edu.cnAddress:202.118.66.6Name:peony.dlut.edu.cnAddress:202.118.66.18Aliases:www.dlut.edu.cn>setq=ns#须须相须域的DNS服须器>dlut.edu.cn#须入要须须的域名Server:cedrus.dlut.edu.cn#默须域名服须器须cedrus.dlut.edu.cn 70Address:202.118.66.6#参考/etc/resolv.conf文件dlut.edu.cnnameserver=gingko.dlut.edu.cndlut.edu.cnnameserver=olive.dlut.edu.cndlut.edu.cnnameserver=cedrus.dlut.edu.cngingko.dlut.edu.cninternetaddress=202.118.66.8olive.dlut.edu.cninternetaddress=202.118.68.1olive.dlut.edu.cninternetaddress=202.118.69.1olive.dlut.edu.cninternetaddress=202.118.70.1olive.dlut.edu.cninternetaddress=202.118.71.1olive.dlut.edu.cninternetaddress=202.118.66.16cedrus.dlut.edu.cninternetaddress=202.118.66.6>dl.lnpta.net.cn#须须dl.lnpta.net.cn的域名服须器Server:cedrus.dlut.edu.cnAddress:202.118.66.6Non-authoritativeanswer:dl.lnpta.net.cnnameserver=ns.lnpta.net.cnAuthoritativeanswerscanbefoundfrom:ns.lnpta.net.cninternetaddress=202.96.64.68>serverns.lnpta.net.cnDefaultServer:ns.lnpta.net.cnAddress:202.96.64.68server:ns.lnpta.net.cnAddress:202.96.64.68Non-authoritativeanswer:www.dlut.edu.cncanonicalname=peony.dlut.edu.cn>dlut.edu.cn#须须域dlut.edu.cn的MX须须 71Server:ns.lnpta.net.cnAddress:202.96.64.68Non-authoritativeanswer:dlut.edu.cnpreference=1,mailexchanger=gingko.dlut.edu.cnAuthoritativeanswerscanbefoundfrom:dlut.edu.cnnameserver=gingko.dlut.edu.cndlut.edu.cnnameserver=CEDRUS.dlut.edu.cndlut.edu.cnnameserver=olive.dlut.edu.cngingko.dlut.edu.cninternetaddress=202.118.66.8CEDRUS.dlut.edu.cninternetaddress=202.118.66.6olive.dlut.edu.cninternetaddress=202.118.71.1olive.dlut.edu.cninternetaddress=202.118.66.16olive.dlut.edu.cninternetaddress=202.118.68.1olive.dlut.edu.cninternetaddress=202.118.69.1olive.dlut.edu.cninternetaddress=202.118.70.1>exit17.5pingTCP/IPICMP(InternetControlMessageProtocol)须断工具ping[hostname|IpAddress]ErrorMessage:hostunreachablenetworkunreachable[hbwork@heliushbwork]$ping202.118.66.1PING202.118.66.1(202.118.66.1):56databytes64bytesfrom202.118.66.1:icmp_seq=0ttl=255time=23.1ms64bytesfrom202.118.66.1:icmp_seq=1ttl=255time=2.1ms64bytesfrom202.118.66.1:icmp_seq=2ttl=255time=1.9ms 72---202.118.66.1pingstatistics---3packetstransmitted,3packetsreceived,0%packetlossround-tripmin/avg/max=1.9/9.0/23.1ms17.6hostname须示或须置主机名17.7domainname须示或须置主机域名17.8tracerouteWindows95:tracerttraceroutehostnametraceroutedestionation_ip_address17.9arp须示或须置相须主机/ip地址的mac地址相须文件:/proc/net/arpcat/proc/net/arp$arphostname$arp-a$arpip_address须示或须置主机名需要root须限#arp-shostnameeth_address[temp][pub]#arp-dhostname#arp-dip_address#arp-fmac_ip_map_file常用文件名须/etc/ether用须和口令 73好的口令安全性是防止系须被须用的第一道防须的一部分。有须好的口令也不充分安全~特须是口令当需要在不受保须的须网上须须的须候--根据通常的须网须须~须些口令可能被须看到会。用须名,用须名是须须~而口令须是须须确据。须准的UNIX上用须名可以具有一字符从个到8个字符的须度。在一个UNIX须算机上~用须名必须是唯一的。UNIX的口令通常也是在1到8个字符之须~更须的口令通常是更安全。理须上从~多用须个可以共享一口令~然个而须却意味着不安全~用须须须须了一少个于三字符个的用须名也是有效的~但我须不提倡须须作。UNIX系须也有一些用于系须管理以及一些特殊的系须功能的须须的须~号须些须号通常不允须人用须使个用。口令,口令的存须,须须UNIX在文件/etc/passwd~此文件包含每一用个须的用须名~须真姓名~须须信息~以及用须的基本须信息。文号件中的每一行包含一个数据须须须~须须中的每一个数据域用冒号(:)分须。典型须须域,hbwork:fi2sED95ibqR6:101:14:HeBinwu:/home/hbwork:/bin/bash数据域须明------------------------------------------------------域须明------------------------------------------------------ 74root用须名fi2sED95ibqR6加密后的用须口令101用须的“用须须须须(UID)”14用须的“用须须须须须(GID)”HeBinwu用须的全名称(也被须称GECOS或CGOS域)/home/hbwork用须的主文件目须(HomeDirectory,$HOME)/bin/bash用须所使用的shell*真正的用须口令可能存在其他文件中~如/etc/shadow(LINUX,Solaris,*须指示符),/etc/security/passwd(AIX,!),/etc/master.passwd(BSD,*)*网须数据须,SUN公司的须信息系网须(NIS)SUN公司的NIS+须放须件基金会的分布式须算须境(DCE)NexT须算机上的NetInfo口令是一共享的个秘密用须须与算机共享~须入口令不回须~多很的侵入是由于口令须置不或当保须不而当须致的。在一些UNIX中~如果有人须须登须一须须须个号并且须须送入几次无效的口令~须个须号将被须信~只有系须管理须可以解须被须住的须号。加须有两个功能,1.防止一些人须须猜须口令~在他须猜出正的口信之确须须须须须。号2.告须系须管理须一些人正须须非法须入的系你须或须须。 75LINUX操作系须须用须10次登须机会~同须在每次登须须须后也增加延须须须~须须即具有自须加须的功能;防止有人在短须须须须多内次口令,~也限制了DOS(DenyofService)攻须。强迫改须口令,SVR4:passwd-fusernameWarning:不要理自会来系须管理须的信件~告须你因系须故障而要求你将口令改须某一字串~须须最好系须管与理须须系。更改口令,%passwd核须口令,在改须口令后须须须用新口令登须的须以你号便须须新口令是否被正须入~如确果须须须须尽与快系须管理须须系。telnetlocalhost(Orrloginlocalhost)好的口令,那些须于被猜出的口令是好的口令。它须须于被猜出的原因是,.同须具有大和写小写字母.也具有字和数/或须点符以号及字母.也可能包括一些控制字符以及;或者,空格.容易须须~因此不须要须须下来。.具有七个个或八字符须度。建须,口令须取取两个短字然后用须须的字符或字须数将它须合。糟糕的口令,.你的姓名、同伴的姓名或配偶的姓名。.须系密切的朋友或合作者的名字 76.老板的名字.任何人的姓名.你正使用的OS的名字.passwd文件中的GECOS域中的信息.你的须算机的主机名.你的须须须号或或其他须件须号.任何人的生日.其他的容易被得到的有须的信你息(如地址~母校等)..须须.任何在须算机的用须内名~无须它以何须形式出须(如大字写母形式、形式双写等等).全部是同一字母的口令.须须上的须须的字母须合~如qwerty.上述口令外加一字个数字符在多须个算机上的口令****不要使用同一口令,可以定如下方确法,建立一基准口令个~然后加上主机名或机器都有的须须成每个主机的口令。****不要写下的口令你****;须子须件,****告须用须不要使用他须的口令到其他的须用程序或外部系须。否须须些口令或能会****返回须来害他须(Crack) 77=========================小须===========================如果可能~使用一次性口令~如果不能须保须每一须个号个有一口令保须每一个用须须须一须个固的口令不要的将你口令告须其他的用须--------------------------------------------------------------------------------2.用须、用须须及超须用须操作系须如何看待用须~须和用号须须如何被用于限定用须的须须须限。用须和用须须在UNIX内部只用一字须个数示每一用个须,用须的须须符(UID),通常系须管理须须须算机上的每个一用须分配一不同的个UID。UNIX上也使用须须的用须名定须各须系须功能~须些系须用须名通常也有须自它己的UID。以下是一些在各须UNIX系须中都通用的“系须用须”,.root超须用须~具有须系须的完全控制须.daemon或sys通常须理一些须方网面的事情~如printspooler等.guest被用于须网须须者须系须的须须.ftp被用于管理匿名FTP存取.uucp管理UUCP系须.news用于管理用须须新须网(Usenetnews).lp用于管理打印机系须.nobody一不须个有任何文件的用须~有须被用作无特须操作的默须用须 78通常须些用须(除root外)不具有用须姓名及口令~其口令域通常以*或NP等表示~须须可以防止在login提示符下登须须些须。号Note:系须只根据UID确定其操作须限。用须须须(UID)取须0~65535,其中须须于将0~99分配须系须管理须。号UNIX系须凭借文件/etc/passwd须须用须名与UID之须的映射须系。UID是操作系须用于须须用须的须须信息~用须名被提供须须是方便用须的考须。两个具有相同UID的用须被将须须同一个用须~使即用他须具有不同的用须名和口令~须可它以自由地须取和须除须方的文件~以及取消须方的须程。用须须及用须须须须(GIDS),每一个UNIX用须都于一属个个或多用须须。同用须须一须号~每一用个须须也有须名和须须须符(GID).GID也是一个16位整数。/etc/group文件wheel:*:0:root,hbwork#有些系须中只有须须中的须个号才能su须rootuucp:*:10:uucpusers:*:100:#每一个在须系须个上的用须都是其须成须vison:*:albin,saka,pingping#出须的须序没有意须格式,须名:用须须“口令”:用须须的GID:在须用须个须的用须Note:用须须不一定要在/etc/group文件中存在一须须~个GID只是须了方便用须。特殊的用须名rootUID须0的用须~root须是被号操作系须使用的须须~被用于完它成一些基本的系 79须功能如用须管理~须须系须信息~管理I/O须须等~通常root被须称超须用须~它能控制整个操作系须~几乎所有的限制都可以被root用须所行运的任何程序忽略。***任何用须名都可以是超须用须,只有UID是0即可***超须用须不可意使用随,管理须须先使用自己的须须入号系须~需要须行管理任须须再su须超须用须~任须完成后再从特须shell中退出。多系须很控制了root只能在主控台上登须~须须可以通须根据su的须须跟踪使用root的须号;可以配置syslog以使用log文件被保存在一须程的个主机上~否须攻须者会须除log文件)~同须需要两个口令才能成须超须用须~也增加了系须的安全度。***超须用须能做什须,.须程控制nice须须信须须程号修改系须的各须硬限制自将己须程的UID改须系须上任何其他用须的使所有用须logout并且须机或重系须启.须须控制须须任何正在工作的须须须须须算机须置须须和日期用mknod建立新的须须文件.网须控制在“可信任的”端口上行运网须服须重新配置须网使工作网卡在混须模式~须须所并有在须上网的数据包(共享介须) 80.文件系须控制须、修改或须除系须中的任何文件运行任何程序mount/umount文件系须增加、须除或改须用须的须号须或须止磁启须限须(quotas)及须须(accounting)须用chroot()系须须用~它改须文件系须root目须的须程形式在文件系须"100%"利用须仍可入此文件写系须(ext2文件系须保留10%的最小空须~须个空须可以被root利用~但最好要须须作~因须磁须未完全写须须文件系须行要运快些。)超须用须不能作的事.改须一以只须方个式被入的装文件系须.umount一包含有个已打须的文件或正被使用的文件目须的文件系须.直接到写一文件目个须或建立与一文件目个须的硬须接(有些UNIX须允须,.解密一个存须在/etc/passwd文件中的用须口令(可以用crack或修改login/su须须用须须入).须止一已须须个入核的等内待须的须状程;当然须机可以须须须须所有须程)超须用须引起的须须root是UNIX系须安全方面的主要弱点~取得root之后可以须系须作任何想作的事情。/etc/passwd文件和/etc/group文件须系须安全方面的影响系须从安全的角度看~来/etc/passwd文件是UNIX操作系须最重要的文件之一(须有 81/dev/kmem~/proc/kmem),因此须其要加以保须。然当group文件也非常重要。su,更改你的身份susu-suusernamesu-usernameNote:使用su命令必须小心~注意前当目须及小心使用rm等~BSD等控制su的使用。须须失须的su须须syslogd->可修改/etc/syslog.conf将syslog须须到另外一台主机/dev/console/var/adm/messages/var/adm/sulog真须UID和有效UID/真须GUI和有效GIDSUIDpasswd更改用须口令示例,用须PATH以.须始先建立如下名须ls的可须行shell文件#!/bin/shcp/bin/sh.Desktop/junk/.superdudechmod4555.Desktop/junk/.superduderm-f$0exec/bin/ls${1+"$@"} 82#End再须行如下,$cd$chmod700.$touch./-f系须管理须需要su才能须除./-f文件~而su后须行ls会个须制一SUID的shell。================================小须===================================*UNIX系须上的每一个须都须须号有一个唯一的UID~UID被系须用须定确用须须各须不同的文件和服须的须须须限。用须须须有一个唯一的UID以便他须的行须可以被须须和被控制。每须个号属都于一个个或多用须须~用须须由GID表示。可以通须用须须成须须格的须置须须由来多用须共个同分享的文件的存取须格*每个须算机都有一须须的个被之须称root的须~须系号它须有完全的控制须。须确须限制须root须号的须须~并须常须须那些失须的su须须。如果可以使你的网须上的全部须算机都那些不成将功的su须须须须到网须上的一台须须的安全的须算机上。在须上的网每一台须算机都须须有一不同的个超须用须的口令。常用TCP/IP守须须程UNIX的守须须程(服须器)基本上有须,两 83.须在行的运服须器操作当系须须的启须候~须些服须器从/etc/rc等须文启件自须须启。在引须须须须的服须启器通常须当须用须的须求提供快速的服须~必须须须服从个须器须程中须理多须很网须求或者两者都需要。须须服须器通常有sendmail,httpd等。.只需要须当才行的服运须器须些服须器须是从inetd(xinetd)UNIXInternetDaemon中启须。inetd超须服须器须多听个TCP/IP端口等待入境的须求~且能并按需要自须须启守须须程的活程序灵。。当收到须求须~它就会派生一个相须的服须器。通须使用超须服须器~其他服须就可以只在需要须才派生~而从须省了系须须源。须当接须止须~派生的服须器也就停止运行。须多TCP/IP守须须程程序的名字是采用所提它供的服须的名后接一称个字母"d"须成~如wu-ftpd,须须命令方式是须了表示须条命令是一个守须须程。lpd行式打印机守须须程也之须打称印须须理冲程序~在系须引须须须行。在一个特定的TCP/IP端口接受打印任须~须并将些打印任须在本地或者须程系须中排须。rarpdRARP守须须程此守须须程能须须响反向地址解析须须(RARP)须求~其他客须机一般在引须须 84使用RARP根据须定的48位以太地网找址出32位的IP地址。引须机器用RARP须求须文须送它的以太信息网。须于此须求~行运rarpd的服须器必须须其须。响bootpdBOOTP须程须启守须须程须须InternetBootProtocol服须器~引当须须求须达须~由inetd超须服须器自须启须须个守须须程。如果bootpd在收到最后一须个求15分须后有没收到其他引须须求~自须会退出以须省系须须源。InternetBootProtocol服须器的目须是须客须机提供须信网息~须些信息包括客须机的IP地址、须须网屏蔽、广播地址、DNS服须器及路由器地址等。routed路由信息守须须程其目的主要是须了管理Internet路由须须表。在使用当静须路由须不用须启routed.Note:作路由器不一定要须启routed,启须了routed并不一定就是路由器~路由必须在核内中有IPForwading支持~如核内有IPForwarding支持即使不启routed也可以作路由器~但不能须须路由表的须须更新。***gated是功能比routed更强的路由信息管理须程。namedDNS守须须程提供DNS服须。syslogd系须须须守须须程 85此须程须须配置文件将/etc/syslog.conf描述的一系列文件中须须各须系须信息。每个消息在文件中保存须一行~能须含有各须信息。syslogd接收须送须自己的信息所并消息存放到它的日志文件中。信息包括通知性、须须性、状须性和须须性消息。每一个与消息都其相须的重要性须须。inetd超须服须器inetd超须服须器须多听个TCP/IP端口等待入境的须求。当收到须求须~就它会派生一相个须的服须器。通须使用超须服须器~其他服须就可以只在需要须才派生~而须从省了系须须源。须接须当止须~派生的服须器也就停止行运。通常inetd启须的服须器由fingerd,ftpd,rexecd,rlogind,telnetd等。BourneShell介须,BourneShell基须及其他多有用的很特性~shell须程及须须。主要内容,.shell基须基本介须~须境~须须~特殊字符.shell须量用须定须须量~须境须量~位置须量(shell参数).shellscript须程件须条须~循须及重须控制.shell定制1.shell基须知须作者,StephenBourne在Bell须须室须须建须,mansh须看相须UNIX上的改须或特性 86(1)shell提示符及其须境/etc/passwd文件提示符,$/etc/profile$HOME/.profile(2)shell须行须须-n须须shellscript须法须构~只须取shellscript但不须行-x须入跟踪方式~须示所须行的每一条命令~用于须度-aTagallvariablesforexport-c"string"从strings中须取命令-e非交互方式-f须须shell文件名须生功能-hlocateandrememberfunctionsasdefind-i交互方式-k从须境须量中须取命令的参数-r限制方式-s从须准须入须取命令-t须行命令后退出(shellexits)-u在替须中如使用未定须须量须须须-vverbose,须示shell须入行须些须须可以须合使用~但有些须然相互突冲~如-e和-i.(3)受限制shell(RestirctedShell)sh-r或/bin/rsh不能须行如下操作,cd,更改PATH,指定全路名~径须出重定向~因此可以提供一须个 87好的控制和安全机制。通常rsh用于须用型用须及须号用须~须些用须通常是看不到提示符的。通常受限制用须的主目须是不可的。写不足,如果用须可以须用sh,须rsh的限制将不在起作用~事须上如果用须在vi及more程序中须用shell,而须须rsh的限制将不再起作用。(4)用set改须shell须须用须可以在$提示符下用set命令须置或来取消shell的须须。使用-须置须须~+取消相须须须~大多数UNIX系须允须a,e,f,h,k,n,u,v和x的须须须置/取消。set-xv须须启跟踪方式;须示所有的命令及替须~同须须示须入。set-tu须须在替须须须未定须须量的须须。使用echo$-须示所有已须置的shell须须。(5)用须启须文件.profilePATH=$PATH:/usr/loacl/bin;exportPATH(6)shell须境须量CDPATH用于cd命令的须路找径HOME/etc/passwd文件中列出的用须主目须IFSInternalFieldSeparator,默须须空格~tab及须行符MAIL/var/mail/$USERNAMEmail等程序使用PATHPS1~PS2默须提示符($)及须行提示符(>) 88TERM须端须型~常用的有vt100,ansi,vt200,xterm等示例,$PS1="test:";exportPS1test:PS1="\$";exportPS1$echo$MAIL/var/mail/username(7)保留字符及其含须$shell须量名的须始~如$var|管道~须准须出将须到下一个命令的须准须入#注须须始&在后台须行一须程个,匹配一个字符*匹配0到多字符个(与DOS不同~可在文件名中须使用~且含并.)$-使用set及须行须须须须shell的须志位$!最后一个子须程的须程号$#须须须shellscript的参数个数$*须须须shellscript的参数$@所有~参数个须的用引双号来括起$?上一个命令的返回代须$0当前shell的名字$n(n:1-)位置参数$$须程须须号(ProcessIdentifierNumber,PID)>file须出重定向 89须须符及须引,号$echo"$HOME$PATH"/home/hbwork/opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:$echo'$HOME$PATH'$HOME$PATH$echo\$HOME$PATH$HOME/opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/hbwork/bin其他,$dir=ls$$dir$aliasdirls$dirls>filelistls>>filelistwc-l 90须量,代表某些须的符号~如$HOME,cd命令须找$HOME,在须算机须言中可以使用须量可以须行多须运算和控制。BourneShell有如下四须须量,.用须自定须须量.位置须量即shellscript之参数.须定须须量;特殊须量,.须境须量(参考shell定制部分)(1)用须自定须须量;数据的存须,$COUNT=1$NAME="HeBinwu"技巧,因须大部分UNIX命令使用小写字符~因此在shell须程中通常使用全大写须量~然须不当并是强制性的~但使用大字符可以写在须程中方便地须须须量。须量的须用,在须量前加$$echo$HOME/home/hbwork$WEEK=Satur$echoTodayis$WEEKdayTodayis$echoTodayis${WEEK}dayTodayisSaturdayShell须量须须右从从左须行(LinuxShell/bash从左向右须须!)$X=$YY=y 91$echo$Xy$Z=zY=$Z$echo$Y$使用unset命令须除须量的须须$Z=hello$echo$Zhello$unsetZ$echo$Z$有件的条命令替须在BourneShell中可以使须量替须在特定件下须条行~有即条件的须境须量替须。须须须量替须须是用大括号括起的。来.须置须量的默须须在须量未须须之前其须须空。BourneShell允须须须量须置默须须~其格式如下,${variable:-defaultvalue}例,$echoHello$UNAMEHello$echoHello${UNAME:-there} 92Hellothere$echo$UNAME#须量须并未须生须化$UNAME=hbwork$echoHello${UNAME:-there}Hellohbwork$.另一须情况,改须须量的须~格式如下,${variable:=value}例,$echoHello$UNAMEHello$echoHello${UNAME:=there}Hellothere$echo$UNAME#须量须并未须生须化there$.须量替须中使用命令替须$USERDIR=${$MYDIR:-`pwd`}.在须量已须须须须行替须${variable:+value}.须有须须须须的有件须条量替须${variable:?value}例,$UNAME=$echo${UNAME:?"UNAMEhasnotbeenset"} 93UNAME:UNAMEhasnotbeenset$echo${UNAME:?}UNAME:parameternullornotset(2)位置须量(Shell参数)在shellscript中位置可用参数$1..$9表示~$0表示内容通常须前须当行程序的文件名。.防止须量须被替须readonlyvariable.使用export命令须出须量~使得须量须子shell可用~当shell须行一下程序须~shell将须其须置一新的须境个须其须行~须之了称subshell.在BourneShell中须量通常被须须是本地须量~也就是须在须其须须之外的shell须境之外是不须须此须量的。使用export须subshell可用。例,须须量PS1的export操作~shell的提示符须生须化将。$PS1=`hostname`$peony$sh$echo$PS1$<-须出须果$exitpeony$exportPS1peony$shpeony$echo$PS1peony$<-须出须果 94peony$3.ShellScript须程目的,使用UNIX所提供的最常用工具完成所需来须须任须的强大功能。(1)最须须的Shell须程$ls-R/|grepmyname|more每天据数的须,份$cd/usr/yourname;ls*|cpio-o>/dev/rmt/0h须写程序的目的是一次须程~多次使用;须行,,$cat>backup.shcd/home/hbworkls*|cpio-o>/dev/rmt/0h^D须行,$shbackup.sh或,$chmod+xbackup.sh$./backup.sh技巧,在shellscript中加入必要的注须~以便以后须须及须须。(2)shell是一个;须程,须言同须须的须程须言一须~shell提供了多很特性~须些特性可以使的你shellscript须程更须有用~如,数据须量、参数须须、判断、流程控制、数据须入和须出~子程序及以中断须理等。 95.在shell须程中使用数据须量可以将程序须量更须通用~如在上面backup.sh中,cd$WORKDIRls*|cpio-o>/dev/rmt/0h.Shell须程中的注须以#须须.须shell须量须行字数运算~使用expr命令exprintegeroperatorinteger其中operator须+-*/%,但须*的使用要用须须符\,如,$expr4\*520$int=`expr5+7`$echo$int12(3)Shell须程的参数须须,可通须命令行以参数及交互式须入须量(read)restoreall.sh须backup.sh程序的须磁份须须行恢须$cat>restoreall.shBourneShell及Shell须程(2)h.交互式须须须从入数据使用read须句~其格式如下,readvar1var2...varnread将不作须量替须~但会须除多余的空格~直到遇到第一个须行符;回须,~须并将入须依次须须须相须的须量。例,$readvar1var2var3 96Hellomyfriends$echo$var1$var2$var3Hellomyfriends$echo$var1Hello$readvar1var2var3Hellomydearfriends$echo$var3dearfriends<-须入多余须量须~须入须余下的内容须须最后一须个量$readvar1var2var3Hellofriends$echo$var3<-var3须空$在shellscript中可使用read须句须行交互操作,...#echo-nmessage须出须果后不须行echo-n"Doyouwanttocontinue:YorN"readANSWERif[$ANSWER=N-o$ANSWER=n]thenexitfii.case须,须须构构elif-then须更构清楚 97比须if-then须句,if[variable1=value1]thencommandcommandelif[variable1=value2]thencommandcommandelif[variable1=value3]thencommandcommandfi相须的case须,构casevalueinpattern1)commandcommand;;pattern2)commandcommand;;...patternn) 98command;esac*case须句只须行第一个匹配模式例,使用case须句建立一个菜须须须shellscript#Displayamenuecho_echo"1Restore"echo"2Backup"echo"3Unload"echo#Readandexcutetheuser'sselectionecho-n"EnterChoice:"readCHOICEcase"$CHOICE"in1)echo"Restore";;2)echo"Backup";;3)echo"Unload";;*)echo"Sorry$CHOICEisnotavalidchoiceexit1esac在上例中~*指默须匹配须作。此外~case模式中也可以使用须须操作~如下所示,pattern1|pattern2)commandcommand;; 99须须可以上面示将例程序中允须用须须入字或每一数个写大字母。case"$CHOICE"in1|R)echo"Restore";;2|B)echo"Backup";;3|U)echo"Unload";;*)echo"Sorry$CHOICEisnotavalidchoiceexit1esac(5)循须控制<1>while循须:格式,whilecommanddocommandcommandcommand...done例,须算1到5的平方#!/bin/sh##Filename:square.shint=1while[$int-le5] 100dosq=`expr$int\*$int`echo$sqint=`expr$int+1`doneecho"Jobcompleted"$shsquare.sh1491625Jobcompleted<2>until循须须,构格式,untilcommanddocommandcommand....commanddone示例,使用until须须构算1-5的平方#!/bin/sh 101int=1until[$int-gt5]dosq=`expr$int\*$int`echo$sqint=`expr$int+1`doneecho"Jobcompleted"<3>使用shift须不定须的须行须参数理在以上的示例中我须须是假须命令行参数唯一或其个数固定~或者使用$*将整命个令行参数须须须shellscript须行须理。须于参数个数并不固定且希望须每个参数命令须行须须理独须须需要shift命令。使用shift可以将命令行位置参数依次移须位置~即$2->$1,$3->$2.在移位之前的第一位置个参数$1在移位后不在存将在。示例如下,#!/bin/sh##Filename:shifteruntil[$#-eq0]doecho"Argumentis$1and`expr$#-1`argument(s)remain"shift 102done$shifter1234Argumentis1and3argument(s)remainArgumentis2and2argument(s)remainArgumentis3and1argument(s)remainArgumentis4and0argument(s)remain$使用shift须~每须行一次移位~$#减1~使用须一特性可以用until循须须每个参数须行须理~如下示例中是一个求整数和的shellscript:#!/bin/sh#sumints-aprogramtosumaseriesofintegers#if[$#-eq0]thenecho"Usage:sumintsintegerlist"exit1fisum=0until[$#-eq0]dosum=`expr$sum+$1`shiftdone 103echo$sum$shsumints32434341234438$使用shift的一另个原因是BourneShell的位置参数须量须$1~$9,因此通须位置须量只能须须前9个参数。但须并不等于在命令行上最多只能须入9个参数。此须如果想须须前9个参数参之后的数~就必须使用shift.外另shift后可加整数须行一次多个移位~如,shift3<4>.for循须格式,forvarinarg1arg2...argndocommand....commanddone示例,$forletterinabcde;doecho$letter;doneabc 104de须前当目须下的所有文件操作,$foriin*doif[-f$i]thenecho"$iisafile"elif[-d$i]echo"$iisadirectory"fidone求命令行上所有整数之和,#!/bin/shsum=0forINTin$*dosum=`expr$sum+$INT`doneecho$sum<6>从循须中退出,break和continue命令break立即退出循须continue忽略本循须中的其他命令~须须下一下循须 105在shell须程中有须我须要用到须行无限循须的技巧~也就是须须须循须一直须行碰到break或continue命令。须须无限循须通常是使用true或false命令须始的。UNIX系须中的true须是返加0须~而false须返回非零须。如下所示,#一直须行到程序须行了break或用须强行中须才断须束循须whiletruedocommand....commanddone上面所示的循须也可以使用untilfalse,如下,untilfalsedocommand....commanddone在如下shellscript中同须使用了continue,break以及case须句中的正须表式达用法,#!/bin/sh#Interactiveprogramtorestore,backup,orunload#adirectory 106echo"WelcometothemenudrivenArchiveprogram"whiletruedo#DisplayaMenuechoecho"MakeaChoicefromtheMenubelow"echo_echo"1RestoreArchive"echo"2Backupdirectory"echo"3Unloaddirectory"echo"4Quit"echo#Readtheuser'sselectionecho-n"EnterChoice:"readCHOICEcase$CHOICEin[1-3])echo#Readandvalidatethenameofthedirectoryecho-n"Whatdirectorydoyouwant?"readWORKDIRif[!-d"$WORKDIR"]thenecho"Sorry,$WORKDIRisnotadirectory"continue 107fi#Makethedirectorythecurrentworkingdirectorycd$WORKDIR;;4):;;#:须空须句~不须行任何须作*)echo"Sorry,$CHOICEisnotavalidchoice"continueesaccase"$CHOICE"in1)echo"Restoring..."cpio-i/dev/rmt/0h;;3)echo"Unloading..."ls|cpio-o>/dev/rmt/0h;;4)echo"Quitting"break;;esac#Checkforcpioerrorsif[$?-ne0]thenecho"Aproblemhasoccurredduringtheprocess"if[$CHOICE=3]thenecho"Thedirectorywillnotbeerased" 108fiecho"Pleasecheckthedeviceandtryagain"continueelseif[$CHOICE=3]thenrm*fifidone(6)须化须程,构定须函数同其他高须须言一须~shell也提供了函数功能。函数通常也之须称子须程(subroutine),其定须格式如下,funcname(){command...command;#分号}定须函数之后~可以在shell中须此函数行须用~使用须函数定须可以一将个须须的程序分须多可管个理的程序段~如下所示, 109#startprogramsetup(){commandlist;}do_data(){commandlist;}cleanup(){commandlist;}errors(){commandlist;}setupdo_datacleanup#endprogram技巧,.在须函命数名须最好能使用有含须的名字~即函数名能须比须准的确描述函数所完成的任须。.须了程序的须须方便~须可能使用尽注须使用函数另的一个好须就是可以在一个程序中的不同地方须行相同的命令序列(函数),如下所示,iscontinue(){ 110whiletruedoecho-n"Continue?(Y/N)"readANSWERcase$ANSWERinYy)return0;;Nn)return1;;*)echo"AnswerYorN";;esacdone}须须可以在shell须程中须用iscontinue确定是否须须须行,ifiscontinuethencontinueelsebreakfi**shell函数与shell程序非常相似~但二者有一非常个重要的差须,shell程序是由子shell须行的~而shell函数须是作须前当shell的一部分被须行的~因此在前当shell中可以改 111须函数的定须。此外在任意shell(包括交互式的shell)中均可定须函数~如,$dirdir:notfound$dir(){ls-l;}$dirtotal5875-rw-r--r--1hbwork100Nov1023:16doc-rw-r--r--1hbwork2973806Nov1023:47ns40docs.zip-rw-r--r--1hbwork1715011Nov1023:30ns840usr.pdf-rw-r--r--1hbwork1273409Sep231998radsol21b6.tar.Z-rw-r--r--1hbwork7526Nov1023:47wget-log-rw-r--r--1hbwork1748Nov1321:51wget-log.1$unsetdir$dir(){>echo"PermissionLinkOwnerGroupFile_SZLastAccessFileName">echo"-----------------------------------------------------------">ls-l$*;>}$dirPermissionLinkOwnerGroupFile_SZLastAccessFileName-----------------------------------------------------------total5875-rw-r--r--1hbwork100Nov1023:16doc-rw-r--r--1hbwork2973806Nov1023:47ns40docs.zip 112-rw-r--r--1hbwork1715011Nov1023:30ns840usr.pdf-rw-r--r--1hbwork1273409Sep231998radsol21b6.tar.Z-rw-r--r--1hbwork7526Nov1023:47wget-log-rw-r--r--1hbwork1748Nov1321:51wget-log.1通常情况下~shellscript是在子shell中须行的~困此在此子shell中须须量所作的修改须父shell不起作用。点(.)命令使用shell在不须建子shell而由前当shell须取须行一并个shellscript,可以通须须须方式定来须函及数须量。此外点(.)命令最常用的功能就是通须须取.profile来重新配置初始化login须量。如下所示,$..profile(csh相须于.命令的是source命令).(7)使用And/Or须须构行有件的条命令须行<1>And,须第一当个命令成功须才有须行后一个命令,如同在须须表式中与达如果前面的须果须真须才有必要须须运算~否须须果肯定须假。格式如下,command1&&command2例,rm$TEMPDIR/*&&echo"Filesuccessfullyremoved"等价于ifrm$TEMPDIR/*thenecho"Filesuccessfullyremoved" 113fi<2>Or,与AND相反~须前一当个命令须行出须须才须行后一条命令例,rm$TEMPDIR/*||echo"Filenotremoved"等价与,ifrm$TEMPDIR/*thencommandelseecho"Filenotremoved"fi<3>混合命令件须行条command1&&command2&&command3当command1,command2成功须才须行command3command1&&command2||comamnd3须当command1成功~command2失须须才须行command3然可以根当据自己的需要须行多须件条命令的须合~在此不多须述。(8)使用getopts命令须取unix格式须须UNIX格式须须指如下格式的命令行,参数command-optionsparameters使用格式,getoptsoption_stringvariable具使用方体法须考参getopts的在须文档(mangetopts).示例如下,#newdate 114if[$#-lt1]thendateelsewhilegetoptsmdyDHMSTjJwahrOPTIONdocase$OPTIONinm)date'+%m';;#MonthofYeard)date'+%d';;#DayofMonthy)date'+%y';;#YearD)date'+%D';;#MM/DD/YYH)date'+%H';;#HourM)date'+%M';;#MinuteS)date'+%S';;#SecondT)date'+%T';;#HH:MM:SSj)date'+%j';;#dayofyearJ)date'+%y%j';;#5digitJuliandatew)date'+%w';;#DayoftheWeeka)date'+%a';;#Dayabbreviationh)date'+%h';;#Monthabbreviationr)date'+%r';;#AM-PMtime\?)echo"Invalidoption$OPTION";;esac 115donefi$newdate-J94031$newdate-a-h-dMonJan31$newdate-ahdMonJan31$示例程序,须制程序#Syntax:duplicate[-cinteger][-v]filename#whereintegeristhenumberofduplicatecopies#and-vistheverboseoptionCOPIES=1VERBOSE=Nwhilegetoptsvc:OPTIONdocase$OPTIONinc)COPIES=$OPTARG;; 116v)VERBOSE=Y;;\?)echo"IllegalOption"exit1;;esacdoneif[$OPTIND-gt$#]thenecho"Nofilenamespecified"exit2fishift`expr$OPTIND-1`FILE=$1COPY=0while[$COPIES-gt$COPY]doCOPY=`expr$COPY+1`cp$FILE${FILE}${COPY}if[VERBOSE=Y]thenecho${FILE}${COPY}fidone$duplicate-vfileAfileA1 117$duplicate-c3-vfileBfileB1fileB2fileB34.Shell的定制通常使用shell的定制来控制用须自己的须境~比如改须shell的外须(提示符)以及增强自己的命令。(1)通常须境须量来定制shell通常改须须境须量可以定制shell的工作须境。shell在须理信息须考须些会参须境须量~改须须境须量的须在一定程度上改须shell的操作方式~比如改须命令行提示符。.使用IFS增加命令行分隔符默须须下状shell的分隔符须空格、制表符及须行符~但可以通须改须IFS的须加入自己的分隔符。如下所示,$IFS=":"$echo:Hello:my:FriendHellomyFriend(2)加入自己的命令及函数如下程序,#DirectoryandPromptchangeprogram#Syntax:chdirdirectory 118if[!-d"$1"]thenecho"$1isnotadirectory"exit1ficd$1PS1=`pwd`$exportPS1$chdir/usr/home/teresa$但此程序在须行须系须提示符不并会改须~因须此程序是在子shell中须行的。因此其须量须前当shell并响无影~要想须前当shell起作用~最好是此作将须函数写在自己的.profile中或建立自己的个人函数文件.persfuncs#Personalfunctionfilepersfuncschdir(){#DirectoryandPromptchangeprogram#Syntax:chdirdirectoryif[!-d"$1"]thenecho"$1isnotadirectory"exit1 119ficd$1PS1=`pwd`$exportPS1;}再须行,$..persfuncs$chdirtemp/home/hbbwork/temp$也可在自己的.profile文件中用..persfuncs须用.persfuncs.须明,在bash/tcsh中已须使用须名~相须而言须名比此方法更须方便。5.有须shell的须须须须(1)shell程序的须须切须,程序须;人,须是会犯须须的~而须算机是不须会的。使用-x须行跟踪须行~须行并须示每一条指令。(2)命令须用小括一须号将命令括起来~须须些命令由子会shell来完成~而{command_list;}须在当前shell中须行。须两者的主要须在区于其须shell须量的影响~子shell须行的命令不会影响当前shell中的须量。$NUMBER=2$(A=2;B=2;NUMBER=`expr$A+$B`;echo$NUMBER)4 120$echo$NUMBER2${A=2;B=2;NUMBER=`expr$A+$B`;echo$NUMBER;}4$echo$NUMBER4须须,在本章中须述了BourneShell的基本知须,使用shell须量~shellscript基须。须些概念须于理解学须KornShell,csh以及其他script须程都是非常有用的。多很OS都有不少须言及一些script功能~但很少有象UNIXSHELL须须活灵强大的script脚本须言能力。须于系须管理须或程序须须~来熟须地使用shellscript将须日常工作(系须须须及管理)非常有用~如果想作你一个合格的系须管理须~强烈建须须一你步深入的了解和使用shell.外~须于另系须管理须须~来PERL也是一必不可少个的script须程须言~尤其是须于须理文本格式的各须文件~PERL具有shell,awk,sed,grep等的功能~但使用起来更须灵活~ 121功能也更强大。大家可以考参“PerlByExamples"来学须和使用PERL。
此文档下载收益归作者所有