自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 内网穿透工具(zerotier, tailscale)

关于内网穿透,我使用过几种,这里展示其中两种(Zerotier和Tailscale),我用的还可以。个人感觉更好用linux下安装使用。

2024-04-23 21:39:25 818

原创 ohmyzsh 配置

系统环境:使用过kali系统后,感觉zsh用着还是挺舒服的,换了系统也想换上,所以就写了这篇博文。

2024-04-19 14:51:49 256

原创 进程管理工具

系统环境:以下是一些图形化进程管理工具,

2024-04-15 18:24:06 301 1

原创 linux 进程管理

netstat:用于显示各种网络相关信息,如网络连接,路由表,接口状态losf:(列出打开文件lists openfiles)能看到pid和用户(有权限控制,只能看到本用户),可以找到哪个进程占用了这个端口ps: 查看某一瞬间所有进程状态(静态)top: 实时所有进程状态(动态)

2024-04-15 18:19:31 792

原创 byobu

系统环境: 是包装过的创建窗口: + 关闭当前标签(只有):查看各窗口: + 查看所有命令: + 在当前窗口上下分屏: + 在当前窗口左右分屏: + 上下左右分屏切换: + 方向键还有一些终端多路复用器: 等等使用方式和快捷键大同小异tmux 使用默认作为控制键screen默认是四、ssh + byobu 远程协作ssh使用其他用户通过 ssh 连接到同一主机上,使用命令进入将会进入同一个终端环境,这样就可以协同了

2024-04-15 17:59:31 258

原创 ssh 使用

(没有此文件就创建一个)

2024-04-15 17:49:59 289 1

原创 git 简单使用

(可以将此文件夹的所有修改都添加),除非你每次都了解并清晰自己的每个修改内容。使用我的例子是无法上传的,这是我自己的仓库,知道此流程即可。前需要确保当前工作区是干净的,即没有需要保存提交的修改。的话,可以用其它的,我后面会写一个,部署一个字的。能力一般,水平有限,希望能帮到您。查看修改,根据需要指定根据文件。需要指定文件,将修改的内容删除。:在自己的上游仓库创建一个名为。至此,git相关的内容就结束了。所有修改都保存,但是不建议。若不加具体文件,将展示。打开一个文件,写完后,配置好后,就可以提交了。

2024-04-15 17:07:42 571 1

原创 docker 简单使用

进入容器查看,里面已经有了我们复制进来的test.log并且预先安装了软件包:至此,docker简单使用已完成能力一般,水平有限,希望能帮到您。

2024-04-12 15:49:31 726 2

原创 VxWorks和Linux内核实时性

通用的分时操作系统面向多用户的不同任务,意在追求系统整体运行的效率和资源的均衡利用,软件的执行在时间上要求并不严格。实时操作系统不同于分时操作系统,它主要是对任务进行实时的处理,要求任务的运行具有可确定性和可预测性,提供即时响应和高可靠性。由此导致通用分时系统和实时操作系统的内核在任务调度机制方面的不同。下面主要以内核架构,系统的实时性,以及对系统的实时性改进三点为核心简要分析VxWorks和Linux内核实时性并予以对比。一、内核架构1.1 Linux宏内核架构Linux采用宏内核架构。宏内核

2022-02-10 21:29:22 1887

原创 CPU总线

CPU总线介绍1.地址总线2.数据总线3.控制总线CPU与内存或者外部设备交互信息,首先地址总线寻址,然后使用控制总线发送命令最后通过数据总线进行通信。概述:地址总线的宽度决定了CPu的寻址能力;数据总线的宽度决定了cpU与其它器件进行数据传送时的一次数据传送量﹔控制总线宽度决定了cpU对系统中其它器件的坡制能力。1.地址总线地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元

2021-09-19 10:39:58 2340

原创 Linux库概念及相关编程

一、Linux库Linux共享库、静态库、动态库详解Linux库二、静动态库的特点a) 静态库静态函数库,是在程序执行前(编译)就加入到目标程序中去了 ;优点: 运行快 发布程序无需提供静态库,因为已经在app中,移植方便缺点:大b) 动态库动态函数库,是在程序执行时动态(临时)由目标程序去调用缺点: 运行慢优点: 小三、两种库的制作1.静态库的制作:格式xxxx.a1.生成xxx.o文件 gcc demoFunc.c -c2. xxx.o文件生成xxx.a静态库文件 ar r

2021-09-03 20:12:44 151

原创 Shell脚本拓展学习(2)

Shell脚本拓展学习(2)一、sed命令1.一次替换2.指定最多次替换3.指定替换次数4.指定行替换5.打印替换的行6.删除(1)删除指定行(2)删除末行(3)删除指定行到末行(4)删除指含目标字段的行二、date命令三、nohup命令四、Crontab定时器1.查看使用2.删除任务3.查看crontab执行日志4.查看cron服务状态5.启动cron服务五、字符串操作1.(1).获取长度:(2).字符串截取(3).取尾部的指定个数的字符(4).大小写转换2.数组操作(1)赋值(2)查看(3)获取数组的长

