文章目录

  • 1. 嵌入式系统
  • 2. 嵌入式层次图
  • 3. Linux常用命令
  • 4. vim操作
  • 5. GNU工具
  • 6. Linux软件包
    • 6.1 Linux软件包命名规则
    • 6.2 安装命令
      • 离线安装dpkg
      • 在线安装 apt-get
  • 7. 打包压缩命令
  • 8. 查看文件内容
  • 9. 常用文件操作
  • 10. 通配符
  • 11. 文件权限
    • 修改文件权限
  • 12. 软链接与硬链接
  • 13. 用户管理相关
  • 14. 磁盘相关
  • 15. 环境变量
    • 修改环境变量
  • 16. 关机与重启
  • 17. 网络
    • Ubuntu设置网络方式

1. 嵌入式系统

以计算机应用为中心,以计算机技术为基础的,软硬件可裁剪的,对功能、性能、体积、可靠性等有严格要求的专用计算机系统。
PS:
linux系统:开源的
UNIX系统:不开源
IOS系统,基于UNIX开发的
Android 基于Linux开发

现在主流基于linux的系统的发行版本

  • centos、Ubuntu、Deepin(国产)、RedHat、Debian、Gentoo、Kali Linux、Arch Linux、Suse

2. 嵌入式层次图

-----------应用层--------
(用户空间) --> (0-3G)
应用程序App glibc [0-3G]
或者通过shell命令 shell脚本→命令行解释器→系统调用

-------------(系统调用swi)----------
(内核空间) —> [3-4G]
内核层:
5大功能:

  1. 文件管理:虚拟文件系统VFS
  2. 内存管理:内存的分配和回收
  3. 网络管理:网络协议栈
  4. 进程管理:linux是分时多任务的操作系统(时间片轮转,上下文切换)
  5. 设备管理:linux一切皆文件 bsp-lcd

设备驱动的管理 字符设备驱动:按照字节流来访问,并且顺序访问的设备就属于字符设备驱动。

块设备驱动:按照block(512字节)来访问的设备,可以顺序访问,也可以无序访问的设备。

网卡设备驱动:接收网络协议栈发来的数据,将这些向网线上收发即可。网卡驱动没有设备文件。

-------------------硬件层---------------------

硬件名 驱动类型
LED si7006(温湿度传感器) LCD TOUCHSCREEN(触摸屏) camera 字符设备驱动
emmc 硬盘 (Nor NAND)Flash u盘 块设备驱动
dm9000 网卡设备驱动

PS:
命令行解释器是一个单独的软件程序,它可在用户和操作系统之间提供直接的通讯。命令行解释器是解释器的一种,用于对命令行进行解释执行。

3. Linux常用命令

命令 解释
ls -al 显示所有文件的详细信息
ls -lh 带单位显示文件大小
ls -i 查看当前目录下文件的inode节点号
cd - 返回上一次所在目录
pwd 显示当前目录的绝对路径
mkdir -p a/b/c 嵌套创建目录(创建了a目录,在其下创建了b目录,在b目录下创建了)
rmdir 删除一个空目录文件
touch a 创建a文件,如果a文件存在,则更新a文件的时间戳
rm -r 删除目录文件
rm -rf 或者 rm -r 强制删除目录或者文件,不加提示信息,如普通用户删除root用户创建的文件
cp dir1 dir2 -r 复制目录

普通用户删除root用户创建的文件的提示信息

4. vim操作

命令 操作
命令行模式
ngg 光标回到第n行
ctrl r 反撤销
shift zz 保存并退出
低行模式
:x 保存并退出
:vsp a 分屏显示文件a
ctrl i 右切换文件
ctrl h 左切换文件
:/a 在打开的所有文件中高亮显示an查找下一个,N查找上一个
:noh 取消高亮
:%s/a/b/g 将文件内所有a替换为b
:m,ns/a/b/g 将第m行到第n行所有a替换成b
:set number 设置行号
:set nonumber 不显示行号

