- 博客(76)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 初识 sed 和 gawk
文章目录sed 编辑器在命令行定义编辑器命令在命令行使用多个编辑器命令从文件中读取编辑器命令sed 编辑器sed 命令的格式如下:sed options script file选项描述-e script在处理输入时,将 script 中指定的命令添加到已有的命令中-f file在处理输入时,将 file 中指定的命令添加到已有的命令中-n不产生命令输出,使用 print 命令来完成输出在命令行定义编辑器命令默认情况下,sed 编辑器会将指定的命令应用到
2021-01-20 00:10:17 195
原创 python---输入输出
Format String Syntax格式化字符串包含用花括号 {} 括起来的“可替代字段”。 花括号中不包含的所有内容均视为文字文本,该文本保持原样输出。 如果需要在文字文本中包含花括号字符,可以通过使用 {{ 和 }} 来转义。可替代字段的语法如下:replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"field_name ::= arg_name ("." attribute
2020-12-09 23:48:30 188
原创 python-算术运算符
算术运算符整型a=10b=20a+b30a-b-10a*b200b/a2.0b%a0a**b100000000000000000000b//a29//249/24.5-9//2-5浮点型Python在进行浮点数运算时,会先把0.02和0.39转化成二进制数才能计算数据类型转换int()函数不能把中文、浮点数类型的字符串或者标点符号转换成整数,字符串内容是整数的数据,才能被int()强制转换,其他类型都会报错。
2020-12-09 22:13:02 295
原创 python---导入模块
Python 程序可以调用一组基本的函数,这称为“内建函数”,包括 print()、input() 和 len() 函数。Python 也包括一组模块,成为“标准库”。每个模块都是一个 python 程序,包含一组相关的函数,可以嵌入你的程序之中。例如,math 模块有数学运算相关的函数,random 模块有随机数相关的函数,等等。在开始使用一个模块中的函数之前,必须用 import 语句导入带模块。在代码中,import 语句包含以下部分:import 关键字模块的名称可选的更多模块名称,之间
2020-12-09 22:08:12 526
原创 shell ---创建函数
创建函数有两种格式可以用来在 bash shell 脚本中创建函数。第一种格式采用关键字 function,后跟分配给该代码块的函数名。function name { commands}name 属性定义了赋予函数的唯一名称。脚本中定义的每个函数都必须有一个唯一的名称。commands 是构成函数的一条或多条 bash shell 命令。在调用该函数时,bash shell 会按命令在函数中出现的顺序依次执行,就行在普通脚本中一样。在 bash shell 脚本中定.
2020-11-11 00:06:00 209
原创 BLE---地址类型学习
/// BLE device address typetypedef enum { BLE_ADDR_TYPE_PUBLIC = 0x00, BLE_ADDR_TYPE_RANDOM = 0x01, BLE_ADDR_TYPE_RPA_PUBLIC = 0x02, BLE_ADDR_TYPE_RPA_RANDOM = 0x03,} esp_ble_addr_type_t;
2020-11-09 09:43:08 17423
原创 BLE-广播
BLE 广播类型广播的类型一般分为 4 种,见如下表格:可连接的非定向广播(Connectable Undirected Event Type)这是一种用途最广的广播类型,包括广播数据和扫描响应数据,它表示当前设备可以接受其他任何设备的连接请求。进行通用广播的设备能够被扫描设备扫描到,或者在接收到连接请求时作为从设备进入一个连接。通用广播可以在没有连接的情况下发出,换句话说,没有主从设备之分。可连接的定向广播(Connectable Directed Event Type)定向广播类
2020-10-28 00:03:52 2315
原创 ubuntu 下通过 wireshark 抓取 wifi 数据包
mali@ubuntu:~$ ifconfigenp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.3.6 netmask 255.255.255.0 broadcast 192.168.3.255 inet6 fe80::892c:5025:2488:6...
2020-08-04 16:03:30 2758
原创 Ubuntu18.04系统查看已安装的 python 版本,及 Python2 与 Python3 之间切换
查看系统版本信息mali@ubuntu:~$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 18.04 LTS (bison-elk-cougar-mlk X54)Release: 18.04Codename: bionic查看已安装的 python 版本mali@ubuntu:~$ python2 --versionPython 2.7.17mali@ubunt
2020-07-22 11:01:10 7008
原创 如何创建本地 MQTT broker
文章目录创建本地 brokermqtt projectmqtt client使用MQTT.fx接入物联网平台mqtt test创建本地 brokerhttps://test.mosquitto.org/托管一个公开可用的 Mosquitto MQTT server/broker# 安装 mosquitto clientsudo snap install mosquitto # version 1.6.9, orsudo apt install mosquitto-cli
2020-07-14 19:17:37 1420
原创 使用 openssl 获取服务器证书
文章目录读取服务器的 CA 证书生成服务器的 CA 证书读取服务器的 CA 证书Root cert for howsmyssl.com, taken from howsmyssl_com_root_cert.pem The PEM file was extracted from the output of this command: openssl s_client -showcerts -connect www.howsmyssl.com:443 </dev/nullThe C
2020-07-14 14:31:22 4758
原创 ble service 学习
文章目录官方文档GATT ServiceDIS(Device Information Service)FTMS(Fitness Machine Service)GATT Descriptors官方文档蓝牙官网地址:https://www.bluetooth.com/Assigned Numbers:https://www.bluetooth.com/specifications/ass...
2020-04-07 16:30:49 1526
原创 python--列表学习
文章目录列表是什么?访问列表元素修改、添加和删除元素修改列表元素在列表中添加元素在列表末尾添加元素在列表中添加元素从列表中删除元素使用 del 语句删除元素使用方法 pop() 删除元素弹出列表中任何位置处的元素根据值删除元素组织列表使用方法sort()对列表进行永久性排序使用函数sorted()对列表进行临时排序倒着打印列表确定列表的长度列表是什么?列表是由一系列按特定顺序排列的元素组成。...
2020-02-23 18:34:21 803
原创 sed
sed工具sed的用法sed [-nefr] [动作]参数:-n: 使用安静 (silent) 模式,在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上,但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行才会被列出来。-e: 直接在命令行模式下进行 sed 的动作编辑。-f: 直接将 sed 的动作写在一个文件中, -f filename 则可以执...
2020-02-16 22:06:16 154
原创 可变参数:stdarg.h
实现可以接受可变数量参数的函数提供一个使用省略号的函数原型;在函数定义中创建一个 va_list 类型的变量用宏 va_start() 把该变量初始化为一个参数列表用宏 va_arg() 访问参数列表用宏 va_end() 完成清理工作#include <stdio.h>#include <stdlib.h>#include <stdarg.h&g...
2019-12-16 23:20:27 153
原创 python--输入输出
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license()" for more information.>>> n = int(input("...
2019-10-07 22:58:29 249
原创 python----基础学习
1.安装python使用的操作系统是Ubuntu,可以从终端窗口安装python,步骤如下:sudo apt-get install python3sudo apt-get install idle3sudo apt-get install python3-pip2.安装文本编辑器sudo apt-get install geany3.运行hello world程序...
2019-09-20 13:18:30 313
原创 编译与链接
#include <stdio.h>int main(){ printf("Hello World\n"); return 0;}在Linux下,当我们使用GCC来编译Hello World程序时,只需使用最简单的命令:mali@mali:~/code/link$ cat hello.c #include <stdio.h>int main(...
2019-09-03 23:58:45 354
原创 C ---位操作
C按位运算符按位逻辑运算符用法:掩码用法:打开位(设置位)有时,需要打开一个值中的特定位,同时保持其他位不变。用法:关闭位(清空位)用法:切换位用法:检查位的值移位运算符位字段位字段(bit field)是一个signed int或unsigned int类型变量中的一组相邻的位。位字段通过一个结构声明来建立,该结构声明为每个字段提供标签,并确定该字段的宽度...
2019-09-02 00:41:53 183
原创 c++---函数重载
函数重载函数多态是C++在C语言的基础上新增的功能。默认参数可以让我们能够使用不同数目的参数调用同一个函数,而函数多态(函数重载)能让我们使用多个同名的函数。函数重载的关键是函数的参数列表---也称为函数特征标(function signature).如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则它们的特征标相同,而变量名是无关紧要的。C++允许定义名称相同的函数,条件...
2019-09-02 00:40:18 87
原创 C++---标准模板库
STL提供了一组表示容器、迭代器、函数对象和算法的模板。容器是一个与数组类似的单元,可以存储若干个值。STL容器中存储的值的类型相同;算法是完成特定任务(如对数组进行排序或在链表中查找特定值)的处方;迭代器能够用来遍历容器的对象,与能够遍历数组的指针类似,是广义指针;函数对象是类似于函数的对象,可以是类对象或函数指针(包括函数名,因为函数名被用作指针)。STL使得能够构造各种容器(包括数组、队...
2019-09-02 00:33:17 93
原创 C++---函数模板
函数模板允许以任意类型的方式来定义函数。例如,可以建立这样一个交换模板:template <typename AnyType>void Swap(AnyType &a, AnyType &b){ AnyType temp; temp = a; a = b; b = temp;}第一行指出,要建立一个模板,并将类型命名为...
2019-09-02 00:17:51 132
原创 c++---成员初始化列表
成员初始化列表的语法:如果Classy是一个类,而mem1、mem2和mem3都是这个类的数据成员,则类构造函数可以使用如下的语法来初始化数据成员:Classy::Classy(int n, int m) :mem1(n), mem2(0), mem3(n * m + 2){ //...}上述代码将mem1初始化为n,将mem2初始化为0,将mem3初始化为n*m+2。从...
2019-09-01 23:27:07 162
原创 linux---FTP
1.使用tcpdump抓取FTP执行过程中的数据包:mali@mali:~/ftp$ sudo tcpdump -i any -w ftp.pcaptcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes2.执行FTP相关指令mali@mali:~/ftp...
2019-08-27 15:06:22 1019
原创 C语言实现---八皇后问题
#include <stdio.h>#include <stdlib.h>#define max 8int queen[max], sum=0; /* max为棋盘最大坐标 */void show() /* 输出所有皇后的坐标 */{ int i; for(i = 0; i < max; i++) { pri...
2019-08-26 21:46:53 157
原创 C++--多态公有继承
RatedPlayer继承示例很简单,可参考https://blog.csdn.net/merry1996/article/details/100066859。派生类对象使用基类的方法,而未做任何修改。然而,可能会遇到这样的情况,即希望同一个方法在派生类和基类中的行为是不同的。换句话来说,方法的行为应取决于调用该方法的对象。这种较复杂的行为称为多态---具有多种形态,即同一个方法的行为随上下文而异...
2019-08-25 22:27:03 286 2
原创 C++---类继承
目录1.一个简单的基类派生一个类构造函数:访问权限的考虑使用派生类1.一个简单的基类从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。为说明继承,首先需要一个基类。Webtown俱乐部决定跟踪乒乓球会会员。作为俱乐部的首席程序员,需要设计一个简单的TableTennisPlayer类:tabtenn0.h//tabtenn0.h--a table-t...
2019-08-25 22:16:26 294
原创 网络序和主机序
#include <stdio.h>#include <stdlib.h>#include <string.h>#define DSS_SUCCESS 0#define DSS_ERROR -1typedef unsigned int uint32; /* Unsigned 32 bit value */typedef signe...
2019-08-23 12:38:13 153
原创 c++---实现mystring
1.string.h//string.h#ifndef STRING_H_#define STRING_H_#include <iostream>using std::ostream;using std::istream;class String{private: char *str; //pointer to string int len; //...
2019-08-18 19:51:41 153
原创 C++---使用类
运算符重载实现一个Time类,重载加法、减法和乘法运算符:1.头文件://mytime.h--Time class with operator overloading#ifndef MYTIME_H_#define MYTIME_H_class Time{private: int hours; int minutes;public: Time();...
2019-08-18 17:17:48 117
原创 c++---循环和关系表达式
基于范围的for循环(C++ 11)#include <iostream>using namespace std;int main(){ double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49}; for (double x : prices) cout << x << en...
2019-08-18 12:19:23 77
原创 c++---对象和类
目录类的构造函数和析构函数声明和定义构造函数使用构造函数默认构造函数析构函数改进Stock类this指针对象数组抽象数据类型-栈类声明类似结构声明,可以包括数据成员和成员函数。声明有私有部分,在其中声明的成员只能通过成员函数进行访问;声明还具有共有部分,在其中声明的成员可被使用类对象的程序直接访问。通常,数据成员被放在私有部分中,成员函数被放在共有部分中,因...
2019-08-18 01:25:26 262
原创 c++--new和delete
目录使用new来分配内存使用delete释放内存使用new来创建动态数组使用new创建动态结构使用new来分配内存在使用new时,程序员要告诉new,需要为哪种数据类型分配内存;new将找到一个长度正确的内存块,并返回该内存的地址。程序员的责任是将该地址赋给一个指针。例如,在运行阶段为一个int值分配未命名的内存,并使用指针来访问这个值:int *pn = new...
2019-08-17 23:48:21 105
原创 linux---进程间通信(IPC)
经典的IPC(InterProcess Communication):管道 FIFO 消息队列 信号量 以及共享存储管道管道是UNIX系统IPC的最古老形式,所有UNIX系统都提供此种通信机制。管道有以下两种局限性:历史上,它们是半双工的 (即数据只能在一个方向上流动)。 管道只能在具有公共祖先的两个进程之间使用。通常,一个管道由一个进程创建,在进程调用fork之后,这个管道就能在父...
2019-08-14 01:48:01 129
原创 linux---文件和目录
文件访问权限每个文件有9个访问权限位,可将它们分为3类:9个访问权限位 st_mode屏蔽 含义 S_IRUSR S_IWUSR S_IXUSR 用户读 用户写 用户执行 S_IRGRP S_IWGRP S_IXGRP 组读 组写 组执行 ...
2019-08-13 22:06:52 138
原创 c---字符输入/输出和输入验证
创建更友好的用户界面使用缓冲输入/* guess.c */#include <stdio.h>int main(void){ int guess = 1; printf("Pick an integer from 1 to 100. I will try to guess it\n"); printf("Respond with a y if ...
2019-08-12 01:03:11 186
原创 linux---进程控制
目录进程标识函数fork()僵尸(Zombie)进程销毁僵尸进程:函数wait和waitpid信号处理信号和signal函数alarm函数利用sigaction函数进行信号处理利用信号处理技术消灭僵尸进程函数exec函数system进程标识每个进程都有一个非负整型表示的唯一进程ID。因为进程ID标识符总是唯一的,常将其用作其他标识符的一部分以保...
2019-08-12 01:00:22 221
原创 C---文件输入/输出
目录标准I/Oexit()fopen()函数读和写流输入函数输出函数每次一行I/O文件结尾一个简单的文件压缩程序随机访问: fseek()和ftell()标准I/O的机理二进制I/O:fread()和fwrite()用二进制I/O进行随机访问标准I/Ocount.c演示了如何用标准I/O读取文件和统计文件中的字符数/* cou...
2019-08-11 02:17:47 339
unp.tar.gz
2019-07-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人