嵌入式开发日常积累(不定时更新)

个人手册,工作积累,如有错误,请批评指正,会及时更改

linux命令 apt-get】

// apt-get Debian最基本的包管理程序
# apt-get update        //更新软件源中的所有软件列表
# apt-get upgrade       //更新软件 
# apt-get install -f    //修复依赖关系(depends)的命令,安装那个package依赖的package。
# apt-get clean         //删除/var/cache/apt/archives/和 /var/cache/apt/archives/partial/目录下所有包(锁定的除外)

linux命令 df】

# df -h     //查看磁盘使用空间
# df -T     //显示磁盘使用情况以及每个块的文件系统类型

linux命令 ifconfig】

# sudo apt install net-tools -y                                            //一般纯净的Ubuntu不自带需联网安装
# ifconfig eth0 192.168.2.3 netmask 255.255.255.0 broadcast 192.168.2.0    //常用配置ip地址、子网掩码和网关

linux命令 udhcpc】

# sudo apt install udhcpc          //不能使用时请先安装udhcpc服务
# sudo udhcpc -b -i eth1           //将网卡eth1配置成动态ip    

C语言语法基础 ARM中的char和x86的char的不同点】

对于char i=-1 打印出-1的结果
说白也就是在x86体系结构中默认的是signed char.所以打印结果是:-1
而在arm体系结构中默认的是unsigned char.所以打印的结果是:255

linux编译 busybox】

BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的shell。

BusyBox 将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件。这样的集合可以替代大部分常用工具比如的GNU fileutils , shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的嵌入式系统。                                                                                                                                                                                              ------来自百度百科

// busybox下载安装地址 http://www.busybox.net/downloads/
// linux内核是不带busybox的,如需使用需要安装
// 以busybox-1.30.0 为例,安装步骤如下

# tar xvf busybox-1.30.0.tar.bz2

# make menuconfig    //或者使用默认make defconfig 

Busybox Settings  --->
      Build Options  --->
            [*] Build BusyBox as a static binary (no shared libs) //使用静态编译

Shells --->
       chose your default shell(ash):
       BusyBox Setting --->
                [*]Don’t use /usr(否则busybox会安装到ubuntu的/usr下,会覆盖原系统原有的命令)

# make && make install

// 之后在busybox-1.30.0/_install/下可看到编译产物:
drwxr-xr-x    2 root     root         4096 12月 11 15:49 bin
lrwxrwxrwx    1 root     root           11 12月 11 15:49 linuxrc -> bin/busybox
drwxr-xr-x    2 root     root         4096 12月 11 15:49 sbin

