【资料图】
1 Linux开发环境搭建
1.1 虚拟机安装
1、安装VM Ware2、安装ubuntu
分区 -- Linux没有盘符的概念/ -- 5000M/boot -- 系统启动过程中读取的重要文件/swap -- 2000M,虚拟内存是物理内存的两倍左右/home -- 常见的分区
- Linux文件系统结构是通过文件夹管理的
- 虚拟内存是一段硬盘空间,当作是内存使用
1.2 Linux文件与Windows文件传输
直接拖拽或者复制粘贴,如果不行执行下面命令
sudo apt-get autoremove open-vm-toolssudo apt-get install open-vm-toolssudo apt-get install open-vm-tools-desktop
2.文件和目录相关命令
2.1 Linux文件系统结构
- Linux系统是一个分层的树形组织结构
- Filesystem Hierarchy Standard(文件系统层次结构标准)
- Linux是开源软件,各个linux发行机构都可以按照在即的需求对于文件系统进行剪裁,所以众多的linux发行版本的目录结构也不尽相同。为了规范文件目录命名和存放标准,Linux基金会颁发了FHS(Fliesystem Hierarchy Standard)
2.2 命令
pwd -- 显示路径ls -- 显示当前文件下文件ls /home(可以加目录) ls -a -- 不忽略点开头的文件(隐藏文件)ls -l -- 用长格式方式显示,权限、用户、大小ls -l /binls -R 目录 -- 递归显示目录df -T 显示文件系统的信息
- ctrl+shift+t,新建一个终端窗口
- rwx -- 读写执行,-表示无权限,权限通常有9位,三种用户各占3位(创建者,同组用户,其他用户)
- Linux系统下插入U盘,引入一个新的目录结构
df -T -- 显示文件系统的信息
// 增删改查cat test.c -- 显示在屏幕中cat -s 多个空行合并成一个空行显示cat -b 多加行号显示nl test.c -- 加行号显示vi test.ccp test1.c test4.ccp test.c /home/evan/testcp -rf 文件夹/文件 文件目录mv test.c test1.c -- 重命名mv test.c ../test3.c -- 移动并重名名mv -rf 文件夹 文件目录touch 文件 -- 创建文件touch 已经存在的文件 -- 修改时间戳rm 文件rm -rf 文件夹mkdir 文件夹名称mkdir -p 多级文件夹
3.vi编辑器
vi是一个编辑环境,有三种模式
:w -- 保存:q -- 退出没有修改的文件:q! --强制退出,不保存修改过的部分:x -- 保存并退出:wq -- 保存并退出:w test1.c -- 另存为文件:r file -- 读入其他文件的内容a -- 光标之后i -- 光标之前o -- 插入一个新的行A -- 行尾插入I -- 行首插入:! -- 执行外部命令,按enter键返回
// 拷贝粘贴ndd -- 表示剪切n行nyy -- 复制n行p -- 粘贴在行下P -- 粘贴在上面nx -- 删除n个从光标开始的字符u -- undo撤销操作
// 一些高级操作// vi 光标的命令h,l,j,k -- j,k光标上下移动,h,l光标左右移动gg -- 返回首行1G -- 返回首行nG -- 到第一行G -- 返回最后一行:set nu -- 显示行号:set nonu -- 不显示行号// 查找/string -- 查找内容n -- 向下查找N -- 向上查找支持正则表达式// 替换:10,20s/str1/str2/g -- 在10,20行内用str2替换str1,g表示全部替换:1,$s/man/MAN/g -- 全文替换:%s/man/MAN/g -- 全文操作:s/man/MAN/g -- 不写范围,就是指的是当前行:s/man/Man -- 不加g表示替换第一个:10,15s/man/MAN/g y0 -- 从光标复制到行首y$ -- 从光标复制到行尾d0 -- 从光标剪切到行首d$ -- 从光标剪切到行尾// 块复制,删除:118,125y -- 复制118,125行复制:118,$d -- 删除118行之后的所有行
4.基础知识
计算机基本结构一.冯诺依曼模型
- 计算机硬件由五部分构成
- 存储程序的思想:系统的运行过程就是按照一定的顺序不断执行存储器中的程序指令的过程二.存储器分类
- 主存储器及内存,程序中待处理的数据和处理的结果都存储在内存中
- 外存储器是用来长期保存数据的大容量存储器
- 寄存器是CPU内部的高速存储器,速度快,数量少三.程序广义上讲,为了实现一个特定的目标而预先设计的一组操作的工作步骤,称之为一个程序程序就是系统可以识别的一组有序的指令,程序存储在磁盘上,被加载到内存中执行四.程序设计语言的发展1.机器语言,直接使用机器指令01序列来设计程序,可以被计算机系统直接识别2.汇编语言,把机器指令符号化,即通过一组简单的符号来表示机器指令3.高级语言,和特定的计算机系统无关,更接近于人类自然语言,一条语句对应多条机器指令五.程序设计步骤编辑--编译,链接-执行,调试
5.数据的表示
一.计算机数据表示送入计算机的数字,字母,符号等信息必须转换成0,1组合的数据形式才能被计算机识别能够进行算术运算得到明确数值概念的信息,是计算机数值数据,其余的信息称为非数值数据二.数值数据的表示十进制\八进制\二进制\十六进制三.原码\反码\补码四.非数值型数据表示字符的存储,ASCII表
6.程序编译和调试
gcc(GNU Compiler)是GUN推出的多平台编译器,可以将C,C++源程序编译连接成可执行文件支持以下后缀文件
.c -- c语言源代码.h -- 程序所包含的头文件.i -- 已经进过预处理的c源代码.s -- 汇编语言源代码文件.o -- 编译后的目标文件
//编译输出可执行文件gcc -o hello hello.c-o 输出可执行文件-c 只要求编译器输出目标代码(.o文件),而不必输出可执行文件-g 用于调试./hello 查看输出结果gcc -o hello hello.c -Wall gcc -o hello.c 没有指定输出文件,默认文件名就是a.out
__FILE__ -- %s -- 显示文件__LINE__ -- %d -- 哪一行__FUNCTION__ -- %s ,哪个函数
7.数据结构与算法
算法的概念:解决问题采取的方法和步骤就称之为算法
gcc作为一个交叉编译器,如何生成ARM平台的执行程序