2021-04-09 17:52:04 296

原创 Shell脚本拓展学习(1)

Shell脚本拓展学习一、标准输入输出及其重定向二、grep命令1.目标文件查找某字段2.使用gerp查找某字段并计数3.当前目录下查找某字段4.当前目录下查找含某字段的文件5.在子目录下查找某字段6.当前目录下查找并只显示此字段7.当前目录下查找并只显示此行及行数8.在当前目录下查找并显示字段外其他内容9.目标文件下查找显示某字段开头的行10.在目标文件下查找显示某字段结尾的行11.在目标文件下查找显示多目标字段的行12.限制查找显示个数三、awk命令1.直接打印2.打印目标字段行3.打印目标字段列4.使

2021-04-09 16:39:45 222

原创 Shell脚本简单语法

Shell脚本简单语法1.基本判断语法2.基本判断语法测试3.管道4.if条件语句5.case条件语句6.for条件语句7.while条件语句8.函数1.基本判断语法2.基本判断语法测试可以用[ ],亦可以用test[ $x -eq $y ] || echo "x!=y"test $x -eq $y || echo "x!=y"#!/bin/bashread -p "input x:" xread -p "input y:" y[ $x -eq $y ] || echo "x!

2021-03-27 21:53:10 202 2

原创 Shell脚本学习

Shell脚本简单总结1.变量基本使用规则1.定义变量2.使用变量1.变量基本使用规则1.定义变量variable=valuevalue是一串无空格的字符串,否则只打印第一段字符variable=‘value’variable=“value”单引号和双引号功能基本相同,但是若value是一个变量且有值,必须使用双引号才能取值,使用单引号,会将value作为字符串直接输出2.使用变量$variable${variable}使用大括号可以将命令的结果赋值给变量variable='comm

2021-03-27 14:33:01 144 1

原创 Linux之Makefile学习

关于Linux系统下Makefile学习的简单总结1.Makefile简介2.基本函数3.解释代码中的含义1.条件编译2.变量定义3.解决目标文件和依赖4.伪目标4.代码测试1.Makefile2.module13.module24.include5.build1.Makefile简介一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile

2021-02-07 22:52:03 190

原创 树莓派简单驱动编写

自己写驱动实现IO口高低电平1.准备工作1.统一版本2.安装交叉编译工具2.编写代码1.驱动代码2.测试代码3.测试代码1.进入自己安装的系统版本文件夹下2.配置Makefile3.模块编译1.模块编译2.测试代码编译4.树莓派下操作1.加入驱动2.将设备打开权限设置为都可打开3.测试并调试1.准备工作1.统一版本我是用虚拟机乌班图,编写的驱动是否可以写进内核,取决于乌班图Linux版本和树莓派的是否兼容,若不兼容,请参考内核编译进行内核编译,再实现此代码2.安装交叉编译工具此外还需要安装交叉编

2021-01-10 18:55:23 1689

原创 Linux 实现人脸识别

通过识别照片判断是否为同一人1.借助工具1.注册登录2.选择人脸识别3.1毛钱购买2.代码测试1.借助工具面部识别靠自己是很做成的,故我们借助一些工具,我们利用翔云智能平台,百度搜索翔云(应为翔云便宜一些。。。)1.注册登录进入后,上方选项栏选择价格与购买2.选择人脸识别右侧选择人脸识别,以后若有其他需要亦可使用其他3.1毛钱购买第一次1毛钱(便宜吧。。。)加入购物车,右侧购车内进行购买完成后,再次选择上方选项栏的产品,选择人脸识别可以先选择本地上传试一下2.代码测试接下来

2021-01-07 14:00:42 2596

原创 Linux安装openssl库

Linux安装openssl库1.准备2.开始安装3.更新curl库opensll库资源好多地方都会要钱,此方法可帮你免费下载哦1.准备wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz然后解压tar xvf openssl-1.1.1a.tar.gz 进入文件夹cd openssl-1.1.1a2.开始安装配置./config编译make安装echo ~sudo make install3.更新c

2021-01-07 13:58:16 895

原创 Https协议简介

Https协议1.简介与原理2.一些简单的密码学基础1.简单名词2.加密方式1.对称加密2.非对称加密3.HTTPS 协议优缺点1.优点2.缺点1.效率低,速度慢2.占用资源多1.简介与原理http协议是明文传输的,因此很容易被截取和解析,泄漏个人数据。https协议是在http和tcp之间多添加了一层,进行身份验证和数据加密。2.一些简单的密码学基础1.简单名词明文: 明文指的是未被加密过的原始数据。(我们接触过的socket,ftp代码都是明文)密文:明文被某种加密算法加密之后,会变成密文,

