
linux
文章平均质量分 51
怪我冷i
这个作者很懒,什么都没留下…
展开
-
轻量级 K8S 环境 安装minikube
将用户添加到 Docker 组: 若要允许用户在不使用 sudo 的情况下运行 Docker 命令,可以将用户添加到 docker 组。尝试上述步骤后,你应该能够在不遇到 “permission denied” 错误的情况下运行 Docker 命令。请记住,如果将用户添加到 docker 组,可能需要注销并重新登录以使组更改生效。添加用户到 docker 组后,可能需要注销并重新登录以使更改生效。路径为,云服务器——网络与安全——安全组——访问规则。本文采用Debian 12系统。原创 2024-05-22 00:00:00 · 959 阅读 · 0 评论 -
linux的tomcat关闭脚本
linux的tomcat关闭脚本#!/bin/shTOM_HOME=$(cd `dirname $0`;cd ..;pwd)ps -ef|grep $TOM_HOME|grep -v grep|grep -v killif [ $? -eq 0 ];then kill -9 `ps -ef|grep $TOM_HOME|grep -v grep|grep -v kil原创 2023-09-25 13:06:31 · 118 阅读 · 0 评论 -
Debian12通过Docker安装mariadb数据库(mysql可参考)
安装通过Docker安装的一般已经开启远程权限,如果没有,可以这样开启。原创 2023-09-18 19:00:00 · 519 阅读 · 0 评论 -
Debian 12快速安装图解
Debian选择CD安装非常慢,本次安装选择DVD离线安装。下载 https://www.debian.org/CD/torrent-cd/原创 2023-09-12 14:57:24 · 4985 阅读 · 0 评论 -
OpenWrt计划任务定时关闭WIFI
OpenWrt计划任务定时关闭WIFIOpenWrt创建计划任务比较简单周一至周五的每天早上7:30打开WIFI周一至周五的每天早上7:30关闭WIFI30 7 * * 1-5 wifi down周一至周五的每天早上7:30打开WIFI35 7 * * 1-5 wifi up两条一起用,别忘记打开WIFI每天下午18:00关闭WIFI,9号、19号、29号除外0 18 1-8,10-18,20-31 * * wifi down...原创 2021-03-13 23:25:15 · 6595 阅读 · 6 评论 -
Linux系统编程——进程控制函数fork
创建一个新的进程pid_t fork(void);返回值失败-1成功,两次返回父进程返回 子进程的id子进程返回0获得pid,进程id,获得当前进程pid_t getpid(void);获得当前进程父进程的idpid_t getppid(void);原创 2022-12-17 10:39:34 · 215 阅读 · 0 评论 -
ubuntu开启SSH服务远程登录
ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。(或把配置文件中的”PermitRootLogin without-password”加一个”#”号,把它注释掉,再增加一句”PermitRootLogin yes”)如果没有则可以这样启动:sudo /etc/init.d/ssh start或sudo service ssh start。如果看到sshd那说明ssh-server已经启动了。原创 2022-11-04 08:28:37 · 4415 阅读 · 0 评论 -
java打印文件树--排序版
java打印文件树–排序版DirectoryTreeByJava概述:List contents of directories in tree-like format.名称:java打印文件树与系统自带的tree命令的区别:多了一些排序使用方法:在windows或者Linux命令行输入如下命令,其中,java表示程序运行需要JRE支持,-jar是参数之一,不用变,hello.jar是软件名称,directories是目录名称,levelNumber是打印的深度。java原创 2021-08-17 12:02:09 · 355 阅读 · 0 评论 -
Linux网络编程——libevent库Hello World程序
libevent介绍1 事件驱动, 高性能, 轻量级, 专注于网络2 源代码精炼, 易读3 跨平台4 支持多种I/O多路复用技术, 如epoll select poll等5 支持I/O和信号等事件安装登录官方网站: http://libevent.org, 查看相关信息libevent源码下载主要分2个大版本:1. 1.4.x 系列, 较为早期版本, 适合源码学习2. 2.x系列, 较新的版本, 代码量比1.4版本多很多, 功能也更完善。libevent的核心实现:在linux上,原创 2021-08-12 18:00:52 · 536 阅读 · 0 评论 -
qt Creator常用快捷键
快捷键编译+运行 ctrl +r编译 ctrl+b帮助文档 f1字体大小 ctrl + 鼠标滚轮同名的.h 和.cpp之间的切换 F4注释 ctrl+ /查找关键字 ctrl +fctrl + shift +↑ 或者↓命名规范类名 首字母大写、单词与单词之间 首字母大写函数、变量名称首字母小写 单词与单词之间首字母大写帮助文档的查看方式第一种 f1查看第二种 左侧的按钮第三种 exe程序...原创 2021-07-27 09:06:55 · 205 阅读 · 0 评论 -
deepin设置ll命令
deepin设置ll命令alias ll='ls -la --color=auto'原创 2021-05-25 13:56:57 · 916 阅读 · 0 评论 -
五分钟快速理解 Reactor 模型
五分钟快速理解 Reactor 模型原文1、线程模型1:传统阻塞 I/O 服务模型2、线程模型2:Reactor 模式根据 Reactor 的数量和处理资源池线程的数量不同,有 3 种典型的实现:1)单 Reactor 单线程;2)单 Reactor 多线程;3)主从 Reactor 多线程。2.2单 Reactor 单线程2.3单 Reactor 多线程2.4主从 Reactor 多线程小结3 种模式可以用个比喻来理解:(餐厅常常雇佣接待员负责迎接顾客,当顾客入坐后,侍原创 2021-05-18 00:29:48 · 133 阅读 · 0 评论 -
gcc常用参数
gcc常用参数gcc常用参数Ø -v 查看gcc版本号, --version也可以Ø -E 生成预处理文件Ø -S 生成汇编文件Ø -c 只编译,生成.o 文件,通常称为目标文件Ø -I 指定头文件所在的路径Ø -L 指定库文件所在的路径Ø -l 指定库的名字Ø -o 指定生成的目标文件的名字Ø -g 包含调试信息,使用gdb调试需要添加-g参数Ø -On n=0∼3 编译优化,n越大优化得越多例如:下面代码片段int a = 10;int b = a;in原创 2021-05-08 15:02:28 · 253 阅读 · 0 评论 -
找不到error while loading shared libraries: libevent-2.1.so.6共享库的问题
没有安装libevent,先安装。报错信息如下$ ./event ./event: error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory查看缺什么库$ ldd event linux-vdso.so.1 => (0x00007ffec6fda000) libevent-2.1.s原创 2021-04-19 15:24:08 · 1791 阅读 · 0 评论 -
Linux系统编程——多进程版本的服务器(改进版)
多进程版本的服务器Linux系统编程——多线程版本的服务器(改进版)流程处理流程: 1 创建socket, 得到一个监听的文件描述符lfd---socket() 2 将lfd和IP和端口port进行绑定-----bind(); 3 设置监听----listen() 4 进入while(1) { //等待有新的客户端连接到来 cfd = accept(); //fork一个子进程, 让子进程去处理数据 pid = fork(); if(pi原创 2021-04-14 10:05:47 · 171 阅读 · 0 评论 -
Linux系统编程——多线程版本的服务器(改进版)
多线程版本的服务器流程处理流程: 1 创建socket, 得到一个监听的文件描述符lfd---socket() 2 将lfd和IP和端口port进行绑定-----bind(); 3 设置监听----listen() 4 进入while(1) { //等待有新的客户端连接到来 cfd = accept(); //fork一个子进程, 让子进程去处理数据 pid = fork(); if(pid<0) { exit(-1原创 2021-04-14 10:02:38 · 173 阅读 · 0 评论 -
Linux系统编程——大端小端以及判别方式
文章目录大端小端以及判别方式共用体判断数据是大端存放还是小端存放ascii表参考大端小端以及判别方式概念 大端和小端的概念 大端: 低位地址存放高位数据, 高位地址存放低位数据 小端: 低位地址存放低位数据, 高位地址存放高位数据共用体共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。#include <stdio.h>union dat原创 2021-04-09 11:24:00 · 4783 阅读 · 0 评论 -
Linux系统编程——多线程之条件变量pthread_cond_t、pthread_cond_wait使用
多线程之条件变量pthread_cond_t、pthread_cond_wait使用以下代码看起来没有什么问题,但是编译运行多次后,就有可能出现问题。//使用条件变量实现生产者和消费者模型#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <unistd.h>#include <pthread.h>原创 2021-04-06 16:56:01 · 330 阅读 · 0 评论 -
Linux系统编程——alarm函数
alarm函数函数原型:unsigned int alarm(unsigned int seconds);函数描述:设置定时器(闹钟)。在指定seconds后,内核会给当前进程发送14)SIGALRM信号。进程收到该信号,默认动作终止。每个进程都有且只有唯一的一个定时器。函数返回值:返回0或剩余的秒数,无失败。例如:常用操作:取消定时器alarm(0),返回旧闹钟余下秒数。alarm使用的是自然定时法,与进程状态无关,就绪、运行、挂起(阻塞、暂停)、终止、僵尸…无论进程处于何种状态,alarm都原创 2021-04-03 17:14:48 · 4953 阅读 · 0 评论 -
Linux系统编程——pipe管道练习_父子进程完成ps_aux_grep_bash
父子进程完成ps_aux_grep_bash用管道完成,执行ps aux | grep bash命令,简单的说就是ps aux本来是输出到标准输出的,现在用dup2重定向到管道的写端,所以grep bash获取前方传来的数据,其标准输入得生重定向到管道的读端。原理1 创建管道2 创建子进程fork3 在父进程中关闭读端fd[0]4 在子进程中关闭写端fd[1]5 在父进程中将标准输出重定向到管道的写端6 在子进程中将标准输入重写向到管道的读端7 在父进程中调用execl函数执行ps au原创 2021-04-02 17:09:51 · 332 阅读 · 0 评论 -
Linux系统编程——父子进程之间是否共享文件
父子进程之间是否共享文件问,父子进程之间是否共享文件答,共享 ( 注意,是共享fork之前的)//父子进程之间是否共享文件#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <unistd.h>int m原创 2021-04-02 10:51:36 · 216 阅读 · 0 评论 -
Linux系统编程——孤儿进程与僵尸进程
文章目录孤儿进程孤儿进程的概念模拟孤儿进程的案例僵尸进程僵尸进程的概念如何解决僵尸进程模拟僵尸进程的案例参考孤儿进程孤儿进程的概念若子进程的父进程已经死掉,而子进程还存活着,这个进程就成了孤儿进程。为了保证每个进程都有一个父进程,孤儿进程会被init进程领养,init进程成为了孤儿进程的养父进程,当孤儿进程退出之后,由init进程完成对孤儿进程的回收。模拟孤儿进程的案例编写模拟孤儿进程的代码讲解孤儿进程,验证孤儿进程的父进程是否由原来的父进程变成了init进程。僵尸进程僵尸进程的概念若原创 2021-04-02 10:20:09 · 190 阅读 · 0 评论 -
Linux系统编程——fcntl函数
文章目录fcntl函数fcntl函数常用的操作:1 复制一个新的文件描述符:2 获取文件的属性标志3 设置文件状态标志4 常用的属性标志练习1. 使用fcntl函数实现复制文件描述符2. 使用fcntl函数设置在打开的文件末尾添加内容fcntl函数函数描述: 改变已经打开的文件的属性函数原型: int fcntl(int fd, int cmd, … /* arg */ );若cmd为F_DUPFD, 复制文件描述符, 与dup相同若cmd为F_GETFL, 获取文件描述符的flag属性值原创 2021-03-31 15:30:55 · 1144 阅读 · 0 评论 -
Linux系统编程——dup函数
dup函数dup函数Ø 函数描述: 复制文件描述符Ø 函数原型: int dup(int oldfd);Ø 函数参数: oldfd -要复制的文件描述符Ø 函数返回值:成功: 返回最小且没被占用的文件描述符失败: 返回-1, 设置errno值练习: 编写程序, 测试dup函数.测试dup函数复制文件描述符//测试dup函数复制文件描述符#include <stdio.h>#include <stdlib.h>#include <string原创 2021-03-31 14:28:05 · 503 阅读 · 0 评论 -
Linux系统编程——opendir readdir closedir函数的使用
opendir readdir closedir函数的使用opendir readdir closedir函数的使用//目录操作测试: opendir readdir closedir#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <unistd.h>#include <dirent.h>原创 2021-03-29 16:56:58 · 154 阅读 · 0 评论 -
linux编程scandir的三级指针怎么理解
linux编程scandir的三级指针怎么理解scandir扫描dir目录下(不包括子目录)代码 #include <dirent.h> int scandir(const char *dirp, struct dirent ***namelist, int (*filter)(const struct dirent *), int (*compar)(const struct dirent **, co原创 2021-02-24 16:17:19 · 145 阅读 · 0 评论 -
git 清除缓存-解决git添加ssh-key后免登陆未生效
git 清除缓存清除git缓存git config --local --unset credential.helpergit config --global --unset credential.helpergit config --system --unset credential.helper保存git缓存git config --global credential.helper store原创 2020-10-25 23:34:34 · 914 阅读 · 0 评论 -
linux 高级命令awk
文章目录linux 高级命令awk小例子awk语法基本用法linux 高级命令awkAWK 是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。我们用ls -l默认会输出一些文件权限,用户名,文件大小等但有时候,我们要求格式输出怎么办呢,这时,就要用到awk命令。小例子$ ls -ltotal 1395200-rw-r-原创 2020-09-26 23:39:47 · 520 阅读 · 0 评论 -
linux关机命令halt详细解释,请用halt -p或init 0来关机
halt指令用来关闭系统,然后再通知内核是停止、重启、还是关闭电源。必要参数具体说明如下:-d 不在wtmp中记录-f 强制关机或者重启,不调用shutdown-h 让硬件保持standby的状态-i 关闭系统前先关闭网络系统-n 不执行sync-p halt后执行poweroff-w 在wtmp中记录,不关闭系统有的客户直接halt,运行后服务器并没关闭电源,只是将系统关闭了,服务器还是在运行中!请加上-p参数用halt -p来关闭系统和关闭服务器电源!!!!也可以用init命令:原创 2020-09-26 15:31:22 · 6176 阅读 · 0 评论 -
mac os苹果操作系统安装docker和oracle 11g
文章目录mac os黑苹果操作系统安装docker和oracle 11g第一步,安装brew工具第二步,安装docker概述第一种安装方式,使用 Homebrew 来安装 Docker第二种安装方式,手动下载安装安装portainer (可选)第三步,拉取oracle 11g镜像数据库文件进入容器内部编辑oracle path变量来配置SID和PATH其他navicat-for-oracle工具Docker run 命令命令大全参考mac os黑苹果操作系统安装docker和oracle 11g第一步,原创 2020-09-09 17:59:11 · 892 阅读 · 0 评论 -
c语言memcpy与memmove区别
文章目录c语言memcpy和memmovememcpymemcpy的实现例子1例子2例子3 ——覆盖原有部分数据:memmove例子1memmove的实现区别memmove的实现方案参考资料c语言memcpy和memmovememcpyvoid *memcpy(void *str1, const void *str2, size_t n)从存储区 str2 复制 n 个字节到存储区 str1str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。str2 – 指向要复原创 2020-09-05 02:00:16 · 447 阅读 · 0 评论 -
linux编程sprintf函数实现两句并一句
linux编程sprintf函数实现两句并一句看下面代码, sprintf(buf,"Content-Type:%s\r\n",type); send(cfd,buf,strlen(buf),0); sprintf(buf,"Content-Length:%ld\r\n",len); send(cfd,buf,strlen(buf),0);显然,发送两次是有浪费网络资源,那如何把两句并作一句呢? sprintf第一个参数要传一个地址,第一次放的时候是放到它的起始原创 2020-09-02 12:03:15 · 415 阅读 · 0 评论 -
linux编程send和recv
linux编程send和recvsendssize_t send(int __fd, const void *__buf, size_t __n, int __flags)描述Send N bytes of BUF to socket FD. Returns the number sent or -1.This function is a cancellation point and therefore not marked with__THROW.recvssize_t recv(原创 2020-09-02 11:34:45 · 360 阅读 · 0 评论 -
linux编程memset函数
linux编程memset函数void *memset(void *s, int ch, size_t n);函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 。memset()函数原型是extern void *memset(void *buffer, int c, int count)。buffer:为指针或是原创 2020-09-01 16:33:56 · 1556 阅读 · 0 评论 -
linux编程c语言epoll小型http服务器
linux编程c语言epoll小型http服务器main.c#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include "epoll_server.h"int main(int argc, const char* argv[]){ if(argc < 3) { printf("eg: ./a.out port path\n"); ex原创 2020-09-01 15:18:51 · 828 阅读 · 0 评论 -
linux编程mxml安装与使用
linux编程mxml解压 tar -xf mxml-2.10.tar 安装BUILDING Mini-XML Mini-XML comes with an autoconf-based configure script; just type the following command to get things going: ./configure The default install prefix is /usr/local, which ca原创 2020-08-31 18:35:18 · 1808 阅读 · 0 评论 -
linux编程cJSON使用
文章目录cJSON使用代码生成JSON对象运行解析JSONcJSONcJSON是一个使用C语言编写的JSON数据解析器,具有超轻便,可移植,单文件的特点,使用MIT开源协议。cJSON项目托管在Github上,仓库地址如下:https://github.com/DaveGamble/cJSON使用压缩包解压,直接使用里边的cJON.c和cJSON.h即可。链接时还需要加上-lm表示链接math库。代码生成JSON对象#include <stdio.h>#include原创 2020-08-31 17:03:49 · 534 阅读 · 0 评论 -
linux编程libevent安装
linux编程libevent安装下载libevent-2.1.8-stable.tar.gz,解压tar -zxf libevent-2.1.8-stable.tar或者mkdir 321tar -zxf libevent-2.1.8-stable.tar -C ./321进入目录cd libevent-2.1.8-stablels -la这时,我们可以看到有一些是可以执行的。执行./configure生成makefile,执行make命令make测试进入sampl原创 2020-08-29 21:00:41 · 293 阅读 · 0 评论 -
linux网络编程epoll_loop--基于非阻塞I/O事件驱动
linux网络编程epoll_loopepoll基于非阻塞I/O事件驱动/* * epoll基于非阻塞I/O事件驱动 */#include <stdio.h>#include <sys/socket.h>#include <sys/epoll.h>#include <arpa/inet.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#原创 2020-08-28 18:56:01 · 629 阅读 · 0 评论 -
llinux编程心跳包
判断客户端和服务器是否处于连接状态○ 心跳机制不会携带大量的数据每个一定时间服务器->客户端/客户端->服务器发送一个数据包○ 心跳包看成一个协议应用层协议○ 判断网络是否断开有多个连续的心跳包没收到/没有回复关闭通信的套接字○ 重连重新初始套接字继续发送心跳包乒乓包比心跳包携带的数据多一些除了知道连接是否存在, 还能获取一些信息...原创 2020-08-28 14:49:42 · 158 阅读 · 0 评论