已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UNIX Shell简介一、 UNIX命令简介。UNIX是用C语言编写的操作系统,是最早出现的操作系统,适用于所有的机器,在稳定性和安全性方面一直很好。到现在有许多版本,如Sco UNIX、Sys V、FreeBSD、Solaris、Linux等,现在许多的大型机都是采用UNIX操作系统。1. UNIX系统的操作采用命令行的形式,与DOS系统的命令相似,但是UNIX命令要强大的多,并且是区分大小写的。基本格式如下: Command 参数1 参数2 参数3 参数n2. UNIX命令提示符:在命令行下,操作系统会显示一个提示符。$表示普通用户;#表示超级用户。3. 在后台运行程序(&)命令:有的程序运行时间较长,用户得等待很长时间,为了避免浪费等待时间,可以让这个程序在后台执行,方法是在运行程序时,在程序后面加上字符&,这样运行后就会出现一个进程号,接着是提示符,用户可以执行别的操作,而程序在后台继续运行。在后天运行的程序的输出仍然会输出到屏幕上,我们可以利用重定向操作来输出到文件上。例如:$ find . name abc.txt -print 10780 (这个数值表示程序运行的进程号)4. 可以在一行中运行多个命令,各个命令之间用分号;分开。二、 文件相关的命令。1. 显示文件名信息命令(ls):其中ls是标准格式显示;ls l是详细格式显示文件名信息。详细格式为:下面让我们来分析一下该命令所得结果的前面两行,看看都包含了哪些信息:total 4232:这一行告诉我们该目录中所有文件所占的空间。- rwxr-xr-x:这是该文件的权限位。如果除去最前面的横杠,这里一共是9个字符,他们分别对应9个权限位。通过这些权限位,可以设定用户对文件的访问权限。其中r代表可读;w代表可写;x代表可执行,出现在r、w、x位置上的横杠(-)表示相应的访问权限被禁止。这9个字符可以分为三组:r w x:头一组表示本文件所属用户对这个文件的权限,这里表示有读、写和执行的权限。r - x:第二组表示与文件所属用户同组的用户对这个的权限,这里表示有读和执行的权限。r - x:第三组表示其他用户对这个的权限,这里表示有读和执行的权限。最前面的横杠的意义:d 目录。l 符号链接(指向另一个文件,相当于Windows的快捷方式)。- 普通文件。1 该文件链接的数目(链接是相当于Windows系统的快捷方式)。root 表示当前文件的属主(即用户名)。root 文件的属主所在的组(想同组里面可以又很多用户)。3578 用字节来表示的文件长度,记住,不是K字节!Oct 14 04:44 文件的更新时间。dmesg 文件名。2. 改变文件执行权限(chmod):格式:chmod 权限位 (1) 符号模式:chmod命令的一般格式为:chmod who operator permission filenamew h o的含义是:u 文件属主权限。g 同组用户权限。o 其他用户权限。a 所有用户(文件属主、同组用户及其他用户)。operator的含义:+ 增加权限。- 取消权限。= 设定权限。permission的含义:r 读权限。w 写权限。x 执行权限。 例如,假设原先的权限为:rwxrwxrws命令结果解释chmod a-x myfilerw- rw- rw-收回所有用户的执行权限chmod og-w myfilerw- r- r-收回同组用户和其他用户的写权限chmod g+w myfilerw- rw- r-赋予同组用户写权限chmod u+x myfilerwx rw- r-赋予文件属主执行权限chmod go+x myfilerwx rwx r-x赋予同组用户和其他用户执行权限(2) 绝对模式:绝对模式就是用2进制位表示权限位表示权限位r w xr w -r - xr - - w x- w - - x- - -二进制1 1 11 1 01 0 11 0 00 1 10 1 00 0 10 0 0十进制22+21+2022+2122+ 202221+20212076543210(3) 对子目录下的文件一起设置(参数:R):例如:chmod -R /home/rendali/*3. 改变文件的属主命令(chgrp):格式为:chgrp -R 用户名 。其中-R表示对目录下的文件一起设置。4. 文件名统配符(*和?):*可以表示任何多个字符;?任何一个字符。例如cobis*表示以cobis开头的任何文件;COBISA?0表示文件名有8个字符,其中第7个字符为任何字符的文件名。5. 修改文件名命令(rename),格式:rename 。6. 拷贝文件命令(cp)(参数-r是拷贝包括子目录下的所有文件):cp 7. 删除文件命令(rm):rm 8. 文件查找命令(find):find -name -print9. 文件移动和文件名改名命令(mv):格式:mv 10. 建立文件夹命令:mkdir 11. 删除文件夹命令:rmdir (如果文件夹下面有文件或者子文件夹,则不能删除文件夹,可以用rm -r命令删除非空的文件夹)12. 进入或者退出文件夹命令(cd)进入文件夹:cd 返回到当前文件夹的上一层:cd .返回到最上层文件夹:cd /13. 显示当前文件夹命令(pwd)14. 显示文件内容的命令(cat命令):cat显示所有信息,如果信息太长,有多屏,则可以用cat |more分屏显示,按空格显示下一屏信息;按回车显示下一行信息;按字符Q退出。另外,在显示状态下可以按/字符串来查找字符串。15. 在文本文件或者文本输出中查找字符(grep):格式为:grep “字符” 在文本文件中查找字符:$grep “WRI*” AAASED25*在文本输出中查找字符:$cat AAASED25* | grep “WRI*”三、 其它方面的命令。1. 执行程序:UNIX执行的方法是在命令行提示符下输入可执行程序,回车即可。如果程序带参数,则参数和程序之间用空格分开。文件名+回车./文件名+回车(执行当前文件夹下的程序)2. 计算器命令(bc):输入bc后可以输入公式,回车后显示结果。3. 修改密码命令(passwd)。4. 显示文件的最后部分命令(tail):一般显示文件的最后10行,也可以用-n参数显示最后n行,-c参数显示最后c个字符,例如:$tail -n 20 AAASED25.PCO(显示最后20行信息)5. 显示一个文件的头几行(head):格式与tail命令相同。6. 清除屏幕字符命令(clear):7. 查询命令类型(type):查询命令是否是系统命令,还是应用程序,如果是应用程序,还显示应用程序的完整路径名。 $type cp cp is /bin/cp8. 命令:当UNIX看到 myfile NEWFILE现在可以输入一些文本,结束时只要在新的一行键入NEWFILE即可,这样就创建了一个名为myfile的文件,该文件中包含了一些文本。9. 帮助命令(man):可以用man 的方法察看具体命令的用法。例如:$man date10. wc:显示文件中的行数、字符数、单词数: -l:显示文件中的行数 -c:显示文件中的字符数 -w:显示文件中的单词数11. 显示登录的用户(who)。12. basename:可以从路径中分离出文件名,例如: $ basename /home/rendali/myfile myfile13. dirname:可以从路径中分离出除文件名文件名以外的路径部分,例如: $ dirname /home/rendali/myfile /home/rendali14. diff:比较两个文件的不同,-I参数表示忽略大小写。15. dircmp:比较两个文件夹,-s参数表示不显示相同的文件。16. file:显示文件是什么类型,是应用程序,还是脚本程序,还是文本文件。格式:$ file 17. nl:显示文件的行号。在打印源代码是很有用。四、 shell变量和命令:(shell文件就是把多个命令合并成一个文本文件,称为脚本程序,批量执行操作,这个shell文件必须是可读和可执行的权限。脚本程序执行时需要指定解释程序,一般是#!/bin/sh程序或者#!/bin/csh程序)。Shell脚本象编程语言一样,有变量、分支语句、循环语句和函数。1. UNIX的命令区分大小写。2. 注释行:如果每行的第一个字符是“#”的话,则这一行是注释行。但是对于第一行“#!/bin/sh程序或者#!/bin/csh”,则不是注释行,这一点要注意。3. shell变量和编程语言的变量一样,可以保存变化的值(字符值要用双引号扩起来)。(1) 变量的付值:变量名=值,例如:IKO_RUN_HOME=”/home/rendali”。 DOLLAR=99(2) 变量的引用:$变量名,或者$变量名,(3) 例如:echo $ IKO_RUN_HOME ,则显示/home/rendali echo $ DOLLAR ,则显示99(4) 清除变量(unset):(5) 显示所有变量(set):(6) 变量结合:连个变量结合在一起,例如:$变量1$变量2$变量3(7) 位置变量参数:向应用程序或者脚本程序传递参数,一般最多可以有九个可以被访问。$0$1$2$3$4$5$6$7$8$9程序名OneTwoThreeFourFiveSixSevenEightNine程序和参数之间都用空格或者TAB分开。例如上边显示$5的值就是“Five”。(8) 特定的变量参数:$#传递到脚本的参数个数$脚本运行时的进程号$?显示最后命令的返回状态值4. 引号:包括双引号(“”)、单引号()和反引号()。双引号(“”)引用字符串(不包括$、字符),例如$ MYDATE=”date”$ echo “$MYDATE”(或者echo $MYDATE)date单引号()与双引号类似,可以嵌套在双引号字符串里,例如$ PRETTYGIRL=girl echo “The PRETTYGIRL is beautiful”The gril is beautiful反引号()Shell将反引号中的内容作为一个系统命令,并执行其内容。$ MYDATE=date$ echo $MYDATEWed Nov 25 16:48:50 GMT 2004反斜线()如果要在字符串中显示&、$、*、”、+、|、?等字符,可以在这些字符前面加上反斜线,则这些字符被当成普通字符显示出来。5. 条件测试:脚本中条件判断的值。(1) 测试文件状态:关键字意义关键字意义-d是否是目录。-s文件长度是否大于零。-L是否是连接文件。-w是否可写。-r是否可读。-x是否可执行。(2) 格式:test condition或者 condition ,使用方括号时要注意两边加上空格。例如:$ ls l score.txt $ -rw-r-r- rendali cobol 12803 Nov 23 10:59 score.txt $ -w score.txt (返回值为0-正常) $ test -w score.txt(返回值为0-正常) $ -x score.txt (返回值为1-错误,没有执行的权限)(3) 条件表达式中的逻辑操作:-a:逻辑与操作,例如:条件1 -a 条件2,则条件1和条件2都为真,则表达式就才为真,否则为假。-o: 逻辑或操作,例如:条件1 -o 条件2,则条件1和条件2只要有一个为真,则表达式就为真,否则为假。!:逻辑否操作,例如:!条件,如果条件为真,则表达式是假;如果如果条件为假,则表达式是真。(4) 字符串变量测试 =两个字符串是否相等!=两个字符串是否不等-z是否是空字符串-n是否是非空字符串(5) 数值变量测试:数值变量1 数值操作符 数值变量2-eq数值是否相等-ne数值是否不等-gt数值变量1是否大于数值变量2-lt数值变量1是否小于数值变量2-le数值变量1是否小于等于数值变量2-ge数值变量1是否大于等于数值变量2(6) 两个条件表达式的用法,用以对方括号,例如:条件表达式1 逻辑操作符 条件表达式2五、 常用shell语法。1. 脚本第一行总是以#!/bin/sh开始,这段脚本通知shell使用系统上的Bourne shell解释器。2. 任何脚本都可能有注释,加注释需要此行的第一个字符为#,解释器对此行不予解释执行。3. 脚本返回状态(exit n):n为返回状态值,数值型。4. if then else fi语句:if语句测试条件,测试条件返回真(0)或假(1)后,可相应执行一系列语句。 if 条件1then 命令1elif 条件2then 命令2else 命令3f i (if语句必须以单词fi终止;then语句必须放在新行,或者跟if语句在同一行,但是用分号;隔开)。5. 空命令用法(:):如果条件语句中某一个条件什么也不做,可以使用“空命令(:)”,“空命令”永远为真 例如:if 条件1 then命令1 else : fi6. $loop变量:循环指定参数,shell中例如第一次引用$loop表示$1,第二次引用$loop表示$2;也可以设定loop的值,例如loop=2,则$loop代表$2。7. case分支命令,语法:case 值 in 模式1)命令1; 模式2)命令1; *)命令1; esac每一个模式以右括号结束,取值可以是变量或者常量,命令一直执行到;行结束,如果没有匹配,则用*匹配(相当于其他情况)。另外可以使用以下特殊字符: *:匹配任意值。 ?:匹配单一字符。 .:匹配范围中的值。 |:“或”命令,即表示A值或者是B值。8. for循环命令,语法: for 变量名 in 列表 do命令1命令2 done9. until循环命令(循环至少执行一次),语法: until 条件命令1命令2 done10. while命令(当条件为真时才执行循环体),语法: while 条件命令1命令2 done11. break语句和continue语句:break语句是调出循环体;continue语句不是跳出,而是提过循环体中剩余的语句,直接执行下一回循环。12. 重定向符:表示输出,例如把显示信息输出到文件:$ ls l /home/rendali/mydirinfo.txt,如果文件不存在,则创建;如果已经存在则覆盖原先的文件;基本同上一个命令,差别是输出到末尾;表示输入:例如把文件的内容作为命令的输入。13. 管道命令(|),用法:命令1 | 命令2。以命令1的输出作为命令2的输入。例如: $ps -ef | grep named 第一个命令是显示系统的所有进程,第二个命令是从第一个命令的输出中查找包含named的行,因此结果是指显示包含named的进程信息。六、 shell函数:可以把一些重复使用的代码做成一个模块,即函数,然后调用这个函数。函数在使用前必须先定义,因此通常把函数的定义放在脚本的前面。1. 函数有两部分组成,即函数名和函数体,例如:函数名()函数体2. 参数的传递:象一般脚本程序一样,使用特殊的变量$1、$2、$3、$9。3. 函数的返回值,分三种情况:(1)可以一直执行到函数结束,然后自动返回,这是函数的返回值是函数最后一条命令的返回值;(2)使用不带参数的return语句,则函数的返回值为这条语句前面一条命令的返回值,并且return语句后面的语句不执行。(3)return语句后带数值型参数,表明函数返回状态。通常0表示正常结束;1表示异常结束。4. 可以用if语句等判断函数的返回值,也可以把返回值付给变量,例如:(1) if 函数名 = 0then命令 fi(2) 变量名=函数5. 把函数放入文件中:可以把函数定义放在一个脚本文件中,在脚本程序中引用这个函数文件,然后就可以使用这些函数了(函数文件的第一行也要用#!/bin/sh这句话),脚本中引用格式如下: . 另外,shell变量也可以定义成一个单独的文件,像函数文件一样,格式同函数文件一样。也可以把变量和函数混合放在文件中,由shell程序引用。6. shift命令:把传递给脚本的参数向左移动一位,例如,如果有5个参数,$1$5,执行一遍shift命令后则变成4个参数,并且现在的$1的内容是原先$2的内容。使用shift命令可以去除脚本只能使用9个参数的限制。7. 命令行输入的最后一个参数:shift expr $# -2,即shift 移动位数。8. 脚本的调试:(1) 可以使用echo命令,在一些部分显示信息,可以知道脚本值型到了哪里。(2) 可以使用set命令: set -x:显示所有命令及其参数,可以看到执行的每一条语句。 set +x:取消上一条的功能。七、 vi编辑器的使用,vi编辑器存在于所有的UNIX系统中,因此掌握好他的使用方法式很重要的:1. 格式:vi 2. 有三种模式:命令模式(刚进入vi程序时,或者在编辑模式或者命令行模式按esc键返回到命令模式)、编辑模式(插入或者修改时的状态,可以输入编辑的内容)、命令行模式(完成一些特殊的操作)。3. 在命令模式下,可以使用以下的功能键:(1) +或Enter:把光标移至下一行第一个非空白字符;(2) -:把光标移至上一行第一个非空白字符;(3) 0:移动到当前行的行首;(4) $:移动到当前行的行尾;(5) .:表示当前行;(6) H:把光标移到屏幕最顶端一行;(7) L:把光标移到屏幕最底端一行;(8) M:把光标移到屏幕中间;(9) Ctrl l:重新显示屏幕当前内容;(10) Ctrl g:取得正在编辑的文件的有关信息;(11) Ctrl b:向上滚动一页,相当于Windows的PageUp;(12) Ctrl f:向下滚动一页,相当于Windows的PageDown;(13) Ctrl + e:屏幕向下滚一行;(14) Ctrl + y:屏幕向上滚一行;(15) x:删除光标所在位置的字符;(16) dw:删除光标所在的单词;(17) d$或者D:删除光标开始到行尾的字符;(18) dd:删除当前行;(19) J:把下一行内容添加到本行末尾;(20) u:恢复刚才的操作,相当于Windows的Undo操作;(21) :改变光标所在字符的大小写;(22) a:在光标后添加字符,按esc键退出添加状态;(23) A:当前行尾添加字符,按esc键退出添加状态;(24) i:在光标位置前插入字符,按esc键退出插入状态;(25) I:在当前行首插入字符,按esc键退出插入状态;(26) o:在光标所在行后插入一空行;(27) O:在光标所在行前插入一空行;(28) cw:改变光标所在单词;(29) dw:删除光标所在单词;(30) r:替换字符;(31
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锅炉司炉安全责任制培训课件
- 2026安丘教编面试题目及答案
- 电气设备安全管理规范培训
- 任务二团购活动策划
- 危险化学品配送驾驶员安全规范培训
- 运输安全质量标准化检查标准及评分办法培训
- 工程项目拆迁审批流程
- 公司保安保洁外包合同
- 甲醛治理项目外包合同
- 汽车接送业务外包合同
- 护理教育学课件下载
- 2026届江苏省南京市高三二模英语试题(含答案和音频)
- 2026版公司安全生产管理制度及文件汇编
- 解读2025新版职业病分类和目录12大类135种
- 2026形势与政策课件中国风范 大国担当-在世界变局中推动构建新型大国关系
- 12.2 跨学科实践:制作简易杆秤-课件(内嵌视频)2025-2026学年物理人教版八年级下册
- 2026年中国邮政集团新疆维吾尔自治区分公司招聘笔试参考题库附带答案详解
- 汉俄标题语言的多维对比与解析
- 2026年精神分裂症诊疗与康复指南课件
- 2026中国融通商业服务集团有限公司招聘笔试备考题库及答案解析
- GA/T 2336-2025法医临床学人体体表损伤检验规范
评论
0/150
提交评论