嵌入式笔记

Linux文件搜索与管理技巧

根据文件内容递归查找目录

# grep ‘energywise’ *           #在当前目录搜索带'energywise'行的文件

# grep -r ‘energywise’ *        #在当前目录及其子目录下搜索'energywise'行的文件
# grep -l -r ‘energywise’ *     #在当前目录及其子目录下搜索'energywise'行的文件,但是不显示匹配的行,只显示匹配的文件

 
$ grep ‘test’ d*
显示所有以d开头的文件中包含 test的行。
$ grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep ‘[a-z]\{5\}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

用grep –w "abc" 或者是grep "\<abc\>"都可以实现 全字匹配

将/etc/passwd,有出现 root 的行取出来,同时显示这些行在/etc/passwd的行号

# grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
30:operator:x:11:0:operator:/root:/sbin/nologin

 

 

用grep在子目录中指定的文件类型中查找

find -name *.c |xargs grep syslog


 
2. find
=========================
(1)列出文件路径
--------------------
$>find
$>find /home/test
列出当前或给定目录下所有文件的绝对路径,包括目录


(2)-name/-iname
--------------------
$>find /home/test -name *.c
列出所有后缀为.c的文件(可以用双引号把内容括起来"*.c")------redHat 必须加双引号


$>find /home/test ! -name *.c
列出所有后缀不是.c的文件


$>find /home/test -name "[A-Z]*" | wc -l
找到目录中所有大写字母开头的文件(必须加双引号),并统计数量


$>find /home/test -iname "make*"
忽略大小写,这样Makefile/makefie都能找到




(3)-type
---------------------
$>find /home -type d
列出/home下的所有目录


$>find /dev -type b -exec ls -l {} \;
用ls显示/dev下所有块设备文件的信息;
可用的type还有c(char设备文件),f(普通文件),p(FIFO或命名管道),l(符号链接),s(套接字)


$>find /home -type d -name "*drv"
列出/home目录下所有以drv作为结尾的目录名


$>find /home -type d -exec chmod 755 {} \;
将找到的所有目录的访问属性改为755




(4)-user/-mtime/-size
-----------------------
$>find /home -user root
列出/home下所有UID为root的文件


$>find /home -mtime -2
列出/home目录下两天之内修改过内容的文件;
"-mtime 2"为正好两天前修改过的文件;
"-mtime +2"为修改时间超过两天的文件;
还可以使用-atime(访问时间)和-ctime(改变uid等)


$>find /home -size +5k
列出大小超过5K(1024)字节的文件,还可以用5M,5G等

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

选中行 自动缩进

1.  ”shift+v“选中行
  2.  使用"=="进行缩进

gg=G //选中全文进行缩进


让 vim 支持剪切板 安装如下文件就可以了。

 yum install gvim

ubuntu 和mint默认安装的vim是不支持系统剪切、粘贴版的,需要执行以下安装:
sudo apt-get install vim-gnome

注意要让vim支持系统粘贴板,首先执行sudo apt-get install vim-gui-common安装支持系统剪切板的vim。??????

全选复制粘贴

1.gg光标跳在第一个字符处,shif+V进入可视模式
2.G,光标跳转到末尾,自动全选全部内容
3.按“+y,复制到系统剪切板
4.在外部CTRL+V即可粘贴过来

@@@@@@@@@@@@@@@@

ubuntu 设置 root 密码

在终端输入命令 sudo passwd,然后输入当前用户的密码,

终端会提示我们输入新的密码并确认,此时的密码就是root新密码。修改成功后,输入命令 su root,再输入新的密码就ok了

@@@@@@@@@@@@@@@@@@

查看文件和文件夹大小:
du –sh dirname


如果查看某个目录下所有文件及文件的大小:

du –sh *//显示每个文件夹的大小

按照文件大小排序

du –sh * |sort –n


VIM的列编辑操作
删除列
1.光标定位到要操作的地方。
2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3.d 删除。
 
插入列
插入操作的话知识稍有区别。例如我们在每一行前都插入"() ":
1.光标定位到要操作的地方。
2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3.SHIFT+i(I) 输入要插入的内容。
4.ESC 按两次,会在每行的选定的区域出现插入的内容。


vim设置代码文件注释换行不自动添加注释

https://blog.youkuaiyun.com/na_beginning/article/details/73172395

linux下,打开/etc/vimrc,末尾加入一行:

au FileType c,cpp setlocal comments-=:// comments+=f://
只是设置成这样,注释换行下一行会默认有一个缩进,这样代码都乱了,需要再添加一行:
set paste
这样默认打开vim进入插入模式不是普通的insert模式,而是insert(paste)粘贴模式,如果要退出这个模式直接vim中使用:set nopaste即可退出,再进入可以使用:set paste。粘贴模式下粘贴代码注释换行不缩进,跟粘贴内容一致,非常好用。

### 关于蓝桥杯竞赛中的嵌入式学习笔记 #### IIC程序设计 在蓝桥杯嵌入式比赛中,IIC协议的应用是一个重要的考点。比赛重点在于利用IIC原理来操作24C02存储器以及MCP4017可编程电阻的读写功能[^1]。 ```c // 初始化I2C总线并设置参数 void I2C_Init(void){ // 配置代码... } // 向指定地址写入数据 void Write_IIC(uint8_t device_addr, uint8_t reg_addr, uint8_t data){ // 写入逻辑... } ``` #### PWM信号生成 对于PWM模块的学习,掌握如何配置定时器以产生特定频率和占空比的PWM波形至关重要。具体来说,可以通过调整`TIMx_ARR`寄存器设定周期(即频率),并通过修改`TIMx_CCRx`寄存器控制脉冲宽度(即占空比)。这使得能够灵活地创建不同特性的PWM输出信号[^2]。 ```c // 设置PWM通道的具体参数 void Set_PWM_Channel(TIM_HandleTypeDef* htim, uint32_t channel, float duty_cycle){ __HAL_TIM_SET_COMPARE(htim, channel, (uint32_t)(duty_cycle * (__HAL_TIM_GET_AUTORELOAD(htim)))); } ``` #### 串口通信实现 为了处理串口的数据传输,在实际项目中通常会定义缓冲数组用于暂存收发的信息,并通过中断服务例程完成异步接收任务。下面展示了基于STM32 HAL库的一个简单例子,其中包含了初始化、发送函数及自定义的UART接收回调函数[^3]。 ```c u8 huart1_buf[30]; // 接收缓存区大小设为30字节 u8 _huart1_buf; // 单字符临时变量 u8 huart1_buf_num = 0; // 当前位置指针 // UART接收完成后触发此函数 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance==USART1){ huart1_buf[huart1_buf_num++ % sizeof(huart1_buf)] = _huart1_buf; HAL_UART_Receive_IT(&huart1, &_huart1_buf, 1); } } ``` #### 定时器基础应用 最后,在涉及到时间间隔测量或者周期性事件触发的情况下,则需要用到定时器资源。例如,可以使用STM32内部集成的标准定时器(如TIM6/7)来进行精确的时间管理,从而实现诸如延时等待或是固定频率的任务调度等功能[^4]。 ```c // 使用CubeMX工具配置好硬件后,只需调用如下API启动计数过程即可 HAL_TIM_Base_Start_IT(&htim6); // 开启TIM6定时器中断模式 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值