linux
文章平均质量分 56
Chars-1
这个作者很懒,什么都没留下…
展开
-
使用Navicat for mysql接连Ubuntu16的心路历程
为什么会记录这个心路历程呢, 因为中间遇到了很多问题, 查找网上的办法每一个可行的, 是因为自己掉进了自己挖的坑里面去了,所以这里记录下, 给大家,也给自己以后可以用来参考的记录.1. 安装mysql#一定要先更新,不然就不知道会安装的那个版本, 坑的自己重新卸载掉再来一次sudo apt-get updatesudo apt-get install mysql-server mysql-...原创 2019-11-02 12:50:56 · 247 阅读 · 0 评论 -
xshell连接Ubuntu记录
xshell连接Ubuntu记录TOC1. 安装xshellXshell下载地址:https://www.netsarang.com/products/xsh_overview.html 下载后按照提示进行安装即可注意: 使用家庭/学生版.免费2. 连接去Ubuntu上ifconfig查看ipv4 填在ip新建会话名称—自己定义即可其他不用动, 点击确定连接这里...原创 2019-11-02 12:26:21 · 235 阅读 · 0 评论 -
路由常见算法
1. 路由算法路由算法,又名选路算法,可以根据多个特性来加以区分。算法的目的是找到一条从源路由器到目的路由器的“好”路径(即具有最低费用的路径)。算法设计者的特定目标影响了该路由协议的操作;具体来说存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;由于路由算法使用多种度量标准(metric),从而影响到最佳路径的计算。在linux中使用 route 显示路由表 这他主机的网络接口接到1原创 2017-07-18 09:39:35 · 4347 阅读 · 0 评论 -
linux—TCP_server端编写之利用select()函数编写可多用户同时访问
1. 回顾多进程、多线程编写的server之前我们编写了多进程、多线程的tcp_server,但我们发现虽然多线程和多进程的编写简单,但太占资源了,当客户端连接稍微多一点,服务器就有可能奔溃。所以我们今天要利用一种io模式:i/o复用(多路转接)2. 什么是多路转接我们在IO数据时,通常时间是在等,我们普通read()函数,write()函数等一次只能等一个文件描述符,这样的效率太低了。所以我们就有原创 2017-07-31 14:13:17 · 744 阅读 · 0 评论 -
LINUX--TCP_server端的编写
1. 解释套接字套接字:socket = 主机IP + 主机上的进程(端口号) 标识网络中的唯一一个进程 Socket:非常类似于电话插座。以一个国家级电话网为例,电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于Socket号。任何用户在通话之前,首先要占有一部电话机,相当于申请一个Socket;同时要知道对方的号原创 2017-07-24 12:28:00 · 7377 阅读 · 1 评论 -
shell脚本的8种字符串截取方法
shell脚本的截取有8种,今天我们以https://www.baidu.com/123.htm 为例:1、# 删除左边字符,保留右边字符val="https://baidu.com/123.htm"echo ${val#*//}结果:www.baidu.com/123.htm2、## 删除左边字符,保留右边字符val="https://baidu.com/123.htm"echo ${val#原创 2017-08-03 07:43:44 · 1230 阅读 · 2 评论 -
守护进程
1、什么是守护进程守护进程:又称精灵进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控。此类程序会被以进程的形式初始化。守护进程程序的名称通常以字母“d”结尾:Linux系统的大多数服务器就是通过守护进程实现,例如,syslogd就是指管理系统日志的守护进程。2、守护进程的特性 孤儿进程、守护进程都是孤儿进程 自成会话、不受终端注销影原创 2017-08-03 13:37:01 · 355 阅读 · 0 评论 -
子进程异步等待方式
1. 原理 1、子进程在退出时,会给父进程发送17号信号 SIGCHLD 2、可以对信号SIGCHLD进行自定义动作,执行handler 3、handler是系统回调函数,在收到该信号后,在进程又内核返回用户态前,处理自定义函数handler。2、异步等待子进程void handler(int sig){ pid_t ret = waitpid(-1,NULL,WNOHA原创 2017-07-28 15:24:05 · 309 阅读 · 0 评论 -
基于http的在线版日期计算器+云笔记
1、HTTP概念超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。1、http的请求报文格式2、http的响应报文格式3、http服务器基于传输层的TCP协议编写 TCP协议保证了http可靠性4、代码思路:5、部分代码: 1、监听套接字的创建int startup(const ch原创 2017-09-10 14:46:55 · 2869 阅读 · 2 评论 -
Linux—TCP_server端编写多路转接之EPOLL
1、前言之前我有写过 利用多路转接的select的TCP_server,但当时我们提到了很多关于select的缺点: 1、select可监听的文件描述符有上限制; 2、因为select参数是输入输出型的,所以每次重新设置select时,都需遍历式设置,对性能有一定的影响 3、用户增多时,多次重复遍历和频繁内核与进程数据拷贝(多次的返回) 4、需要自己维护一个数组/链表,对文原创 2017-09-01 12:54:40 · 1067 阅读 · 0 评论 -
线程安全与可重入函数的对比
1. 什么是线程安全, 如何避免线程不安全线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据四类不安全函数:1、不保护共享变量的函数;2、函数状态随着调用改变的函数;3、返回指向静态变原创 2017-07-08 22:39:15 · 247 阅读 · 0 评论 -
利用函数alarm和pause模拟sleep
1. 简单介绍sig alarm(unsigned int alam)当在调用alarm()前已经设置了一个闹钟,那么我们可以调用alarm(0)来取消此闹钟,并返回剩余时间2. int pause(void)pause函数使调用进程挂起, 直到捕捉到一个信号(出错返回)所以我们需要对信号进行自定义捕捉3. 普通sleepvoid myhandler(int sig)//{ //pri原创 2017-07-06 23:44:21 · 476 阅读 · 0 评论 -
stat 出现的三种时间:
首先我们来看一下stat的情况如图所示,会出现3个类型的时间,分别是Access,Modify,Change。下面我们就对这3个时间进行详细解释下。access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间modify time:表示我们最后一次修改文件的时间change time:表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等。原创 2017-03-24 12:34:51 · 1185 阅读 · 1 评论 -
linux中权限的几个小问题
1. 目录可以进去,则拥有什么权限:第一实验:拥有所有权限,可以进入目录第二次 :实验证明:目录可进入,则拥有X执行权另外在超级用户下操作:总结: 普通用户下创建的目录,需要对拥有者有可执行权限才能进入目录,若要读取目录中的文件列表,则要对拥有者开放读权限在超级用户下,不管目录对拥有者是否开放权限,都可以在目录下创建文件2原创 2017-03-22 21:52:14 · 288 阅读 · 1 评论 -
atexit()函数
atexit()函数:atexit(设置程序正常结束前调用的函数)头文件 #include定义函数 int atexit (void(*function)(void));函数说明 atexit()用来设置一个程序正常结束前调用的函数。当程序通过调用exit()或从main中返回时,参数function所指定的函数会先被调用,然后才真正由exit()结束程序。原创 2017-04-27 20:31:35 · 228 阅读 · 0 评论 -
线程简单理解
线程的概念有些情况需要一个进程同时执行多个控制流程,这时候线程就派上用场了,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待,和处理用户鼠标键盘的事件,另一方面又需要同时下载多个文件,等待和处理从多个网路主机发来的数据,这些任务都需要一个“等待-处理”的循环,可以用多线程实现。由于同一进程的多线程共享同一地址空间,因此Text segment Data segment都是共享的,如果定义原创 2017-06-05 12:23:58 · 300 阅读 · 0 评论 -
进程间通信之“内存共享”的简单实现
1. 共享内存的有效特点:是所有进程间通信最快的不提供任何的同步,互斥机制,(用户可通过设置信号量来保证同步,互斥机制)生命周期随内核2. 创建共享内存int shmget(key_t key, size_t size, int shmflg) key : 可通过函数 key_t ftok( );申请到 size: 申请的大小,申请多少系统给多少,但系统内会以页的倍数批准原创 2017-06-05 20:31:50 · 625 阅读 · 0 评论 -
线程死锁
1. 什么是死锁 死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。2. 死锁要产生必须具备四个必要条件:1. 互斥条件 2. 请求和保持条件 3. 不可剥夺条件 4. 环路等待条件。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。3. 如何避免死锁,常原创 2017-06-07 15:41:45 · 235 阅读 · 0 评论 -
信号的产生于处理
1. 信号在产生后的三种情况:1. 阻塞 (blok),进程可以选择阻塞(blok)某个信号,被阻塞的信号,在产生后将保持未决状态,直到阻塞被解除,才有可能抵达该信号。2. 未决(pending)信号从产生到递达之间的状态,就是未决状态,3. 处理 (信号的递达delivery):信号的处理三种方式: 1. 执行该信号的默认处理方式(如2号信号默认退出程序) 2.忽略此信号(不原创 2017-07-10 20:08:22 · 309 阅读 · 0 评论 -
线程的生产者消费者模型
1. 基于单链表的生产者与消费者模型生产者—消费者模型的321原则: 3种关系: 生产者-生产者 ***互斥*** 消费者-消费者 ***互斥*** 生产者-消费者 ***互斥,同步***2种角色: 消费者 生产者1个交易场所:临界资源实现321的方法:1个交易场所:创建一个带头节点的链表:typedef struct _head原创 2017-06-12 18:24:41 · 222 阅读 · 0 评论 -
基于环形队列的生产者消费者模型编写。
1. 环形队列在队列为空时,生产者必须先运行,消费者不能越过生产者在队列为满时,消费者先运行,生产者不能超过消费者一圈,不能同时访问同一位置:2. 信号量 sem_t sem;//POSIX的线程标准下的 信号量机制通过信号量的值控制可用资源的数量。线程访问共享资源前,需要申请获取一个信号量,如果信号量为0,说明当前无可用的资源,线程无法获取信号量,则该线程会等待其他资源释放信号原创 2017-06-12 21:44:35 · 382 阅读 · 0 评论 -
linux中find的几种基本用法
find的几种基本命令选项-name 按照文件名查找文件。-perm 按照文件权限来查找文件。-user 按照文件属主来查找文件。-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。-type 查找原创 2017-03-30 14:32:41 · 523 阅读 · 0 评论