人力资源-2022Unix培训文档(完)_第1页
人力资源-2022Unix培训文档(完)_第2页
人力资源-2022Unix培训文档(完)_第3页
人力资源-2022Unix培训文档(完)_第4页
人力资源-2022Unix培训文档(完)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1.0版中国联通CDMA计费(jìfèi)系统UNIX培训教材沈阳东软软件(ruǎnjiàn)股份2002.5目录(mùlù)TOC\o"1-3"\h\z1.为什么选择(xuǎnzé)Unix?31.1.Unix系统(xìtǒng)拥有诸多的特点31.2.Unix系统(xìtǒng)同WinNT相比(xiānɡbǐ)的优点32.Unix系统简介32.1.Unix系统的主要组成局部33.文件系统43.1.文件系统的结构43.2.文件类型53.3.文件系统的存取权限54.常用的命令介绍64.1.Unix命令的手册64.2.文件系统的使用64.3.文件属性的更改84.4.文件内容相关的命令84.5.文件系统的管理94.6.文件系统的压缩与备份115.vi编辑器146.文件的远程传输167.进程的管理178.Shell编程简介218.1.Script的根本结构及观念218.2.BourneShell219.数据文件的常用操作28为什么选择Unix?Unix系统拥有(yōngyǒu)诸多的特点Unix系统的代码不仅仅提供可执行代码,而且(érqiě)有对程序员非常有用的源程序代码。Unix系统的这一开放(kāifàng)特性使得它能够正常开展。Unix系统提供了许多实用工具,用户可以(kěyǐ)借以完成各种各样的工作。例如(lìrú):Solaris的admintool以及solstice。Unix系统可以是单用户使用的操作系统,也可以是多用户使用的操作系统,而且还是一个多任务的操作系统Unix系统同网络环境融合的很好,特别适合网络管理和并发效劳。Unix系统能够容易的安装到新型计算机上。Unix系统为用户程序提供高可移植性。Unix系统同WinNT相比的优点NT只由一家公司拥有、控制、生产和管理,就是微软。而Unix系统由许多公司维持自己的版本。所以Unix系统没有对微软公司的依赖性。64位的Unix在运行集中式数据库操作时是很快的。在NT环境中,RDBMS和系统管理员不能实际在底层进展管理,例如不能直接控制磁盘设备等。而在Unix环境下,可以做许多底层的控制,得到更好的性能。Unix允许用户修改其“内核〞,即可以修改Unix操作系统本身,而NT是黑匣子,很难进展定制。Unix系统简介Unix系统的主要组成局部核心核心是组成操作系统内核的一个程序,它管理和协调计算机的内部功能。核心程序所做的工作,用户是看不见的,用户在做自己工作时并不会意识到核心的存在。具体来讲,核心控制计算机的动用,管理计算机存储器,维护文件系统,并在用户中分配计算机资源。2.ShellShell是一个程序(chéngxù),它在用户和核心之间起着联络者的作用,即解释用户所提交的命令并把该命令提交给核心执行,执行结果通过Shell返回(fǎnhuí)给用户。文件系统文件系统是指在用户终端(zhōnɡduān)上可为用户所用的全部文件的集合,它使信息的存储和检索更为容易。命令(mìnglìng)命令是用户(yònghù)要求计算机执行的程序的名称。文件系统文件系统的结构可以看到在根目录下含有如下重要的系统目录:/sbin 下含在引导过程和手工恢复系统中使用的根本可执行命令/dev 下含代表外部设备的特别文件。这些外设包括:控制台,用户终端和磁盘。/etc 下含面向系统功能的可管理的配置文件和系统管理数据库/home 可以(kěyǐ)在/home下挂接用户(yònghù)的目录/tmp 下含临时文件/var 下含一些(yīxiē)内容变化的文件〔如日志文件〕/usr 下含./sbin./bin./lib等目录,存放(cúnfàng)用户共享文件文件类型文件是文件系统的根本(jīběn)单元,Unix系统中的文件分成以下几种类型:普通文件例如:/usr/bin/ls /etc/passwd目录文件例如:/usr/bin特别文件:特别文件代表一个物理设备,如终端、磁盘驱动器、磁带驱动器或通信连接。系统按照读写普通文件的方式读写特别文件,即Unix系统把物理设备也作为文件来看待,简化了用户对设备的操作过程例如:/devices/pci@1f,4000/scsi@3/sd@0,0:a符号链接:符号链接是指向其他文件的文件,通过它可以实现文件的共享。例如:/dev/dsk/c0t0d0s0#ls–l/dev/dsk/c0t0d0s0lrwxrwxrwx1rootroot4120003月21/dev/dsk/c0t0d0s0->../../devices/pci@1f,4000/scsi@3/sd@0,0:a显示四种文件类型的方法:#ls–Fdirectory_file/source_filetarget_file@normal_filespecial_file|#ls–ldrwxr-xr-x2panxluser51212月1211:16directory_file/-rw-r--r--1panxluser012月1211:16normal_file-rw-r--r--1panxluser012月1211:18source_fileprw-r--r--1panxluser012月1211:19special_file|lrwxrwxrwx1panxluser11*target_file->source_fie文件系统的存取权限(quánxiàn)每个Unix文件都可以拥有不同(bùtónɡ)的存取权限,界定其它用户能否存取文件和目录。每个文件分为三类(sānlèi)所有权:文件的属主、属主所在小组的成员〔即组员〕,可存取系统的其它用户。#ls–ldrwxr-xr-x2panxluser51212月1211:16directory_file/-rw-r--r--1panxluser012月1211:16normal_file好似上列的文件存取权限,第一个符号指示文件类型,减号为普通文件,d如此表示目录文件。接著的九个字符分成(fēnchénɡ)三组,分别表示属主、组员和其它用户的存取权;每组有三种存取权:代表读〔Read〕、w代表(dàibiǎo)写〔Write〕和x代表执行〔Execute〕。而没有存取权的相应位置如此会出现减号〔-〕代替。文件的存取权限是可变的,可用「chmod」的指令:1〕chmodg+rwfilenameg代表更改组员可以享有的存取权限,+rw就是让组员可以读与写该文件。而u如此代表文件的属性,o代表其它用户;减号〔-〕如此代表取消某类人的某些存取权限。2〕chmod666filename使用八进制的数值指定存取权。每个符号赋与一个数值,r是4,w是2和x是1。上述命令用于使文件对文件属主、组员和其它用户均具读写权。常用的命令介绍Unix命令的手册man[-Mpath][-ssection]command_name-M指定Unix命令手册页的存放路径-s指定Unix命令所属的手册页的章节Unix的手册页分为8个章节组成:一般命令,有关用户层命令的知识Unix系统调用,有关Unix操作系统提供的库调用接口的知识。库,包括(bāokuò)系统中库例程的知识。文件格式(géshi),包含了系统文件的格式。例如:passwd文件(wénjiàn)的格式文件格式,包含不同系统(xìtǒng)的特色信息,例如手册页可以显示使用的ASCII字符(zìfú)表游戏设备驱动程序,包含有关Unix设备驱动程序,如scsi和floppy的有关信息系统维护,包含对系统管理员有用的一些命令等,例如怎样格式化硬盘等文件系统的使用显示用户的当前工作目录。〔printworkingdirectory〕pwd建立用户的目录〔makedirectory〕mkdirmy_directory改变用户的工作目录〔changingdirectory〕cddirectory_name删除空目录〔rmdirectory〕rmdirmy_directory列出指定目录中的相应文件和目录名〔list〕ls[option][filelist]常用option:ls–l 用长格式显示文件的信息〔longlist〕ls–a列出目录中的文件,包含以.开头的的隐含文件〔all〕ls–F 标志出不同的文件类型(filetypes)ls–t 按照最近一次文件修改的时间排序文件,最近修改的放在前面(time)ls–R 逐级列出指定目录的子目录(recursive)查找文件〔findfile〕finddirectory_namesearch_expression常用的find的search_expression如下:-name filename 指定寻找文件的名称(míngchēng)〔可以使用通配符,“test*〞,〞test[1,2]〞〕-sizenumber 指定(zhǐdìng)寻找文件的大小〔-size4c表示大小为4个字节(zìjié)的文件)-typefiletype 指定(zhǐdìng)寻找文件的类型〔-typed表示寻找(xúnzhǎo)目录文件〕-mtimenumber 指定寻找某一时间范围内修改正的文件〔-mtime0表示过去24小时内修改正的文件〕-execcommand 指定对找到的文件执行command命令-okcommand 指定对找到的文件执行command命令,执行前提醒用户确认。-print 打印寻找结果拷贝文件〔copyfile〕cp[option]sourcetarget常用的cp的option:cp–r 拷贝指定目录中的文件,包含子目录〔recursive〕删除文件〔deletefile〕rm[option]filename常用的rm的option:rm–i 删除文件时要求用户确认rm–f 删除文件时不给任何消息rm–r 删除一个目录〔包括其中文件和子目录〕修改文件名〔movefile〕mvsource_filetarget_filesource_file和target_file可以是目录,对目录来说,修改目录名,就是移动目录。文件属性的更改修改文件的存取权限chmod[-fR]<absolute-mode>file...chmod[-fR]<symbolic-mode-list>file...例如: absolute_mode: chmod660myfile symbolic_mod_list: chmodu+xmyfilechmod-R对指定(zhǐdìng)的file路径下的所有内容〔包括(bāokuò)子目录〕,全部改变存取权限。改变(gǎibiàn)文件的所有者chownnew_usertestfilechown-R对指定(zhǐdìng)的file路径下的所有内容〔包括(bāokuò)子目录〕,全部改变所有者。改变文件所在的工作组chgrpnew_grouptestfilechgrp-R对指定的file路径下的所有内容〔包括子目录〕,全部改变工作组。文件内容相关的命令1〕显示文件内容catfilename…将文件的所有内容送到标准的输出设备,默认是屏幕,但是可以利用重定向,将一个或者多个文件按参数中出现的先后顺序进展集中例如:cattestfile1testfile2testfile3>testfile_total2〕显示文件内容,默认情况下每次显示一屏morefilename比拟有用的操作:space 显示下一屏return 显示下一行 -number 把显示窗口的大小设为number行 +number 从文件中第number行开始显示 +g 从文件尾开始显示,并允许向前翻页。q 退出more命令从文件中的指定的位置开始显示文件的内容tail[option]filename常用的option:-nnumber 从指定的行号开始显示〔number的前缀为〞+〞时,tail命令从文件头部开始,当前缀为“-〞或无前缀时,tail命令从文件尾部开始处理〕-f 当文件内容不断增加时,连续地显示文件尾部的内容从文件头开始显示指定数目的字符数或者行数head[option]filename常用(chánɡyònɡ)的option:-cnumber 从文件头开始(kāishǐ)显示指定数目的字符-nnumber 从文件头开始(kāishǐ)显示指定数目的行计算指定文件(wénjiàn)的字节数,字数及行数wc[option]filename常用(chánɡyònɡ)的option:-l 只计算文件的行数-w 只计算文件的字数-c 只计算文件的字节数显示非文本文件(!!!!!)od[option]filename常用的option:-d 按有符号十进制数显示文件内容-i 按无符号十进制数显示文件内容-h 按十六进制数显示文件内容-C 按ASCII字符显示文件内容文件系统的管理1)查询磁盘的空闲状况〔diskfreeanddiskused〕df可以获得系统中所有文件系统或者某一特定文件系统的属性。Du命令用来显示指定文件或目录所占用的磁盘块数。默认:512字节/块可以获得的文件系统参数:filesystem文件系统的名字Kbytes文件系统的大小Used使用的空间大小Avail空闲的空间大小Iused使用的I-node个数Capacity空间使用的百分比%iused 已用I-node数占可用I-node数的百分比mountedon文件系统的挂接点例如:#df-k文件系统千字节(zìjié)已用可用容量挂接在/dev/dsk/c0t0d0s0101838263595532132567%//dev/dsk/c0t0d0s6101838281777913950186%/usr/dev/dsk/c0t0d0s348282412158231296028%/var/dev/dsk/c0t0d0s5101838278251117476982%/opt2〕文件系统的组织(zǔzhī)树型结构(jiégòu),可以不断扩展。一个目录,可以作为根目录文件系统的一局部;也可以是外挂文件系统的一局部。外挂文件系统独立于根目录文件系统之外,位置上相对(xiāngduì)于根文件系统而言,类似于挂在根文件系统上的“篮子(lánzi)〞。3〕挂接新的文件系统的步骤:format 对硬件磁盘设备进展分区的交互式命令界面〔fdisk〕newfs 在指定的磁盘分区上创立新的文件系统〔format〕fsck 对指定的磁盘分区进展文件系统的检测和修复〔scandisk〕mount 将已经生成文件系统的指定磁盘分区挂接到某个挂接点〔目录〕上,存储空间得到了扩展umount 将指定的磁盘分区卸载具体的使用方法请参考man手册和相关专业书籍。文件系统的压缩(yāsuō)与备份压缩(yāsuō)指令compress[option]filename普通指令(zhǐlìng)执行后,数据源文件将被删除,产生新的文件,以.Z为后缀(hòuzhuì)常用(chánɡyònɡ)的option:compress-v 压缩时显示压缩比等详细信息〔verbose〕。Compress-c 将压缩的文件送到标准输出〔需要重定向到其他文件〕,这样可以保存原文件不改变。解压缩指令uncompress[option]compressed_filename或zcat compressed_filename 〔uncompress-c〕常用的option:uncompress-c 将解压缩后的文件送标准输出并保存压缩文件还有类似的压缩和解压缩指令,除了压缩文件名以.z为后缀之外,用法根本一样对应关系如下:compress packuncompress unpackzcat pcat利用tar备份〔tapearchive〕将磁盘上的文件拷贝到档案媒体上〔通常为磁带,也可是磁盘上的数据文件〕,也可以根据备份恢复成磁盘上的文件。具体用法:tarc 创立一新档案,并把文件的详细信息写在档案的开始处〔create〕tart 产生档案中保存文件的列表〔table〕tarx 从档案中抽取一个或多个文件,当指定一个目录时,在该目录中的文件将被抽取出来。假如没有指定目录或文件,该命令将抽出档案中所有文件。〔extract〕其他(qítā)option:-farchive 使用(shǐyòng)archive作为文档名而取代用户默认(mòrèn)的文档名〔备份到磁盘〕-v 显示(xiǎnshì)正在处理的文件名〔verbose〕例如(lìrú):#lstar_testabc#tarcvf./tar_test.tar./tar_testa./tar_test/0Ka./tar_test/a1Ka./tar_test/b1Ka./tar_test/c1K#tartvf./tar_test.tartar:块大小=9drwxr-xr-x1021/1020200012月2109:28./tar_test/-rw-r--r--1021/10254200012月2016:08./tar_test/a-rw-r--r--1021/10234200012月2016:06./tar_test/b-rw-r--r--1021/10260200012月2016:06./tar_test/c#tarxvf./tar_test.tartar:块大小=9x./tar_test,0bytes,0磁带块x./tar_test/a,54bytes,1磁带块x./tar_test/b,34bytes,1磁带块x./tar_test/c,60bytes,1磁带块利用cpio进展备份〔copyfilearchivesinandout〕cpio命令有三种格式:cpio-o 从标准输入得到(dédào)文件路径,并把文件送到标准输出〔output〕cpio-i 从标准输入档案中读取数据并恢复(huīfù)磁盘文件〔input〕cpio -p 从标准(biāozhǔn)输入得到路径名并将其拷贝到指定目录。〔pipe〕常用(chánɡyònɡ)的option:d 当指定目录不存在(cúnzài)时,创立目录t 产生文件的列表,并不真正拷贝文件-Hheadername 从使用不同的备份方式得到的数据源恢复数据例如:#lstar_testabc#lstar_test/*|cpio-ov>./tar_test.cpiotar_test/atar_test/b#lstar_test/tar_test.cpio#cpio-itv<tar_test.cpio-rw-r--r--1panxluser5412月2016:082000,tar_test/a-rw-r--r--1panxluser3412月2016:062000,tar_test/b#tarcvf./tar_test.tar./tar_testa./tar_test/0Ka./tar_test/a1Ka./tar_test/b1K#cpio-it-Htar<tar_test.tar./tar_test/./tar_test/a./tar_test/b利用dd命令备份〔disktodisk〕dd命令将从标准输入中读取的数据按照参数指定的方法进展变换(biànhuàn)后送到标准输出。Dd命令是可以(kěyǐ)用来进展远程备份的命令:例如(lìrú):tar-cf-.|rshREMOTEHOST"ddibs=512obs=1024of=/dev/TAPEDEVICE"rsh-nhostddif=/dev/rmt/0bs=20b|tarxvBfb-20files利用(lìyòng)ufsdump命令(mìnglìng)备份〔Unixfilesystemdump〕利用ufsdump可以实现对单个文件系统的全备份,增量备份。利用ufsdump可以指定周密的备份方案。详细指令请参考ufsdump手册和相关书籍。利用ufsresotre命令对ufsdump的备份进展恢复9〕备份的须知事项tar命令在使用时必须指定需要备份文件的相对路径tar命令在备份时,会跨越文件系统的界限,备份目录下的所有内容,包括外挂在该目录上的新文件系统的内容。ufsdump备份只针对指定的备份目录所在的文件系统而言,不会跨越文件系统进展备份。其他的远程备份指令要把本地系统上的文件备份到远地主机上的袖珍磁带内时,使用下述指令:#tarcvf-/usr|rshremote-host-nameddof=/dev/rmt/0或#find/usr-depth-print|cpio–oc|rshremote-host-nameddof=/dev/rmt/0另一方面,如果要把远地主机上的文件备份到本地系统上的袖珍磁带内时,可以使用:#rshremote-host-name"tarcvf-/usr">/dev/rmt/0或#rshremote-host-name"find/usr-depth-print|cpio-oc">/dev/rmt/0vi编辑器何用户最常做的事要数创立和编辑文件,包括文档、报告和文字,vi〔VisualEditor〕是一个有效而相对简单的全荧幕编辑,使用(shǐyòng)vi,只要记著少量(shǎoliàng)根本指令,就可以开始起步,再学习其他更复杂的指令(zhǐlìng),而系统管理员如此使用vi管理和维护(wéihù)系统。所需指令(zhǐlìng)为:$vifilemanevi的工作模式有三种:根本命令模式、插入模式和交互式命令模式,并且这三种模式之间可以互相转换,其转换关系如下列图:在根本命令模式进入插入模式:—指令i 在游标处插入正文—指令I 在一行开始处插入正文—指令a 在游标後追加正文—指令A 在行尾追加正文—指令o 在游标下面新开一行—指令O 在游标上面新开一行要记著一点,在插入态处,不能打入指令,必需先按〈Esc〉键,返回指令态。假假如用户不知身处何态,也可以按〈Esc〉键,不管处於何态,都会返回指令态。根本命令模式也有修改正文的指令:—x 删除游标处字符〔Character〕—nx 删除游标处後n个字符—nX 删除(shānchú)游标处前n个字符—ndw 删除(shānchú)游标处下n个单词(dāncí)〔word〕—dd 删除(shānchú)整行—d$或D 删除(shānchú)由游标至该行最末—u 恢复前一次所做的删除—如删除指令一样,在指令前打入的数,表示执行该指令多少次。—yy 拷贝一行—p 粘贴到当前光标所在行的下一行—r 字符替换,回到命令模式—s 字符替换,仍停留在插入模式在根本命令模式可以进展正文模式检索—/str〈Return〉向下搜寻str直至文件结尾处—?str〈Return〉向上搜寻str直至文件开首处—n 重复检索—N 反方向重复检索vi缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。在交互式命令模式::q! 放弃任何改动而退出vi,也就是强行退出:w 存档:wq 存档并退出vi:s/str1/str2/ 将某一行的第一次出现的str1替换成str2:s/str1/str2/g 将某一行的所有的str1替换成str2:%s/str1/str2/ 将每一行的第一次出现的str1替换成str2:%s/str1/str2/g 将每一行的所有的str1替换成str2:局部这里的指令pattern同sed指令相通。请参考sed的手册和相关书籍。其他高级指令请参考vi手册和相关的书籍。文件的远程(yuǎnchéng)传输ftp〔FileTransferProtocol〕允许用户对远地主机复制文件,用户毋须考虑作业系统类型,即能向或从任何(rènhé)具有TCP/IP的系统(xìtǒng)复制文件。ftp指令允许复制(fùzhì)目录中的一个文件或所有文件,但不能复制多层次目录。使用ftp时,必需(bìxū)在远地主机上设有某某。当ftp注册到远地系统时,并未得到shell,而是通过ftp指令解释程序同远地主机进展通讯。用法:$ftpremote-host-name或$ftpremote-host-ip-address一旦注册成功,就会出现ftp指令解释程序的提示。ftp>ftp>openremote-host-name 使用翻开指令连接主机。ftp>getfilename 复制某一文件回自己的系统中ftp>putfilename 传送某一文件往远地主机ftp>mget* 需要复制远地主机的全部文件进入自己的系统内ftp>mput* 传送自己的文件往远地主机相应的其他指令还有:bin 采用二进制传送数据ascii 采用ASCII码格式传送数据prompt 切换用户的提示开关,翻开或者关闭交互式命令模式。cd 改变远地机的ftp工作目录pwd 显示远地机当前ftp的工作目录lcd 改变本地机的ftp工作目录hostcmd 在本地机执行局部UnixShell指令! 暂时退出ftp环境,来到UnixShell环境进程(jìnchéng)的管理程序(chéngxù)是一个可执行文件〔Process〕是正在运行(yùnxíng)程序一个实例。UNIX支持许多进程同时运行,各种系统通过调用(diàoyòng)可用进程去创立新进程,与其他进程通讯,以及终止其他进程。进程(jìnchéng)族系新进程创立时,内核会分配一个进程标识号〔PID〕给它,并对进程表中添加说明讯息。由一个进程创立另一新进程,老进程为父进程,新进程为子进程。用户Shell执行的大多数指令又是它的子进程,子进程如此运行指令。而父进程允许有多个子进程来实现任务,等待子进程完成。一个父进程可以有多个子进程,但是,一个子进程只有一个父进程。前台及後台进程在Shell提示处打入指令後,创立一子进程运行命令,Shell等待命令退出,然回到对用户提出提示符,这道指令与Shell同步运行,即在前台运行。在Shell提示处打入的指令,假如随一个&,Shell创立的子进程运行此指令,但不等待指令退出,而直接返回到对用户提出提示。这道指令与Shell同步运行,即在后台运行。例如:#sleep10&其他相关的命令:fg 将后台进程调度到前台运行bg 将前台进程调度到后台运行stop 将当前用户的进程暂停^z 将当前用户的进程暂停jobs 显示当前用户所有的子进程状态。daemon进程(后台守护进程)后台守护进程是一个进程,它与终端和用户都无联系。守护进程完成一些周期性的事,平时它睡眠。它在tty区域中带有问号〔?〕。-Sched: PID0,它完成进程的程序在存储局和盘交换(jiāohuàn)局之间交换工作。-init: PID1,系统(xìtǒng)自动建的第一用户进程,它负责初始化引导和注册过程,也就是所有非系统进程的祖先。-pageout: PID2,页面守护(shǒuhù)进程,它频繁地把储页面内容送往交换区。-fsflush: PID3,定期(dìngqī)刷新高速缓到盘〔默认情况,每13秒刷新(shuāxīn)一次〕-syslogd: 归档系统出错讯息。-cron: 定时调度守护进程。-Ipsched: 脱机打印守护进程。监视进程ps[option]监视进程监注册户的数量,用以记系统的性能;亦会监视用户进程,包括挂起进程;以及装载均值等系统性能问题。常用的option:--u〈username〉显示指定用户的讯息。〔user〕--t〈ttynamt〉显示指定终端有关的进程讯息。〔terminal〕--e 显示指定当前系统正在运行的进程讯息。〔executive〕--f 用长格式显示进程讯息。〔fullformat〕nohup让进程不受挂起和注销影响後台启动的进程,默认情况下,当注销後就不再存在,但是,可以使用nohup指令,让进程不受挂起和注销影响,得以继续运行,例如:#nohupsleep120&4567进程终止实用程序需要终止实用程序时,可以通过发信息给进程,使它自杀,用于终止一些已挂起的或是运行的进程。#ps–ef|grepsleepUIDPIDPPIDCSTIMETTYTIMECMDpanxl1313307016:22:32pts/00:00sleep120#kill[-signal]pid常用的信号(xìnhào)值如下:SIGHUP1ExitHangup(seetermio(7I))SIGINT2ExitInterrupt(seetermio(7I))SIGQUIT3CoreQuit(seetermio(7I))SIGILL4CoreIllegalInstructionSIGTRAP5CoreTraceorBreakpointTrapSIGABRT6CoreAbortSIGEMT7CoreEmulationTrapSIGFPE8CoreArithmeticExceptionSIGKILL9ExitKilledSIGBUS10CoreBusErrorSIGSEGV11CoreSegmentationFaultSIGSYS12CoreBadSystemCallSIGPIPE13ExitBrokenPipeSIGALRM14ExitAlarmClockSIGTERM15ExitTerminated例如(lìrú):#kill-944114411:terminated调度(diàodù)单个作业执行at(C)指令使得在某指定(zhǐdìng)时间执行一组命令一次,主要用於在系统活动较少的情况下,在预定时限〔例如在半夜後或每日固定时间〕内运行指令。Attime 进入(jìnrù)at命令的编辑模式。以Ctrl+d退出编辑模式At-l 对用户的at作业执行列表操作At-rat_job_id 删除某个指定(zhǐdìng)的用户的at操作(cāozuò)例如(lìrú):#at2230at>sleep120at><EOT>〔pressCtrl+d〕#at-l977409000.a四12月1722:30:002000#at-r977409000.a可以使用匹配符撤销(chèxiāo)多个作业。at的作业(zuòyè)存放在/usr/spool/cron/atjobs定时调度守护进程crontab命令可以规定在指定日期和时间调度运行一些指令。/usr/lib/cron/cron.allow文件列出了能使用cron的用户,/usr/lib/cron/cron.deny文件列出了拒绝存取cron的用户,仅当cron.allow文件不存在时,cron.deny文件才起作用。而每个用户的登记项会存放在/usr/spool/cron/crontabs/。Crontab的用法:crontab–1 列出当前提供的cron作业crontab–e 调用系统的默认编辑器,修改用户的cron作业crontabmy_cronfile 将用户的cron作业设定文本加载到用户的cron作业crontab–r 撤销cron作业my_cronfile的格式如下:153**1-5find/-namecore2>/dev/null|xargsrm-fShell编程简介Script的根本结构及观念我们如何指定使用那一个Shell来解释所写的Script呢?几种根本的指定方式如下所述:1.如果Script的第一个非空白字元不是"#",如此它会使用BourneShell。2.如果Script的第一个非空白字元是"#"时,但不以"#!"开头(kāitóu)时,如此它会使用CShell。3.如果Script以"#!"开头,如此"#!"後面所写的就是所使用的Shell,而且要将整个(zhěnggè)路径名称指出来。Script是以行为单位,我们所写的Script会被分解成一行一行来执行。而每一行可以(kěyǐ)是命令、注解、或是流程控制指令等。如果某一行尚未完成,可以在行末加上"\",这个时候下一行的内容就会接到这一行的後面,成为同一行,如下┌———————————┐│echoThemessageis\││toolongsowehave\││tosplititinto\││severallines│└———————————┘当Script中出现"#"时,再它後面的同一行文字即为注解,Shell不会(bùhuì)对其翻译。在Script中要执行一个命令(mìnglìng)的方法和在命令列中一样,你可以前景或背景执行,执行命令时也会需要设定一些环境变数。Script的流程控制和一般高阶语言的流程控制没有什麽两样,也和高阶语言一样有子程序。这些使得Script的功能更加强大。为了到达与高阶语言一样的效果,我们也可以在Script中设定变数,如此使Script成为一个名付其实的高阶语言。BourneShell一、变数BourneShell的变数型态只有字串变数,所以要使用数值运算如此必须靠外部命令达成目的。而其变数种类有如下几种:1.使用者变数这是最常使用的变数,我们可以任何不包含空白字元的字串来当做变数名称。设定(shèdìnɡ)变数值时如此用如下方式:var=string取用变数(biànshù)时如此在变数名称前加上一"$"号。<例>┌———————┐│name=Tom││echoname││echo$name│└———————┘结果(jiēguǒ)如下:nameTom2.系统(xìtǒng)变数〔环境变数〕和使用者变数相似,只不过此种变数会将其值传给其所执行的命令(mìnglìng)。要将一使用者变数设定为系统变数,只要加上:exportvar<eg>┌———————┐│name=Tom││exportname│└———————┘以下是使用者一进入系统之後就已设定好的系统变数:$HOME 使用者自己的目录$PATH 执行命令时所搜寻的目录$TZ 时区$MAILCHECK 每隔多少秒检查是否有新的信件$PS1 在命令列时的提示号$PS2 当命令尚未打完时,Shell要求再输入时的提示号$MANPATH man指令的搜寻路径 3.唯读的使用者变数和使用者变数相似,只不过这些(zhèxiē)变数不能被改变。要将使用者变数设成唯读的,只要加上:readonlyvar而假如只打readonly如此会列出所有唯读的变数。还有一点,系统(xìtǒng)变数不可以设定成唯读的。<例>┌———————┐│name=Tom││readonlyname││echo$name││name=John││readonly│└———————┘结果(jiēguǒ)如下:Tomname:isreadonlyreadonlyname 4.特殊(tèshū)变数有些变数是一开始执行Script时就会设定,并且不以加以修改,但我们不叫它唯读的系统变数,而叫它特殊变数〔有些书会叫它唯读的系统变数〕,因为这些变数是一执行程式(chéngshì)时就有了,况且使用者无法将一般的系统变数设定成唯读的。以下是一些等殊变数:$0这个程式的执行名字$n这个程式的第n个参数值,n=1..9$*这个程式的所有参数$#这个程式的参数个数$$这个程式的PID$!执行上一个背景指令的PID$?执行上一个指令的返回值当你执行这个程式时的参数数目超过9个时,我们可以使用shift命令将参数往前移一格,如此即可使用第10个以後的参数。除此之外,可以用set命令改变$n及$*,方法如下:setstring如此$*的值即为string,而分解後如此会放入$n。如果set命令後面没有参数如此会列出所有已经设定(shèdìnɡ)的变数以及其值。<例>ex1thisisatestshell名:ex1参数(cānshù):thisisatest┌———————————┐│echoFilename:$0││echoArguments:$*││echoNo.ofargs.:$#││echo2ndarg.:$2││shift││echoNo.ofargs.:$#││echo2ndarg.:$2││sethello,everyone││echoArguments:$*││echo2ndarg.:$2│└———————————┘结果(jiēguǒ)如下:Filename:ex1Arguments:thisisatestNo.ofargs.:42ndarg.:isNo.ofargs.:32ndarg.:aArguments:hello,everyone2ndarg.:everyone值得一提的是,当你想从键盘输入一变数值时,你可以(kěyǐ)使用下面的命令:readvar1var2这时read会将一个(yīɡè)字分给一个变数。如果输入的字比变数还多,最後一个变数会将剩下的字当成其值。如果输入的字比变数还少,如此後面的变数会设成空字串。二、流程控制以下介绍各种流程控制:1)ifthenelif语法(yǔfǎ)以及流程图如下if(condition1)thencommands1elif(condition2)thencommands2elsecommands3fi2〕forin语法以及(yǐjí)流程图如下forvarinarg-listdocommandsdone<例>┌———————————┐│forainxxyyzz││do││echo$a││done│└———————————┘3〕while结果(jiēguǒ)如下:xxyy zz语法以及(yǐjí)流程图如下while(condition)docommandsdone<例>┌———————————————┐│number=0││while(test$number-lt10)││do││echo"$number\c"││number=`expr$number+1`││done││echo│└———————————————┘结果(jiēguǒ)如下:01234567894〕until语法(yǔfǎ)以及流程图如下until(condition)docommandsdone它和while的不同(bùtónɡ)只在於while是在条件为真时执行循环,而until是在条件为假时执行循环。break及continue这两者是用於for,while,until等循环(xúnhuán)控制下。break会跳至done後方执行,而continue会跳至done执行,继续执行循环。6〕case语法(yǔfǎ)以及流程图如下casestrinpattern1)commands1;;pattern2)commands2;;pattern3)commands3;;esac而pattern除了可以(kěyǐ)指定一些确定的字串,也可以指定字串的集合,如下*任意(rènyì)字串?任意(rènyì)字元[abc]a,b,或c三字元其中(qízhōng)之一[a-n]从a到n的任一字元|多重选择<例>┌———————————————┐│echo'EnterA,B,orC:\c'││readletter││case$letterin││A|a)echo'YouenteredA.';;││B|b)echo'YouenteredB.';;││C|c)echo'YouenteredC.';;││*)echo'NotA,B,orC';;││esac│└———————————————┘7〕函数格式如下function-name(){commands}而要呼叫此函数,就像在命令列下直接下命令一般。例:function-name8〕condition的构筑(gòuzhù) testexpressionexpression中包含一个以上的判断准如此以作为(zuòwéi)test评诂的标准。两准如此间用"-a"代表逻辑AND运算,"-o"代表逻辑OR运算,而在准如此前放置一"!"代表NOT运算。如果没有括号,如此优先权如此为"!">"-a">"-o"。使用左右括号时,必须在其前面加上"\"〔防止转义〕。以下是有关准如此的表示〔与表示相一致时返回真,否如此返回假〕 stringstring不为(bùwéi)空白字串 -nstringstring的长度(chángdù)大於0-zstringstring的长度(chángdù)等於0string1=string2string1等於string2string1!=string2string1不等於string2int1-gtint2int1大於int2int1-geint2int1大於等於int2int1-eqint2int1等於int2int1-neint2int1不等於int2int1-leint2int1小於等於int2int1-ltint2int1小於int2-rfilename档案可读取-wfilename档案可写入-xfilename档案可执行-ffilename档案为一般档-dfilename档案为目录-sfilename档案为非空的一般档<例>test-r"$filename"-a-s"$filename"如果(rúguǒ)filename指定的文件(wénjiàn)可读取并且时非空的一般文档,返回真,否如此返回假。数据文件的常用(chánɡyònɡ)操作比拟两个文件内容的不同,并在标准输出(shūchū)上产生比拟结果。cmpfilename1filename2两个文件一样时,没有(méi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论