嵌入式知识点总结 Linux驱动 (一)-指令-常用Linux指令 GCC指令 GDB调试指令 驱动开发指令

 针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。

目录

1.怎么查看当前进程?怎么执行退出?怎么查看当前路径?

2.ls命令执行有什么功能?可以带哪些参数?

3.创建目录用什么命令?

4.创建文件用什么命令?

5.复制文件用什么命令?

6.查看文件内容有哪些命令可以使用?

7.怎么向屏幕输出带空格的字符串,比如“hello world"?

8.移动文件用哪个命令?改名用哪个命令?

9.删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?

10.查找文件内容用哪个命令? *

11.查找文件用哪个命令? *

12.cat命令

13.预处理

14.编译为汇编代码

15.汇编

16.链接

17.一步到位编译

18.多文件编译

19.警告处理

20.常用的GDB调试指令

21.加载/卸载驱动

22.Linux驱动如何查看驱动模块中打印信息?

23.如何查看内核中已有的字符设备的信息?

24.如何查看正在使用的有哪些中断号?   


1.怎么查看当前进程?怎么执行退出?怎么查看当前路径?

查看当前进程:ps

执行退出:exit

查看当前路径:pwd

2.ls命令执行有什么功能?可以带哪些参数?

列出当前路径目录和文件等相关名称

