文档介绍:Prerequisite一、Linux命令1、文件操作列出目录内容:ls,dir,vdir创建特殊文件:mkdir,mknod,mkfifo文件操作:cp,mv,rm修改文件属性:chmod,chown,chgrp,touch查找文件:locate,find字符串匹配:grep(egrep)其它:pwd,cd,ar,file,grep,tar,more,less,head,tail,cat2、进程操作ps,kill,jobs,fg,bg,nice3、其它who,whoami,passwd,su,uname,…man二、Linux工具编辑工具:vi,emacs编译、链接:gcc(piler->pilerCollection)调试:gdbmake命令版本控制工具:CVS等三、编程语言1、High-levelLanguage:C/C++,Java,Fortran…2、ELFbinaryformat:ExcutableandLinkableFormat(工具接口标准委员会(TIS)选择了正在发展中的ELF体系上不同操作系统之间可移植的二进制文件格式)四、GCC使用-E:只对源程序进行预处理(调用cpp预处理器)-S:只对源程序进行预处理、编译-c:执行预处理、编译、汇编而不链接-ooutput_file:指定输出文件名-g:产生调试工具必需的符号信息-O/On:在程序编译、链接过程中进行优化处理-Wall:显示所有的警告信息-Idir:指定额外的头文件搜索路径-Ldir:指定额外的库文件搜索路径-lname:链接时搜索指定的库文件-DMACRO[=DEFN]:过程:预处理、编译、汇编、链接GDB使用设置断点、监视变量值、单步执行、修改变量值make[-ffilename][targetname]Shell编程Shell概述1、Shell用户和操作系统之间的接口、作为核外程序而存在2、Shell的双重角色1)、命令解释程序(1)Linux的开机启动过程:加载BIOS;读取MBR(MasterBootRecord);BootLoader;加载内核;用户层init依据inittab文件来设定运行等级;;启动内核模块;执行不同运行级别的脚本程序;执行/etc/;执行/bin/login程序,进入登录状态(2)进程树:进程树是一种进程关系表示方法。由父进程和子进程两部分组成。(3)Shell的工作步骤:打印提示符;得到命令行;解析命令;查找文件;准备参数;执行命令2)独立的程序设计语言解释器(1)KISS(KeepItSmallandStupid)(2)Reusabletools(3)Redirectionandpipe二、创建和执行Shell程序1、编写脚本文件(注释、退出码(exit0))2、执行脚本文件方法1:$shscript_file方法2:chmod+xscript_file(chown,chgrpoptionally)./script_file方法3:sourcescript_file,,继承父Shell的环境变量,用于执行刚修改的初始化文档,2、这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务。由于是在子shell中执行,脚本设置的变量不会影响当前shell。3、source的程序主体是bash,脚本中的$0变量的值是bash,而且由于作用于当前bash环境,脚本中set的变量将直接起效三、Shell程序设计的语法1、变量1、用户变量:(1)定义:用户在shell脚本里定义的变量(2)赋值和使用:var=valueecho$var(3)read命令:(read-p"Enteryourname:"name)readvar或readREPLYvariable(环境变量REPLY中包含输入的所有数据,可以像使用其他变量一样在shell脚本中使用环境变量REPLY,当然,在引用的时候不要忘记$)-s:默读、在输入密码时用的到-t:计时输入,后接等待秒数(4)引号的用法:双引号作用:$,\,`这些字符的特殊含义还是存在单引号:忽略所有的特殊字符2、用户环境(1).bash_profile,.bash_logout,.:用户登录时被读取,::登录退出时读取执行(2)Alias:alias[别名]=[指令名称],若不加任何参数,则列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/