hexdump
hexdump -n 10 -C wancc -s 20
#从第20行开始,打印10行、#一般是搜索一下里面的时间
hexdump -Cv /dev/mtd0 -s 0x0001a600 -n 640 #C 表示16进制,v表示重复不折叠,s表示源,n表示字节数
常用软件
vscode 操作小技巧
=.* #正则表达式匹配
ctrl+alt+上下箭头 #批量修改
linux 打补丁 打patch
diff -Naur A B > patch #A B 对比 ,把差异输出到patch里面
-N 如果某个文件缺少了,就当作空文件对比
-a :把所有文件当作text
-u :输出修改地方的前几行和后几行
-r :递归
-p :显示你修改了哪个函数,可以不加
patch -p1 -b -s -d gdb-7.10.1 < gdb-7.10.1-mtk7581.patch
-b 生成一个备份 gdb_proc_service.h gdb_proc_service.h.orig
-s 无声无息的打patch
-d 指定到哪个目录里面打patch
生成patch文件:
svn diff > patchFile // 整个工程的变动生成patch
或svn diff file > patchFile // 某个文件单独变动的patch
svn回滚:
svn revert FILE // 单个文件回滚
svn revert DIR --depth=infinity // 整个目录进行递归回滚
打patch:
patch -p0 < test.patch // -p0 选项要从当前目录查找目的文件(夹)
patch -p1 < test.patch // -p1 选项要从当前目录查找目的文件,不包含patch中的最上级目录(夹)
例如两个版本以a,b开头,而a,b并不是真正有效地代码路径,则这时候需要使用"-p1"参数。
a/src/...
b/src/...
服务器防火墙配置
二、centos关闭端口方法
1.开启防火墙
systemctl start firewalld
2.开机自启
systemctl enable firewalld.service
3.防火墙开放端口:(以3306为例)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
关闭8080端口
firewall-cmd --permanent --zone=public --remove-port=8080/tcp
4.重启防火墙:
systemctl restart firewalld.service
5.更新防火墙规则:
firewall-cmd –reload
二、ubuntu关闭端口方法
1.开启防火墙
sudo ufw enable
2.开启两个端口(22,445)
sudo ufw allow proto tcp from any to any port 22
sudo ufw allow proto tcp from any to any port 445
sudo ufw allow proto tcp from any to any port 80
sudo ufw allow proto tcp from any to any port 8068
3.设置防火墙默认阻止所有端口访问
sudo ufw default deny
ctag
apt-get install ctags
ctags -R src/thd_src
vim .vim/vimrc
vi -t fhdrv_kdrv_gpio_pinmux
ctrl +] 找定义的地方
ctrl +T 往后翻
ctrl +o 往前翻
home 行首 end 行尾
ctrl+b 向上翻页 ctrl+f 向下翻页
ctrl+u 向上翻半面ctrl+d 向上翻半面
ls -lR |grep "^-" |wc -l #递归找目录下文件个数
ls -lR |grep "^d" |wc -l #递归找目录下文件夹个数
ln source.txt hard.txt #硬链接
ln -s source.txt hard.txt #软链接
objdump -D -S -b binary -m i386 nvram.o #反汇编命令objdump
修改编译服务器时间
date -s 2023-2-24+17:01:00
visio ctrl 放在边界与角的作用分别是扩展画布,旋转画布
计算机是以2,4,或8的倍数的字节块来读写内存,地址必须是2,4,8的倍数,要求各种数据类型按照一定的规则在空间上排列,这个就是对齐
struct test
{
int a; 4
char b; 1
int c; 4
short d; 2
}
0~3 4 5~9 10~11
a b c d
自身对齐值,最大的那一个 并且整个结构体的长度要是有效对齐值 的整数倍
首地址要能被最宽的大小带除
每个成员的偏移量教师是成员 大小的整数 位
总大小要是最宽基本类型成员 大小的整数倍
c的偏移量为5,不满足对齐要求,它的偏移量应该能够被sizeof(int) 4大小带除,c的偏移为8
0~3 4 5~7 8~11 12~13 14~15
a b 填充3位 c d 填充
0~3 4 5 6~7 8~11
a b 填充1位 d d
考虑teArray[2],teArray[0]的d如果不填充字节,那么teArray[0]的位移为14,不满足对齐要求,因此在也要填充字节
struct A
{
int a; 0-3
char b; 4-7
double c; 7-15
char d;
};
这个结构体占24个字节 0-3 a 4-
Int 4 字节
char 1字节
double 8字节
struct student {
char name[21];
int age;
char address[51]; 52个数据
};
占80个字节
0-21 name
24-27 age
28-80 address
大小端
0x1234
0x 12 34 大端(正着存储的就是小端)
0x 34 12 小端(反着存储的就是小端)
低地址低字节那是小端
int a = 0x0001
高序字节——低序字节
小端字节序 地址A+1 地址A (高序字节位放在高地址)
小端存储 0100
大端字节序 地址A 地址A+1
大端存储 0001
低地址——高地址
daixiong@chgao-virtual-machine:~$ ./a.out
1(小端存储)
daixiong@chgao-virtual-machine:~$ cat test1.c
#include <stdio.h>
int main()
{
int a = 0x000001;
char * p = (char*)&a;
printf("%d\n", *p);
return 0;
}
溢出举例
unsigned char a = 200;
unsigned char a = 100;
unsigned char c = 0;
c = a + b
11001000
01100100
100101100 会有一位丢失
标签:常用,字节,ctrl,int,patch,char,命令,any From: https://www.cnblogs.com/koala123/p/17843247.html