2013年09月30日 星期一 09时37分03秒
回顾:
1. linux系统的知识背景
2. vi的使用
在正常模式下使用nyy可以把光标所在行开始的连续n行拷贝到剪贴板上去
在正常模式下使用np命令可以把剪贴板上的内容在当前光标所在行的下面粘贴n次
在正常模式下使用ndd命令可以把当前光标所在行下面的连续n行剪切到剪贴板上
:set命令是设置命令
:set nu 可以让vi在显示文档内容的时候同时显示行号
:set nonu 取消行号显示
~/.vimrc 是vi的设置文件
每次vi启动后都会读这个文件并把里面的所有set命令依次执行
touch命令可以创建一个新的空文件,也可以修改一个已经存在文件的最后修改时间
rm命令可以删除一个已经存在的文件
Linux系统中使用文件的操作属性描述文件的使用方式
每个文件的操作属性分成三组,每组由三个字符构成,每组针对一种特定的账号;
三种不同的账号分别是:文件所有者(左),同组人(中),其他人(右);
每组属性有三个字母构成,分别是:r代表查看,w代表修改,x代表执行
某一组的三个属性可以用一个0到7之间的数字表示(r对应4,w对应2,x对应1,-对应0)
chmod命令可以修改一个文件的操作属性
- chmod 664 文件路径 (664 = rw-rw-r--)
脚本文件包含很多命令,可以直接由计算机执行
cp命令可以实现文件的拷贝功能,使用方法如下:
- cp 文件路径1 文件路径2
- 路径1对应一个已经存在的文件
- 路径2对应一个还不存在的文件
- 命令结束后路径2所对应的文件被创建出来,其内容和路径1所对应的文件一样
mv命令可以实现文件的剪切效果,命令的使用方法和cp一样
链接文件是另外一个文件的代表
ln命令可以用来创建一个链接文件
使用方法类似于cp命令
使用-s选项可以创建软链接文件
软链接文件依赖原有文件的文件名
程序是文件系统中的一个文件,它不会随着时间而改变;
进程是程序运行过程中所包含的所有数据,它会随着时间而改变;
每个进程都是根据一个程序创建出来的;
一个程序每次运行都会创建一个新的进程;
操作系统为每个进程分配一个整数用来代表这个进程,这个整数叫做进程ID;
不同进程的ID一定不同;
ps命令可以查看当前系统中的进程
-aux 选项可以查看系统中所有进程
kill命令可以杀死一个进程,需要提供进程的ID:
- kill 进程ID
- 使用 -9 选项可以强制杀死一个进程
ctrl+c可以结束当前进程(占用终端窗口的进程)
输出重定向可以把命令本应该显示在终端窗口中的内容写入到文件中
- 在命令中使用 > 可以实现输出重定向的效果
- >实现输出重定向的时候会把文件中原有内容清除掉
- >>实现输出重定向的时候会保留文件中原有内容,新内容追加
管道可以用来连接多个命令,使用 | 表示
通配符可以用来简化命令中路径的编写
? 是一个通配符,代表任意一个单一字符
* 也是一个通配符,可以代表任意多个字符
----------------------------------------------------------
C语言中可以使用加减乘除四则运算符号(+ - * /)
“ ; ” 用来分割不同的语句
每个语句必须完成一个完整的工作
任何一个程序都是由大量的语句构成的
大括号是用来对语句进行分组管理的
一组中的所有语句是相关的,不同组的语句是相互独立的
大括号之间是可以互相嵌套的,嵌套的层次没有限制
绝大多数语句都属于一个大括号
所有语句不可以跨越大括号
(不被其他大括号包含的大括号被称为 *大括号)
所有*大括号必须有名字
不同*大括号名字一定不同
C语言程序中必须有一个叫做main的*大括号
这对*大括号叫做主函数
程序从主函数中第一条语句开始执行,主函数的最后一条语句结束后程序结束
所有*大括号都可以选择遗留一个数字,需要使用return语句指定遗留数字
return是C语言中的一个关键字
return关键字的另外一个作用是立刻终止*大括号中所有语句的执行。
计算机中数字是严格分组的
不同组的数字在处理的时候可能差别非常大
每个分组叫做一个数据类型
整数类型的分组中包含所有不带小数点的数字
C语言中给每个数据类型规定一个名字,整数类型的名字是int
数字分组的依据不是数值,同一个数字可能属于多个分组
程序中所有不带小数点的数都被当成整数类型处理
每一对*大括号都必须明确说明它所遗留数字的类型
C语言程序的开发步骤:
1.vi编写以.c作为扩展名的文件
2.使用gcc工具对元文件进行编译,得到a.ou文件
3.使用命令./a.out执行程序
MinGW是Windows系统下的gcc
gcc的编译过程:
1.把所有预处理指令处理完成
2.把源文件翻译成计算机能认可的格式(编译)
3.把程序中不同部分连接起来(链接)
预处理指令是C语言程序中一种特殊的指令
所有预处理指令的作用都是把源程序中的内容变成另外的样子
预处理指令不是C语言的语句
所有预处理指令都是以#作为开头
#include是一条预处理指令
- 这条预处理指令可以把其他文件的内容合并到当前文件中
- 这条预处理指令使用时需要指定另外一个文件的路径
- 使用<>把路径包含到预处理指令中则gcc会从计算机的某个固定路径中去查找对应的文件
- 使用“”把路径包含到预处理指令中则gcc会先从当前文件所在的目录开始查找对应的文件
gcc的选项
-E 只处理所有预处理指令
-c 只完成预处理和编译工作(以.o作为扩展名的目标文件)
-o 指定得到的新文件的名字
-std=c89 / -std=c99 (两者选择一个使用,如果没有说明,计算机默认使用 -std=c89) 指定这次编译所采用的C语言规范版本
C语言程序中加入文字信息注释
gcc在对程序进行编译的时候会忽略所有的注释
单行注释以//做开头,这行中后面所有的内容都当成注释看待
多行注释以/*做开头,以*/做结尾,中间的所有内容被当成注释处理。
关键字是C语言中预先规定好的一组英文单词
每个关键字有特定的含义,可以实现特定的效果
关键字一共有几十个
所有关键字都是使用小写字母
C语言程序大量使用名字区别不同的东西
所有名字统称为标识符
标识符最好使用英文单词描述
标识符的命名规则:
1.第一个字符必须是英文字母或者下划线
2.后面的所有字符可以是英文字母,下划线和数字
3.标识符是大小写敏感的
4.不可以使用关键字作为标识符
5.标识符的长度没有限制(c89规范中截取前31个字符,c99规范中截取前63个字符)
C语言中的书写规范
1.一行中最多包含一条语句
2.不同层次的语句要用缩进区分开
3.在合适的地方使用空格和空行
4.标识符采用驼峰方式或下划线方式编写
C语言使用标准函数完成通用的功能
每个标准函数有一个名字,不同标准函数的名字不一样
程序中使用函数调用语句来使用标准函数完成功能
printf标准函数用来把程序中的信息打印在屏幕上
为了使用printf,标准函数需要包含stdio.h文件
使用占位符可以打印编写程序时还不知道的数字