2021-01-04 16:51:55 737

原创 Http协议简介

Http协议1.http协议的特性2.http协议请求1.请求行1、url可见性2、数据传输上3、缓存性4、后退页面的反应5、传输数据的大小6、安全性本质区别2.请求头3.请求主体3.http协议的响应1.响应行2.响应头3.响应主体1.http协议的特性http协议是建立在TCP/IP协议之上应用层协议,默认端口为80,8080http协议的的特点是无状态,无连接其无连接并不真的没有连接,而是只在动作发生时,连接一下,而后断开。(比如我们百度搜索信息时,连接发生在我们点击百度一下是,进入界面后,自

2021-01-04 16:34:14 160

原创 树莓派3B设置 mjpg-streame

树莓派3B设置摄像头1.主要设备2.设置步骤1.下载基本工具2.下载mjpg-streamer3.编译并安装4.修改启动脚本5.打开摄像头查看影像6.关于可能出现的问题1.主要设备树莓派3B + Pi摄像头+mjpg-streamer下图为摄像头2.设置步骤1.下载基本工具sudo apt-get update #更新软件列表sudo apt-get upgrade #更新软件sudo apt-get install subversion #Subversion是一个自由开源的

2021-01-02 12:17:08 593

原创 Linux学习—TCP三次握手四次挥手

TCP三次握手四次挥手1.TCP连接三次握手第一次握手第二次握手第三次握手2.TCP四次挥手第一次挥手第二次挥手第三次挥手第四次挥手3.常见面试题1.为什么连接的时候是三次握手,关闭的时候却是四次握手?2.如果已经建立了连接,但是客户端突然出现故障了怎么办?1.TCP连接三次握手用于TCP连接时:第一次握手建立连接时,客户端发送SYN包(SYN=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次握手

2021-01-01 21:45:12 233

原创 网络OSI模型的简单总结

网络OSI模型的简单总结1.什么是OSI?2.七层模型1.物理层2.数据链路层(Data Link Layer)3.网络层(Network Layer)4.传输层(Transport Layer)5.会话层(Session Layer)6.表示层(Presentation Layer)7.应用层1.什么是OSI?Open System Interconnection开放式系统互联:把网络通信的工作分为7层,(从下到上)分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。这种框架性的设计

2021-01-01 21:07:43 350

原创 树莓派串口简单测试语音识别模块

1.使用语音模块:LDV7 语音识别模块模块参数:型号:YS-LDV7名称:一体化语音识别模块规格:43*29.7MM供电电压:5V (内部工作电压 3.3V)待机电流:30MA识别时电流:45MAIO 口输出:高电平为 3.3V通信方式:串口通信(5V TTL 电平,不可直接接 RS232、RS485)2.简单使用模块实际原理为 1 片 STC11 单片机+1 片 LD3320 组合形成的一款语音识别模块,语音识别部分已写好驱动程序,用于只需要对 STC 单片机进行编程加入自己的

2020-12-30 17:01:06 1023 3

原创 树莓派控制继电器

树莓派控制继电器1.需要用到wiringPi库,故包含下面头文件2.使用前确保接口正常初始化3.配置引脚4.让对一个已配置为输出模式的引脚输出指定的电平信号5.例子1.需要用到wiringPi库,故包含下面头文件# include<wiringPi.h>2.使用前确保接口正常初始化int wiringPiSetup (void) 3.配置引脚返回:执行状态,-1表示失败 当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi 引脚编号表。void pinMode (i

2020-12-27 19:32:14 376

原创 Linux—gdb调试简单实现

1.GDB简述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能:(1)启动程序,可以按照工程师自定义的要求随心所欲的运行程序。(2)让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。 (3)当程序被停住时,可以检查此时程序中所发生的事,并追索上文。 (4)动态地改变程序的执行环境。不管是调试Linux内核空间的驱动还是调试用户空间的应用程序,掌握gdb的用法都是必须。2.安装gdb增强工具gdb工具时系统自带的,但是为

2020-12-24 12:50:59 347

原创 Linux学习—strtok函数的基本实现

1.简述分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。头文件#include<string.h>原型char *strtok(char s[], const char *delim);使用NULL才可以获取后面的字符,应该为第一次分割后str已经被破坏 char *p; char str[128] = {"hello world

2020-12-24 11:44:22 272

原创 基于链表实现的学生成绩管理系统

C语言学习成果,主要是加强对链表的熟练操作。。。#include<stdio.h>#include<stdlib.h>//学生结构体struct Student { int ID; int Chinese; int Math; int English; struct Student *next;};//班级结构体struct Class{ int Classnum; struct Student *stuHead; struct Class *n

2020-12-24 09:56:14 1242

原创 ftp云盘—服务端server

题目ftp云盘,代码编写分为客户端,服务端,配置文件通过TCP协议,利用套接字socket具体实现。实现功能分为客户端(lls,lpwd,lcd),服务端(ls,cd,pwd,)以及双方文件交互功能(get,put)此为ftp云盘服务端#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <stdlib.h>#include <netinet/in.

2020-12-24 09:44:06 579

原创 ftp云盘—客户端client

题目ftp云盘,代码编写分为客户端,服务端,配置文件通过TCP协议,利用套接字socket具体实现。实现功能分为客户端(lls,lpwd,lcd),服务端(ls,cd,pwd,)以及双方文件交互功能(get,put)此为ftp云盘客户端//包含头文件#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <stdlib.h>#include <net

2020-12-24 09:33:59 459

原创 ftp云盘—配置文件

#define LLS 1#define LPWD 2#define LCD 3#define CD 4#define LS 5#define PWD 6#define PUT 7#define GET 8#define QUIT 9struct Msg{ char data[128]; char dataBuf[128];};

2020-12-24 09:33:06 207

原创 Linux 交叉编译

交叉编译是什么,为什么要交叉编译交叉编译是什么?交叉编译 是在一个平台上生成另一个平台上的可执行代码。我们再windows上面编写C51代码,并编译成可执行代码,如xx.hex,是在c51上面运行,不是在windows上面运行 我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out, 是在树莓派上面运行,不是在ubuntu linux上面运行 编译:是在一个平台上生成在该平台上的可执行代码 C51 交叉编译的发生在keil(集成环境上面) stm32 ..

2020-12-21 21:03:57 544

原创 Linux 文件系统

1. 什么是文件系统? 常规认知: 根目录 文件系统是操作系统用于明确存储设备组织文件的方法。 以上说的方法:就是文件管理系统(程序),简称文件系统 2. 文件系统(文件管理系统的方法)的种类有哪些? FAT VFAT NTFS EXT1/2/3/4 HFS .... 树莓派查看文件系统的命令: df -T vfat : boot(bootloader, kernel) (基于磁盘) ext4 : 根目录 (基于磁盘) tmpfs : 内存文件系统3. 什么是分区?win

2020-12-19 21:19:04 146 2

原创 Linux内核配置

树莓派高阶开发课程ubuntu18.04版本安装环境自行搭建,包括一些基本安装,vi,ifconfig等,自行百度关键字操作。树莓派等芯片带操作系统的启动过程 C51,STM32(裸机)》》》》》》C直接操控底层寄存器实现相关业务。 业务流程型的裸机代码 遥控灯: while(1) 垃圾桶:WemosD1 LOOP 恩智浦智能车: stm32 X86,Intel windows 启动过程: 电源 -》 BIOS -》windows内核-》C

2020-12-19 12:07:15 551

原创 树莓派开发—基础配置

1.树莓派刷机插入读卡器,打开文件,会自动识别到内存卡,点击写入即可,而后将内存卡插入树莓派。2.树莓派登录2.1HDMI视频线 连接到显示器2.2串口 2.2.1设备破解 默认情况,树莓派的串口和蓝牙连接。 想办法断开蓝牙连接,把串口用来数据通信 https://blog.csdn.net/syjsxxjy/article/details/80774262 修改系统配置,启用串口登录树莓派1.打开SD卡根目录的"config.txt"文件,将以下内容添加在最后并且保

2020-12-13 18:45:01 527

原创 (Linux下)基于Nucrses的贪吃蛇小游戏

代码核心是基于链表的使用要运行此代码,需要安装Nucrses库#include<curses.h>#include<stdio.h>#include<stdlib.h>#include <pthread.h>//使用绝对值确保方向#define UP 1#define DOWN -1#define LEFT 2#define RIGHT -2struct Snack{ int row; int

2020-12-12 19:55:53 393 3

原创 Linux嵌入式学习—网络编程

1.socket概念Linux中的网络编程是通过socket接口来进行的。socket是一种特殊的I/O接口,它也是一种文件描述符。它是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信,socket也有一个类似于打开文件的函数调用,该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过socket来实现的;2.socket类型1)流式socket(SOCK_STREAM) à用于TCP通信流式套接字提供可

2020-12-12 18:02:13 451

原创 Linux嵌入式学习—多线程

(1)线程概述进程是程序执行时的一个实例,即它是程序已经执行到何种程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。(2)使用线程的理由使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知

2020-12-03 13:14:36 1143

原创 Linux嵌入式学习—信号量

信号量简述信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。例子#include <sys/types.h>#include <sys/ipc.h>#include <sys/sem.h>#include<stdio.h>//int semget(key_t key, int nsems

2020-12-03 13:01:50 491

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除