------------------------------day1---安装Vim和更新命令---------------------------------------
1、更新资源:sudo apt-get update
2、安装软件 vim:sudo apt-get install vimsudo :以管理员权限
cc -v:检查cc编译器(gcc编译器)
clear:清理屏幕
cd :表示进入某个目录 cd ~:进入当前目录的家目录
pwd:查看当前所在路径
ls:查看当前目录下包含文件及文件夹 ls -l:查看当前目录下文件
的详细信息
touch :新建文件XX rm :删除文件XX mkdir :新建文件夹XX
vi(vim) :编辑文件XX
esc:返回命令模式
在命令模式下输入:
:w 保存(write写入)
:q 退出
i:当前光标前插入字符
shift + i:当前行行首插入字符
a:当前光标后插入字符
shift + a:当前行行尾插入字符
o:在下一行插入字符
shift + o:在上一行插入字符
x:删除单个字符
dd:删除所在行
------------------------------day2-第一个Linux下的C语言程序(配置ubuntu网络)---------------------------------------
1,Linux下的C语言有点不同:#include<stdio.h>int main() //Linux环境下用int{ ........;
}2,C语言程序的编译:cc lx.c 或者 gcc lx.c执行lx.out命令格式: ./lxout
3,配置网络:参考网址:http://www.jb51.net/os/Ubuntu/145386.htmlNET模式:选择net模式,打开虚拟机网络编辑器,选择VMware8进入ubuntu后选择网络为DHCP自动配置
------------------------------day3-一些常用快捷操作和“Makefile”---------------------------------------
一:编辑普通文件:1. 同时打开两个窗口 —— :sp + 文件名;2. 两个文件之间的切换 —— Ctrl+W+上/下;
3. 打开行号 —— :set + nu;
4. 剪切 —— 数字+dd;
5. 粘贴:p
二:编辑Makefile:$lsmin.c max.c main.c $vi Makefile#this is a Makefile main.out:max.o min.o main.c #说明main.out依赖max.o,min.omain.c gcc max.o min.o main.c -o main.out#注意开头的‘Tab’键而不是空格,-o main.out指定输出为main.outmax.o:max.c #说明max.o依赖max.c gcc -c max.cmin.o:min.c gcc -c min.c #说明min.o依赖min.c$lsmin.c max.c main.c Makefile
$make$lsmin.c max.c main.c Makefile min.o max.o main.out
》>>>编写了Makefile后每次编译只需要编译改动后的,已经编译好的不需要再次编译。
------------------------------day4---C语言main函数---------------------------------------
1,main函数的完整形式#include<stdio.h>int main(int argv,char* argc[]){ printf("hello world!!!\n"); return 0; //"return 0"表示返回的值为0,}$gcc main.c -o main.out && lshello world!!!ls命令罗列出当前文件夹下的文档2,main函数的两个参数#include<stdio.h>int main(int argv,char* argc[]){ printf("argv is %d\n",grav); int i; for(i=0;i<argv;i++) { printf("argc[%d]is: %s\n",i,argc[i]); } return 0; //"return 0"表示返回的值为0,}$gcc main.c -o main2.out$./main2.out -l 123 2342 4343 000argv is 5argc[0]is: ./main2.outargc[1]is: -largc[2]is: 123
argc[3]is: 4343
argc[4]is: 000
由此可见argc[]是接收执main函数的参数的一个数组,而argv是参数的数量
------------------------------day5--C语言标准输入输出和错误流和重定向---------------------------------------
1,输入输出和错误流#include<stdio.h>/*stdin:输入流文件stdout:输出流文件stderr:错误流文件*/int main(){ //printf("please inout the value a:\n"); fprintf(stdout,"please input the value a:\n"); int a; //scanf("%d",&a); fscanf(stdin,"%d",&a); if(a<0){ fprintf(stderr,"the value must > 0"); return 1; } return 0; //"return 0"表示返回的值为0,}2,重定向和管道:1)输出重定向$./exp.out 1>> exp.txt或./exp.out >> exp.txt#然后“./exp.out”输出的值会输入到“exp.txt”中;$./exp.out 1> exp.txt#“>”只查看最新的记录,覆盖模式。2)输入重定向$vi input.txtinput.txt中写入12:wq#退出$./a.out < input.txt #就相当于输入了两个值$./a.out 1> t.txt 2>f.txt <input.txt 可以同时设定标准输出流,标准错误流,标准输入流指定到特定文件中
3)管道符 “|”和linux里面的一样,可以连接两个C语言程序例如:$./add.out | ./ avg.out最后执行结果
------------------------------day6--gdb调试命令 ---------------------------------------
1,常用命令list 列出调试文件的源代码break 行号 //设置调试断点 start //开始执行p 变量 //查看变量当前值n //运行下一行代码step(或s) //执行下一行语句,如果有函数调用则进入到函数中bt //查看函数堆栈f 栈号 //跳到“栈号”中函数
命令 | 描述 |
---|---|
backtrace(或bt) | 查看各级函数调用及参数 |
finish | 连续运行到当前函数返回为止,然后停下来等待命令 |
frame(或f) 帧编号 | 选择栈帧 |
info(或i) locals | 查看当前栈帧局部变量的值 |
list(或l) | 列出源代码,接着上次的位置往下列,每次列10行 |
list 行号 | 列出从第几行开始的源代码 |
list 函数名 | 列出某个函数的源代码 |
next(或n) | 执行下一行语句 |
print(或p) | 打印表达式的值,通过表达式可以修改变量的值或者调用函数 |
quit(或q) | 退出gdb 调试环境 |
set var | 修改变量的值 |
start | 开始执行程序,停在main 函数第一行语句前面等待命令 |
step(或s) | 执行下一行语句,如果有函数调用则进入到函数中 |
//后记:
/* 从云笔记搬运过来,真是体力活。。。 */