5. GNU工具

GNU下重要软件

  • Emacs代码编辑器工具
  • GNU C (gcc)
  • GNU C Library (glibc)
  • Bash shell

GUN & GPL

  • GNU = GNU is Not Unix 一个组织
  • GPL = General Public License 一个开源产品协议,在开源产品的基础上二次开发,必须公开源码

6. Linux软件包

.deb(ubuntu) .rpm(RedHat)

.deb软件包中包含 可执行程序,man手册,说明文档,配置信息等

6.1 Linux软件包命名规则

软件名 版本号 修订版本号 架构(64位→amd64,32位→i386) 后缀名(决定用在哪个发行版本上)
sl _ 3.03 - 17build2 _ amd64 .deb

6.2 安装命令

离线安装dpkg

命令 作用
sudo dpkg -i xx 离线安装软件包xx
sudo dpkg -l xx 查看 软件xx的版本
sudo dpkg -L xx 查看软件xx的安装路径
sudo dpkg -r xx 卸载软件xx(软件配置信息会保留)
sudo dpkg -P xx 完全卸载软件

在线安装 apt-get

先检查软件的依赖,如果发现软件有依赖的其他软件,一并安装到自己的系统中

命令 操作
sudo apt-get update 更新下载源
sudo apt-get install xx 安装软件xx
sudo apt-get install -f xx 强制安装xx
sudo apt-get download xx 只下载不安装xx
sudo apt-get source xx 下载xx的源码
sudo apt-get remove xx 卸载软件xx
sudo apt-get clean 清理安装包(安装包默认路径 /var/cache/apt/archives)

PS:
由于用户所在的位置不同,访问服务器的时候,速率也不同。可以选择访问最快的服务器自己使用
比如选择清华镜像服务器:

  1. 找到软件 software & update
  2. 选择Ubuntu Software标签
  3. 从Download from中选择Other
  4. 在弹出提示框中选择China下的mirrors.tuna.tsinghua.edu.cn,然后点击choose Server
  5. 输入root用户密码
  6. 完成
  7. 在Software & Update界面,左下角有一个Revert按钮,用来恢复原来配置

部分好玩的软件

命令 安装的软件
sudo apt-get install sl 小火车应用程序
sudo apt-get install oneko 一个小猫
sudo apt-get install bastet 俄罗斯方块 终端字体缩小点就能玩
sudo apt-get install frozen-bubble 泡泡龙
sudo apt-get install kolourpaint4 画图板
sudo apt-get install xawtv 打开摄像头的软件

7. 打包压缩命令

Linux中可压缩的格式

格式 后缀
gzip .gz
bzip2 .bz2
xz .xz

压缩速度:gz > bz2 > xz
压缩率:gz < bz2 < xz

命令 操作
gzip xx 将xx文件压缩成.gz格式
gunzip xx.gz .gz文件解压缩
bzip2 xx 将xx文件压缩成.bz2格式
bunzip2 xx.bz2 .bz2文件解压缩
xz xx 将xx文件压缩成.xz格式
unxz xx.xz .xz文件解压缩

打包归档
格式
tar 参数 生成的包.tar 源目录

通用解压命令
tar -xvf 文件名

注意:
c/x v j z J 这些参数顺序可以改变,唯一需要注意 f 只能放在最后

8. 查看文件内容

命令 操作
cat xx 查看xx文件内容
cat -n xx 带行号查看xx文件内容
head xx 显示xx文件前10行内容
head -n 5 xx or head -5 xx 显示xx文件前5行
tail xx 显示xx文件后10行
tail -n 5 xx or tail -5 xx 显示文件后5行
tail -f xx 动态监测文件内容更新情况
| 管道描述符,将前一个命令的结果作为后一个命令的参数
head -16 xx | tail -4 显示xx文件前16行中后四行的内容
more xx 以百分比形式显示xx文件内容,回车键向下滚动, q退出
less xx 以百分比形式显示文件内容,回车键向下滚动,q退出,向上滚动,向下滚动

