随笔分类 - Linux
主要用于Linux环境安装以及常用命令等。
摘要:openssl支持的算法 openssl命令支持加密算法,摘要算法,公钥算法,接下来将介绍这三种算法 加密算法 定义 加密算法是将数据转换为无法被未授权用户理解的格式的算法,常见的加密算法有对称加密AES和非对称加密RSA 类比 加密算法就像一把锁和一把钥匙,这把钥匙可以锁上任何东西,也可以打开任何
阅读全文
摘要:linux系统文件目录介绍 linux的一个核心理念就是一切皆是文件 /dev设备文件夹 /dev预存所有设备文件:包括字符设备,块设备等 /dev/zero零字符设备 /dev/zero是字符串设备,提供1个持续输出0字节的字符流,从中读取内容时,会持续获取到0字节流。 /dev/null空字符设
阅读全文
摘要:Bash shell vim first.sh #!/bin/bash # bash #!/bin/sh # shell viriable="nishidashabi" # 变量间没有空格 chmod -x first.sh ./first.sh # shell语法 shell解释器标志 #!bin
阅读全文
摘要:Linux Enforce 安全模式基础介绍 linux的安全模式selinux是一种MAC机制,用于增强系统安全性,会严格执行安全策略,阻止任何违反策略的行为。 SELinux的三种模式 1、 Enforcing(强制模式) SELinux 会强制执行安全策略。 任何不符合策略的操作都会被阻止,并
阅读全文
摘要:shell基础知识 首先查看当前服务器支持的shell类型cat /etc/shells 基本符号 '|'管道符号 '|', 管道符号,通常用于进程间通信 ls | grep a '$@'参数 $@代表所有的参数 export DEBUG=true DEBUG() { if [ "DEBUG" ==
阅读全文
摘要:Makefile简介 Makefile是一种特殊格式的文件,被make工具使用来管理软件的构建过程。Makefile定义了一组规则和依赖关系,告诉make如何编译和链接程序。 Makefile语句 TARGET: PREREQUISTS COMMAND Makefile的语句由上述三部分组成,例如t
阅读全文
摘要:原子操作(X86架构) 楔子 首先什么是原子,意味着不可再分。相应地,反映在计算机程序里,那么就会成为一条指令,不存在中间指令,执行过程不会被打断。这样程序在执行时,就能够保证独占访问,避免其它线程访问它。接下来接口的讲解,是以C11标准有#inlcude <stdatomic>为例。 已有接口 这
阅读全文
摘要:手写线程池 线程池解决的问题是避免线程创建、销毁的代价以及避免线程太多,内存耗尽。GCC编译时,必须通过指令引入线程库。 gcc -o threadpool threadpool.c -pthread 组件开发 线程池最基本需要包含三个组件 任务队列-添加任务 管理组件-管理线程对立以及任务队列 执
阅读全文
摘要:socket网络通信 socket能够解决的问题是客户端和服务器端进行交流的问题 服务器server socket() 的作用是创建一个端点,然后返回一个fd指向这个端点。包括分配fd和分配tcb进程控制块两。接受三个参数需要指定通信域 domain(AF_INET, AF_INET6)、指定通信语
阅读全文
摘要:事件处理模式 reactor模式 reactor是一种事件处理模式,出现要解决的问题是要将原本IO管理转变为更关心事件管理,每个事件发生的时候调用回调函数进行处理。 构成 register 注册事件 callback 回调函数 结构体包括io, event, callback, rbuffer, w
阅读全文
摘要:IO多路复用 select系统调用 维护的是一个文件描述符(fd)集合(set),监测这些fd集合。 #include <sys/select.h> // 头文件 运行机制 将fedset复制到内核空间,然后对其进行遍历,查看可读,可写,错误事件,返回就绪事件总数。 select函数 select函
阅读全文
摘要:Linux常用命令 基本操作命令 命令补全 值得特别提醒的是假如我们输入了一个命令例如cd /etc/但是忘记下面要打开什么文件,这时候我们加入两个tab键cd /etc/[tab][tab]就能够显示当前目录下所有目录,然后输入我们想要进入的目录。如果你能够确定当前目录下只有一个文件或目录cd /
阅读全文
摘要:MySQL数据库 操纵数据库 查看数据库 show databases; 创建数据库 create database <database_name>; 删除数据库 drop database <database_name>; 使用数据库 use mysql 操纵数据表 查看数据表 show tabl
阅读全文
摘要:多线程并发锁 包括自旋锁、互斥锁、无锁 POSIX接口 posix接口提供linux下线程操作库,posix默认生成的线程占用8M空间 pthread_create线程创建函数 pthread_create(pthread_t *th, const pthread_attr_t *attr, voi
阅读全文
摘要:内存检测和编程调试工具基础 GDB(GNU debugger) GDB可以用于linux系统下的任务调试,主要的命令有: GDB附加程序 gdb ./demo # 进入gdb调试窗口 gdb attach pid # 附加进程 加断点break break 76 # 给第76行加断点 运行run r
阅读全文
摘要:错误 “E: Unable to correct problems, you have held broken packages.”这种问题包破坏问题,可能是由于镜像源与系统版本不一致造成的 解决方案: 首先查看镜像源文件的内容 cat /etc/apt/sources.list 比较对应的字符串
阅读全文
摘要:通讯录 需求分析 创建联系人-insert 删除联系人-delete 搜索联系人-search 输出所有联系人-traversal 保存文件-save-存储方式key:value的实现 加载文件-load-将键值对读入并加入到存储结构中 架构分析 实现分析 底层实现 采用链表实现,因此要定义通讯录结
阅读全文
摘要:Linux安装 博主使用的是ubuntu 16.04 apt更换镜像源 这里以更换阿里云镜像源为例。 首先去阿里云官方网站找对应版本系统的镜像源https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b11iGqq
阅读全文

浙公网安备 33010602011771号