unix学习笔记.doc_第1页
unix学习笔记.doc_第2页
unix学习笔记.doc_第3页
unix学习笔记.doc_第4页
unix学习笔记.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

UNIX学习笔记l File命令可用来确定文件类型#file 文件名l Lsls a 列出目录中的所有条目,包括以”.”开头的隐藏文件ls R 列出目录下子目录、文件 例如:ls aR /home/denisels x 用多栏格式列出文件ls F 在目录后面加”/”,可执行文件后面加”*”,符号链接后面加”ls d 只列出目录ls t 按修改时间列出条目ls x|pg 使用分页程序显示l 文件名扩展和模式匹配* ls *.c 匹配零个或多个字符? ls conf.? 匹配任意单个字符list ls conf.co 匹配列表中的任意字符lower-upper ls libdd.98735-6.sl 匹配范围中的任意字符 ls a 主目录usename ls agene 该用户名对应的主目录l cp i file1 file2 ,使用-i 选项,执行复制是,在要覆盖文件之前,-i 选项会前询问是否覆盖文件-f 强制复制, -p 在复制时保留权限 -r 递归复制cp,mv,rm -i -i 选项使用交互式方式执行命令cp file1 path-to-directory/. /.选项在目录不存在时,用户会获得一个错误信息 l mkdir p 可以创新包含任意多个子目录的目录。创建一个名为level1的目录,在其下创建一个目录level2,及其下子目录level3mkdir p level1/level2/level3l rm 删除文件和目录-i 交互式删除,-f 强制删除 ,-r 递归删除目录中的文件,然后删除目录本身为需要额外包含的特殊目录中建立一个称为 i 的文件,rm命令将-i文件看做一个命令参数touch ./-i删除以短划线开始的文件名, 例如删除文件-i , rm ./-i删除以圆点开始的文件,可以通配符模式 .?*删除除了某个文件以外的所有文件rm i ls d *.txt|grep v john.txt$删除所有名称以.txt结尾的文件,除了john.txt以外。 ls d 确保ls不会查询任何子目录并给出那些文件名若用户想排除两个文件名,可以用egrep完成rm i ls d *.txt | egrep v john|maryl rmdir 删除目录-i 交互式删除, -f 强制删除目录 ,-p 在删除目录后,若其父目录是空也将其删除,依次下去直到遇到非空的目录为止l 创建一个零长度的文件cat /dev/nullfilecp /dev/null fileTouch filel 通用重定向格式wc l ps ef /tmp/processes标准输出重定向:将执行ps的结果输出到/tmp/processes中ps ef /tmp/processes追加标准输出:将执行ps的结果追加到/tmp/processes的末尾!ps ef ! /tmp/processes追加输出重定向并忽略noclobber:若/tmp/processes, 直接覆盖!ps ef!/tmp/processes追加输出重定向并忽略noclobber: 将结果追加到/tmp/processes的末尾|(管道)ps | wc l 运行ps,并将ps的结果作为wc 的输入0-标准输入1-标准输出2-标准错误cat program 2errors将program文件cat到标准输出,并将错误重定向到errors文件cat program 2errors将program文件cat到标准输出,并将错误追加到errors文件find / -name *.c printcprograms 2errors用find命令在系统中找到以.c结尾的文件并且将文件列表输出到当前目录下的cprograms文件中,然后将所有错误发送到当前目录下errors 文件中l cat n ,使得输出的每行带有行号cat file1 file2 file3 :将连接文件file1,file2,并把结果放到file3中l more filename : 查看文件more s n 15 stuff:每个窗口显示15行的方式显示strff的内容,并将多个空行转化为一个空行more p G file1 file2: 检查每个文件的最后一屏l tail命令tail b number在文件的头部或者尾部,复制从number所示的数字的块处开始的文件tail c number在文件的头部或者尾部,复制从number所示的数字的字节处开始的文件tail n number在文件的头部或者尾部,复制从number所示的数字的行处开始的文件l wc l filename 输出文件的行数wc c filename 输出文件的字数wc m filename 输出文件的字符数wc w filename 输出文件的单词数l 使用可以到达主目录只输入cd ,没有任何参数也能使用用户到达主目录l tee a filename 将输出添加到一个已经存在的文件中l stree a lib 显示目录lib下目录树,-a 选项 将列出所有的文件、目录、符号链接等等,否则只列出目录vtree 不仅列出目录信息 ,还列出吃磁盘空间情况l sort t: -k4 n passwd.testsort t选项指定冒号为定界符(或字段分隔符) -k 指定希望用以排序的字段k后面可以接一个字段编号,或一对数字(一对数字用逗号隔开,排序键值由第一个字段值的起始处开始,结束与第二个字段值的结尾)使用点号字符位置,则比较的开始(一对数字的第一个)或结束(一对数字的第二个)在该字符位置处:-k2.4,5.6指的是从第二个字段的第四个字符开始比较,一直比到第五个字段的第六个字符 -n 指定数字排序 -r 将顺序反过来 -o 指定输出文件的名称 -u 去除重复的行sort names names 不会成功,应该是 sort names o names 将文件names排序并将结果返回namessort +1n data 排序时跳过第一个字段, +1意思是跳过第一个字段,类似+5就是跳过前5个字段,字段默认用空格或制表符分隔sort +2n t: /etc/passwd 用冒号分隔的第三个字段排序, 跟在-t后的字符被当做分隔符 sort t: -k3nr /etc/passwd n以整数数字比较,r倒置排序的顺序,从字段3起始处开始,以数值类型反向排序,并结束于字段3的结尾l uniq常用于管道中,用来删除已使用sort排序完成的重复记录sort |uniq | 有3个选项,-c可以在每个输出行之前加上该行重复的次数; -d选项则用户仅显示重复的行; -u仅显示未重复的行sort latin-numbers |uniq -cl diff 命令可列出2个文件的所有差异diff llsum llsum.orig-b 忽略每行末尾的空格-i 忽略字母大小写的差异-t 将输出的制表符扩展为空格-w 忽略空格与制表符l dircmp 比较目录dircmp krsort.dir.old krsort.dir.newdircmp d s a b 比较目录a,目录b -r 递归选项 -s 停止显示“完全相同的文件” -d 在不同的文件上执行diff.dircmp为每个它执 行的diff打印一个新的页l cut c 1-25,37-43 :提取每行的第1到第25个字符和第37到第43个字符-f 基于字段的提取cut ddchar ffields file dchar是数据中分隔各字段的分隔符,fields表示要从文件file中析取出来的字段cut d: -f1,6 /etc/passwd 以:为分隔符号,析出字段1和字段6l tr “:lower:” “:upper:” 将字符转换为大写选项:class: 从一种字符类型转换为另一种字符类型tr from-chars to-charstr s : 11选项s 将连续相同的字符被替换为一个字符tr s lotsaspaces把输出中多个空格替换为单个空格tr d 0-9选项d 删除掉输入流中的字符,删除所有数字l awk /pattern_to_match/ prog to run input_file_namesawk对输入行的字段起作用。字段是用空格或其他字段分隔符分开的词。默认情况下,awk使用空格作字段分隔符,也可以用-F选项指定字段分隔符,或$后面跟字段号数字。例如,输入行的第二个字段是$2.awk $3 = = “adm” print newfile文本第三个字段是否等于”adm”,若等于,则打印该行awk $3 “adm” print newfiles文本第三个字段是否大约等于”adm”, 意思是第三个字段是否包括”adm”,若是,则打印该行awk $3 “adm” print $9, $5 newfiles文本第三个字段是否大约等于”adm”, 意思是第三个字段是否包括”adm”,若是,则打印该行第9,第五字段awk F: $1 = = “root” print passwd.test在passwd.test文件中,用冒号作字段分隔符awk 使用的比较操作符 小于 =大于或等于 大于如果/pattern_to_match/不是位于中的程序之前,则对每行输入都执行该程序。ls -l|awk $9 06 print cp ,$9, ./backup tempcp.sh 根据ls列出文件名将文件移到backup目录下的shelllgrep bin passwd.test在passwd.test 中查找字符 bingrep bin passwd.test查找以bin 开头的行grep n bin passwd.test返回与查找的文本与文本在文件中的行号Grep .pic$ filelist在filelist中查询.pic结尾的行grep F if then else fi file1 file2搜索两个文件,寻找出现了4个字符串中任何一个字符串的所有行grep E Ddec|Nnov file egrep i dec|nov file搜索含有Dec 或者Nov的行grep xyz *在当前目录下的所有文件中搜索字符串xyz-c返回匹配文本的数量,而不显示文本-i查找时忽略大小写-w搜索“作为一个单词”的模式-l仅返回该文件的文件名-v仅打印出不匹配搜索模式的行l grep l R5 file1 file2 r5.filelist -l选项在有匹配发生时仅列出文件名。搜索每行包含 R5的文件,产生一个包含这些文件名的列表并将这个列表存储在r5.filelist中。grep UNIX cat r5.filelist 搜索仅限于r5.filelist 中的文件l grep c “.xx” chapter* -c 选项可寻找不包含某个模式的文件(即有零个模式出现).匹配任意单个字符*匹配任意数量的单个字符匹配在字符集 中的任意一个字符$匹配行的结尾匹配行的开头对后的字符进行转义n,m匹配就在它前面的单个字符的出现次数的范围。前面的字符也可以是一个。n会恰好匹配n次出现;n,会匹配至少n次出现;而n,m会匹配n和m之间的任意次出现()字符集中的例外()将在(和)之间扩住的模式保存到一个特殊的地方。在一行中最多可保存9个模式。它们可以用转义序列1到9替换来“重新使用”匹配中的字符+匹配前面的正则表达式的一个或多个实例?匹配前面的正则表达式的零个或多个实例AA在一行的开始A$A在一行的末尾A一行中任何位置的A$A一行中任何位置的$A一行开头的一行开头的$一行末尾的$一行末尾的$0-9除了数字以外的任何字符-0-9任何数字或者一个-0-9-任何数字,一个-,或者一个*有一个*的任何行*有一个*的任何行有一个的任何行*以一个*开始的任何行A*任何行A*以一个A*开始的任何行AA*以一个A开始的任何行AA*B以一个或多个A,后面跟着一个B开始的任何行A4,8B以4个、5、6、7、8个A,后面跟着一个B开始的任何行A4, B以4个或者更多个A,后面跟着一个B开始的任何行A4B以一个AAAAB串开始的任何行4,8有一个4,8的任何行A4,8有一个A4,8的任何行b.g第二个字母是任意字符$恰好包含这三个字符的任何行.以.(圆点)开始的任何行lsed s/abc/xyz/g file1 file1.out在文件里做简单的替换,将文件中的abc替换为xyz,全局选项g,可以保证把一行中的多处字符串都替换到sed “s/$var1/$var2” file1 file1.out在查找和替换字符串中使用了环境变量var1和var21.sed e s/abc/xyz/ -e s/lmn/rst/ file12.sed e s/abc/xyz/ -e s/lmn/rst/ file1 file1.out在单个命令中使用多重替换sed n 1,2p intro选项n只从文件中析取几行, 只显示前2行sed 1,2d intro选项d,删去指定的行,删除第1,2行sed /UNIX/d intro 删除包含UNIX的各行Sed 5d删除第5行Sed /Ttest/d删除包含test 或Test的行Sed n 20,25p text只显示文件text的第20行到第25行Sed 1,10s/unix/UNIX/g intro把intro前10行中的unix改为UNIXSed /jan/s/-1/-5/将所有包含jan的行中第一个-1改为-5Sed s/ data删除data文件每一行的前3个字符Sed s/$/ data删除data文件每一行的最后3个字符l 在path为/home 的目录下查找name为ftp的文件#find /home name ftpl find /home name ftp 在home目录下查找name为ftp的文件find /home type f print 在home目录下产生文件列表(f表示文件,b表示块指定文件,l表示符号,d表示目录)find / -empty print 在系统中搜索所有的空文件和目录find / -name *.c | wc 在系统中查询以.c结尾的文件,并把结果通过管道传给wcfind / -name *.c size +500000c print 查询系统中以.c结尾的字符数大于500,000的文件find /-size +500000c ( -name *.c o name *.a ) print 查找字符数大于500,000且以.c或.a 结尾的文件(待搜索的两种文件扩展名放在圆括号中,在打开和关闭圆括号之前,都必须加上反斜线符号。)find / -user news print 在系统中查找属于用户news的所有对象find / -user news type d perm 775 print 查找属于news且权限为775的目录find . atime +200 print 在主目录中查找最近200天未访问过的文件find /example /new/example exec grep l where are you ;搜索两个目录/example 和/new/example 下的文件(这些文件含有字符串”Where are you ”)并打印文件的名字find / (-name.out o name *.o ) atime +7 exec rm ; 删除一周内未访问的所有名为a.out 或者*.o 的文件l find . atime +5 ( -name “.o” o name “.tmp”) print 寻找以.0 或.tmp结尾and超过五天的旧文件打印他们的路径名find . !( atime +5 ( -name “.o” o name “.tmp”) ) print 寻找非以.0 或.tmp结尾and超过五天的旧文件打印他们的路径名在find命令中每个操作符的前后都要添加空格。find ./ -ls|sort k7 find ls 可以得到如ls l的输出结果,并按第7列(文件大小)排序l touch t 0703104682 /tmp/file1touch t 0804213785 /tmp/file2 (date 的格式 modyhrmiyy,月份日期小时分钟年份)find . newer /tmp/file1 ! newer /tmp/file2 print l find path operators-exec command 每个-exec 操作符以字符;结束。包含find找到的文件find . name “*.ch” exec beauty ; -printfind . type f print | xargs fgrep $12.99 /dev/nulll 由索引号删除一个名字特殊的文件, ls i 显示每个文件的索引号,将该索引号传递给findls i -i 选项显示出每个文件的索引号find . inum 6239 exec rm ;find . inum 6329 exec mv newname ;l cd projecttar cvf - . | gzip ./project.tar.gzcd .rm rf project 获得压缩档的文件列表时,就可以使用tar t 或 tar tvgzcat project.tar.gz | tar tvf - | more从档案中解压所有的文件mkdir projectcd projectgzcat ./ project.tar.gz | tar xf 若要恢复名为project/io的旧的子目录mkdir projectcd projectgzcat ./project.tar.gz | tar xf - ./iol find . ! -perm -0100 size +1 type f exec gzip v ;! perm -0100 代表非可执行文件,这样就不会压缩shell脚本和其他程序文件-type f 代码常规文件,不是目录、命名管道等-v 告知用户文件的名称以及它们被压缩了多少l cat v t e afile-v 以可打印方式来显示不可打印的字符-t和-v选项,则TAB字符被显示成I-e 用一个$字符来标识每一行的末尾。l at options timecommand 1command 2Ctrl-dat l 或 atq 查看已有的定时作业atrm 删除队列中已经存在的作业atrm - 删除用户提交的所有作业l crontab 格式如下mins hrs day-of-month month weekday cmd这些字段可以包含一个单独的数字,或由短划线分隔的一对数字(表示一个数字的范围),或者是一个由逗号分隔的数字以及范围列表,或一个星号crontab l 列出当前的crontab项crontab r 删除当前所有的crontab项l vi 常用选项光标控制h向左移一个字符H移到屏幕的第一行j向下移一行e移到下一个字的结尾k向上移一行(移到句子的开头l向右移一个字符)移到句子的结尾G移到文件的最后一行移到段落的开头1G移到文件的第一行移到段落的结尾w移到下一个字的开头L移到屏幕的最后一行b移到前一个字的开头e将屏幕上滚一行y将屏幕下滚一行b将屏幕上滚一页f将屏幕下滚一页a在光标后插入文本A在当前行尾插入文本i在光标前插入文本I在当前行前插入文本o在当前行的下边插入新行O在当前行的上边插入新行x删除光标处的字符X删除光标前的字符dw删除至下一字的开头dG删除至文件末尾的所有行dd删除当前行db删除前一个字r替换当前文本R一直替换到按下ESCcc替换当前行/text在文件中向前查找text?text在文件中向后查找textn在同一方向重复查找N在相反方向重复查找:s/oldtext/newtext用newtext替换oldtext&重复最后的:s命令yy将当前行的内容放入临时缓冲区nyy将n行的内容放入临时缓冲区p将临时缓冲区中的文本放入光标后P将临时缓冲区中的文本放入光标前u撤销最后一次修改U测试当前行的所有修改.(句号)重复最后一次修改:w保存文本但不退出vi:wq保存文件并退出vi:q!不保存文件,退出vi:e!放弃所有的修改,从上次保存的文件开始在编辑l 当你第一次调用vi时,可以设定编辑多个文件,然后丽ex命令在文件之间切换vi file1 file2编辑完成file1后,使用命令:w保存. 使用命令:n切换到下一个文件。:f可查看当前文件名。:e#切换到另一文件l f4yy (将4行文本移入缓冲区f):w (保存文件):e letter (利用:e命令进入文件letter,移动光标到插入文本的位置)fp (将从命名缓冲区f中移出的文本置于光标之下)F6yy (用大写字母给缓冲区命名,则新的文本被插入到缓冲区中原有文本的后面, 把6行文本写入缓冲区f中,这样f缓冲区中总共10行)当你给移出缓冲区命名一个字母时,就可以方便的把一段文本从一个文件移到另一个文件中去。当用:e 将一个新文件载入vi缓冲区中时。也可以利用:e在VI编辑时切换到另一个没有在命令行中指定的文件进行编辑,在切换前要用:w保存l 最后9次删除的内容都存放在缓冲区中,键入”(双引号),用数字标识缓冲区的文本,然后键入put命令“2p (从缓冲区2中恢复倒数第二次删除的内容)l 找到并显示文件中所有包含while的行- :g/while/p找到并删除文件中所有包含while的行- :g/while/d在第10行到第20行之间查找所有包含while的行,并打印出它们的行号- :10,20g/while/nu找到(并移到光标至)文件中最后一个pattern处 :g/pattern/l 在执行搜索替换命令之前查看搜索结果和确认替换命令,就可以在替换命令后加一个选项c:1,30s/his/the/gc该命令会显示字符串所在行的整行文本,该字符串也会被标上一串脱字符号若想执行该替换操作,输入y并按回车键。若不想执行操作,则按回车键即可。l /which (搜索which)cwthat 按ESC (改为that)n (重复搜索操作). (重复最后一个命令,即修改操作)l :230,$w newfile 把从第230行至文件末尾的文本保存到文件newfile中:.,600w newfile 把从当前行至第600行的文本保存到文件newfile中:340,$w newfile 把第340行至末尾的文本追加到newfile中l :g /SYNTAX/,/DESSCRIPTION/-1 mo /PARAMETERS/-1将包含单词SYNTAX的那一行和单词DESCRIPTION(/DESCRIPTION/-1)前一行之间的那块文本,使用命令 mo 移到单词PARAMETERS(/PARAMETERS/-1)的前一行。l :%s/Hhelp/HELP/g 用HELP替换所有的help 或HELP:g/$/d 删除所有的空行,该命令匹配的是一行的开头和结尾$,中间部分没有任何内容:g/tab*$/d 删除所有的空行,以及只有空格的行:g/tab tab*$/d 删除至少包括一个空格或制表符的行l Set number 打开行列号:g/very/p 查询文本包含very 的所有行:96,99!sort 若要字母顺序排序第96到第99行,只要简单地输入要过滤的文本行号,再加上一个感叹号和要执行的UNIX命令即可l 在使用一个UNIX命令时运行另一个命令。例如在vi 时使用grep命令1. 确保你vi正处在命令模式(若不确定,按ESC)2. 输入:!和UNIX命令,然后按RETURN键,例如:!grep tim /phone3. 该命令将运行grep 程序。完成操作后,vi将提示信息如下Hit return to continue按RETURN键后,就回到正在编辑的地方.l Vi 缩写词:ab ns the Nutshell Handbook 将短语the Nutshell Handbook缩写为ns,输入ns后按非字母数字字符键可将缩写扩展:unab abbr 取消缩写:ab 列出当前已定义的缩写词l 整理文本行把光标移到第一行,在命令模式下输入5!fmt 用实用程序fmt过滤5行文本!fmt 格式化文本段落:%!fmt 格式化全文l 查看自己设置的环境变量是使用env命令Echo $HOME 环境变量前的”$”表示将变量的值送到标准输出l 在后台运行一个命令,就必须在命令行的末尾加上&,该命令就将在后台,并立即返回命令提示符time find /usr name *.c 在/usr 目录下查找所有以”.c”结尾的文件,这需要花一定的时间。在find命令前加上time命令,可以查看运行find命令将花多少时间time find /user name *.c cprogs 2 err &在后台运行该命令后,将在括号中产生一个作业号和一个进程id(PID),第一个括号丽的数是作业号,第二个括号里的是进程ID.可使用jobs命令输出所有作业的列表和它们的状态。可使用fg 命令,并在其后加上”%”符和作业号,就可以使作业在前台运行,使用bg命令,并在其后加上”%”符和作业号,就可以使作业在后台运行。 要结束一个作业的运行,可以使用kill命令,并在其后加上”%”符和作业号。l 可使用history命令来浏览最近执行的命令;History 0 可输出历史列表中所有命令的完整列表按下Escape 和k键将取回最后一次运行的命令l 在shell 中 #!/bin/ksh#This is a simple command file to display todays dateecho “Todays date is”date +%x第一行指出将使用ksh,若使用的是Bash,Cshell或其他任何shell,就应该以这种方式指定ksh的位置。要确保所指定的绝对路径是所使用的shell路径。 注意#!必须是文件的头两个字母命令行中位于#之后的所有字符都作为注释(第一行中的#!是非常特别的例外)date +%x 仅产生今天的日期l shell变量 不必预先定义和初始化而直接使用他们。给shell变量赋值,只要输入如下内容 name=value ,注意在”=”前没有空格echo “My name is $myname”echo “$stringdoo” 可以用大括号把变量名和周围的字符隔开l #! /bin/kshd=date +%xecho “Todays date is $d” date 命令旁的后单引号告诉shell去执行date 命令,将输出结果赋予变量d.也可以写作echo “Todays date is date +%x”l #! /bin/ksh# program : readtestecho “Please enter your name: c”read nameecho “Hello, $name”echo “Please enter your two favorite colors: c”read color1 color2echo “You entered $color2 and $color1”echo “Where are you from? ”readecho “Im sure $REPLY is great”c 将光标停留在本行中若用户键入的字数少于read命令所期望的字数,则其余的变量将会赋予空值。若用户键入太多的字,则将所有多余的字赋给最后一个变量。用这个技巧可以将整个输入行赋给一个变量在read中使用内置变量REPLY. 使用REPLY ,则输入行的内容将赋给变量REPLYl if 命令格式if thenelsefi实例Echo “Continue? c”read ansif “$ans” = “n”thenecho “Goodbye”exit fi test命令是在使用if命令时最常用的命令。“$ans” = “n” 是test命令。test命令的语法要求在 周围留有空格,要注意在返回值所存变量$ans周围的双引号。test命令条件字符测试 “$a” = “string” $a 和 “string” 相等时为真 “$a” != “string”$a 和 “string” 不相等时为真 -z “$a” $a 是空值(零字符)时为真 -n “$a” $a 不是空值时为真数值测试 $x -eq 1 $x 等于1时为真 $x -ne 1 $x 不等于1时为真 $x -lt 1 $x 小于1时为真 $x -gt 1 $x 大于1时为真 $x -le 1 $x 小于或等于1时为真 $x -ge 1 $x 大于或等于11时为真文件测试 -d $file $file 是目录时为真 -f $file $file 是文件时为真 -s $file $file 是大于0字节的文件时为真 -r $file $file 是可读文件时为真 -w $file $fike 是可写文件时为真 -x $file $file 是可执行文件时为真-a逻辑与运算-o 逻辑或运算!逻辑非运算 “$interactive” = “TRUE” o d $file 只有$interative变量为真或$file是一个目录是,测试语句才为真l 在shell程序中,可以直接用特殊变量$0-$9 获得命令行中的头10个字$0 命令名,$1 第一个参数, $2 第二个参数, $9 第9个参数$# -命令行参数的数目, $* -用空格分隔的所有命令行参数(不包括命令名)# If we dont have exactly one command-line argument,# write an error and exitif $# -ne l then echo “Useage: $0 pattern” echo “Some pattern matching the processes to kill” echo “must be specified” exit 1 # Exit 1 terminates the program and tells the # calling shell that we had an error.fil echo “Do you really want to remove all of files? c ”read ans if $ans: -n = y thenrm rf *fi$ans: -n语句检测$ans的值,若$ans中有值的话,就在命令行中使用该值。若用户只在提示下按回车键,那么$ans的值为空。在这样的情况下,若进行比较,那么将$ans: -n 赋值为n另一个经常使用的修饰词为$var: =defaultl echo “Do you want to continue? (y/n) c”read ans case $ans iny|Y) echo “Continuing” ;n|N) echo “Done,Goodbye” exit ;*) echo “Invalid input” ; esac 符号; 将模式的命令列表与下一种模式分开。在所有的情况下,当遇到;时,程序就会跳至esac 符号*,若不与其他任何模式匹配,就执行该选项。在用户键入一个无效的输入时,就执行该默认操作l for name in Ralph Norton aliice edith archiedo echo $name cp /tmp/.kshrc.new /users/$name/.kshrcdone使用rcp命令将几个文件复制到数台计算机里若有许多需要通过循环来完成的任务,而不想在命令行继续输入,那可以改为在文件中输入。可使用cat命令和命令替换生成list_of_items:for i in cat important_filesdo #do something with each of the files listed in the #important_files filedonefor 循环最常用于命令行参数列表($*)for name in $*do if ! f $name a ! d $name then echo “$name is not a valid file or directory name” else # do something fidonel du 命令可以显示目录占用磁盘空间情况l shell 赋予初值if -z “$VAR”then VAR=”some default”fi -z “$VAR” & VAR=”some default” ! “$VAR” & VAR=”some default”l 计划cron 任务格式:minute hour monthday month weekday user name commandcrontab 文件中有许多选项可指定minute、hour、monthday、month、weekday等来执行一个任务。可以在某字段中输入一个条目,然后一个空格,在一个字段中有多个条目时用逗号分隔,两个条目之间用破折号连接表示一个范围,使用星号则表示这个字段的条目可以是任何符合这个字段要求的条目。 cat listing* * * * ls l / /root/listing.out crontab listing (使用crontab命令来安装listing文件) crontab l (查看已安装的文件) crontab r (卸载已安装的文件) 00 2 * * 6 full backup command (每周六2:00 进行全量备份) 15 12 * * 1-5 incremental backup command (周一到周五12:15 进行增量备份)l 只需要按计划的时间运行某个命令一次,则可使用at命令$ at 9:00PMat find /home/martyp name core exec rm ;at type d (control d)$在输入at命令及时间后,会出现”at”提示符让你输入命令。然后输入d会出现下一个提示符,回到你平常用的shell 提示符l iostat统计I/O 和CPU的情况timsZTAETIMS1:/tims$ iostatSystem

温馨提示

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

最新文档

评论

0/150

提交评论