知识点汇总LinuxC高级 -1
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
科普小课堂:寻·科普|第二期:聊聊Linux的前世今生 (qq.com)
UNIX和linux的区别:
1)linux是开发源代码的自由软件.而unix是对源代码实行知识产权保护的传统商业软件。
2)UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.
不同操作系统的内核(了解):
windows - NT
ubuntu - linux
Android - linux
macOs ios - unix
查看系统版本
查看操作系统版本
lsb_release -a 或者 -r
cat /etc/issue ---> 查看文件中的内容
查看内核版本
uname -a 或者 -r
cat /proc/version ---> 文件中查看
内核系统架构
应用层:app、shell命令
---------------系统调用-----------------
内核层:五大功能
内存管理
文件管理
网络管理
设备管理
进程管理
-----------------------------------------
硬件层:鼠标、键盘、lcd等
系统关机或重启命令
关机:
sudo shutdown -h now:立即关机
sudo shutdown -h +时间 "提示语句" :定时关机 min为单位
sudo shutdown -h 时间
重启:
sudo shutdown -r now:立即重启
sudo shutdown -r +时间:定时重启 min为单位
sudo shutdown -r 时间
sudo reboot now:立即重启
Linux下的软件安装
两种软件包管理机制
debian Linux:deb软件包 - ubuntu用的是这个
redhat linux:rpm软件包
deb软件包分为两种:
二进制软件包(deb):.deb -- 安装软件的软件包
源码包(deb-src):.dsc
软件包命令:
软件包的管理工具:dpkg、apt
- dpkg
特点:安装时需要软件包存在,不需要从镜像站点获取软件包。
不需要网络,不能检查软件的依赖关系
dpkg 命令:
sudo dpkg -i 软件包的完整名称:安装软件
sudo dpkg -r 软件名:卸载软件
sudo dpkg -s 软件名:查看软件的安装状态
sudo dpkg -P 软件名:完全卸载
sudo dpkg -L 软件名:列出软件目录信息
- apt
特点:安装时不需要软件包存在,需要从镜像站点获取软件包,需要网络,能检查软件之间的依赖关系
apt-get:
sudo apt-get install 软件名:下载并安装软件
sudo apt-get remove 软件名:卸载软件
sudo apt-get remove --purge 软件名 :完全卸载
/var/cache/apt/archives --> 软件包默认存放的路径
sudo apt-get clean:清除下载的软件包
sudo apt-get download 软件名:下载软件包,但是不安装(权限不够时用sudo)
sudo apt-get upgrade 软件名:更新软件
sudo apt-get update:更新源
shell的基本命令
shell是命令解析器
用户、shell、内核、硬件之间的关系:
用户在命令行提示符下键入命令文本,开始与Shell进行交互。
接着,Shell将用户的命令或按键转化成内核所能够理解的指令
控制操作系统做出响应,直到控制相关硬件设备。
然后,Shell将输出结果通过Shell提交给用户。
解析器的分类:
Bourne Shell(简称sh):一般作为应急Shell使用。
C Shell(简称csh):健壮性较差
Korn Shell(简称ksh):需要许可证,应用不广泛
Bourne Again Shell(简称bash):能够提供环境变量以配置用户Shell环境,支持历史记录,内置算术功能,支持通配符表达式,将常用命令内置简化。
shell命令格式
通常一条命令包含三个要素:命令名称、选项、参数。其中命令名称是必须的,选项和参数根据实际情况进行填写
Command [-Options] Argument1 Argument1 ……
Command | shell命令名称,严格区分大小写 |
Options | shell命令选项,每一个参数都需要添加"-"进行引导 |
Argument1 | shell命令参数,一条命令的参数大于等于0个,且多个参数的情况需要利用空格进行隔开 |
注意:
- 一条命令的三要素之间用空格隔开
- 若一行书写多个命令,需要使用 ; 进行隔开
- 如果有一条不能再一行内写完,需要在行尾使用反斜杠:\ ,表示命令还没结束
history - 历史记录查询
history:显示HISTSIZE条
history 10 ---> 只显示10条历史记录
echo $HISTSIZE ---> 在终端显示环境变量HISTSIZE的值
注意:
环境变量的值可以被更改:
export HISTSIZE=10 临时修改,只有在当前终端有效
家目录下文件 .bashrc 中修改就是永久修改,修改完成,从新打开的终端生效
shell中的特殊字符
通配符
通配符 | 含义 |
* | 匹配任意长度的字符 |
? | 匹配一个长度的字符 |
[...] | 匹配其中指定的一个字符 |
[-] | 匹配指定一个字符范围 |
[^...] | 除了其中指定的字符都可以 |
[[:lower:]] | 匹配所有小写字母 |
[[:upper:]] | 匹配所有大写字母 |
实例:(创建file1.c file2.c,file3.c,File1.c,file12.c)
- 用file_*.c,匹配file1.c file2.c,file3.c,file12.c,匹配不到File1.c
- 直接*.c,匹配所有.c文件
- 用file?.c,匹配file1.c file2.c,file3.c, 匹配不到File1.c,file12.c
- 用 file[123].txt,只能匹配file1.c file2.c,file3.c
- 用 file[1-3].txt,能匹配file1.c file2.c,file3.c
- 用 file[^12].txt,除了file1.c file2.c的其他文件都可以
管道 |
将前一个命令作为后一个命令的输入
扩展补充:
wc -l 文件名:文件行数
wc -c 文件夹名:文件字符个数
wc -m 文件名:计算文件字节大小
wc -w 文件名:文件单词个数
输入输出重定向
输出重定向
命令 > file :将file作为输出源,file不存在则创建
命令 >> file :如果文件不存在创建,如果文件中存在内容则追加
命令 &> file 或者 命令 2> file :将由命令阐述的错误输出到file
&>> 或者 2>> :追加由命令产生的错误输出
输入重定向
./a.out < file :将file内容作为命令行参数传到可执行文件中
命令置换符
`` 或者 $():将一个命令的输出结果作为另一个命令的参数