Linux随笔
Jason416就是我
Developer of embedded system. Welcome to visit https://github.com/jason416.
展开
-
SHELL语言教程
SHELL脚本前言前言下面介绍使用原创 2021-08-05 10:30:03 · 234 阅读 · 0 评论 -
向开源社区提交patch
前言平时我们可能会遇到一些开源项目的一些bug,往往先会查阅资料,看是否有对应的解决办法,无果的话,可以尝试自己解决该问题,然后可以提交自己的修改到开源社区。博主在使用openwrt master分支的时候,就发现了特殊场景下的问题,在多日的debug后,解决了问题,并提交了patch给官方社区,这里记录下给官方提供patch的工程,以供以后使用。patch提交方式- mailing list- github web UI说明:针对uboot,官方只支持mailing list的方式;open原创 2021-07-15 23:33:58 · 685 阅读 · 0 评论 -
趣事随笔
清除终端的方法无意间发现ctrl + l背后的实现原理。那就是:向stdout输出字符串{0x1b, 0x5b, 0x48, 0x1b, 0x5b, 0x4a}序列用shell执行printf ‘\033[H\033[J’(本质上就是输出上面的序列)可用简单的代码实现top命令显示效果:#include <stdio.h>#include <unistd.h>char magic_str[] = {0x1b, 0x5b, 0x48, 0x1b, 0x5b, 0x4原创 2021-05-20 15:24:16 · 140 阅读 · 0 评论 -
Openwrt编译Xray-core出错记录
问题描述最近老是编译出现这个错误问题,搜索资料后才发现是地址在大陆被block了。。。go: github.com/ghodss/yaml@v1.0.1-0.20190212211648-25d852aebe32: Get "https://proxy.golang.org/github.com/ghodss/yaml/@v/v1.0.1-0.20190212211648-25d852aebe32.mod": dial tcp 224.0.0.1:443: connect: network is unr原创 2021-05-07 21:04:12 · 4945 阅读 · 1 评论 -
Curl_easy_perform failed with 27 Out of memory
问题:开子线程,调用curl_easy_perform和主线程调用curl_easy_perform,访问https连接时,有几率出现错误,返回值为27,Out of memory分析:错误日志:* About to connect() to xxx.com.cn port 443 (#0)* Trying 54.223.100.xxx... * connected* SSL: couldn't create a context: error:140A90F1:lib(20):func(16原创 2020-10-26 11:07:13 · 2689 阅读 · 0 评论 -
IPTABLES nat
DNAT映射到路由器<port>的TCP报文,修改报文目的地址和端口为<dst_ip>和<dst_port>iptables -t nat -I -p tcp -m tcp --dport <port> -j DNAT --to-destination <dst_ip>:<dst_port>收到映射后报文的局域网内主机需要能够将应答报文转发到路由器路由器需要配置SNAT,能将局域网内主机的应答报文的源地址修改为路由器的地原创 2020-10-14 16:42:06 · 143 阅读 · 0 评论 -
gcc和g++降级、升级_Ubuntu18 LTS
前言由于很多开发环境所用的环境都是比较追求稳定,或者未跟上编译器的更新速度;还有有些代码是依赖于gcc/g++的内建特性的。导致有些用新版本的gcc/g++编译时无法通过,或者编译后无法正常运行的。就需要对自带的编译器进行升级或者降级。步骤说明笔者这里需要用版本低一点的gcc/g++工具链,需要对Ubuntu18 LTS自带的7.3.0进行降级操作。以下是流程:安装gcc-4.8和g+±...原创 2020-04-27 23:36:07 · 531 阅读 · 0 评论 -
Makefile用法记录
示例一.s.o: $(CC) $(CFLAGS) -o $@ -c $<.c.o: $(CC) $(CFLAGS) -o $@ -c $<.PHONY: cleanclean: rm -rf *.o这个规则表示所有的 .o文件都是依赖与相应的.c或.s文件;$(CC) - 表示引用变量的值$@ - 表示所有的目标$< - 表示引用第一个依赖$^ -...原创 2020-04-27 23:30:00 · 168 阅读 · 0 评论 -
查看linux内核文件initrd.img
查看压缩包方法一、2.6及以后版本1、解包2.6及以后内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用cpio解包。以下作为示例: $ cp /boot/initrd.img initrd.img.gz $ gunzip initrd.img.gz $ mkdir i...原创 2020-04-27 23:27:54 · 631 阅读 · 0 评论 -
VIM 常用用法
1、替换1.1、基础格式为::[range]s/pattern/string/[c,e,g,i]range可取值:n,$ - 第n行到最后一行.,$ - 当前行到最后一行% - 每一行option可取值:c confirm,每次替换前询问。e 不显示 error。g globe,不询问,整行替换。i ignore 不分大小写。2、 多窗口编辑上下划分窗口 - ...原创 2020-04-27 23:25:31 · 118 阅读 · 0 评论 -
ubuntu 18.04 LTS配置静态IP
前言在Ubuntu17.10开始,有一种全新的IP地址设置方法。手动编辑文本/ etc / network / interfaces文件的日子已经过去了。取而代之的是netplan,是的,只需要编辑一个.yaml文件(正确地遵守代码对每一行代码的缩进),便可配置本机IP。配置示例network: version: 2 renderer: networkd ethernets: ...原创 2020-04-27 23:24:32 · 263 阅读 · 0 评论 -
Terminator粘贴自动加入0~和1~的解决办法(原创)
环境笔者在Ubuntu 16.04 LTS版本上通过apt安装terminator的时候,发现在使用过vim命令后,在bash中粘贴的字符都会在其首部加入0~,尾部加入1~,百思不得其解。并且其终端样式和系统默认的gnome-terminal还有点不一样,使用极其不方便,下面是笔者摸索的解决办法。解决办法在终端中执行printf “\e[?2004l” (该方法通过网友提供,治标不治本)...原创 2020-01-15 10:56:25 · 1897 阅读 · 0 评论