9. 常用文件操作

命令 操作
wc
wc xx 统计文件内容的信息
行数 单词数 字符数 文件名
wc -l xx 统计xx文件的行数
wc -w xx 统计xx文件的单词数
wc -c xx 统计文件的字符数
wc -l *.c 统计当前目录下,所有.c结尾文件的行数
grep 检索文件内容
grep "string" xx 在xx文件中查找含string的行
grep -n "string" xx 查找结果带行号显示
grep -i "string" xx 查找时,不区分大小写
grep -v "string" xx 查找不包含string的行
grep -w "string" xx 严格精确查找,结果中string不能带前缀或者后缀
grep "world" * -nR 查找当前目录及子目录下所有文件中包world的行,带行号显示
grep "^string" xx string开头
grep "*string$" xx string结尾
grep "^string$" xx 只有string
find 查找文件
find ./ -name xx or find -name xx 当前目录及子目录找xx文件
find -type f 根据文件类型查找(bsp-lcd),f为普通文件
find -type f | xargs grep -n "string" --color=auto 查找当前目录及其子目录下所有包含“string”的文件 --color=auto 自动高亮
cut 按行按分隔符处理
cut -d : 1 xx 在xx文件中以:为分隔符,取第一个
cut -d \" 1,2 xx 在xx文件中以:为分隔符,取第一个和第二个,采用"分割时,需要用反斜杠\来转义

PS:

使用find时,注意find -name *.c执行时,命令行解释器会将其翻译成find -name a.c b.c d.c这样会导致find命令参数错误,可以使用find -type f | grep ".c$"来查找所有.c文件

10. 通配符

符号 作用
* 匹配任意长度任意字符
? 只通配一个字符
[abc] 通配abc
[1-5] 通配15中任意一个
[^abc] or [^a-c] 通配除abc外任意一个字符
[a-c] 通配a, b, c中任意一个字符,但有的计算机也会匹配到A, B, C

PS:
最后一条的结果,产生的原因是本地语序,一般本地语序是aAbBcCdD...,可以修改环境变量来取消本地语序export LC_ALL=C,取消后的语序为abcd...z ABCD...Z,这样用[a-c]通配时,就只会通配abc

11. 文件权限

使用ls -l查看文件信息时有:
drwxr-xr-x 3 top top 4096 Oct 2 15:54 ./

文件类型 当前用户权限 同组用户权限 其他用户权限 该目录下有几个目录,如果是文件默认为1 所属用户 所属组 文件大小(字节) 时间戳(最后一次修改时间) 文件名
d rwx r-x r-x 1 stu stu 4096 Oct 2 15:54 ./

PS: ./表示当前目录文件

修改文件权限

只有文件所属用户和root用户可以修改权限


12. 软链接与硬链接

软链接
ln -s 被链接的文件(绝对路径) 软链接文件
-s参数,表示生成软链接,symbolic
软链接相当于快捷方式,创建一个文件,链接到源文件,我们就可以通过软链接文件去访问源文件,创建软链接后,该文件的inode节点的引用计数没有变化
Ps:

  1. 生成的软链接文件用绝对路径,如果用相对路径时,移动软链接文件,链接破裂,链接文件不可用。
  2. 当软连接创建位置不在当前目录时,源文件也应该用绝对路径,否则用软链接找不到源文件。
  3. 当被链接的文件移动或者删除时,链接文件就会失效

硬链接
ln 被链接的文件 软连接文件
相当于给源文件起一个别名,源文件与硬链接文件的inode号都是相同的。

每创建一个硬链接,对应文件的inode节点中的引用计数就会加1,当删除一个文件时,对应的inode节点的引用计数会减1,但文件不会真的删除,其他硬链接文件仍然可用,只有在该inode节点的引用计数==0时,该文件才会被真的删除。

13. 用户管理相关

添加新用户

命令 操作
sudo adduser xx 添加新用户xx,会提示添加用户信息

