目录

一、什么是嵌入式?

二、linux发展

三、linux系统的层次

应用层

内核层

硬件层

四、linux的目录结构

五、命令行提升符的介绍

六、linux的基本命令

6.1 ls 命令

6.2 cd命令

6.3 pwd命令

6.4 mkdir命令

6.5 sudo命令

6.6 touch命令

6.7 rm命令

6.8 cp命令

6.9 mv命令

6.10 cat命令

6.11 su命令

6.12 clear命令

6.13 tab键补齐

6.14 find命令

七、vim编译器

八、gcc编译器

8.1 gcc编译过程

九、安装软件

补充:


一、什么是嵌入式?

以计算机应用为核心,软硬件可裁剪的专用计算机系统,对功耗、体积、成本、可靠性有要求的系统。(软件控制硬件)

Unix、linux、macOS、安卓、鸿蒙、iOS

Unix:macOS,iOS

linux:安卓,ubuntu,redhat,deepin,centos

win:Windows

二、linux发展

1965年,贝尔实验室-------mutil操作系统

1969年,汤姆森肯----------unics操作系统

1973年,贝尔--------------unix操作系统,并投放于大学实验室(闭源)

1985年,理查德-----------自由软件思想,创建GNU组织,创建GPL开源协议

1991年,林纳斯 ----------linux(类unix)操作系统

三、linux系统的层次

应用层

APP,Makefile,命令,脚本

内核层

内核层的五大功能:

文件管理:(通过文件系统对文件组织管理)

内存管理:(内存的申请和释放工作)

网络管理:(通过网络协议进行网络数据包的收发)

进程管理:(程序的一次执行过程,进程的创建、销毁、调度等)

设备管理:(设备驱动的管理)

硬件层

LED,camera,触摸屏,网卡,硬盘等

cpu:L1cache:大概是1700GB/s

L2cache:大概是200GB/s

内存:ddr3:内存大概是10GB/s

ddr4:内存大概是60GB/s

硬盘:机械硬盘(HDD):100MS/s

SATA(SSD):450MS/s

nvme(SSD):2000MS/s

linux系统:分时,多任务,多用户的操作系统

四、linux的目录结构

文件,文件夹(目录)

bin:存储一些可执行的二进制命令

dev:设备目录

etc:存储linux操作系统的环境变量

mnt:挂载目录

sbin:超级二进制文件

home:家目录(用户目录)

root:存放管理员的一些配置文件

lib:存放支持linux操作系统运行的lib库

五、命令行提升符的介绍

jsetc      @       linux :    /dev                $

