一、Linux基础
(一)为什么要学Linux
- 嵌入式开发中广泛使用。
- Linux开源、免费、移植性、裁剪定制、8M ROM、运行空间:2M RAM。
- RTOS:实时操作系统
- ucos:开源,但收费。
- freertos:免费 8K RAM
- VxWorks:收费
(二)Linux内核结构
- 用户空间:用户的应用程序。命令,shell解释器,shell脚本。
- 内核空间:
(三)文件系统
- 文件系统:管理数据存储容器(外部存储)的组件。
- 数据存储(存储器):
金字塔模型:
CPU自带的寄存器(速度最块,数量少,成本高)ARMCPU 37个
高速缓存 cache 存储单位:M
随机存储器(即内存条,RAM) 存储单位:G
外部存储器(容量大,成本低,掉电不丢失,速度慢) 硬盘 ROM flash 存储单位:T
stat接口:家用电脑
ide接口:服务器
M.2接口:固态存储器
PCIE接口:固态存储器
光盘、软盘、机械硬盘、固态硬盘、U盘
- 文件系统种类:
- 本地文件系统:
- 网络文件系统:共享目录 nfs smab 网盘
- 虚拟化文件系统:是通过将一部分内存映射为磁盘,按文件系统方式管理。
- 文件系统格式分类:
- Windows:NTF文件系统、FST32、FAT16
- Linux:ext3,ext4,ext5
5.Linxu的磁盘管理:
- Linux的理念:一切皆文件。
- 磁盘文件:将磁盘设备抽象化为一个文件
/dev/sda
sd:表示是一个stat借口硬盘
a:表示第一块硬盘,a、b、c、……往后命名其他硬盘
/dev/sda1
1:表示第一个分区,1、2、3……往后命名其他磁盘分区
- LInux的根目录结构:/ 表示根目录。一切都挂载在根目录上。
目录 | 描述 |
---|
home | 所有用户的家目录所在,里面存放了所有的用户(除了root用户) | etc | 存放程序的配置文件、服务启动文件、系统设置 | bin | 常用的命令、可执行文件 | dev | 设备目录,里面存放的都是设备文件 | root | 管理员用户家目录 | lib | 系统的库目录,存放系统的运行库 | mnt | 系统的挂载目录 | media | 是Ubuntu系统的自动挂载目录 | proc | 该目录是一个虚拟文件,用于给用户提供一个查看系统状态的入口,里面的每个数字目录对应一个进程。(其中cpuinfo,可以获得CPU的状态信息,version,可以获得操作系统的信息) |
- 挂载:指将外部存储设备文件连接到系统的某个目录,可以通过这个目录访问存储器中的内容。
使用mount命令挂载硬盘
$ sudo mount /dev/sdb1 Udisk/
/dev/sdb1:块设备文件名
Udisk/:挂载点,你想要将硬盘挂载到哪个目录,该目录必须存在。
卸载:
$ sudo umount Udisk/
Udisk/:卸载挂载点
- 路径问题:
- 路径:定位一个目录的位置
- 格式:起点开始,使用/分隔各个目录。
绝对路径(起点从根目录/开始的):/home/user/tmp
相对路径(起点从家目录或.当前目录开始的):/tmp
- Linux文件系统和Windows文件系统的区别:
- 文件命名:Linux严格区分大小写
- 路径分隔符:Linux的分隔符是/,Windows的分隔符是\。
(四)shell命令
- shell命令:用户与Linux交互所使用的一种方式。
- 基本格式:
命令名:命令的名字,必须有
选项:可以有,以’-'开头的,后面紧跟选项字符
参数:可选的,主要用于给命令提供路径、名字等其他内容
命令的各个部分间至少使用一个空格符间隔
- 历史命令的查询:使用快捷方式Ctrl + r进行到历史命令查询模式。
- 给命令定义别名:
- alias 别名 = “实际操作符”
- 取消别名:unalias 别名
- shell命令中的特殊字符:
通配符 | 作用 |
---|
* | 可以代指任意个数的字符 | ? | 可以代指一个任意字符 | […] | 匹配指定的字符表中的一个字符 | [^…] | 匹配除指定字符表中的一个字符 | [ - ] | 匹配指定的范围中的一个字符 |
- 管道符号(|):连接两个命令,作用是将上一个命令的输出作为下一个命令的输入。
wc 命令 统计命令 -l:统计行;-w:统计单词;-c:统计字节。
grep 文本查询命令。
man命令 查询命令,系统调用等。
- 转义字符(\):在特殊字符前使用\转义字符,使特殊的字符表示字符不表示特殊的含义。
- 目录分隔符(/):用于路径表示中分隔两个目录。
- 输出重定向:
命令 | 作用 |
---|
> 文件名 | 将命令输出的结果写入到文件中,新建或覆盖模式写入 | >> 文件名 | 将命令输出的结果写入到文件中,追加模式写入 | 2> 或 &> | 将标准错误信息输出到文件中 |
- 命令置换(``):将后一命令的结果作为上一命令的参数,在shell脚本中使用得比较多。
- shell中常用的基本命令:
命令 | 作用 |
---|
mkdir | 创建目录(-p:递归创建目录) | rmdir | 删除目录(-r:递归删除) | cd | 转换目录 | cp | 复制文件或目录(-r:递归复制) | mv | 移动文件或目录 | touch | 创建文件 | pwd | 显示当前位置的绝对路径 | chmod | 改变文件或目录的访问权限 | chown | 改变文件或目录的属主 | chgrp | 改变文件或目录所属的组 | cat | 显示文本文件 | less\more | 分屏显示文件 | head | 显示文件开头(-行数,指定显示文件开头多少行) | tail | 显示文件结尾(-行数,指定显示文件结尾多少行) | ln | 创建文件链接。(软链接(类似于Windows中的快捷方式):ln -s 源文件 目标文件;硬链接:ln 源文件 目标文件) | diff | 比较两个文本文件的异同 | file | 查看文件类型 | echo | 显示文本 | date | 显示时间 | du -sh 目录名 | 查看目录文件大小 | tar | 归档和展开文件(创建归档:tar -cvzf 输出文件名 归档压缩对象;解压缩:tar -xvf 需解压的文件 输出文件名) |
-
用户相关:
- 用户:用于登录计算机的账号。
- 用户的属性:
- 用户名
- 口令
- 用户ID(UID)
- 用户目录(HOME)
- 用户shell
命令 | 作用 |
---|
adduser 用户名 | 创建新用户 | deluser 用户名 | 删除用户(–remove-home) | delgroup | 删除用户组 | su 用户名 | 切换用户命令(-:切换用户并更改环境变量;-c “命令” 用户名:使用临时身份) |
(五)进程
- 进程:一个程序在计算机中的一次运行,称作一个进程。
- 进程相关命令:
命令 | 作用 |
---|
ps | 查看进程(-aux:查看所有进程;不加选项:查看终端进程) | kill | 发送信号命令(-9:杀死进程信号) | nice/renice | 修改进程优先级(-n:新的优先级;-p:pid) | bg/fg | 后台/前台启动任务(在运行命令后加&,则后台运行该命令) |
|