注意:
新增用户没有sudo权限,需要在/etc/sudoers文件中添加
/etc/sudoers 是只读的 应该先增加写权限 再修改
复制一份有权限的用户的记录,把名字改成新用户就可以了
修改后 记得将写权限去掉

切换用户

命令 操作
su xx 切换到xx用户
su - xx 切换用户同时,加载用户的环境变量
exit 退出当前用户
sudo passwd xx 修改用户xx的密码
sudo deluser xx 删除用户
id xx 查看用户信息
sudo usermod -c "string" 用户名 将用户的描述信息更改为string
sudo usermod -d /home/hello 用户名 将用户的家目录改为/home/hello(需要将用户的隐藏配置文件都移过去)
sudo usermod -l 新用户名 用户名 修改用户名
sudo usermod -g 新的组名 用户名 修改用户所属于的组

14. 磁盘相关

磁盘类型

  • FAT32 不能存 > 4G 的文件
  • NTFS 可以存 > 4G 的文件
  • ext4 Linux用的文件系统
命令 操作
sudo fdisk -l 查看系统挂载的磁盘信息
sudo df -h 查看磁盘使用情况
sudo mount /dev/sdb2 ~/temp /dev/sdb1挂在到 ~/temp

查看磁盘的其他操作
sudo fdisk /dev/sda1
输入m

帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表

15. 环境变量

存在系统中的变量,保存系统启动或者系统运行相关的一些配置信息

命令 操作
env 查看已有环境变量

OLDPWD记录上一次所在路径
HOME记录家目录路径
PATH记录可执行文件路径

修改环境变量

1、export
export PATH=$PATH:/home/stu/test/bin
临时修改只对当前终端有效
2、修改家目录的.bashrc文件
export PATH=$PATH:/home/stu/test/bin放入.bashrc文件,然后注销再登录或者执行命令source .bashrc,就会对当前用户生效
3、x修改系统加载文件
/etc/environment 或者 /etc/profile
这两个文件在系统启动时会执行,会对所有用户有效
重启或者执行命令source /etc/profile 或者 source /etc/environment生效

16. 关机与重启

命令 操作
sudo shutdown -h now 立即关机
sudo shutdown -h 10:30 10:30关机
sudo shutdown -h 5 5分钟后关机
sudo shutdown -r now 立即重启
sudo reboot 立即重启
sudo shutdown -c 取消关闭计划
sudo shutdown -h or sudo shutdown -r 默认在一分钟后执行

17. 网络

Ubuntu设置网络方式

1、图形化界面
右上角进入网络设置,添加相关参数,一般选自动,也可以选择手动设置,然后应用,退出。

2、配置文件设置静态IP
Ubuntu18.04版本后,不再使用/etc/network/interfaces这个文件
改用/etc/netplan下的配置文件01-network-manager-all.yaml
执行命令
sudo vi /etc/netplan/01-network-manager-all.yaml
该文件有严格的格式要求,缩进控制,冒号后必须加空格,gateway4不加方括号[]

# Let NetworkManager manage all devices on this system
network:version: 2renderer: NetworkManagerethernets:ens37:addresses: [192.168.0.54/24]gateway4: 192.168.0.1nameservers:addresses: [8.8.8.8,114.114.114.114]dhcp4: nooptional: no

注意:
第六行的ens37指的是所使用的网卡,要跟自己所用的网卡号相同,可以通过左上角三个方块的图标查看。
第七行是IP地址
第八行是网关
第十行是DNS域名解析服务器地址

命令 操作
ifconfig Linux查看网络信息
ipconfig windows查看网络信息
sudo service network-manager restart 重启网络管理服务
ping www.baidu.com 测试访问www.baidu.com网站

