嵌入式Linux系列第1篇:开发环境搭建

简介: Ublox ZED-F9P 厘米级定位模组开箱评估

01引言

很多做单片机开发的工程师因为各种原因可能要学习Linux,但是很多人刚开始却无从下手或者多次中途放弃,网上相关的资料虽然很多但是也比较零散、不系统。Linux嵌入式开发和普通裸机单片机开发有非常大的差异。本系列文章结合我个人的使用经验,站在一个完全初学者的角度为大家做一个整理,希望有助于大家快速入门嵌入式Linux开发。本篇是系列第一篇,为大家介绍开发环境的搭建。


02虚拟机安装

因为咱们大部分工程师平时都是使用Windows系统,所以这里就介绍在Windows系统下如何搭建Linux环境。当然你如果想在一台电脑上直接装Linux系统也是可以的,这里就不再介绍了。Windows系统如果要使用Linux通常需要安装一个虚拟机。目前,虚拟机最受欢迎的是VMware,除此之外还有一个VirtualBox,这两者大家择其一就行。我这里用的是Vmware。安装过程大家参考百度即可。


03虚拟机下Ubuntu系统安装

Linux系统有很多,比如Redhat,Centos等,目前用的比较多的是Ubuntu,首先下载一个Ubuntu镜像文件,我这里用的是ubuntu-16.04.3-desktop-amd64.iso,下载完成后,打开Vmware虚拟机进行Ubuntu系统的安装,Vmware和Ubuntu的关系是,Vmware是个虚拟机,它不仅可以安装Linux系统Ubuntu,还可以安装WinXP系统等。这个安装具体过程不再详细介绍,网上随便参考一个文章即可, 比如 。这个安装还是要耗费一定时间的。如果你觉得上述一步步安装太麻烦,你可以直接把我安装好的系统TopsemicUbuntu.zip下载下来,解压,然后打开VMwave,选择Open a Virtual Machine

选择TopsemicUbuntu文件夹 中的Ubuntu-Topsemic.vmx 文件

这样Ubuntu就直接被打开了,点击开启按钮就可以开机了,登录密码topsemic,开机后即可使用。是不是很方便啊。其实你刚下载的这个文件解压后里面包含以下这些文件,

你如果自己按照上面说的一步步安装ubuntu-16.04.3-desktop-amd64.iso,最后生成的也是这些东西,不过这样做有个好处,备份这个,以后万一哪天系统崩了或者换电脑了,直接用这个就行了,免去了重新安装和配置的烦恼。


04熟悉命令行操作

进入了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,这是怎么回事?

这个问题刚开始也困扰了我好久,参考 这个可以解决掉,不过有个问题是因为本身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:递归的删除目录下面文件以及子目录下文件。



05结束语

刚接触Linux会很不适应,所以一定要多动手操作,等熟悉之后就会觉得很好用了。最后留给大家一个思考的问题,比如我想在/home 目录下建立一个test1文件夹,它会提示我无法创建、权限不够。

这是为什么呢?欢迎大家在评论区留言讨论。上述文章中提到的Vmware,ubuntu-16.04.3-desktop-amd64.iso,TopsemicUbuntu.zip 如果大家有需要,可以留言,我单独发给大家。下期会给大家介绍如何编译、运行一个C程序。

相关文章
|
4月前
|
Linux Shell
入职必会-开发环境搭建36-Linux常用操作-Linux环境变量
环境变量的作用是指定到哪个目录去找你输入的命令执行。环境变量的设置分为:临时设置和永久设置两种。
|
4月前
|
Oracle Java 关系型数据库
入职必会-开发环境搭建41-Linux软件安装-安装JDK
本文介绍了在Linux系统中下载和安装JDK
160 3
入职必会-开发环境搭建41-Linux软件安装-安装JDK
|
4月前
|
域名解析 网络协议 Linux
入职必会-开发环境搭建38-Linux常用操作-Linux设置IP
目前安装的Linux操作系统默认是动态获取IP地址,IP地址可能会发生变动,需要把IP地址设置为静态的。
入职必会-开发环境搭建38-Linux常用操作-Linux设置IP
|
3月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
102 3
|
4月前
|
网络协议 Linux 网络安全
入职必会-开发环境搭建39-Linux常用操作-Linux防火墙操作
在CentOS 7中,新引入了firewalld服务(防火墙),取代了CentOS 6之前的iptables服务(防火墙)。
入职必会-开发环境搭建39-Linux常用操作-Linux防火墙操作
|
4月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
4月前
|
应用服务中间件 Linux 网络安全
|
4月前
|
应用服务中间件 Linux 网络安全
|
4月前
|
缓存 监控 Linux
入职必会-开发环境搭建40-Linux常用操作-Linux进程管理
进程是正在执行的程序或命令。每个进程独立的,都有需要占用一定的系统资源。Linux系统中启动进程有两种方式:1.Linux操作系统启动的时自动启动的进程。2.用户在终端输入命令启动的进程。
入职必会-开发环境搭建40-Linux常用操作-Linux进程管理
|
3月前
|
传感器 人工智能 网络协议
:嵌入式 Linux 及其用途
【8月更文挑战第24天】
177 0