在linux开发环境上学习C语言,对于一个从零开始学习嵌入式的门外汉来说,是一个很好的选择,学习了C语言,又熟悉了Linux 操作系统。
1. 开发工具下载及安装:
虚拟机 VMware 10
下载地址:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.0-1295980.exe
Ubuntu 12.04
下载地址:http://releases.ubuntu.com/12.04/
VMware虚拟机上安装在windows中的一个虚拟电脑的软件。因为我们需要用到linux的真实环境,又不能完全脱离windows的一些文件操作,再在虚拟机中安装Ubuntu 12.04系统。
安装步骤
注册
后一步要求输入许可证密钥,本站提供亲测可用的注册密钥,授权形式为批量,并且永不过期,即永久激活,注册码地址:http://www.ihacksoft.com/vmware-workstation-10-0.html
VMware Workstation 10另外一个特点是内置了简体中文,
如上图:在虚拟机上安装了ubuntu, windows和Linux切换起来非常方便
2. GCC编译环境的安装
1、gcc
要进行C语言编程,首先得有个C语言的编译器,Linux下常用的是GNU C Compiler gcc。
比如cpp-4.1和gcc-4.1、cpp-3.3和gcc-3.4
2、cpp
gcc要进行程序编译,首先需要进行一个预编译过程。该过程对程序源代码进行预处理。
3、libgcc1
gcc还依赖于libgcc1这个软件包。libgcc1是用于gcc软件自身的必须组件。
4、libc6
C语言程序要能够运行,需要一些运行时库文件和一些库文件操作命令。libc6这个软件包就是用来提供这些的。这个软件包几乎是Linux系统自带的,因为所有C程序的运行都离不开此软件包。
5、binutils
程序从源代码到可执行程序的过程中,必然需要一些工具来辅助完成。binutils软件包就是提供一些工具的,这个软件包提供下面这些非常有用的命令:
6、locales
这个软件包提供本地语言环境支持
虽然上面列了这么多必需的软件包,但实际上因为他们之间有依赖关系,所以在安装完系统后我们只需要输入下面一个命令:
apt-get install gcc
系统就会自动帮忙把这些软件包安装上。
2.在Ubuntu配置VIM配置编辑环境
编译和调试环境安装好了,该装编辑器了,VIM是个入门难,但用熟了会极大提高编辑效率的工具,其实入门也不算难,用一周基本长常用的20%的功能就都熟悉了,老样子用apt-get install vim安装,装好后运行vim命令,确保版本是7.1以上。装好后为了编辑方便,先启用语法高亮显示,自动缩进,显示行号等,用VIM编辑VIM的配置文件vim /etc/vim/vimrc,在末尾加上如下设置
1. syntax on
2. set autoindent
3. set cindent
4. set nu
先简单设置这些,以后再设置配色方案,自动提示,文件列表等功能,VI的使用,大家可以看看VI的中文手册
编写简单的C程序
我们先写一个统计字符个数的程序
然后编程程序,执行程序
3. vi编辑器的命令
(1)强制退出
底行命令:
:q!
(2)打开其他文件
底行命令:
:e 文件路径
:e! 文件路径 ---- 忽略修改
(3)读取其他文件内容到光标所在的下一行
底行命令:
:r 文件路径
(3)保存vi编辑器中的内容到另外的文件
底行命令:
:w 文件路径
(4)移动光标
h j k l ----- 左 下 上 右
(5)翻页
ctrl+u ------- 向前翻半页
ctrl+d -------- 向后翻半页
ctrl+b ------- 向前翻一页
ctrl+f -------- 向后翻一页
(6)移动光标
^:移动到光标所在的行的第一个非空格字符
Home键:移动到光标所在的行的第一个字符
$/End键:移动到光标所在的行的后一个字符
w:移动光标到下一个单词的首字母
b:移动光标到前一个单词的首字母
e:移动光标到下一个单词的尾字母
注:以上3个命令前加数字表示移动多少个单词
G:前面加数字移动到指定的行,不加数字移动到后一行
(7)设置行号
底行命令:
:set nu
(8)进入编辑模式
A:移动到本行末进入编辑模式
cw:删除光标所在位置到所在单词末尾的字符,进入编辑模式
c$:删除光标所在位置到本行行尾的字符,进入编辑模式
c^:删除本行行首到光标所在位置(不包括)的字符,进入编辑模式
(9)编辑模式下的按键操作
方向键移动光标
Home键:移动到本行第一个字符
End:移动到本行后一个字符
PageUp/PageDown:向上/向下翻页
退格键/del键:删除光标前一个/所在的字符
(10)删除(剪切)命令
dw:删除光标到所在单词尾的所有字符,包括单词后的空格键
de:删除光标到所在单词尾的所有字符,不包括单词后的空格键
d$:删除光标到所在行行尾的所有字符,包括光标
d^:删除光标所在行行首到光标的所有字符,不包括光标
dG:删除光标所在行到文件尾
dgg:删除文件开头到光标所在行
J:删除本行的后换行符,相当于将下一行合并到本行末尾
注:把上述命令的d改成c就会在完成操作后进入编辑模式
(11)撤销操作
u:撤销上一次的操作
U:撤销对当前行的上一次操作
ctrl+r:u的反操作
(12)拷贝命令
yw:拷贝光标到所在单词尾的所有字符,包括单词后的空格键
ye:拷贝光标到所在单词尾的所有字符,不包括单词后的空格键
y$:拷贝光标到所在行行尾的所有字符,包括光标
y^:拷贝光标所在行行首到光标的所有字符,不包括光标
yG:拷贝光标所在行到文件尾
ygg:拷贝文件开头到光标所在行
(13)查找文件内容
底行命令:
/word ---------- 在文件中向下查找word内容
?word ----------- 在文件中向上查找word内容
n/N:定位前一个/后一个查找到的内容
注:*可以快速查找光标所在的单词
查找的时候可以只查找单词开头部分或者结尾部分
the> ------- 以the结尾的单词
.可以代表一个任意字符
(14)替换文件内容
底行命令:
:s/old/new ----------- 将本行第一个old替换成new
:s/old/new/g ----------- 将本行所有old替换成new
:#,#s/old/new/g ------ 将(#,#)行所有old替换成new
:%s/old/new/g ------ 将文件中的所有old替换成new
可以在命令后加c让用户对每一次替换进行确认
(15)补充命令
% --------- 移动光标到配对的括号
. --------- 重复上一个命令
v ---------- 进入可视模式,选择的文本会被高亮,可以对选中的部分进行d(剪切),y(拷贝)操作
底行命令:
:vs 路径 ----------- 水平显示打开的文件
:sp 路径 ----------- 垂直显示打开的文件
ctrl+ww来在不同的文件之间切换
(16)打开多个文件的操作
vi 路径1 路径2 路径3 ...........
相关底行命令
:args ------------- 显示打开的所有文件
:next ------------- 切换到后一个文件
:prev ------------- 切换到前一个文件
:first ------------ 切换到第一个文件
:last ------------- 切换到后一个文件
ctrl+^可以立即切换到前一个操作的文件
4.总结:
其实编辑器除了用vi 还可以用gedit, dwrite, kate图形化编辑器,自己选择一个习惯的就行了,只是vi编辑工具在今后的终端上会经常用到,所以一般要求掌握它的用法。