嵌入式系统基本概念Linux常用命令相关推荐

  1. 极客的Linux常用命令速查手册

    Linux常用命令速查手册 1.1 写在前面的话 1.2 Linux 常用命令速查手册 1.2.1 mkdir创建一个文件夹 1.2.2 cd进入一个文件夹 1.2.3 rmdir删除一个文件夹 1. ...

  2. 2. Linux常用命令

    Linux目录结构 Desktop的上层目录是~(用户主目录) ~的上层目录是/(系统根目录) Linux常用命令 切换目录 cd cd app 切换到app目录 cd - 切换到上一层目录 cd / ...

  3. Linux基础概念及常用命令

    Linux基础概念及常用命令 文章目录 Linux基础概念及常用命令 1 Linux概述 1.1 为什么要学Linux 1.2 Linux简介 1.3 Linux 发行版 1.4 Linux 应用领域 ...

  4. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令

    文章目录 1.Ubuntu操作入门 1.1 Ubuntu下打开终端 1.1.1 用搜索框打开终端 1.1.2 使用右键打开终端 1.1.3 快捷键打开终端 1.1.4 调节终端的字体大小及颜色 1.2 ...

  5. 嵌入式linux基本指令,成都嵌入式开发之Linux常用命令大全

    原标题:成都嵌入式开发之Linux常用命令大全 Linux系统中有很多命令,使用Linux系统最常用的就是命令操作,而不是像Windows一样,使用鼠标操作.Linux中许多常用命令是必须掌握的,也有 ...

  6. Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

    Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩)         ...

  7. linux一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令

    文章目录 一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令 一,系统分区 概念:在硬盘上产生文件系统的过程 第一步:磁盘分区(创建隔断) 分区规则:主分区最多只能分4 ...

  8. Linux系统简介-虚拟机安装教程(保姆级)-Linux常用命令

    Linux系统简介-虚拟机安装教程-Linux常用命令 1.Linux系统简介 1.1Linux系统的历史 1.2Linux系统的特点和优势 1.3Linux发行版的分类 2.虚拟机的安装教程 2.1 ...

  9. Linux常用命令英文全称与中文解释Linux系统

    Linux常用命令英文全称与中文解释Linux系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 意思是密码. su: ...

最新文章

  1. 将C++里的Mat矩阵保存并由matlab提取分析
  2. linux热插拔原理,.NET Core 的热插拔机制的深入探索
  3. 优化C#程序的48种方法
  4. 数据库-优化-groupby的优化
  5. Blazor 火了,不禁让人想起已死的Silverlight !
  6. 7-1 内存分区分配--首次适应算法 (100 分)
  7. 《上海堡垒》改编电影发布 QQ阅读披露作者江南心声
  8. stm32c语言long型数据多少位,stm32 C语言的数据类型说明
  9. 如何在 FPGA 上实现双线性插值的计算?
  10. 十年风雨!看蚂蚁金服SOFA 分布式架构演进
  11. 数学建模之回归分析加例题详解(MATLAB实现)
  12. 【机器学习】6:K-近邻(KNN)算法实现手写数字识别的三种方法
  13. 微信个人号API开发
  14. ProxySQL+MGR实现读写分离和主节点故障无感知切换 - 完整操作记录
  15. C#使用正则表达式校验邮箱
  16. 如何获取本地IP(收藏)
  17. Shell脚本读取mysql结果集各数据项的值
  18. 【妄言之言】我的2016--困境与选择
  19. 【Python中字典的删除操作-del和clear】
  20. HDFS的javaAPI操作(10)

热门文章

  1. 后端开发学习阶段总结
  2. 软件获取手机的ime权限_如果Android手机软件不授权权限,软件应用可以使用
  3. 《吉佳公众健康管理平台》解决方案
  4. 纯命令行+美观UI,10款实用开源下载工具
  5. Linux下支付宝安全控件安装程序运行原理
  6. Linux基础优化与安全小结
  7. 微信小程序:实现悬浮返回和分享按钮
  8. QGroundControl(QGC)飞控地面站二次开发-修改地图
  9. mysql安装教程8.0.21安装_mysql 8.0.21 安装配置方法图文教程
  10. 分享:C++各大有名库的介绍之C++标准库