参数
-a显示所有文件及目录(.开头的隐藏文件也会列出)
-除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r将文件以相反次序显示(原定依英文字母次序)
-t将文件依建立时间之先后次序列出
-A 同 -à ,但不列出""(目前目录)及 ".."(父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加"*",目录则加""
-R 若目录下有文件,则以下之文件亦皆依序列出

3.创建目录用什么命令?

mkdir XXX
mkdir -p xxx/test 

在工作目录下的 xxx 目录中,建立一个名为 test 的子目录若 xxx 目录原本不存在,则建立一个。(注:本例若不加-p 参数,且原本 xxx目录不存在,则产生错误。)

4.创建文件用什么命令?

vi或vim

vi file1.txt  #直接创建并打开一个文件file1.txt

touch

touch file2.txt  #创建新的空文件file2.txt

echo

echo "this is a new file" > file3.txt     #创建文件file3.txt并将this is a newfi1e写入(说明:使用>指令覆盖文件原内容并重新输入内容,若文件不存在则创建文件。)
echo "add contents" >> file3.txt          #在已存在的文件补充写入新内容add contents(说明:使用>>指令向文件追加内容,原内容将保存。)

less、more、cat

三者都是将文件内容输出到标准输出,其中less和more可以分页显示,cat是显示全部。
三者可以根据已经存在的文件创建新的文件。假设已经存在文件1.txt。

cat  1.txt > 2.txt
less 1.txt > 3.txt
more 1.txt > 4.txt

cd

cd >> file3.txt    #创建新的空文件file3.txt
cd >> file4.txt    #创建新的空文件file4.txt

cd最主要的作用是切换目录,在cd后面跟>或>>再加上文件名就可以创建一个内容为空的文件。它和echo的区别之处在于echo可写文件内容,而cd并不能。

5.复制文件用什么命令?

cp -r test/ test1

-r 的作用:

递归复制

如果 test 是一个目录,那么 -r 表示将 test 目录中的所有内容,包括子目录和文件,一并复制到 test1 中。

没有 -r 时,cp 不能直接复制目录,会报错。

保留结构

使用 -r 时,复制的文件和目录结构会保持与源目录一致。

6.查看文件内容有哪些命令可以使用?

vi         文件名#编辑方式查看,可修改
cat        文件名 #显示全部文件内容
more       文件名 #分页显示文件内容
less       文件名 #与 more 相似,更好的是可以往前翻页
tai1       文件名 #仅査看尾部,还可以指定行数
head       文件名 #仅查看头部,还可以指定行数

7.怎么向屏幕输出带空格的字符串,比如“hello world"?

echo hello world

8.移动文件用哪个命令?改名用哪个命令?

mv source_file(文件) dest_file(文件)        #将源文件名 source_file 改为目标文件名dest_file
mv source_fi1e(文件) dest_directory(目录)   #将文件 source_file 移动到目标目录dest_directory中

移动文件到其他目录:

mv file.txt /home/user/Documents/

移动整个目录:这个my_folder是个目录

mv my_folder /home/user/Backup/

重命名文件:

mv old_name.txt new_name.txt

重命名目录:

mv old_folder new_folder

9.删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?

删除目录及其内容:rm -r 我们常说的 rm -rf * 删库跑路 也就是这个哈哈。。

rm -rf [目录名或文件名]

10.查找文件内容用哪个命令? *

这个命令是我们嵌入式工作中经常用到的,如下为范例:

grep test *file          #在当前目录中,查找后缀有 fi1e 字样的文件中包含 test 字符串的文件,并
打印出该字符串的行
grep -r update /etc/acpi #査找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件
grep -v test *test*grep  #查找文件名中包含 test 的文件中不包含test 的行

如下为实例:

在当前目录查找

grep -r "LCD_driver" .

在整个目录及子目录中搜索:

grep -r "LCD_driver" /path/to/directory

仅输出文件名而不显示内容:

grep -rl "LCD_driver" /path/to/directory

忽略大小写搜索:

grep -i "lcd_driver" *.c

11.查找文件用哪个命令? *

这个也是我们工作常用的了。

find . -type f -name "*lcd_drivce*"    # 指定查找类型为普通文件(f 表示文件)
find . -type d -name "*lcd_drivce*"    # 查找目录
find . -name "*.c"     #将当前目录及其子目录下所有文件后缀为.c的文件列出来
find . -ctime -20      #将当前目录及其子目录下所有最近20天内更新过的文件列出

12.cat命令

cat -n textfile1 
#把 textfile1 的文档内容加上行号后输入到屏幕
cat -n textfilel> textfile2 
#把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里
cat -b textfilel textfile2 >> textfile3 
#把 textfilel 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里
cat /dev/nu1l>/etc/test.txt     
#清空 /etc/test.txt 文档内容

 

13.预处理

gcc -E test.c -o test.i    #把预处理的结果导出到test.i文件

14.编译为汇编代码

gcc -S test.i -o test.s     #编译器将test.i翻译成汇编语言,并将结果存储在test.s文件中。

15.汇编

gcc -c test.s -o test.o     #将汇编代码编译为目标文件(.0)但不链接

16.链接

gcc test.o -o test     #将生成的目标文件test.o生成最终的可执行文件test

17.一步到位编译

gcc test.c -o test     #将源文件test.c编译链接为可执行文件test

18.多文件编译

gcc test1.c test2.c -o test

19.警告处理

gcc -w test.c -o test        # 忽略编译时的警告
gcc -wa11 test.c -o test     # 编译后显示所有警告
gcc -werror test.c -otest    # 在产生警告的地方停止编译

20.常用的GDB调试指令

21.加载/卸载驱动

insmod/modprobe   
rmmod

加载驱动模块:

insmod <模块名.ko>

例:insmod my_driver.ko

需要确保模块文件在当前路径或提供完整路径。

卸载驱动模块:

rmmod <模块名>

例:rmmod my_driver

自动加载驱动模块:

modprobe <模块名>

例:modprobe my_driver

会根据依赖关系自动加载所需模块。

22.Linux驱动如何查看驱动模块中打印信息?

dmesg

使用 dmesg 查看内核日志:

dmesg | grep <关键字>

例:查看包含 "my_driver" 的日志:

dmesg | grep my_driver

实时查看内核打印信息:

tail -f /var/log/kern.log
journalctl -k -f

在驱动代码中打印信息: 驱动程序中可以通过 printk 打印信息:

printk(KERN_INFO "This is a debug message: %d\n", value);

23.如何查看内核中已有的字符设备的信息?

lsmod 和modprobe,lsmod可以查看模块的依赖关系,modprobe在加载模块时会加载其他依赖的模块。

查看字符设备的主次设备号:

cat /proc/devices

查看所有设备文件:

ls -l /dev

匹配特定字符设备:

ls -l /dev | grep <设备名>

24.如何查看正在使用的有哪些中断号?   

cat /proc/interrupt
           CPU0       CPU1       
  0:     100000     150000   IO-APIC-edge      timer
  1:       3000       2000   IO-APIC-edge      i8042
  9:          0          0   IO-APIC-fasteoi   acpi

第一列:中断号。

第二、三列:各 CPU 上的中断计数。

最后一列:中断所属的设备名称。

实时查看中断变化:

watch -n 1 cat /proc/interrupts

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/960770.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初阶2 类与对象

本章重点 上篇1.面向过程和面向对象初步认识2.类的引入---结构体3.类的定义3.1 语法3.2 组成3.3 定义类的两种方法&#xff1a; 4.类的访问限定符及封装4.1 访问限定符4.2封装---面向对象的三大特性之一 5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小 8.this指…

21.0.2-为什么选FreeRTOS 第21章-FreeRTOS项目实战--基础知识之新建任务、启动流程、编码风格、系统配置

这个是全网最详细的STM32项目教学视频。 第一篇在这里: 视频在这里 STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随 **V3:HAL库开发、手把手教学下面功能&#xff1a;PID速度控制、PID循迹、PID跟随、遥控、…

2025美国大学生数学建模竞赛美赛E题成品参考论文(48页)(含模型,可运行代码,求解结果)

2025美国大学生数学建模竞赛E题成品参考论文 目录 一、问题重述 二、问题分析 三、模型假设 四、模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1代码&#xff08;仅供参考&#xff09; 4.1.4问题1求解结果&#xff08;仅供参考&…

RabbitMQ 多种安装模式

文章目录 前言一、Windows 安装 RabbitMq1、版本关系2、Erlang2.1、下载安装 Erlang 23.12.2、配置 Erlang 环境变量 3、RabbitMQ3.1、下载安装 RabbitMQ 3.8.93.2、环境变量3.3、启动RabbitMQ 管理插件3.3、RabbitMQ3.4、注意事项 二、安装docker1、更新系统包&#xff1a;2、…

【番外篇】鸿蒙扫雷天纪:运混沌灵智勘破雷劫天局

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 这一节课我们不学习新的知识&#xff0c;我们来做一个扫雷小游戏 目录 扫雷小游戏概述一、扫雷游戏分析…

深入浅出Linux操作系统大数据定制Shell编程(六)

深入浅出Linux操作系统大数据定制Shell编 1、大数据定制-Shell编程1.1、什么是Shell1.2、Shell脚本执行方式 2、Shell变量2.1、shell变量的定义2.1.1、设置环境变量2.1.2、多行注释 2.2、位置参数变量2.2.1、语法 2.3、预定义变量2.4、运算符2.4.1、条件判断2.4.2、case语句2.4…

65-《腊梅》

腊梅 蜡梅&#xff08;拉丁学名&#xff1a;Chimonanthus praecox (Linn.) Link &#xff08;《Flora of China》&#xff09;&#xff09;&#xff0c;英文名&#xff1a;Winter Sweet&#xff0c;中文别名&#xff1a;金梅、腊梅、蜡花、黄梅花。蜡梅科蜡梅属&#xff0c;落叶…

【Matlab高端绘图SCI绘图模板】第006期 对比绘柱状图 (只需替换数据)

1. 简介 柱状图作为科研论文中常用的实验结果对比图&#xff0c;本文采用了3组实验对比的效果展示图&#xff0c;代码已调试好&#xff0c;只需替换数据即可生成相关柱状图&#xff0c;为科研加分。通过获得Nature配色的柱状图&#xff0c;让你的论文看起来档次更高&#xff0…

爱的魔力转圈圈,基于carsim与simulink模拟仰望u8原地调头

仰望U8原地转向的示意图如下&#xff0c;不动方向盘的情况下&#xff0c;车可以自己转圈圈&#xff1a; 原理也很简单&#xff0c;仰望u8是四轮驱动&#xff0c;四个轮子都单独由四个轮边电机驱动。主要我们将左右的车轮轮速控制成左右两边轮速相同&#xff0c;但是方向相反&am…

ElasticSearch-文档元数据乐观并发控制

文章目录 什么是文档&#xff1f;文档元数据文档的部分更新Update 乐观并发控制 最近日常工作开发过程中使用到了 ES&#xff0c;最近在检索资料的时候翻阅到了 ES 的官方文档&#xff0c;里面对 ES 的基础与案例进行了通俗易懂的解释&#xff0c;读下来也有不少收获&#xff0…

67-《蓝金花》

蓝金花 蓝金花&#xff0c;又名蓝鲸花。是属于玄参科植物&#xff0c;分布于巴西。株高50&#xff5e;90公分&#xff0c;叶对生&#xff0c;长椭圆形&#xff0c;先端锐&#xff0c;细锯齿缘。春至秋季开花&#xff0c;腋生&#xff0c;花冠长管状&#xff0c;花瓣蓝紫色&…

1月27(信息差)

&#x1f30d;喜大普奔&#xff0c;适用于 VS Code 的 GitHub Copilot 全新免费版本正式推出&#xff0c;GitHub 全球开发者突破1.5亿 &#x1f384;Kimi深夜炸场&#xff1a;满血版多模态o1级推理模型&#xff01;OpenAI外全球首次&#xff01;Jim Fan&#xff1a;同天两款国…

WIN11 UEFI漏洞被发现, 可以绕过安全启动机制

近日&#xff0c;一个新的UEFI漏洞被发现&#xff0c;可通过多个系统恢复工具传播&#xff0c;微软已经正式将该漏洞标记为追踪编号“CVE-2024-7344”。根据报告的说明&#xff0c;该漏洞能让攻击者绕过安全启动机制&#xff0c;并部署对操作系统隐形的引导工具包。 据TomsH…

xss靶场

xss-labs下载地址&#xff1a;GitHub - do0dl3/xss-labs: xss 跨站漏洞平台 xss常见触发标签&#xff1a;XSS跨站脚本攻击实例与防御策略-CSDN博客 level-1 首先查看网页的源代码发现get传参的name的值test插入了html里头&#xff0c;还回显了payload的长度。 <!DOCTYPE …

Python案例--100到200的素数

一、问题描述 素数&#xff08;Prime Number&#xff09;是指在大于1的自然数中&#xff0c;除了1和它本身以外不再有其他因数的数。判断一个数是否为素数是计算机科学和数学中的一个经典问题。本实例的目标是找出101到200之间的所有素数&#xff0c;并统计它们的数量。 二、…

JavaScript中的隐式类型转换

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

漏洞修复:Apache Tomcat 安全漏洞(CVE-2024-50379) | Apache Tomcat 安全漏洞(CVE-2024-52318)

文章目录 引言I Apache Tomcat 安全漏洞(CVE-2024-50379)漏洞描述修复建议升级Tomcat教程II Apache Tomcat 安全漏洞(CVE-2024-52318)漏洞描述修复建议III 安全警告引言 解决方案:升级到最新版Tomcat https://blog.csdn.net/z929118967/article/details/142934649 service in…

Git Bash 配置 zsh

博客食用更佳 博客链接 安装 zsh 安装 Zsh 安装 Oh-my-zsh github仓库 sh -c "$(curl -fsSL https://install.ohmyz.sh/)"让 zsh 成为 git bash 默认终端 vi ~/.bashrc写入&#xff1a; if [ -t 1 ]; thenexec zsh fisource ~/.bashrc再重启即可。 更换主题 …

具身智能体俯视全局的导航策略!TopV-Nav: 解锁多模态语言模型在零样本目标导航中的顶视空间推理潜力

作者&#xff1a;Linqing Zhong, Chen Gao, Zihan Ding, Yue Liao, Si Liu 单位&#xff1a;北京航空航天大学&#xff0c;新加坡国立大学&#xff0c;香港中文大学多模态实验室 论文标题&#xff1a;TopV-Nav: Unlocking the Top-View Spatial Reasoning Potential of MLLM …

python爬虫入门(一) - requests库与re库,一个简单的爬虫程序

目录 web请求与requests库 1. web请求 1.1 客户端渲染与服务端渲染 1.2 抓包 1.3 HTTP状态代码 2. requests库 2.1 requests模块的下载 2.2 发送请求头与请求参数 2.3 GET请求与POST请求 GET请求的例子&#xff1a; POST请求的例子&#xff1a; 3. 案例&#xff1a;…