1、实习报告嵌入式linux培训7.161虚拟机文件系统目录介绍:/bin:系统可执行文件存放目录/lib:系统库文件存放目录,动态链接库以后缀名.so的形式存在;/usr:/include;头文件存放目录/home:Linux系统用户主目录的存放位置/opt:用户搭建的一些环境的一般存放位置/tftpboot:tftp服务器的工作目录. 当前目录.上一级目录 当前用户的主目录2.命令介绍:cd:切换目录(是cd xike而不是cd /xike)pwd:显示当前目录的绝对路径绝对路径:从根目录开始的路径 相对路径:从一个非根目录开始的路径Ls:以一定的选项显示指定目录的内容,如果没有指定路径默认显
2、示当前的内容;-a:显示包括隐藏内容在内的所有内容,linux下以.开始的名称属于隐藏内容;-l:以列表的形式显示内容的详细信息-d:显示目录本身的信息,一般与l连用;(如果直接输入-d命令,则只会显示一个.表示当前文件名,若输入ld,则才会显示详细信息)Clear:使命令提示符围绕终端界面的最上端Man:linux的帮助手册(进去后按Q键返回)Mkdir:创建目录,后跟目录名(名称或路径)Rmdir:删除一个空目录Touch:创建一个空文件(touch dir_test/file)cp:复制文件或目录(cp note dir_test,将这个文件复制到dir_test)(cp note di
3、r_test/b,复制到dir_test的b文件夹)-r:递归遍历目录下的所有内容,并复制Mv:改名或移动(mv dir d)Rm:删除目录-r:用于删除目录-f:忽略任何提示-i:提示是否删除(sudo rm rf/这行命令是全部删除,无法恢复,千万别轻易输入)vi:文本编辑器命令模式按a或i或o进入到插入模式输入hello wordESC退出编辑模式(即返回命令模式)输入:冒号指令会跳至最后一行,输入wq+文件名(保存功能)输入vi hello.c就可编辑代码(也可查看该文件已写内容)gcc+源文件名就可编译一个可执行文件.out;./a.out:执行当前目录下的可执行文件;今天主要介绍了
4、以上的内容,通过老师的讲解,我逐渐了解到虚拟机的用法和ubuntu操作系统的强大,之前没有接触过,感觉还是有兴趣慢慢学下去的。7.17.2015命令模式命令:nyy p:复制粘贴,n为1时可以省略ndd p:截切粘贴,同上ndd:删除(若只有一行时,n可省略)nyw p:复制n个单词并且粘贴,如果n为1的话,最好不要省略ndw p: 剪切n个单词并粘贴,同上(如对hello word这段只剪切hello这几个单词)是单词,不是字母,所以要注意n的输入与取值底行模式命令w q:wq是保存功能;shift zz也是n(表示一个数字):将光标移动到第n行n1,n2 co n3:复制n1和n2闭区间的
5、内容到n3行,(下图是将2.3行内容复制到了6.7行)n1,n2 mo n3:移动n1和n2内容到n3行,下图是将原在第8行的内容移动到了11行;/后跟所需查找字符:查找功能(还有“?”)替换:s/str1/str2/:用str2替换当前行的第一个str1:用fengjie替换word:即21行的第一个words/str1/str2/g: 用str2替换当前行的所有str1g/str1/s/str2/g:用str2替换文件中的所有str1:用了nihao替换所有的hello;n,s/str1/str2/g:用str2替换从第n行到文件末尾的所有str1: n,s/str1/str2/:用str
6、2替换从第n行到文件末尾的所有行的第一个str;用tarea替换从9行往后的第一个word:vi配置项set nu:显示行号stynax on:语法高亮显示set ts=n:设置键的宽度命令补充:echo:回显输出重定向符以覆盖的方式重定向以追加的方式重定向Cat:查看文件内容data:输出当前时间ping:测试网络连通性ifconfig:显示当前的网络适配器的信息service 服务名 start/stop/estartps:查看进程运行情况a u euser add/user del增加或者删除用户chmod:设置权限用户a所有人u用户本人g同组人o其他人权限本身r(4)读w(2)写x(1
7、)执行若是如我将note1文件夹设置了不能读的权限,则用chmod u-r note1;若要恢复,则用chmod u+r note1 即可查看文件夹了。程序编写,见例子一截图:是先显示还是先睡眠程序加一个n就先输出后睡眠:记住占位符的类型和字节数:以什么形式显示字符:符号r和n的意思与程序最后执行:如下图在第一个printf里的word后面没有加n,若加上,则输出就换行:整个程序编译执行如下:Scanf显示的用法:scanf从输入缓冲区里面读取相应的信息按照格式化占位符的要求放在给定的变量里如程序中所示,依次输入23,h,4.5,3.14;因为每输入一个数据都需enter换行,所以就需在前加入
8、scanf(“ ”)语句;若是出现输入字符与程序中想要输入的字符不一致的情况下,则可用以下语句解决这个问题;scanf(“%*n”):取走任意多个非n的字符scanf(“%*c”):取走任意一个字符所有步骤如下截图所示:控制结构:1.顺序结构2.分支结构 选择结构if()()else switch()cade:break;defaultcase语句用法见程序中;续表:3.循环结构For(;)while do.whileFor循环的问题:for(A;B;C)D1. 哪几个语句块可以没有?A,B,C,D都可以没有,但此时就是一个什么都不执行的死循环;for(;);for(i=0;i100;i-)不
9、是一个死循环;2. ABCD四个语句的顺序是什么?ABDC后BDC,BDC一直到B不成立为止跳出循环;输入年月日那道题:注意case2语句即判断是否是闰年,注意执行优先级:year%400=0.(下图程序是老师写的)题目作业:1. 输入10个成绩,去掉一个最高分,去掉一个最低分,求平均成绩:注意max和min都赋值为a0的时候,不能在scanf前定义,因为那样这两个值都等于了0,导致出现逻辑错误;可如下图所示,进行先输入,后赋值。老师讲的:自己写的:1).(直接求平均成绩);2. 输入10个数,求出10个数中第二大的数;(求最大数)冒泡法:注意数组中元素个数,如第三个for循环中的9-j才是正
10、确的,若是改成10-j,则会导致下面元素的比较中出现啊a9与a10的比较,而10个元素中没有a10。自己写的:老师写的:今天主要讲C语言的基础,scanf,for循环,case语句等的用法,也举了几个具体的例子进行编,尤其要注意scanf输入命令的格式以及特点,for循环也是在C语言编程中比不可少的循环,在“输入年月日后显示是第几天”这个例子中,case语句是被重要使用了,刚开始忘记了其格式,导致出现逻辑错误;所以在以后的编写过程中尤其要注意。在这个环境下对程序的编译和执行都跟以前的编译环境不一样,但其本质都是一样的。7.18.2015数组:有限个具有相同数据类型的连续变量的集合练习作业:1、
11、 输入年月日,求这个年月日是这一年的多少天(完)2、 数组1里面有5个数,将数组1的内容复制给数组2;(完)自己编写的:3、 约瑟夫环4、 时钟2015-7-18 11:56:305、 九九乘法表6、 9999以内的所有类似于121 1221 111 9999 8888的数字打印出来7、 题目如下所示(自己编写的)字符数组:函数介绍; Strlen:字符串长度;Strcpy:复制字符串Strcat:拼接字符串Strcmp:比较字符串长度输出结果:二维数组输出结果:编译结果:函数:函数的声明:返回类型,函数名(形参列表);形参列表:形参类型 形参名,形参类型 形参名,对于函数的声明形参列表中的形
12、参名可以不写,如:int fun(int,char,char)函数的定义: 返回类型 函数名(形参列表)函数体对于函数定义形参列表中的形参名一定要有如int sum(int m)int s=0;for(int i=0;i 赋值的子类对象相应虚函数 2 /只有虚函数才能实现多态 3 /多态的要素:1.父类的指针或引用 4 / 2.虚函数 5 / 3.子类的对象 6 /一个类如果有虚函数,那么这个类的每一个对象里一定有一个虚表指针 7 /虚表指针位于这个对象起始的前4个字节 8 / 9 /纯虚函数:没有函数体内容,virtual void bark()=0;抽象类 10 /特点:1.前面必须要有virtual 11 / 2.含有纯虚函数的类称为抽象类 12 / 3.抽象类不能实力化,意味着不能=定义一个抽象类的对象