已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编辑器:vi编译器:GNU C/C+编译器gcc /有语法错误,编译时会检查出,并报错调试器:应用比较广泛的是gdb/能调试程序逻辑错误,调试结果不对啥的函数库:glibc /功能模块,供调用系统头文件:glibc_header/后缀为h,声明引用函数库怎么安装gcc/gdb,安装linux时选开发工具图形开发界面GNOME/KDE软件开发(图形库)IDE(集成开发环境的简称)Kylix/号称linux下的dephi,这类与VB差不多,快速开发器Kdevelop KDE里就有 红旗的开发人员用的比较多RHIDE /类似Troub c 大陆用的少GNU是开放组织gcc是GNU推出的工具.c源代码文件 .h程序所包含的文件.o编译后的目标文件.s汇编原文件.so 共享文件Gcc depond on (cpp,binutils,glibc,glibc-kernheaders,glic-common,glibc-devel,gcc,make等rpm包)查看版本号Glibc ls /lib/libc-*Gcc gcc versionC至少且只有一个main函数是程序的入口注释/* */多行/单行函数的开始与结束n/换行C程序包括3部分,可执行文件,包含文件/usr/include/*,库文件/usr/lib/*lLinux opensystem 功能,命令解释,进程,内存管理,输入/输出,文件管理Linux 优点,开放性,多用户,多任务,出色的稳定性和速度性能,丰富的网络性能,可靠的系统安全,可移植(适用于大多数操作计算机平台)学到3-01linux基础的一半启动引导程序/etc/lilo.conf /etc/grub.conf /多系统引导时,可设置默认启动的系统等控制启动模式/etc/inittab(图形/文本登陆)文件系统配置/etc/fstab/etc/profile增加环境变量等(修改path等)/如配置java/j2ee开发环境/etc/ftp* /ftp的配置文件/etc/httpd /web服务器的配置文件/etc/ssh* /ssh的配置文件在/etc/inittab文件里停止系统 init 0 halt poweroff shutdown重启系统 init 6 reboot文字界面启动 init 3图形界面启动 init 5单用户模式 init 1 init single用户的默认主目录/home/usernameUseradd username 创建新用户Passwd username 添加密码/etc/passwd 系统能识别的用户清单/纯文本显示加密了得口令,普通用户可读/etc/shadow 超级用户才能读,用于保护加密口令的安全/隐藏口令/lib 系统所用的库 /如c程序库/lib/modules/2.4.20-8/kernel/drivers /驱动模块/usr/lib/ 应用程序使用的库 /如mysql的apil光驱的装载Mount -t iso9660 /dev/cdrom /mnt/cdromMount -t 文件类型 设备文件 挂装目录/一般-t 文件类型可以省略卸载Umount /mnt/cdrom软驱的使用Mount t fstype /dev/fd0 /mnt/floppyInfo 查看命令Man查看详细或命令后跟 -helpLinux源代码l Usr目录下用于几乎所有的命令程序系统管理的命令语言的头文件标准包含文件库文件和数据文件本地安装的软件共享文件和数据l Var目录下变量的缩写的文档目录网页等文件目录系统运行时随时改变的文件程序的可变数据日志文件邮件目录临时目录lMount 挂载分区硬盘分区情况df -h 硬盘分区的使用情况du -sh /sk 目录占用空间uname -a 所用版本号rm -r -f /递归删除-f 为不提示全部文件包括隐藏列出包括子目录的文件(默认就是这样的)-d不递归(只显示目录,不显示其下的文件)More /less /cat 查看文件内容Mv Cp -f 直接覆盖提示是否覆盖递归(用作目录)用ls -l 查看文件类型属性以“开头普通文件表示文本文件和二进制文件属性以“开头文件夹表示目录文件属性以l“开头链接文件表示创建的文件特殊文件,设备文件(表示块文件)或(字符文件)或(管道)开头文件类型对应颜色配置文件:可以修改l 当系统非正常关机,可能无法进入系统,这时可以执行修复磁盘选项设备名制定要检查的文件系统类型模拟显示,并不真正修复修复时需要用户确认p自动修正安全地更正并且不会导致数据丢失的问题一般使用fsck -p -t ext2 /dev/hda2注意:应该先卸载文件系统,再检查。l 查找Find 路径选项Find /etc -name(也可以是-size,-type) 文件名或类型或参数-n /显示匹配行号-I /忽略大小写-r /递归查找看到,15分钟记录文件的信息,通过索引节点存储 ls -i能看节点号LnLn -s /home/log /tmp/log (目录要加s参数)Ln /home/log/123.log /tmp/log/123.log Chmod 750 750的解释RwxrwxrwxOwnergroupothersRwxr-x-111101000750/就是授权人 有读写执行的权利,组 有读和执行的权利,其他用户 没有任何权利/那777就是所有人都有读写执行的权限Diff *找出两个文本文件的差异*diff 参数 *-w 忽略所有空格差别*-I 忽略大小写Cmp*比较任意两个文件*cmp para 标准输入文件*键盘称为标准输入文件*Linux中,所有的打开文件,包括标准文件,都被赋以一个称为文件描述符的数。文件描述符0被赋给标准输入文件标准错误文件*监视器又是标准错误文件*文件描述符2赋给标准错误文件标准输出文件*监视器称为标准输出文件*文件描述符1被赋给标准输出文件网络主要命令IfconfigPingRoute -nNetstat 应用软件tar unix系统打包工具rpm RedHat公司提供的软件包封装格式dpkg Debian提供的软件包封装格式备份格式介绍Tar cvf home.tar /homeTar czvf home.tar.gz /homeBzip2 filename -filename.bz2Bunzip filename.bz2Gzip/gunzipZip/unzipRar/etc 配置文件/usr 用户文件/var 变量/日志等 /var/spool 邮件/bin 系统命令/lib 系统库/usr/lib 用户库/usr/etc 用户配置文件/boot 启动文件或系统初始化文件/etc/grub.conf或别的工具如lilo(lilo.conf)系统启动引导文件修改登陆方式,文件/图形 /etc/inittab Id:3 文本登陆Id:5 图形登陆/etc/profile 环境变量/mnt/cdrom/media/derom/dev看完3-5Info *Man * -helpFidsk -l 显示分区情况System config lvmDf -hDu -sh Fsck 修复,登陆不进系统时用,开机情况下,一般不能用Find /etc -name grub.conf 查看命令More LessCatCat filename “相反Gcc filename.cGcc -o filename.o filename.c./filename.out(执行)Shell概述Bash csh x-window 等都会和内核交互(kernel)Echo创建变量 =应用变量 =$variable2变量相当于一块内存空间读取值给变量Read rootlocalhost 123# read filenamezhaochunrootlocalhost 123# echo $filenameZhaochun局部变量:当引用shell时,只有创建它的shell能够知道变量的存在全局变量:各用户都可以用,各shell都知道他的存在 export 设置环境变量:特殊的全局变量,shell程序回按照环境变量去查有没有相关的可执行文件,可以写在.profile文件里面,启动的时候自动export#vi .profile /添加 PATH=$PATH:/mypath(在原path后加mypath) export PATH rootlocalhost 123# echo $PATH /搜索可执行文件的变量,以:号分割/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binShell变量设置的使用哪种shell,种类有,等可以用查看环境变量,看出来在单个命令中执行多个命令的另一方法(非)是通过命令替换 rootlocalhost 123# echo the date is datedate上用的是反引号the date is 2008年 04月 21日 星期一 17:07:40 CSTexpr 命令:用于求值算术表达式,该命令的输出是被送到标准输出,经试运算不能带括号rootlocalhost 123# expr 4+5没有空格不会计算,少空格认为是字符串4+5rootlocalhost 123# expr 4 + 5一定要有空间9rootlocalhost 123# expr 10 / 5 + 24算术展开$(expression/表达式)rootlocalhost 123# a=$(1+5)rootlocalhost 123# echo $a6rootlocalhost 123# a=$(1+5*10)rootlocalhost 123# echo $a51rootlocalhost 123# a=$(1+5)*10)rootlocalhost 123# echo $a60算术例子#vi callpendingecho “Please enter the total number of queries reported today.”read totalqueriesecho “Please enter the number of queries answered.”read answeredpending=$(totalqueries-answered)echo “Number of calls pending = $pending”#chmod +x callpending条件执行test 和命令求职表达式,并返回()或#vi test.shecho “Please enter score:”read scoreif test $score -lt 80thenecho “Bad!”elif test $score -ge 80 -a $score -lt 90then echo “good!”else echo “very good!”fiif构造test 串测试(字符串),文件测试(检查文件的状态)数值测试:-eq:等于则为真,-ne:不等于则为真,-gt:大于则为真,-ge:大于等于则为真-lt:小于则为真,-le:小于等于则为真字符串测试:= 等于则为真 != 不相等为真 -z 字符串长度为零则为真 n 字符串长度不为零则为真文件的测试:-e 如果文件存在则为真 -r 如果文件存在并可读为真 w如果文件存在并可写为真-x 如果文件存在并可执行为真 -s如果文件存在并至少有一个字符为真-d 如果文件存在且为目录则为真 -f 文件存在且为普通文件则为真-c 如果文件存在且为字符型特殊文件则为真 -b 如果文件存在且为块特殊文件则为真 -a 并且 -o 或者 !非#vi grade.sh#!/bin/bashecho Enter the percentage of calls answered samd day.read actualif $actual -le 80 /小于等于80then echo Your Grade is Average.elif $actual -gt 80 -a $actual -le 90 /大于80,小于等于90,elif就是else if 的缩写then echo Your Grade is good.Else/另一种情况,也就是大于90 echo Your Grade is outstanding.FiCase esac 构造#vi servicelist.sh#!/bin/bashecho List of Services Offered by Diza Telecommunicationsecho 1)Global Roamecho 2)V-mailecho 3)Mail on Moveecho 4)Caller-IDecho 5)Dial a pizzaecho -n Select the service for which you need more information 1-5 : read choicecase $choice in1)echo You just need one cell-phone number wherever you travel across the world.;2)echo You can record your messages when you are not able to take a call.;3)echo You can receive e-mail messages on your cell-phone/;4)echo You can display the callers telephone number on your handset screen whenever ou recelve a call so that you know whos calling.;5)echo You can order for pizza from your cell-phone.;*)echo You have selected an invalid option.;esacwhile 构造 while do done 只有条件为真时,就执行do和done之间的命令 。先判断再执行。until构造 until循环构造的求值模式于while循环相反。Until循环将继续执行直到求值的条件为真。先执行一次再判断。For 构造For variable_name in Do.Done/for 循环取一列值作为输入并对循环中每个值执行循环Break和continue命令Break命令引起终止循环;continue命令的使用将强迫一个新的重复(终止本次,重新来)rootlocalhost shell# more ecode.sh#!/bin/bashecode=1000while $ecode -le 1008 do echo Enter data for the employee with Employee Code = $ecode echo -n Employee Name: read name echo -n Email Address: read email echo -n Telephone Number: read telno echo $ecode : $name :$email :$telno ccemployee (ecode=$ecode+1)Done请求后台处理,符号为:&rootlocalhost shell# filename.sh &1 4809检查后台进程,命令:ps终止后台进程,命令:kill查看完成一个命令所完成的时间,命令:time#time find /etc name “passwd” 2 /dev/null /2/dev/null忽略错误信息(错误信息不需要)通过:| 竖线,实现管道Ls -l | more /前一个命令的输出作为后一个命令的输入# man ls |moreDemo#vi first_shell.shEcho “please enter your name:”Read fnameEcho $fname /echo $fnameis my name 界定变量的范围第二部分第五章基本数据类型C语言的字符集: C语言的基本符号可分为4类:(1)英文字母:大小写各26个,共计52个;(2)阿拉伯数(3)下划线(4)特殊符号,主要如下:运算符如:+ - * / % + - 关系运算符: = 条件运算符:?: 赋值运算符:=其他分割符号: ().,;标识符:就是用来标识变量名,符号常量名,函数名,类型名,文件名等有效字符序列.(1) 标识符只能由字母,数字和下划线三种字符组成,且第一个字符必须为字母或下划线.(2) 大小写敏感,大小写严格区分(3) 用户自定义的标识符不能与关键字同名C语言中关键字较少,由ANSI标准推荐的关键字有32个(1) 与数据类型有关的(14)char int float double signed unsigned short long void struct union typedef enum sizeof(2) 与存储类别有关的Auto extern register static(3) 与程序控制结构有关(12)不需要强制记忆,用的时候可以现查常量和变量常量:在程序运行中,其数值不能被改变(1) 整形常量 三种表现形式:十进制,八进制,十六进制(2)实型 二种表现形式:十进制(由十进制数字和小数点构成),指数形式(由十进制小数+e或E+十进制整数,例如:12.5e-6 表示12.5*10的负6次方)(3)字符型 二种表现形式:用单引号括起来的字符,用单引号括起来的由反斜杠引导的转义字符(n表示回车)(4) 符号常量:用标识符来表示一个数据,特点不能给它赋值,如PI (本身代表)变量变量是指在程序运行中,其值是可以改变的量变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值在同一程序快中,每个变量都有唯一的名字,不能被重复定义.是用变量必须先定义,后使用 变量定义 类型标识符 变量名 ; int a ;printf(“%d”,x); d表示整形,ld表示长整形,%表示有变量 字符变量:用来存放字符常量,注意一个字符变量只能存放一个字符.Char c;C=a; c=034;c=n;c=x6 注意是换行,不可见;其它多位的都为asc码只表示一个字符符号a+=b 相当于 a=a+ba*=b+c 相当于a=a*(b+c)条件运算符,有两个符号 ? :?:表达式1真,处理表达式2;为假运算表达式3Int max,a=5;b=3; max=ab?a:b 结果max=5 表达式1位真-a=b+ ? a+:b+-a先减1在计算;b+ 先计算再加1rootlocalhost c# more dataTypeExample1.c#include main() int x; x=10*9*8*7*6*5*4*3*2*1; printf(%dn,x);rootlocalhost c# ./dataTypeExample13628800rootlocalhost c# more dataTypeExample1.c#include main() int x; x=16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1; printf(%dn,x);rootlocalhost c# gcc -o dataTypeExample1 dataTypeExample1.cdataTypeExample1.c: In function main:dataTypeExample1.c:6: 警告:整数溢出integer overflow in expressiondataTypeExample1.c:6: 警告:整数溢出dataTypeExample1.c:6: 警告:整数溢出dataTypeExample1.c:6: 警告:整数溢出dataTypeExample1.c:6: 警告:整数溢出dataTypeExample1.c:6: 警告:整数溢出dataTypeExample1.c:6: 警告:整数溢出rootlocalhost c# more charChang.c#include main() printf( ab ct derftgn); printf(htibbj k);rootlocalhost c# ./charChangfab c gdeh j krootlocalhost c#rootlocalhost c# more dataTypeExample2.c#include main() float s,r; scanf(%f,&r); s=r*r*3.1415926; printf(%fn,s); /如果写成printf(%8.3fn,s); 8点3表示共八位,小数点后取3位rootlocalhost c# ./dataTypeExample2328.274334该段也可以这么写#include #define PI 3.14159main() float s,r; scanf(%f,&r); s=r*r*PI; printf(%fn,s); rootlocalhost c# more dataType1.c#include main() int x; x=3+5; printf(%dn,x); x=3-5; printf(%dn,x); x=3*5; printf(%dn,x); x=3%5; printf(%dn,x); x=3/5; printf(%dn,x); double y;float a=2.0;int b=6,c=3; y=a*b/c-1.5+A; printf(%f,y); rootlocalhost c# ./dt18-2153067.500000第八章C 循环语句1.用goto语句和if语句构成循环;(不提倡使用goto)2.用while语句;循环次数未知,一般选这个3.用dowhile语句;4.用for语句。循环次数已知,一般选这个A.while语句的形式While (表达式) 循环体;/最好用括起来Example1:分析下列程序段的循环次数/不能用rootlocalhost lesson9# more Example1.c#include main() int i=1; while( i=100 ) putchar( * ); i+;/为无限次,因为没有加号,所以到putchar后再返回,i还是等于1rootlocalhost lesson9# more Example1.c#include main() int i=1; while( i=100 ) putchar( * ); i+;/这样就是100次Example2:输入一系列整数,判断其正负号,当输入0时,结束循环, &表示找地址。/不能用rootlocalhost lesson9# more Example2.c#include main() float x; scanf(%f,&x); while(x!=0) if(x0) printf(+n); else printf(-n); scanf(%f,&x); rootlocalhost lesson9# ./Example21+100+-100-92-0example3:统计从键盘输入的一行字符的个数(以回车键作为输入结束标记)。rootlocalhost lesson9# more Example3.c#include main() char ch; int num=0; ch=getchar(); while(ch!=n) num+; ch=getchar(); printf(%dn,num);rootlocalhost lesson9# ./Example3zhaochun8B.do-while的形式Do 循环体;While (表达式);Do-while语句统计从键盘输入的一行,非空字符的个数#include Void main()Char ch;Int num=0;Ch=getchar();DoNum+;Ch=getchar();while(ch!=n);Printf(“num=%dn”,num);C.for的形式For (初始表达式1;条件表达式2;循环表达式3)循环体;For (i=1;i=100;i+)Sum=sum+i;相当于i=1;while (i=100) sum=sum+i; I+;表达式1省略,如:sum=0;i=1; For (;i100) break;Sum=sum+I;表达式3也可以省略,但此时保证循环能正常结束。把表达3放到循环体中For (sum=0,i=1;i=100;)sum=sum+I;i+;要在显示器上复制输入的字符,输入的字符为,时,结束循环.输入abcdefg.输出abcdefg.While( putchar(getchar()!=. ) ;求累加和1+2+3+。+100rootlocalhost lesson9# more Example4.c#include main() int sum=0; int k; for(k=1;k=100;k+) sum=sum+k; printf(%dn,sum);rootlocalhost lesson9# ./Example45050求累乘积。如:1*2*3* *100rootlocalhost lesson9# more Example5.c#include main() double s=1; int k; for (k=1;k=100;k+) s=s*k; printf(s=%lf,s);rootlocalhost lesson9# ./Example5s=93326215443944102188325606108575267240944254854960571509166910400407995064242937148632694030450512898042989296944474898258737204311236641477561877016501813248gotobreakcontinue数组常识$gcc Wall 1.c lm o 1.o(共享库)$gcc Wall static hello.c lName o hello(只用静态库)详细见gcc blog /article-htm-itemid-12931-type-blog.html很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C+ 中从来没有定义过void main( ) 。C+ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) /* . */ is not and never has been C+, nor has it even been C.( void main( ) 从来就不存在于 C+ 或者 C )。下面我分别说一下 C 和 C+ 标准中对 main 函数的定义。1. C在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language 2e(C 程序设计语言第二版)用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:int main( void )int main( int argc, char *argv )(参考资料:ISO/IEC 9899:1999 (E) Programming languages C .1 Program startup)当然,我们也可以做一点小小的改动。例如:char *argv 可以写成 char *argv;argv 和 argc 可以改成别的变量名(如 intval 和 charval),不过一定要符合变量的命名规则。如果不需要从命令行中获取参数,请用int main(void) ;否则请用int main( int argc, char *argv ) 。main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。如 果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。注意,vc6不会在目标文件中加入return 0; ,大概是因为 vc6 是 98 年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上 return 语句了吧!不过,gcc3.2(Linux 下的 C 编译器)会在生成的目标文件中加入 return 0; 。2. C+C+98 中定义了如下两种 main 函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国少儿舞蹈培训行业经营规模及未来投资预测报告
- 《巧手剪头像》教学课件-2025-2026学年辽海版(新教材)小学美术三年级下册
- 洪涝灾害个人健康防护技术指南
- 中国质量协会注册质量经理试题二
- 传统中医推拿按摩基础技法科普
- 某汽车厂生产线作业流程规范
- AI在吉尔吉斯语中的应用
- 2024水电厂辅助设备控制系统基本技术条件
- 本校培训讲座深化 课程 改革
- 米面馒头机检修规程
- (2026版)残缺污损人民币兑换办法课件
- 2026河南黄金叶投资管理有限公司所属企业大学生招聘18人备考题库及答案详解(网校专用)
- 乌拉地尔治疗及护理
- 2026年宣城广德市国信工程造价咨询有限公司社会公开招聘3名考试参考试题及答案解析
- 2026年高考历史高分冲刺学习指南
- 2026年高中面试创新能力面试题库
- 商场消防教育培训制度
- 心包积液诊疗指南(2025年版)
- 2026浙江浙大圆正科技创新服务有限公司招聘中层管理人员1人笔试参考题库及答案解析
- 播种绿色希望共筑生态家园2026植树节环保宣传课件
- 2026春教科版一年级下册科学《身边的物体》教案
评论
0/150
提交评论