Linux
文章平均质量分 75
小强~
晓看天色暮看云,行也思君,坐也思君
与君作陪,有君为伴,怎怕灯火阑珊!
展开
-
数据库事务 ~ 概念、特性
本篇博客只是记载了概念性的内容~记载了数据库事务相关的概念、特性、隔离级别等内容~原创 2022-10-09 21:54:52 · 643 阅读 · 0 评论 -
牛客上AI面试的一个求平均分数的题
利用SQL语句完成不同职业下平均分的求取!原创 2022-08-30 22:27:23 · 139 阅读 · 0 评论 -
小知识点~ gcc/g++ 使用
小知识点~ Linux 下 gcc/g++ 使用1、精简2、复杂2.1 预处理2.2 编译2.3 汇编2.4 连接2.5 案例3、指令总结注:以下内容前提是目标系统已安装gcc/g++,若不确定是否安装,可通过gcc -v 语句进行查看!1、精简在Linux系统中,gcc/g++ 是用于c或cpp文件进行编译的工具。最简单的编译命令格式为:gcc test.c -o test其中 test.c 为目标文件,test 为编译后的执行文件。案例如下2、复杂一般完整的编译过程需要经历以下几个阶原创 2022-03-02 14:54:55 · 412 阅读 · 0 评论 -
Linux中 vim 实现代码补全
Linux中 vim 实现代码补全vim 中代码补全步骤1:判断步骤2:安装 `OmniCppComplete`步骤3:步骤4:些许其他操作结果利用 Tab 键进行补全vim 中代码补全此部分内容主要是介绍如何实现在vim中进行代码补全,其可分为以下几个步骤:步骤1:判断判断当前系统中是否具有补全功能,即随便创建一个文件,比如 test.c,在其命令行模式中输入:set omnifunc?若结果呈现omnifunc=ccomplete#Complete即则说明此时可利用 Ctrl+原创 2022-02-18 08:00:00 · 11971 阅读 · 1 评论 -
从服务器中下载文件
从服务器中下载文件本篇博客主要是实现从云服务器中的Linux系统中通过指令下载文件,其具体如下1、tar -cvzf 压缩包名.tar.gz 文件或文件夹1.1 指令解释tar 对多个文件或文件夹进行打包/解包,并且可以进行压缩/解压缩 -c 打包; -x 解包; -z 打包或解包时按照gzip格式压缩/解压缩; -j 打包或解包时按照bzip2格式压缩/解压缩; -v 显示详细打包/解包信息 -f 指定包名如:打包:tar -cvzf f原创 2022-01-28 15:09:01 · 8045 阅读 · 0 评论 -
MySql 数据库操作实例
MySql 数据库操作实例案例描述创建插入数据内外连接~问题问题1:查询周星星的成绩问题2:查询所有人的平均成绩以及其他信息问题3:查询所有人的成绩以及其他信息自连接问题嵌套问题问题1:查找同班同学未嵌套解法1、最简单解法2、自连接解法嵌套解法问题2:查找成绩信息内连接解法嵌套解法合并查询问题非合并查询解法合并查询解法本篇博客主要是将前面的知识,比如 MySql 基本操作、操作1、操作2 等以实例来进行练习。案例描述分别创建班级、学生、课程、成绩四表,并随机插入数据,然后根据所提问题进行练习。其中原创 2022-01-17 08:00:00 · 6206 阅读 · 3 评论 -
MySQL 索引 与 事务
这篇博客,就写一下一些理论知识吧~MySQL 索引 与 事务索引作用、指令、原理、不适用场景索引是如何提高查询效率的B树 与 B+树聚簇索引 / 非聚簇索引数据库操作中的索引类型索引类型索引特点索引创建原则相关指令事务概念、特性异常情况解决方案多版本并发控制索引作用、指令、原理、不适用场景作用:类似于一本书的目录,提高查询效率指令:show index from tbname; 或 show index from tbname\G;原理:给一张表创建一个索引,相当于又创建了一个索引表。因此索原创 2022-01-16 08:00:00 · 190 阅读 · 0 评论 -
MySql 表操作指令小全与案例 2
MySql 表增删查改小全 2增删查改--进阶键值约束与扩展属性分组查询ER关系图+三大范式ER关系图三大范式多表联查内连接外连接子查询合并查询增删查改–进阶本篇博客主要从四个部分,即 键值约束与扩展属性、分组查询、ER关系图+三大范式、多表联查 进行展开!键值约束与扩展属性键值约束:约束表中指定字段的数据必须符合某种规则种类:非空约束:NOT NULL – 约束指定字段的数据不能为NULL唯一约束:UNIQUE – 约束指定字段的数据不能出现重复主键约束:primary key – 约束原创 2022-01-15 08:00:00 · 260 阅读 · 0 评论 -
MySql 表操作指令小全与案例
MySql 表操作指令小全增删查改~简单指令创建表插入数据修改数据删除数据查询增删查改~简单指令创建表创建数据库的关键字主要为 create database ,具体如下create database dbname; -- dbname 指的是数据库名称create database if not exists dbname; --若不存在则创建创建数据库的关键字主要为 create table ,比如创建一个带有学号、姓名、年龄、性别、身高的学生表,如下create table if n原创 2022-01-14 08:00:00 · 249 阅读 · 0 评论 -
MySql 数据库基本操作
数据库基本操作库的操作语法规则操作指令数据类型表的操作数据库基本操作主要分为三类:库的操作、数据类型、表的操作库的操作SQL:结构化查询语言,有具体格式与语法规则。语法规则语法规则 如下:1. 每一条sql语句都要以一个英文分号结尾;2. 库表字段名称不能使用关键字,若非要使用,则需要使用 反引号' 括起来;3. SQL语句中,不区分大小写;4. -- 为表中注释等。操作指令查看:show databases;创建:create database dbname; create原创 2022-01-13 08:00:00 · 524 阅读 · 0 评论 -
Linux中忘记MySql密码的处理方法
修改MySql密码背景1、检查 `MySql` 状态2、修改 `MySql` 配置文件3、修改登陆密码4、重启 `MySql`背景在Linux系统中使用MySql数据库时,若忘记登录密码,如下则可以按以下步骤进行更改密码:(注:因为作者是在服务器里用的 Linux,故在虚拟机或者其他平台上不保证下面的步骤可以实现!)1、检查 MySql 状态检查本机 MySql 的启动状态,若启动则将其进行关闭,如下[root@VM-0-8-centos ~]# ps -aux | grep -i mysq原创 2022-01-12 08:00:00 · 891 阅读 · 0 评论 -
数据库 - MySql 安装与配置
数据库 - MySql 安装与配置数据库介绍定义分类MySql 安装配置Windows 下安装配置环境变量:配置 MySql 初始化文件:初始化MySql:安装MySql服务:运行/停止MySQL服务端Windows中重装MySqlLiunx 下安装数据库介绍定义数据库,利于管理数据的软件。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。分类数据库大体可以分为 关系型数据库 和 非关系型数据库。关系型数据库(RDBMS):是指采用了关系模型来组织数据的数据库。 简单原创 2022-01-11 13:36:34 · 400 阅读 · 0 评论 -
Linux 进程间通信 之 消息队列与信号量
进程间通信(Inter Process Communication,IPC)根据通信需求不同提供了不同方式:管道,共享内存,消息队列,信号量。消息队列实际上就是一个内核中的优先级队列。通信原理:在内核中创建一个优先级队列,多个进程通过对同一个队列添加或者获取节点实现数据通信。相关函数:#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>int msgctl(int msqid, in原创 2021-10-13 11:02:51 · 216 阅读 · 0 评论 -
Linux 进程间通信 之 共享内存
进程间通信(Inter Process Communication,IPC)根据通信需求不同提供了不同方式:管道,共享内存,消息队列,信号量。本篇博客主要是介绍进程间通信的 共享内存 部分内容!共享内存用于进程间的数据共享。通信原理:开辟一块物理内存空间,各个进程将同一块物理空间映射到自己的虚拟地址空间中,通过虚拟地址进行访问,进而实现数据共享。共享内存是最快的进程间通信方式,因为通过虚拟地址空间映射后,直接通过虚拟地址访问物理内存,相较于其他方式少了两部数据拷贝操作。操作流程:1、创建或打开原创 2021-10-13 10:07:43 · 160 阅读 · 0 评论 -
Linux 之 进程间通信
每个进程都有自己的虚拟地址空间,访问的都是虚拟地址,因此进程之间具有独立性,无法直接通信!进程间通信原理:操作系统为进程建提供一个公共的传输媒介,实现公共访问从而实现通信!根据通信需求不同提供了不同方式:管道,共享内存,消息队列,信号量。管道a、特性:半双工通信(可以选择方向的单向通信)b、本质:系统内核中的一块缓冲区(内核空间中开辟的一块内存)c、通信原理:多个进程只要能访问同一块内核中的缓冲区(管道)就能实现通信d、分类:匿名管道,命名管道匿名管道:只能用于具有亲缘关系的进程间通信命名原创 2021-10-12 22:36:00 · 233 阅读 · 0 评论 -
Linux 之 软链接与硬链接
本篇博客将在 Linux 基础上,对文件的 软链接 与 硬链接 方式进行简单介绍!1、文件系统文件系统:磁盘分区上的文件存储管理模块。1.1 磁盘分区与 inode磁盘分区 不仅包括存信息的位置,还有专门的分区 inode,其用于保存所存各种文件的信息,且磁盘分区上有专门的模块叫inode bitmap 。(关于磁盘分区的知识,可点击 博客 进行查看)inode bitmap:保存当前磁盘分区上的所有空分区inode 节点:文件的元信息节点(名称,时间,权限,数据块地址等)可用 ls -li原创 2021-10-12 17:53:20 · 131 阅读 · 0 评论 -
Linux 之 动态库与静态库 (1)
本篇博客主要是介绍 动态库 与 静态库 的 生成 与 使用 :一、生成可执行程序的链接方式动态链接:链接动态库,只是在生成的程序中记录库中的函数信息表,并将具体代码实现写入到程序中,因此运行动态链接生成的程序时候需要依赖动态库的存在。 好处是内存中共享一份,无代码冗余!!!!!!!!!!!!!!静态链接:链接静态库,在生成的程序中直接将库中所需函数的实现写入可执行程序中,生成的程序比较大,但没有依赖性!!!!!!!!!!!二、库的生成注:库中的函数中不能有main函数,否则会造成冲突1、将原码经原创 2021-10-12 00:22:45 · 91 阅读 · 0 评论 -
Linux 之 动态库与静态库 (2)
书接上文,本篇博客是为上篇博客的案例例如:在 Linux 下,自设的 newtry 目录中包含三个文件其中,main.c 中包含 testlib.h ,即 main.c 会调用 testlib.c 中的内容。当成功运行后,会打印出 “这是一个实验程序” !但若直接将 main.c 进行编译,其会报错,如图此时,若想实现 main.c 调用 testlib.c 中的内容,则可通过链接 动态库 或 静态库 来实现。1)动态库的使用实现a、生成二进制文件输入代码gcc -fPIC -c te原创 2021-10-12 00:20:41 · 181 阅读 · 0 评论 -
Linux 进程 之 实现minishell
在 Linux 中,进程控制有四种状态:创建、退出、等待、替换。为 验证 或 应用 以上四种进程状态,所以有了下面 minishell 的实现。注:Linux 中的 shell ,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的交互界面,其相当于 Windows 上 cmd 命令行。而下述程序为 shell 程序的简易版,只是简单实现了其中的一部分功能。#include<stdio.h>#include<stdlib.h>#include<unistd.h原创 2021-10-11 20:03:40 · 642 阅读 · 0 评论 -
Linux 进程 之 替换
在 Linux 中,进程控制有四种状态:创建、退出、等待、替换。本篇博客讲述 替换 状态下的一些事:程序替换:替换一个进程正在调度运行的程序。替换之后,程序是从头重新运行,加载一个新的程序到内存中,更新当前进程的页表映射信息到新的程序上。程序替换是在当前进程pcb并不退出的情况下,替换当前进程正在运行的程序为新的程序,即1、程序替换成功后,运行完新程序,依然会运行原有的代码2、程序替换成功后,原进程没有退出,使用原进程运行新程序如:在文件的底行输入:12s/argv/environ/g ,即将原创 2021-10-10 21:26:59 · 328 阅读 · 0 评论 -
Linux 进程 之 等待
在 Linux 中,进程控制有四种状态:创建、退出、等待、替换。本篇博客讲述 等待 状态下的一些事:等待:父进程等待子进程退出,获取退出子进程返回值,释放退出子进程资源,避免出现僵尸进程;进程等待:等待子进程退出,获取子进程返回值,释放子进程资源,避免出现僵尸进程!!!!!以下与 等待 状态相关的函数,使用时需包含 头文件 #include<sys/wait.h>1)wait()pid_t wait(int *status);等待任意一个子进程退出,通过 status 获取退出返原创 2021-10-10 21:09:04 · 410 阅读 · 0 评论 -
Linux 进程控制 -- 退出
在 Linux 中,进程控制有四种状态:创建、退出、等待、替换。本篇博客讲述 退出 状态下的一些事:退出:如何退出进程main 函数中利用 return ;库函数:exit()void exit(int status) //可以在任意位置调用退出进程 -- 退出前刷新缓冲区系统调用:_exit()void _exit(int status); //可以在任意位置调用退出进程 -- 直接释放资源,不会刷新缓冲区退出场景:正常退出:通过以上三种方式退出,结果符合预期异常退出原创 2021-10-10 20:44:17 · 325 阅读 · 0 评论 -
Linux 进程控制 -- 创建
在 Linux 中,进程控制有四种状态:创建、退出、等待、替换。其中还涉及了 阻塞 与 非阻塞 两种情况,即阻塞:为了完成一个功能,发起一个调用,若功能完成条件不具备,一直等待非阻塞:为了完成一个功能,发起一个调用,若功能完成条件不具备,立即报错返回该篇博客将解释 创建 状态中所涉及的两个函数:1、fork()pid_t fork(void) 此函数为 创建进程的接口 。通过复制调用这个接口的进程(父进程),创建一个新的进程(子进程)。其中父子进程代码共享,但数据独有。返回值:成功则父进程原创 2021-10-10 20:30:44 · 175 阅读 · 0 评论