// 可执行文件busybox在bin目录下,其他都是指向它的符号链接
-rwxr-xr-x    1 root     root       801400 12月 11 15:49 busybox
lrwxrwxrwx    1 root     root            7 12月 11 15:49 [ -> busybox
lrwxrwxrwx    1 root     root            7 12月 11 15:49 ash -> busybox
lrwxrwxrwx    1 root     root            7 12月 11 15:49 basename -> busybox
lrwxrwxrwx    1 root     root            7 12月 11 15:49 bunzip2 -> busybox
...
...

# busybox ls         //用法
# ln -s busybox ls   //或者建立指向busybox的软连接

linux命令 wget】

// wget命令用来从指定的URL下载文件

// 从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)
# wget http://download.imisty.cn/uandroidtool2.9.1.zip

// 使用-O 参数来指定一个文件名,默认以最后一个符合/后面的字符来命名,动态链接文件名会报错
# wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080

// 使用wget下载文件到指定目录
# wget -P /tmp  http://www.linuxde.net/testfile.zip

// wget限速下载
# wget --limit-rate=300k http://download.imisty.cn/uandroidtool2.9.1.zip

// wget断点续传,重新启动下载中断的文件
# wget -c http://www.linuxde.net/testfile.zip

// 使用wget后台下载
# wget -b http://www.linuxde.net/testfile.zip
Continuing in background, pid 1840.
Output will be written to `wget-log'.
# tail -f wget-log     //查看下载进度


【linux 用户和文件权限】

Root超级用户符号:#
普通用户符号:$

权限分类:读r、写w、执行x、无权限-
其中r=4、w=2、x=1

前10位代表字符权限:d  r w x  r - x  r - x  与 -   r w -  r - -  r - -
        第一位:文件类型:d(目录) -(文件)

        第一位表示文件类型:d(目录)   -(普通文件) 
        后面3位1组,9个数字三组
                第一组:2-4        文件所有者权限                    u        user
                第二组:5-7        所有者所属组成员权限       g        group 
                第三组:8-10      其他成员用户权限              o        other

【Ubuntu在共享文件夹下使用tar -xvf 命令解压.tar.gz包失败】

现象:

在这里插入图片描述

 解决办法:

一:使用管理员权限,加入-C解压到指定绝对路径
二:如果需要解压的文件是在VMvware虚拟机的共享文件夹中,则需要共享目录中的压缩包移动到linux虚拟机里再执行解压命令才行。

【git命令的使用】

# git log                //查看该git仓下的文件提交历史
# git log <filename>     //查看该文件的提交历史
# git log -p <filename>  //查看该文件的提交历史并显示每次提交的差异

【linux 添加一个自己的用户】

sudo adduser xxx
//不要使用usradd

【linux 查看设备节点】

ls /sys/firmware/devicetree/base
或者
ls /proc/device-tree

【linux 查看文件/文件夹大小】

du -sh 文件名/文件夹名

【windows下解压.tar.gz文件】

//我们使用sourceinsight在windows上部署linux内核工程,在电脑上下载好内核源码的压缩包后,使用winrar压缩软件解压.tar.gz包会出现错误,可以在powershell下进行解压

win+r
powershell
Start-Process powershell -Verb runAs    //切换为管理员运行
使用ls cd 等命令切换到目标文件夹下
tar -zxvf .\linux-4.14.10.tar.gz

就不会报一些莫名其妙的错误了

【在Ubuntu环境下/linux终端环境下下载固定版本的linux内核源码】

//首先打开浏览器进入kernel官网
https://mirrors.edge.kernel.org/pub/linux/kernel/

//选择自己所需要的内核版本,选择好后复制浏览器的地址
https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/

//比如我们选择了linux-4.19.94.tar.gz这个版本的内核源码,我们组装一下命令
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.19.94.tar.gz

//如果我们网络是好的话,敲一下上面这个命令就能下载源码到当前所在的路径下了

tar -xzvf linux-4.19.94.tar.gz    //直接解压就能用了

【解压.tar.bz2和.tar.gz的压缩命令】

.tar.gz   格式解压为     tar -zxvf xx.tar.gz
.tar.bz2  格式解压为     tar -jxvf xx.tar.bz2

【怎么出diff/patch文件】

出patch文件
diff -u a.txt b.txt > diff.patch        //比较两个文件
diff -urNa  a/ b/ > diff.patch       //比较两个文件夹

合patch文件
patch -p0 < diff.patch

patch -px < test1.patch

-p:设置路径名的剥离数目,它控制如何处理在补丁件中找到的路径名称

eg:

--- old/uClinux-dist/linux-2.4.x/arch/armnommu/config.in

-p0 留下未修改的完整路径名

-p1 除去前导斜杠,留下 uClinux-dist/linux-2.4.x/arch/armnommu/config.in

-p4 卸下四个斜杠和三个目录,留下armnommu/config.in

在这里以实例说明:

--- old/modules/pcitable Mon Sep 27 11:03:56 1999

+++ new/modules/pcitable Tue Dec 19 20:05:41 2000

如果使用参数-p0,那就表示从当前目录找一个叫做old的文件夹,在它下面寻找modules下的pcitable文件来执行patch操作。

如果使用参数-p1,那就表示忽略第一层目录(即不管old),从当前目录寻找modules的文件夹,在它下面找pcitable。

【怎么查看内存总大小和使用情况】

free -m
// 一般用来分析踩内存的情况

【当在调驱动,需要知道设备树是否生效时,可以在linux系统里查看设备树】

ls /sys/firmware/devicetree/base
ls /proc/device-tree

【在vi编辑器中打开另一个文件】

命令行模式下 :new xxx.c
在多个文件中跳转,ctrl + ww

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值