很多做单片机开发的工程师因为各种原因可能要学习Linux,但是很多人刚开始却无从下手或者中途放弃,网上相关的资料虽然很多但是也比较零散、不系统。我记得我刚开始接触Linux,对什么虚拟机、装哪个版本的Linux,交叉编译,命令行操作等概念完全没头绪,走了很多的弯路。现在回头想想如果能有过来人总结出一份详细的学习经验该多么好。怀揣着帮助他人同时也帮自己梳理知识的目的,我近期会分享一系列Linux相关的文章。
Linux嵌入式开发和普通裸机单片机开发还是有非常大的差异。本系列博客结合我个人的使用经验,站在一个完全初学者的角度为大家做一个整理,希望有助于大家快速入门嵌入式Linux开发。本篇是系列第一篇,为大家介绍开发环境的搭建。
1.引言
很多做单片机开发的工程师因为各种原因可能要学习Linux,但是很多人刚开始却无从下手或者中途放弃,网上相关的资料虽然很多但是也比较零散、不系统。Linux嵌入式开发和普通裸机单片机开发还是有非常大的差异。本系列博客结合我个人的使用经验,站在一个完全初学者的角度为大家做一个整理,希望有助于大家快速入门嵌入式Linux开发。本篇是系列第一篇,为大家介绍开发环境的搭建。
2.虚拟机安装
因为咱们大部分工程师平时都是使用Windows系统,所以这里就介绍在Windows系统下如何搭建Linux环境。当然你如果想在一台电脑上直接装Linux系统也是可以的,这里就不再介绍了。
Windows系统如果要使用Linux需要安装一个虚拟机,目前,虚拟机最受欢迎的是VMware,除此之外还有一个VirtualBox,这两者大家择其一就行。我这里用的是Vmware。安装过程大家参考百度即可。
3.虚拟机下Ubuntu系统安装
Linux系统有很多,比如Redhat,Centos等,目前用的最多的Ubuntu,首先下载一个Ubuntu镜像文件,我这里用的是ubuntu-16.04.3-desktop-amd64.iso,上述百度网盘里有,下载完成后,打开Vmware虚拟机进行Linux系统的安装,Vmware和Ubuntu的关系是,Vmware是个虚拟机,它不仅可以安装Linux系统Ubuntu,还可以安装WinXP系统等。这个安装具体过程不再详细介绍,网上随便参考一个文章即可, 比如https://blog.csdn.net/zhouwenyuan1015/article/details/81164882 。这个安装还是要耗费一定时间的。
如果你觉得上述一步步安装太麻烦,你可以直接把我安装好的系统下载下来
百度网盘链接:https://pan.baidu.com/s/1pN5Jc8L2FbrD8YgX6yHWhQ
提取码:lke3;(进入到01 Lesson1 开发环境搭建文件夹里TopsemicUbuntu.zip文件),解压,然后打开VMwave,选择Open a Virtual Machine
选择TopsemicUbuntu文件夹 中的Ubuntu-Topsemic.vmx 文件
这样Ubuntu就直接被打开了,点击开启按钮就可以开机了,登录密码topsemic,开机后即可使用。是不是很方便啊。
其实你刚下载的这个文件解压后里面包含以下这些文件,
你如果自己按照上面说的一步步安装ubuntu-16.04.3-desktop-amd64.iso,最后生成的也是这些东西,不过这样做有个好处,备份这个,以后万一哪天系统崩了或者换电脑了,直接用这个就行了,免去了重新安装和配置的烦恼。
4.熟悉命令行操作
进入了Ubuntu系统,就可以展开工作了。Ubuntu系统进来之后是有图形化界面的,里面有各种应用,比如你可以打开浏览器上个百度看看,感觉和Windows差不多吧。
当然你更应该熟悉的是命令行操作,因为对于许多运行Linux系统的嵌入式设备是没有图形化界面的,这时你就只能通过命令行来操作了。
鼠标点右键,选择打开终端(E),或者快捷键Ctrl+Alt+t 就可以打开命令行窗口了。
我们以一个实际的小任务来熟悉下Linux的命令吧,我们要实现的功能是:
1) 进入到/home/topsemic 目录下,查看该文件夹下的内容,在该文件夹下新建test1和test2两个文件夹;
2) 在test1文件夹下新建一个名为test1.txt的文件,里面的内容是welcome to topsemic.
3)显示test.txt中的内容在命令行窗口上;
4)将test1.txt 文件复制到test2文件夹下,重命名为test2.txt;
5)修改test2.txt中的topsemic为Beijing,并保存
6)删除test2.txt文件;
7)删除test1和test2整个文件夹
具体操作步骤如下:
1)进入到/home 目录下,查看该文件夹下的内容用到cd和ls两个命令。/ 表示Linux的根目录,每个文件和目录都是从根目录开始的。
新建test1和test2两个文件夹用到mkdir指令. 执行完mkdir后,再用ls查看下,发现多了test1和test2两个文件夹。
小技巧:当你敲打命令时,要善于运用Tab键,比如当你想输入cd /home/topsemic,其实没必要每个字符都输入一遍,你可以敲cd /home/Tab键,这样只需要输入一个Tab键,topsemic就出来了。tab键可被用来补全命令或者文件名。
2) 新建一个名为test1.txt的文件,里面的内容是welcome to topsemic. 这里我们使用vi指令,这个vi太重要了,一定要熟练掌握,不过刚开始你可能会觉得很别扭,熟悉熟悉就好了。
a)先输入 vi test1.txt
进入到如下界面,这是vi的命令行模式,这时你如果输入welcome,是没有反应的,要输入内容必须先进入到文本输入模式。
b) 输入I,进入到文本输入模式,这时就可以输入文本了。输入完成后再按Esc键,返回到命令模式,然后输入 : (一个冒号)进入到尾行模式,再输入wq保存文件并退出。
3)显示test.txt中的内容在命令行窗口上,一是可以用vi查看,另外还可以用cat指令,直接输出到终端上
4)将test1.txt 文件复制到test2文件夹下,重命名为test2.txt;我们使用一条cp指令
这里用到.. 表示当前目录的上级目录。
5)修改test2.txt中的topsemic为Beijing,并保存。 还是使用vi指令,但是当你打开vi后,输入I然后要移动键盘向右的箭头→时,这时出来了一个C,这是怎么回事?
这个问题刚开始也困扰了我好久,参考https://www.linuxidc.com/Linux/2012-07/64329.htm 这个可以解决掉,不过有个问题是因为本身vi这时方向键和退格键是乱的,所以你如果还是用vi打开修改还是不好改。告诉大家一个方便的方法,先切换到root用户,使用sudo su 进入到root用户,密码还是topsemic
然后使用gedit /etc/vim/vimrc.tiny 打开vimrc.tiny文件,修改如下:
gedit是一个文本编辑器,类似Windows下的记事本。
之后再切换回topsemic用户,使用su - topsemic
这时再用vi操作就没有问题了。
6)删除test2文件夹的test1.txt文件, 删除使用rm 命令
7)删除test1和test2文件夹,删除文件夹也是rm命令,不过后面要跟上-r ,直接rm test1 是不行的
-r:递归的删除目录下面文件以及子目录下文件。
5.结束语
刚接触Linux会很不适应,所以一定要多动手操作,等熟悉之后就会觉得很好用了。最后留给大家一个思考的问题,比如我想在/home 目录下建立一个test1文件夹,它会提示我无法创建、权限不够
这是为什么呢?欢迎大家在评论区留言讨论。
下期会给大家介绍如何编译、运行一个C程序。
其他文章请关注:https://topsemic.com/