第二个项目:基于STM32智能手环
智能手环里也有一个Linux操作系统,这个操作系统就是所描述Linux嵌入式领域的应用!~
先去学习一下Linux下C语言开发!~ (嵌入式Linux应用程序开发)
1、Linux操作系统的诞生、发展、和成长过程依赖于五个重要支柱:
unix操作系统、minix操作系统、GNU计划、POSIX标准和互联网
2、Ubuntu终端打开的方式:
1、在Ubuntu搜索里输入“终端”;
2、采用快捷方式:ctrl+alt+T
3、怎么验证Ubuntu系统是否可以联网的方式:
1、用Ubuntu系统里的浏览器进行百度(腾讯…)网址输入来判断;
2、采用Linux的命令,ping命令来判断:ping www.baidu.com
4、如何来设置Ubuntu系统的全屏?
1、如果虚拟机里设置全屏,但是Ubuntu没有跟着全屏,原因之一就是VMware tools这个工具没安装OK!
->虚拟机 ->安装VMware tools->Ubuntu会自动弹出一个VMware tools安装目录
->把VMware tools安装目录里面的VMwareTools-10.0.5-3228253.tar.gz这个复制到主文件夹下
->用终端来操作:解压VMwareTools-10.0.5-3228253.tar.gz这个文件 ->tar zxvf VMwareTools-10.0.5-3228253.tar.gz
->下面所有操作都是默认安装(按回车键),如果有No的话,你要写yes上去!~
->VMware tools安装OK之后,可以主机和Ubuntu系统之间进行相互拷贝!~ 也可以设置主机和Ubuntu系统共享文件夹
Ubuntu系统里的IP地址:一般情况都是自动获取的(DHCP来获取)
5、设置主机和Ubuntu系统共享文件夹,怎么来设置?
1、打开虚拟机->设置->进入虚拟机设置界面->点击选项->共享文件夹->点击启动
2、上述设置OK之后,Ubuntu怎么进入共享文件夹:
==========================================================
6、采用命令方式进行系统的更新:sudo apt-get update
【更新示例】
====================================================
7、sudo apt-get 常用命令
sudo apt-get update //获得最新的软件包的列表
在设好更新源后,必须先执行此命令。
sudo apt-get install xxx //从源中安装xxx软件 (常用)
sudo apt-get remove xxx //删除包
sudo apt-get download xxx //从源中下载xxx deb包
sudo apt-get source xxx //从源中下载xxx的源码包
sudo apt-get upgrade //更新系统文件
====================================================
8、【SSH讲解】
SSH为Secure Shell的缩写,由互联网工程任务组(IETF-The Internet Engineering TaskForce)的网络工作小组(Network Working Group)所制定。
SSH是建立在应用层和传输层基础之上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
ubuntu安装ssh服务器:sudo apt-get install openssh-server
【SSH安装示例】
重启SSH服务(必要时使用):sudo /etc/init.d/ssh restart
【重启SSH服务示例】
怎么来使用SSH远程服务功能:采用Xshell工具
在终端输入命令:ifconfig查询当前主机ip
(1)打开Xshell 5软件,点击弹出界面的左上角新建
(2)在主机那一栏输入在终端查询到的主机IP,点击确定即可
这里是引用
输入自己Linux下的用户名以及密码>
=========================================================
9、Linux下编程工具(概述、目录结构)
1)Linux文件及目录结构: 无论何种版本的linux,桌面、应用是linux的外衣、文件组织、目录结构才是linux的内心)
2、Linux命令
无命令,不Linux
3)编辑器、编译器、调试器:
写程序永远离不开:编辑、编译、调试
不同windows下完善集成开发环境,linux下以上操作大多在字符界面通过各种各样命令完成,品尝自己原始加工的乐趣
4)shell脚本+makefile
shell脚本处理Linux中复杂而又繁琐的操作 (很多命令需要一个个手动输入,可以考虑用脚本,先把命令写入脚本,然后执行脚本)
makefile管理复杂的代码关系 (当项目代码的文件比较多的时候,可以使用Makefile来管理代码文件)
【总结】:Linux下C/C++开发,比较原始的开发(没有很好的集成开发工具IDE),需要你手动进行操作!~
=========================================================
【大树底下好乘凉:对磁盘分区的管理(树状)】
【一切皆文件: 对数据、硬件设备的管理】
【大树底下好乘凉:对磁盘分区的管理(树状)示例】
pwd查看当前目录!
【解析】 /dev/char ->就是一个绝对路径,最开始目录是根目录(“/”)
【一切皆文件:对数据、硬件设备的管理示例】
#开启摄像头,查看摄像头的设备驱动文件video0
#关闭摄像头,查看摄像头的设备驱动文件是否还存在?
=========================================================
先构建顶层根目录,再将硬盘的不同分区挂载到不同的目录下。这些目录被称为挂载点或安装点,然后通过此目录来访问这个分区上的文件。
Linux引导启动时,默认使用根目录,其中一般都包括这样一些子目录:bin、sbin、usr、boot、var、etc等。
不同的外表下总有一颗相同的心。无论何种版本的linux发行版,桌面、应用是linux的外衣,文件组织、目录结构才是linux的内心。
/ (根目录)
在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。
/home
每个用户都有自己的用户目录:/home/用户名用来存放用户的数据、设置文件等。
【示例】
/root
这是系统管理员(root user)的目录。
【示例】
ywd@ywd:~$ su root //表示是切换用户,切换到root账户下**
ywd@ywd:~$ sudo passwd//表示修改root的密码:sudo passwd来进行修改
/bin
这里存放了标准的linux的工具,比如像“ls”、“cat”、“mv”、“cp”等。
【示例】
/sbin
存放涉及系统管理的命令,只有系统管理员才可 执行,普通用户无权限执行这个目录下的命令。在系统其它目录下的sbin目录下包含的都root权限才能执行的命令。
【示例】
/lib
主要用于存放应用程序所需的共享库,在Linux执行或编译一些程序的时候,用到的一些库,就在这个目录下
【示例】
/etc
这里存放了系统、软件的配置文件。如用户的账号与密码、系统的主要设定、所要开启的服务项目。
例:你安装了samba这个套件,当你想要修改samba配置文件的时候,你会发现samba配置文件就在/etc/samba目录下。
【示例】
/boot
放置linux系统启动时相关的文件。
如:linux的内核文件:/boot/vmlinuz 系统引导管理器:/boot/grub
【示例】
/var
系统执行过程中经常变化的文件
/var/log:随时更改的日志文件
/var/log/message:所有的登录文件存放目录
/tmp
存放用户或程序的临时文件,通常为空,任何人都可以访问,重要数据不可放置在此目录下。
/dev
存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备。
例如:挂载光驱mount /dev/cdrom /mnt
/usr
系统存放程序的目录,比如命令、帮助文件等。
在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。
当我们安装一个Linux官方提供的软件包时,大多安装在这里。 如果软件有配置文件,会把配置文件安装在/etc目录中。
例:
/usr/bin目录用于存放程序
/usr/share存放共享的数据,比如音乐或者图标等
/usr/lib存放许多程序运行所必需的一些函数库文件
/opt
主机安装软件的额外目录,意思为可选择的,有些软件包也会被安装在这里。安装到/opt目录下的程序,它所有的数据、库文件等都放在一个目录下。
/mnt
用于存放挂载储存设备的挂载目录,不过并不是绝对的,只要愿意,可以随便找一个地方挂载。
/media
有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等。
/proc:
存放操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)。
/proc/cpuinfo 关于处理器的信息,如类型、厂家、型号和性能等
/proc/devices 当前运行内核所配置的所有设备清单
/proc/interrupts 正在使用的中断,和曾经有多少个中断
/proc/ioports 当前正在使用的I/O端口此文件夹一般挂载内存文件系统,即里面的内存一般存放于内存中,掉电丢失
【示例】
9、power management:
普通文件(数据文件)
普通文件是用于存放数据、程序等信息的文件,一般都长期地存放在外存储器(磁盘)中。普通文件又分为文本文件和二进制文件。
1)文本文件
文本文件中保存的是字符的编码,用户可以直接读懂其中的数据,如数字、字母等。
2)二进制文件(binary file)
内存中的数据原封不动地保存至文件中,这样的文件称为二进制文件
目录文件
目录文件是由文件系统中一个目录所包含的目录项所组成的文件,用户进程可以读取目录文件,但不能对它们进行修改,只有系统(内核)才可以修改目录文件。
设备文件
设备文件是用于为操作系统与设备提供连接的一种文件。在Linux系统中将设备作为文件来处理,操作设备就像是操作普通文件一样。设备文件又分为字符设备文件和块设备文件。每一个设备对应一个设备文件,存放在/dev目录中。
1)字符设备(Character device)
这是一个顺序的数据流设备,对这种设备的读写是按字符进行的,而且这些字符连续地形成了一个数据流。字符设备不具备缓冲区,所以这种设备的读写是实时的,如串口设备。
2)块设备(Block Device)
这是一种随机存取设备,对这种设备的读写是按块进行的,它使用缓冲区来存放暂时的数据,待条件成熟后,把缓存中的数据一次性写入设备或从设备中一次性读出数据放入到缓冲区,如磁盘。
链接文件
链接提供了共享文件的一种方法,链接又可以分为软链接(符号链接)和硬链接。
1)软链接类似于快捷方式,软链接文件可以在不同的文件系统之间建立一种链接关系,删除软链接的源文件,文件就不存在了。
2)硬链接文件是已存在文件的另一个名字,删除硬链接的源文件,文件依然存在
管道文件
管道文件主要用于在进程间传递数据,它是Linux进程间的一种通信机制。管道是进程间传递数据的“媒介”。
套接口文件
套接口(Socket)文件(也称套接字)主要用于不同计算机间的进程间通信。套接口有3种类型:流式套接口、数据报套接口、和原始套接口。
=================================================