Linux
文章平均质量分 72
Linux基础命令......
Eccentric哈哈
这个作者很懒,什么都没留下…
展开
-
127-Linux_Redis
Redis是一个开源的内存数据存储库,支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。它提供了快速读写数据的能力,并允许将数据持久化到磁盘上,以保障数据不会因服务器故障而丢失。原创 2023-05-17 21:20:06 · 487 阅读 · 0 评论 -
126-Linux_git安装及使用
Git是一款免费、开源的分布式版本控制系统,广泛应用于软件开发、协作与维护中。它最初由Linus Torvalds于2005年创造,旨在为Linux内核开发提供高效、可靠、易用的版本控制方案。git本地有三个工作域:工作区(working directory), 暂存区(stage/index), 资源库(repository)。如果再算上远程服务器上的git仓库(remote directory)就可以分为四个工作域。原创 2023-05-11 21:13:13 · 873 阅读 · 0 评论 -
125-Linux_守护进程
Linux守护进程也称为后台进程,是一种无需用户交互、在后台运行的进程。它们通常不与终端交互,并且一旦启动就一直在后台运行,直到系统关闭或手动停止为止。通过以上介绍,我们了解了Linux守护进程的定义、创建和管理方法。要创建一个可靠的守护进程,需要遵循一定的规则。管理守护进程则需要熟悉一些相关的命令。最后需要注意的是,在使用守护进程时,一定要保证程序的正确性和安全性。原创 2023-05-10 15:04:07 · 453 阅读 · 0 评论 -
118-Linux_数据库_索引
索引是一种特殊的文件,它包含着对数据表里所有记录的引用指针。简单讲,就像一本书前面的目录,能加快查询速度。索引是帮助mysql高效获取数据的数据结构索引存储在文件系统中索引的文件存储形式与存储引擎有关索引文件的结构原创 2023-05-07 19:31:48 · 399 阅读 · 0 评论 -
117-Linux_数据库_事务
事务就是一组原子性的 SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。例如:假设一个银行的数据库有两张表:支票(checking)表和储 (savings)表。现在要从用户Jane 的支票账户转移200 美元到她的储蓄账户,那么需要至少三个步骤 :1.检查支票账户的余额高于 200 美元。原创 2023-05-07 16:53:09 · 422 阅读 · 0 评论 -
116-Linux_数据库_视图
视图(View)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存放数据,它的数据来自定义视图时使用的基本表,并且是在使用视图时动态生成的。原创 2023-05-07 16:36:42 · 111 阅读 · 0 评论 -
115-Linux_C语言访问mysql及操作数据库
C语言访问mysql。原创 2023-05-06 19:00:40 · 692 阅读 · 0 评论 -
114-Linux_mysql基本操作
查看当前使用的是哪个数据库 :select database();如下图为null代表没有选择使用的数据库。登录到mysql后,里面创建有很多数据库,选择要使用的某一个数据库: use 数据库名。create database 数据库名 charset=utf8;查看当前登录的是哪个用户:select user();show create database 数据库名。删除数据库: drop database 数据库名。要注意所有sql语句结尾都有 ‘;create database 数据库名。原创 2023-05-06 18:47:10 · 664 阅读 · 0 评论 -
113-Linux_安装c/c++开发库及连接mysql数据库
安装开发c/c++的库,命令:==apt install原创 2023-05-06 18:24:55 · 787 阅读 · 0 评论 -
112-Linux_mysql数据库的安装
数据库:是存放数据的仓库,它是一个按数据结构来存储和管理数据的计算机软件系统。数据库管理系统: 是数据库系统的核心组成部分,主要完成对数据库的操作与管理功能,例如实现数据的存储,查询,修改,删除,及数据库用户的管理,权限管理等。RDBMS: 关系数据库管理系统(Relational Database Management System)。SQL: 结构化查询语言(Structured Query Language)原创 2023-05-06 18:11:53 · 749 阅读 · 0 评论 -
105-Linux_Libevent库的安装与使用
Libevent 是开源社区的一款高性能的 I/O 框架库,使用 Libevent 的著名案例有:高性能的分布式内存对象缓存软件 memcached,Google 浏览器 Chromium 的 Linux 版本。原创 2023-05-02 18:54:23 · 926 阅读 · 0 评论 -
104-Linux_select,poll,epoll的区别
由于每次 select 和 poll 调用都返回整个用户注册的事件集合(其中包括就绪的和未就绪的),所以应用序索引就绪文件描述符的时间复杂度为 0(n)epoll 则采用与 select 和 pol1 完全不同的方式来管理用户注册的事件。从实现原理上来说,select 和 poll 采用的都是轮询的方式,即每次调用都要扫描整个注册文件描述符集合,并将其中就绪的文件描述符返回给用户程序,因此它们检测就绪事件的算法的时间复杂度是 0(n)。epoll_wait 则不同,它采用的是回调的方式。原创 2023-05-02 15:51:51 · 47 阅读 · 0 评论 -
103-Linux_I/O复用方法之epoll
epoll 是 Linux 特有的 I/O 复用函数。它在实现和使用上与 select、poll 有很大差异。首先,epoll 使用一组函数来完成任务,而不是单个函数。其次,epoll 把用户关心的文件描述符上的事件放在内核里的一个事件表中。从而无需像 select 和 poll 那样每次调用都要重复传入文件描述符或事件集。但 epoll 需要使用一个额外的文件描述符,来唯一标识内核中的这个事件表。原创 2023-05-01 16:58:33 · 646 阅读 · 0 评论 -
102-Linux_I/O复用方法之poll
timeout 参数指定 poll 的超时值,单位是毫秒,timeout 为-1 时,poll 调用将永久阻塞,直到某个事件发生,timeout 为 0 时,poll 调用将立即返回。fds 参数是一个 struct pollfd 结构类型的数组,它指定所有用户感兴趣的文件描述符上发生的可读、可写和异常等事件。它是一系列事件的按位或,revents 成员则有内核修改,通知应用程序 fd 上实际发生了哪些事件。其中,fd 成员指定文件描述符,events 成员告诉 poll 监听 fd 上的哪些事件类型。原创 2023-04-30 19:08:15 · 730 阅读 · 0 评论 -
101-Linux_I/O复用方法之select
select 成功时返回就绪(可读、可写和异常)文件描述符的总数。select 失败是返回-1.如果在 select 等待期间,程序接收到信号,则 select 立即返回-1,并设置 errno 为 EINTR。readfds、writefds 和 exceptfds 参数分别指向可读、可写和异常等事件对应的文件描述符集合。maxfd 参数指定的被监听的文件描述符的总数。它通常被设置为 select 监听的所有文件描述符中的最大值+1。在一段指定时间内,监听用户感兴趣的文件描述符的可读、可写和异常等事件。原创 2023-04-30 17:27:50 · 574 阅读 · 0 评论 -
100-Linux_I/O复用
I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。原创 2023-04-30 16:29:33 · 46 阅读 · 0 评论 -
99-Linux_C语言实现web服务器
【代码】99-Linux_C语言实现web服务器。原创 2023-04-29 18:37:55 · 687 阅读 · 1 评论 -
98-Linux_HTTP协议与web服务器
浏览器服务器建立连接后,如果两次以上的请求复用同一个 TCP 连接,则称之为长连接。如果浏览器发送一次请求报文,服务器回复一次应答就断开连接,下次交互再重新进行三次握手建立连接,那么就被称作短连接。使用长连接显然是更好一些,可以减少网络中的同步报文,也使得服务器的响应速度变快。原创 2023-04-28 10:27:10 · 582 阅读 · 0 评论 -
96-Linux_UDP实现客户端和服务器端
recvfrom()接收数据,每次都需要传给该方法一个地址结构来存放发送端的地址。recvfrom()可以接收所有客户端发送给当前应用程序的数据,并不是只能接收某一个客户端的数据。sendto()用来发送数据,由于 UDP 是无连接的,每次发送数据都需要指定对端的地址(IP 和端口)。socket()用来创建套接字,使用 udp 协议时,选择数据报服务 SOCK_DGRAM。buff 和 len 参数分别指定写缓冲区的位置和数据长度。buff 和 len 参数分别指定读缓冲区的位置和大小。原创 2023-04-17 15:49:09 · 239 阅读 · 0 评论 -
91-Linux_多进程/多线程处理服务器并发
多进程/多线程处理服务器并发是为了解决recv阻塞问题;没有多线程多进程处理服务器并发时,只能有一个客户端与其进行通信,当有第二个连接服务器时,就会阻塞在recv阶段,所以引入多进程/多线程处理服务器并发就是为了解决recv的阻塞;原创 2023-04-15 15:51:20 · 260 阅读 · 0 评论 -
79-Linux_Socket实现客户端与服务器端间通讯
沾包(粘包)有影响就解决,没有影响就不用解决(比如文件传输就没有影响);套接字是一个全双工的。原创 2023-04-13 17:46:37 · 369 阅读 · 0 评论 -
78-Linux_tcp服务器客户端编程流程
(c/s)模型即(客户端/服务器端)模型所有的客户都通过服务器端访问所需资源.原创 2023-04-12 18:58:49 · 218 阅读 · 0 评论 -
77-Linux_网络编程
在两台使用不同字节序的主机之间传递数据时,可能会出现冲突。所以,在将数据发送到网络时规定整形数据使用大端字节序,所以也把大端字节序成为网络字节序列。对方接收到数据后,可以根据自己的字节序进行转换。sa_family 成员是地址族类型(sa_family_t) 的变量。地址族类型通常与协议族类型对应。主机字节序列分为大端字节序和小端字节序,不同的主机采用的字节序列可能不同。主机字节序列:大端/小端。原创 2023-04-12 16:13:28 · 544 阅读 · 0 评论 -
75-网络二(网络分层模型)
网络协议就是一组网络规则的集合,是我们共同遵守的约定或标准。原创 2023-04-12 11:43:51 · 391 阅读 · 0 评论 -
74-网络一(基础知识)
网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、路由器等设备。**网络设备有:交换机、路由器、集线器****传输介质有:双绞线、同轴电缆、光纤**原创 2023-04-12 11:09:16 · 387 阅读 · 0 评论 -
73-Linux_线程安全
线程安全即就是在多线程运行的时候,不论线程的调度顺序怎样,最终的结果都是一样的、正确的。那么就说这些线程是安全的。要保证线程安全需要做到:1) 对线程进行同步,保证同一时刻只有一个线程访问临界资源。(四个方法)2) 在多线程中使用线程安全的函数(可重入函数),所谓线程安全的函数指的是:如果一个函数能被多个线程同时调用且不发生竟态条件,则我们程它是线程安全的。原创 2023-04-12 10:20:18 · 683 阅读 · 0 评论 -
72-Linux_线程同步
线程同步指的是当一个线程在对某个临界资源进行操作时,其他线程都不可以对这个资源进行操作,直到线程完成操作, 其他线程才能操作,也就是协同步调,让线程按预定的先后次序进行运行。 线程同步的方法有四种:互斥锁、信号量、条件变量、读写锁。原创 2023-04-08 16:14:57 · 621 阅读 · 0 评论 -
71-Linux_线程
线程就是进程内部的一条执行路径,或者一个执行序列;原创 2023-04-06 21:37:53 · 225 阅读 · 0 评论 -
69-Linux_共享内存
共享内存是先在物理内存上申请一块空间,多个进程可以将其映射到自己的虚拟地址空间中。 所有进程都可以访问共享内存中的地址,就好像它们是由 malloc 分配的一样。如果某个进程向共享内存写入了数据,所做的改动将立刻被可以访问同一段共享内存的任何其他进程看到。原创 2023-04-06 12:38:20 · 366 阅读 · 0 评论 -
68-Linux_信号量
信号量就是控制某个进程能够对某个资源进行访问;保证同一时刻只能由一个进程对某个资源进程访问;原创 2023-04-04 17:47:52 · 445 阅读 · 0 评论 -
62-Linux_管道_无名管道
无名管道只能在父子进程间通讯;无名管道,pipe创建无名管道;它只能进行父子间的通信;原创 2023-03-27 10:50:53 · 398 阅读 · 0 评论 -
61-Linux_管道_有名管道
管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质:1. 其本质是一个伪文件(实为内核缓冲区)2. 由两个文件描述符引用,一个表示读端,一个表示写端。3. 规定数据从管道的写端流入管道,从读端流出。原创 2023-03-26 18:34:31 · 243 阅读 · 0 评论 -
55-Linux_kill命令及实现kill命令
在Linux系统中,kill命令用于向运行中的进程发送信号,默认发送的信号是终止信号,会请求进程退出。kill(杀)可能会引起误解,实际上发送的信号可能与杀死进程无关。原创 2023-03-20 17:29:12 · 345 阅读 · 0 评论 -
54-Linux_信号及响应方式
信号及相应方式原创 2023-03-20 14:47:03 · 164 阅读 · 0 评论 -
53-Linux_exec进程替换
/系统调用。原创 2023-03-20 11:21:00 · 266 阅读 · 0 评论 -
49-Linux_malloc及4G虚拟空间分布
malloc及4G虚拟空间分布原创 2023-03-16 21:48:14 · 439 阅读 · 0 评论 -
48-Linux_利用读和写对文件进程复制
利用读和写对文件进程复制原创 2023-03-16 21:12:05 · 278 阅读 · 0 评论 -
44-Linux_僵尸进程及Linux操作文件的底层的系统调用
僵尸进程及Linux操作文件的底层的系统调用原创 2023-03-15 20:47:10 · 78 阅读 · 0 评论 -
40-Linux_fork复制进程及写时拷贝
fork复制进程及写时拷贝原创 2023-03-14 20:28:33 · 84 阅读 · 0 评论 -
39-Linux_进程
进程的基础知识原创 2023-03-14 17:21:30 · 35 阅读 · 0 评论