
跟我用路由器学LINUX编程实例
文章平均质量分 94
从编写简单的插件开始,学习怎么折腾路由器,顺便学会编程。专门找一台Linux主机用来学习很不容易,但软路由用的都是Linux基础系统,除了被精简掉一些功能以外,路由系统和Linux主机并没什么差别。学会了在路由上编程,自然也就学会了在Linux上编程。
无证的攻城狮
从事系统集成、运维相关工作十多年,是一个纯纯的技术宅。
展开
-
跟我用路由器学Linux编程 - 专栏目录
本专栏文章以梅林、openwrt等linux路由为基础硬件,和笔者一起学习使用shell语言。带你从编写简单的插件开始,学习怎么折腾路由器,顺便学会编程。专门找一台Linux主机用来学习很不容易,但软路由用的都是Linux基础系统,除了被精简掉一些功能以外,路由系统和Linux主机并没什么差别。学会了在路由上编程,自然也就学会了在Linux上编程。本专栏以shell语言为主,在实例中也可能用到其它编程语言。原创 2024-01-05 03:00:42 · 629 阅读 · 0 评论 -
2.1写一个梅林dynv6插件(上)
前面十多章已经把shell的基本编程语法和一些特常用的命令都介绍了,从本章开始写一些实用的技巧和笔者爬过的坑吧。先从koolshare梅林系列的插件开始。上一个单元已经写了一个比较完整的dynv6的脚本。读者稍微组织一下就可以实用于各型linux路由上,但是网上多的是这类的东西嘛,还是完整可以抄作业的… 所以这章咱做个网上没有的。给koolshare梅林380、384、386、388写个插件,插件就更方便用户使用了。正是因为笔者有这个想法,所以前面也没写完整的脚本,有插件谁用脚本嘛~原创 2024-01-29 17:23:53 · 796 阅读 · 0 评论 -
1.8用REST API实现dynv6脚本(下)
上一章我们基本实现了dynv6的HTTP REST API最简单脚本,这一章我们继续完善这个程序,给它添加解析IP对比、错误反应、日志记录等功能。好像也没人看这一系列的文章,可能笔者这水平也太low了哈。不过挖了这坑总得填。写本系列文章的本意也是自我学习,笔者对shell也并不精通,毕竟只是一个搞运维的,能看明白多个语言的代码,但写起来也确实不得心应手。这一个单元就这么结束吧,下一个单元就是实际应用了,先写一个dynv6的完整梅林386插件吧。原创 2024-01-29 11:06:51 · 377 阅读 · 0 评论 -
编程基础 - 初识Linux
为什么要学习Linux呢?我这Windows用得好好的,简单易用傻瓜式、用的人还超多!但是我要告诉你的是,你用的Linux类(注意这个类字,不要抬杠)操作系统也不少,甚至很可能比Windows还多!不信你拿出手机看看,安卓、华为鸿蒙是正宗的Linux洐生产品,苹果倒是说源于Unix,但实际上还是同一个爷爷的东西。路由器几乎全是Linux系统的,所谓智能软路由系统本身就是较完整的Linux。监控摄像头、某些监控主机甚至能跑shell代码。原创 2024-01-05 18:37:24 · 1662 阅读 · 0 评论 -
编程基础 - 初识shell
shell是Linux内核外的一层壳,是用户与Linux交互的桥梁。也可以叫他命令解释器,用户输入的命令由它告诉内核要做什么,内核是负责对硬件进行管理与操作的,我们用户无法直接告诉内核我们要做什么,所以要通过shell和内核进行沟通,从而达到使用计算机资源的目的。shell有两种工作方式,交互式命令解释:用户输入命令,它立即执行给出结果。另一种就是解释程序脚本,用户给出一个已编写好的由多个命令按一定逻辑组织好的文本文件。shell读取并执行这个程序脚本,按设计好的程序运行,就是我们所说的真正意义上的编程。原创 2024-01-06 16:57:09 · 1652 阅读 · 0 评论 -
编程基础 - 变量与常量
变量是编程最重要知识点之一,从根本上讲,编程就是对数据的操作,让数据按我们设定的逻辑进行运算。变量是用于存储数据的内存地址的人性化表示方式。在shell中,数据类型比较简单,它属于弱数据类型的编程语言,简而言之它自动帮你处理了有关数据类型的工作。原创 2024-01-10 17:45:27 · 403 阅读 · 0 评论 -
编程基础 - 数据类型
这个问题对于c/c++来说,那至少要有三五章来说明。对于shell来说那太简单了,严格来说,shell并没有数据类型的概念,无论你输入的是字符串还是数字,都是按照字符串类型来存储的。那么我们来看看shell是怎么用字符串实现和其它编程语言一样的功能的。原创 2024-01-10 17:46:51 · 507 阅读 · 0 评论 -
编程基础 - 基本语法
人与人交流需要双方都会同一种语言,我们与计算机交流自然也要双方遵循同一种规则,这种规则就是计算机编程语言。编程所说语法就是用来规定如何与计算机交流的,它与英语规定动词怎么变形是一回事。当然它比英语简单太多了,没有动词变形这么麻烦的事。前面说了shell就是一聊天机器人,我们学习使用shell,自然要学习这个交流规则。当今流行的编程语言其实都是差不多的,除了写法有区别。在逻辑上都是一样的,甚至所用的单词也就那么几个。原创 2024-01-11 09:48:19 · 386 阅读 · 0 评论 -
1.1简单编程实现花生壳的ddns功能
路由刷完固件正常工作后,第一件事就是想远程控制它吧?所以咱就直接从写ddns脚本开始,不用怕,一个简单的ddns脚本没几句代码的。最简单的甚至只要一句代码就行了。本章详细讲解了一个最简单的ddns脚本是怎么炼成的,并且讲了如何用scp命令上传文件、用ssh命令连接路由器、以及chmod的简单用法,这些都是非常基础的知识,也非常容易学会。原创 2024-01-01 01:02:12 · 2045 阅读 · 0 评论 -
1.2如何让花生壳ddns脚本自动工作
前面第一章我们学习了几个命令,主要是curlwgetscpsshchmod。还写好了一个脚本,并将其上传到路由。本章我们就来让这个脚本自动工作,主要是在梅林固件上演示,因为这个固件最麻烦。padavan 和 openwrt 都有图形接口,可以直接编辑,梅林得自己写代码实现。原创 2024-01-01 15:38:16 · 1265 阅读 · 0 评论 -
1.3同时解析多个花生壳域名的脚本
咱讲了二大章一万多字的花生壳域名,总得让它起点作用是吧,就让我们写一个多域名解析的花生壳ddns原创 2024-01-04 17:21:45 · 966 阅读 · 0 评论 -
1.4具有通用性的花生壳ddns脚本
上一章我们只学了一个新命令let用于整数计算,但是我们重点学习了函数的写法,for循环的用法。这两个比什么新命令都重要!函数用花括号界定边界,for循环用do…done界定。上一章最后说了,这一章是要打造一个有脸放上github的脚本…/bin/sh。原创 2024-01-04 17:27:15 · 1292 阅读 · 0 评论 -
1.5如何用命令得到自己的ip<本地>
上一章原计划是要讲选择分支的,不过上一章难点较多,又讲了很多文本处理的方法,就没有把选择分支放入。这一章一定要讲了,从编程的角度来讲,有基本命令、有选择分支、有循环就能够写出任何想要的功能代码。grep文本搜索、hea从头截取行、tail从尾部截取行、awk的按特定字符切割和读取特定行、sed的文本匹配打印、tr替换和删除以及数组的认识和循环。原创 2024-01-11 10:37:28 · 742 阅读 · 0 评论 -
1.6用命令得到ip和域名解析<网络>
前文我们主要学习了使用ifconfig和ip命令,在本机的wan口得到自己的ip地址,要想写出一个ddns程序,这显然是不够的,我们还需要知道服务器把我们的域名解析到哪个地址,经过对比之后才能知道是否要更改我们的域名解析,所以本章主要学习如何得到我们域名解析值,包括A解析和AAAA解析。所谓A解析就是ipv4地址解析,AAAA自然就是ipv6解析的地址。笔者猜测,因为ipv4是32位的,既然32位叫A解析,128位的ipv6就应该叫AAAA~ 纯瞎猜的哈,我没去了解过这事!读者当玩笑看就行。原创 2024-01-13 00:38:58 · 296 阅读 · 0 评论 -
1.7用REST API实现dynv6脚本(上)
前面我们学了文本处理的基本命令,本章介绍一些正则式的初步知识。并且终于要写dynv6的脚本了,我们先实现一个梅林用的自定义ddns-start,当然其它固件也能用。原创 2024-01-13 10:41:58 · 448 阅读 · 0 评论 -
路由器选用指南之梅林
梅林固件路由使用指南,关于梅林固件,你想知道都在这了。原创 2022-08-16 17:01:51 · 14651 阅读 · 0 评论