个人手册,工作积累,如有错误,请批评指正,会及时更改
【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