用户名 分隔符 主机名 当前所在目录 表示权限:($:普通用户 #:管理员权限)

~:用户目录的路径(/home/jsetc)

六、linux的基本命令

-:后面一般跟属性

*:所有

6.1 ls 命令

ls:显示当前所有的目录和文件

ls -a:显示所有的隐藏目录和文件

ls -l:显示当前目录和文件的所有属性

ls -al(ll):显示所有隐藏目录和文件的属性

rwx:可读可写可执行

d             rwx                    rwx                  r-x

文件的属性 当前用户 同组用户的其他用户 其他用户

chmod:修改文件或者目录的权限

用法:chmod+权限 +目录/文件(chmod 777 jsetc)

文件的属性:

bsp-lcd

b:块设备文件

s:套接字文件

p:管道文件

-:普通文件

l:软链接文件(类似快捷方式)

c:字符设备文件

d:目录文件

6.2 cd命令

cd:(change dir)

cd 路径 //进入指定的目录

路径:

绝对路径:从根目录开始的路径

相对路径:从当前目录开始的路径(逻辑路径)

. :当前路径

.. :上一级路径

../.. :上一级路径的上一级路径

6.3 pwd命令

显示当前用户所在的路径(绝对路径)

6.4 mkdir命令

mkdir:(make dir):创建目录

用法1:mkdir 目录名

mkdir 目录1 目录2

6.5 sudo命令

以管理员权限运行

6.6 touch命令

功能:创建文件

用法:touch 文件名

6.7 rm命令

功能:删除文件或者目录

rm -rf:递归强制删除

6.8 cp命令

功能:复制文件或者目录

用法: cp 源路径 目的路径

6.9 mv命令

功能:移动一个文件或者目录

用法:mv 源路径 目的路径

6.10 cat命令

功能:查看文件中的内容

用法:cat 文件

cat -n 文件名 //显示行号

6.11 su命令

功能:切换用户

用法:sudo su root(切换root用户)

su 用户名(切换普通用户)

6.12 clear命令

功能:清屏(ctrl+l)

6.13 tab键补齐

6.14 find命令

功能:查找文件

用法:find 路径 -name 文件名

七、vim编译器

vim编译器的三种模式:

命令行模式:ESC

yy:复制

p:粘贴

nyy:复制n行

u:撤销

dd:剪切

ndd:剪切n行

gg:跳转到首行

G:跳转到尾行

ngg:跳转到第n行

shift+zz(ZZ):退出并保存

插入模式:在命令行模式下输入i

底行模式:在命令行模式下输入shift+:

w:保存

q:退出

wq:保存并退出

q!:不保存退出

set nu:显示行号

set nonu:隐藏行号

vsp 文件名:左右分屏打开多个文件

sp 文件名:上下分屏打开多个文件

八、gcc编译器

下载命令:sudo apt-get install gcc

编译第一个代码:

gcc hello.c -o hello //-o:更改可执行文件名

8.1 gcc编译过程

预处理(-E)

预处理:头文件的展开,宏的替换,条件编译等。

gcc -E hello.c -o hello.i

编译(-S)

编译:进行语法检查,如果代码有语法错误,会报错,编译结束,生成汇编文件。

gcc -S hello.i -o hello.s

汇编(-c)

汇编:将汇编文件转换成二进制文件,还没有链接到库,不可执行。

gcc -c hello.s -o hello.o

链接

将所有的.o文件链接生成可执行文件

gcc hello.o -o hello

九、安装软件

(1)ubuntu deb

(2)redhat rpm

sl     -   3.03   -     17            build_amd64                         .deb

软件名   主版本   修订版本        架构(64位)

离线安装:dpkg:在安装软件的时候,如果有依赖,这些依赖程序不会被安装

sudo dpkg -i 软件包名           //安装软件
在终端上输入软件的名字       //执行软件
sudo dpkg -r 软件名             //卸载软件(会保留配置文件)
sudo dpkg -p 软件名             //完全卸载
sudo dpkg -l 软件名             //查看软件的安装状态
sudo dpkg -L 软件名             //列举这个软件相关的所有路径
sudo dpkg -s sl             //查看软件的安装状态(更详细)

在线安装apt-get,在线安装如果有依赖程序,这些依赖的程序会被一并安装上去

选择软件源:

sudo apt-get update          //更新软件源
sudo apt-get install -f     //更新软件依赖sudo apt-get install gcc
sudo apt-get install net-tools
sudo apt-get install oneko
sudo apt-get install cowsay
sudo apt-get install cmatrix
sudo apt-get remove 软件名     //卸载软件
sudo apt-get download 软件名       //下载安装包并不安装
sudo apt-get clean              //清除软件安装包

补充:

[1]压缩命令

压缩的对象是文件(目录不能被压缩)

ubuntu上的压缩文件的格式:.gz .bz2 .xz

gzip/gunzip xxx.gz

bzip2/bunzip2 xxx.bz2

xz/unxz xxx.xz

压缩率: xz>gzip>bzip2

压缩速率: xz<gzip<bzip2

使用方法:

gzip/gunzip 文件名

注意:压缩和解压缩文件会被替换

[2]打包(归档)

归档的对象是一个目录

将一个目录归档成一个文件,或者将这个归档猴的文件重新释放变成一个目录

tar 命令
-c:创建归档文件
-x:释放归档文件
-z:压缩成gzip格式
-j:压缩成bzip2格式
-J:压缩成xz格式
-v:显示过程
-f:后跟的是文件的名字

1.归档

tar -cf hello.tar hello         //将hello的目录打包成hello.tar文件

tar -xf hello.tar                 //将hello.tar拆成hello目录

2.打包并压缩成gzip格式

tar -czf hello.tar.gz hello

3.打包并压缩成bzip2格式

tar -cjf hello.tar.bz2 hello

4.打包并压缩成xz格式

tar-cJf hello.tar.xz hello

5.拆包(解压缩)

tar -xvf 压缩包         //万能拆包命令

tar -xvf 压缩包 -C 路径

[3]chmod

功能:修改文件的权限

用法:chmod 权限 文件名

chmod 777 文件名
u:usr 当前用户权限
g:group 同组用户其他用户权限
o:other 其他用户权限
a:all 所有用户权限
chmod o+x 文件名  //给其他用户加上可执行权限

从零开始的嵌入式系统开发学习Day1(初识linux)相关推荐

  1. 从零开始的嵌入式系统开发学习Day3(linux C)

    目录 一.输入输出函数 1.1 getchar()/putchar() 1.1.1 getchar() 1.1.2 putchar() 1.2 get()/puts() 1.2.1 gets() 1. ...

  2. 嵌入式系统开发学习步骤(Linux高级编程学习顺序)

    2019独角兽企业重金招聘Python工程师标准>>> 嵌入式系统开发学习步骤(Linux高级编程学习顺序) 1.Linux 基础 安装Linux操作系统 Linux文件系统 Lin ...

  3. 嵌入式系统开发学习如何起步、如何深入?(转)

    学习有捷径吗?俺认为是有的,正确的道路就是捷径. 就好象是爬山,如果有导游图,那就能找到一条最正确的路线:如果没有导游图,自己瞎琢磨,东问西问,也未必能找到最佳的路线. 有时候回首前尘,会谓叹,要是当 ...

  4. 嵌入式系统开发-学习路线

    嵌入式系统开发 课程链接 随着嵌入式设备的普及,嵌入式应用的需求量也随之增大,本课程将重点培养基于linux系统下的嵌入式应用开发,包括5个阶段,其中课程涵盖了linux系统下的多进程.多线程嵌入式开 ...

  5. 嵌入式系统开发笔记2:Linux的主流发行版本

    本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本文将向大家介绍Linux的主流发行版本. 本文为转载文章,原文网址:Linux各个发行版本对比与简介 首先我们要能够清晰的区分Linux系统内核与 ...

  6. 嵌入式系统开发笔记0_0:目录

    本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本系列文章所介绍的知识和内容,除电路图设计外,其它均采用开源系统,所以你不会在这个系列文章中看到Keil.IAR等软件. 本系列文章涉及C.C++. ...

  7. labview嵌入c代码_LabVIEW与myRIO嵌入式系统开发入门

    一.概述 NI myRIO是NI公司推出的一款嵌入式系统开发平台,内嵌Xilinx Zynq芯片,可以利用双核ARM Cortex-A9的实时性能以及Xilinx FPGA可定制化I/O进行嵌入式系统 ...

  8. 关于嵌入式系统的学习路线图

    来源:本文乃同济大学软件学院王院长(JacksonWan)在同济网论坛发表的帖子<谈谈软件学院高年级同学的学习方向>的第二部分.三部分依次为:一.关于企业计算方向:二.关于嵌入式系统方向: ...

  9. 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——第1章 系统•嵌入•硬件 01-01 Welcome on board!...

    本节书摘来自异步社区<嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜>一书中的第1章,第01-01节,作者 邱毅凌,更多章节内容可以访问云栖社区"异步社区"公众号 ...

最新文章

  1. java.util.concurrent.Callable 接口 源码
  2. map.js的编写(js编写一个对象的方式)
  3. [BFS]JZOJ 4672 Graph Coloring
  4. LeetCode 667. 优美的排列 II(找规律)
  5. 【Java】求解N皇后问题
  6. Dubbo基础知识总结
  7. chrome driver 获取 session_BOSS直聘招聘信息获取之使用webdriver进行爬取
  8. python会自动释放内存吗_没白熬夜,终于把Python的内存管理机制搞明白了
  9. C语言高效编程的四大秘技之以空间换时间
  10. matlab画柱状图斜线,matlab柱状图斜线填充
  11. 水波纹 android,Android特效之水波纹的实现
  12. 《谁动了我的奶酪?》
  13. linux计划任务之crontab
  14. Spring项目使用mkcert制作自签名证书
  15. 中国工程师最喜欢的10大TWS耳机电源管理芯片,钰泰ETA9084名列其中
  16. 刘汝佳 9.2.1 硬币问题
  17. 投了10亿元发展“影游IP”的阿里游戏
  18. sqlserver嵌套查询失败问题
  19. 易语言多线程大漠多线程进程线程多线程
  20. springboot企业信息化后台管理系统

热门文章

  1. 我的世界神秘时代安卓java版_我的世界神秘时代下载
  2. ecovrcs扫地机器人怎么升级_扫地机器人的智能化升级之路
  3. 对啊网投诉退费说明:教师资格证类退费投诉参考文档
  4. 【Autoit】Autoit 使用
  5. 值得收藏的一些网页代码(asp,js,hml)
  6. Mysql 查看连接数,状态
  7. 4个应用案例告诉你什么是云计算
  8. Centos7:su - username 切换用户不成功
  9. Galaxy S5迷你版屏幕尺寸确定:你肯定喜欢
  10. 关于UI界面每个界面尺寸适配的问题