Linux
文章平均质量分 77
IT_10-
我爱编程 编程爱我❤️
展开
-
vim快捷键
vim快捷键复制yy 复制游标所在整行nyy 复制游标所在行及其之后的n行yw 复制游标后的一个worldnyw 复制游标后的n个worldy0 复制至行首(如123光标456,执行命令后,复制了123)y$ 复制至行尾(如123光标456,执行命令后,复制了456)剪切dd 剪切游标所在整行ndd 剪切游标所在行及其之后的n行dw 剪切游标后的一个worldndw ...原创 2019-11-03 16:39:26 · 186 阅读 · 0 评论 -
Centos7源码安装httpd(Apache)
下载源码包及其依赖包apache24:http://httpd.apache.org/download.cgi,最好是选择Source源码包在本机重新编译APR和APR-util:http://apr.apache.orgAPR全称是Apache portable run-time libraries,Apache可移植运行库。可以为httpd提供一个支持跨操作系统平台的底层接口库。我们可...原创 2019-11-03 14:19:25 · 712 阅读 · 0 评论 -
Centos添加环境变量(~/.bash_profile、/etc/profile、/etc/profile.d)
环境变量bash shell用一个叫做环境变量的特性来存储有关shell会话和工作环境的信息。即允许在内存中存储数据,使得在程序或shell中运行的脚本能够访问到它们。Linux中环境变量分为三种:全局环境变量:对于shell会话和所有生成的子shell都是可见的局部环境变量:只对创建它的shell可见,即当前创建的用户可见用户定义变量:只对当前会话生效创建全局环境变量在/etc...原创 2019-11-03 14:13:58 · 9603 阅读 · 0 评论 -
简而易懂的CPU和MMU画图讲解
我们知道,程序文件一般放在硬盘上,当把程序运行起来产生进程是,程序被放入内存中,通过内存放入cache,通过cache进入cpu,进入cpu的是程序的一条条指令,即01组合,下图中预取器就是负责从cache取出指令,然后由译码器译码,译码的作用就是要知道需要哪些寄存器配合完成指令,如该指令是一个加法运算,则译码器译码后发现需要使用到add,eax和ebx寄存器,然后交给ALU算数逻辑单元进行算数运...原创 2019-05-04 22:05:06 · 5991 阅读 · 3 评论 -
PCB(进程控制块)讲解
PCB:进程控制块,实际是一个结构体,放在sched.h文件中,Linux下可以通过whereis sched.h命令查看具体路径该结构体主要包含:1.进程id2.进程的状态:就绪、运行、挂起、停止3.进程切换时需要保存和恢复的一些CPU寄存器寄存器放在CUP中,A程序和B程序分时执行的时候,A占用CPU执行一定时间,CPU便被B占用了,然后又轮到A执行,A的资源如寄存器如何恢复到挂起...原创 2019-05-04 22:34:45 · 11598 阅读 · 0 评论 -
I/O多路复用(select、poll、epoll)详解
多线程或者多进程服务器端程序工作具体流程是:服务器端应用程序监听到一个客户端连接,就fork一个子进程,由子进程处理事件,原服务器端应用程序继续监听来自其他客户端的连接后做相同的操作,当有客户端退出时,和该客户端通信的子进程就成了僵尸进程,由父进程利用信号注册等机制将其回收。由于多线程或者多进程服务器是由服务器端应用程序监听客户端请求,这样会降低应用程序执行效率并且极大消耗CPU资源。因此可以采...原创 2019-06-27 15:38:56 · 415 阅读 · 0 评论 -
终端、进程组、会话、守护进程(包括创建守护进程)详解
终端输出设备和输入设备的总称为终端。Unix中的terminal是伪终端,输入和输出都流经这个terminal。Unix系统中,用户通过终端登录系统后得到一个shell进程,这个终端成为shell进程的控制终端。默认情况下(没有重定向),每个进程的标准输入,标准输出和标准错误输出都指向控制终端。网络终端向XShell这样的连接到远程Unix系统的软件成为网络终端,网络终端工作流程如下图。tt...原创 2019-05-13 15:23:30 · 474 阅读 · 0 评论 -
IPC(进程间通信)详解
Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据bi必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间放至内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC InterProcess Communication)在进程间完成数据传递需要借...原创 2019-05-13 15:25:28 · 4067 阅读 · 0 评论 -
Socket(套接字)详解 画图+实例
Socket本意为“插座”,在Linux下,用于表示进程间网络通信的特殊文件类型,本质为内核借助缓冲区形成的伪文件。既然是文件,那肯定就可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。对于管道缓冲区,读端和写端的文件描述符分别指向缓冲区的两端...原创 2019-05-17 23:46:18 · 5008 阅读 · 1 评论 -
解决问题方法汇总:ROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysq
/var/lib/mysql/mysql.sock 这个目录是my.cnf中配置的,连接localhost通常通过一个Unix域套接字文件进行,即这个mysql.sock文件。如果套接字文件被删除了,本地客户就不能连接。systemctl status mysql查看mysql状态如下可以判定除了Failed to start LSB: start and stop MySQL 没有其他错...原创 2019-06-03 22:28:17 · 9175 阅读 · 0 评论 -
用户态和内核态
现代操作系统都是采用虚拟存储器,对32位操作系统而言,它的虚拟地址空间为4G(2的32次方)。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分:内核空间和用户空间。Linux操作系统的体系架构分为用户态和内核态(用户空间和内核空间),这种分层的架构极大地提高了资源管理的可扩展性和灵活性,而且方便用户对资源的调用和集中式的管理,带来一定的安全性。L...原创 2019-06-27 20:58:39 · 697 阅读 · 0 评论 -
五种I/O模型详解
IO有三种:内存IO、网络IO和磁盘IO,通常说的是后两者网络IO的本质是socket的读取,对于一次IO访问,过程描述为:网络传输过来的数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。同步阻塞I/O进程发起IO操作后会阻塞等待,直到有数据返回。默认情况下socket就是这种模型,服务端socket调用accept函数后便会阻塞进程,直到有客户...原创 2019-06-27 22:45:08 · 309 阅读 · 0 评论 -
Linux搭建sftp(亲测有效)
sftp是SSH File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。1:创建用户组、用户、设置密码groupadd sftpuseradd -g sftp -s /sbin/nologin -M sftp1passwd sftp12:创建sft...原创 2019-10-07 17:18:21 · 1788 阅读 · 0 评论 -
程序、进程、线程详解
程序是编译好的二进制文件,在磁盘上,不占用系统资源。进程是运行的程序,占用系统资源,在内存中执行。线程是轻量级的进程,本质任是进程(在Linux环境下)线程和进程的区别和联系:(1)进程有独立的地址空间,拥有PCB(2)线程也有自己的PCB,但是没有独立的地址空间区别:是否共享地址空间,例如,进程a.out有自己的0到4G的地址空间,当它调用pthead_create创建线程的时候,线...原创 2019-05-13 21:42:25 · 693 阅读 · 0 评论 -
centos7.X环境下安装MySQL
在CentOS中默认安装有MariaDB,安装MySQL可以覆盖MariaDB注:MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。...原创 2019-03-31 22:15:39 · 188 阅读 · 0 评论 -
Linux下软件的安装与卸载详解
1.查看软件安装位置whereis 软件名 //查看软件安装路径which 软件名 //软件软件的运行路径2.卸载软件首先要确定是通过包管理器安装的还是通过源代码安装的2.1 通过rpm包管理器安装的软件rpm –ql 包名 //查看软件的安装路径...原创 2019-04-06 11:41:35 · 303 阅读 · 0 评论 -
Lua简介以及Centos7.X上安装Lua
1.安装 yum install lua2.以交互式的方式执行lua3.以脚本文件的方式执行.lua文件创建.lua文件,内容如下#!/usr/bin/lua #这一句不能少print(1)修改.lua文件的权限为a+rxchmod a+rx ./test.lua运行./test.lua4.lua脚本文件的注释--行注释...原创 2019-04-06 14:21:59 · 521 阅读 · 0 评论 -
Centos7.X配置Nginx+Lua(OpenResty)以及让systemd 管理nginx服务
关于Lua简介以及Lua的安装可以参考https://blog.csdn.net/IT_10/article/details/89049542OpenResty 介绍OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。(1)OpenResty 是一个强大的 Web 应用服务器,Web 开发...原创 2019-04-06 16:31:08 · 1341 阅读 · 0 评论 -
Centos7.X下配置waf
1.下载waf配置包git clone https://github.com/loveshell/ngx_lua_waf.git2.配置config.lua将下载的waf包挪到nginx的配置文件conf下或者nginx目录下wafconf目录下存放的就是一些采取安全措施的规则。vim打开waf下的config.lua,只需将RulePath和logdir改成自己的目录即可配置文件...原创 2019-04-10 23:33:01 · 2252 阅读 · 1 评论 -
ab压力测试工具详解
安装yum install httpd-toolsab命令及其参数ab -n 2000 -c 2 你的url-n :总的请求数-c :并发数-k 是否开启长连接测试静态接口1Time taken for tests:发费的总时间Requests per second:每秒请求数(总请求数除总时间)上面的Time per request:对于客户端而言,单个请求所用的时间...原创 2019-04-09 00:26:32 · 3835 阅读 · 0 评论 -
Linux之Shell语法详解
Shell是什么Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序用户可以用Shell来启动、挂起、停止以及编写一些程序。语法1.格式脚本以 #!/bin/bash开头脚本需要有可执行权限(chmod 744 filename)注释 :<<!内容 !2.Shell变量Shell变量分为系统变量和用户自定义变量系统变...原创 2019-05-01 23:20:37 · 1120 阅读 · 0 评论 -
Centos7.X源码安装MySQL5.7(亲测附图详解)
1.下载包wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz //mysql5.7编译需要依赖boost包wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12.tar.gz2.安装依赖包yum -y ...原创 2019-04-27 18:27:38 · 497 阅读 · 0 评论 -
编写Shell脚本定时备份数据库
需求1.每天凌晨2点10分备份数据库atguiguDB到/data/backup/db2.备份开始和备份结束能够给出相应的提示信息3.备份后的文件以时间命名,并打包成.tar.gz形式,如2019-05-01_110101.tar.gz4.在备份的同事,检查是否有10天前的备份数据库文件,有则删除之...原创 2019-05-02 18:13:47 · 5757 阅读 · 0 评论 -
fork函数讲解和运用(循环创建n个子进程)
作用fork函数用于创建一个子进程用法#include <unistd.h>pid_t fork(void);对于父进程来说,fork函数返回成功返回子进程id,对于子进程来说,fork函数成功返回0;失败返回-1;C/C++中的函数返回值只能有一个,这里看似两个返回值,是因为父进程执行到fork调用处,产生一个子进程,子进程拥有和父进程相同的代码,但是父子进程从fork调...原创 2019-05-08 23:01:21 · 4578 阅读 · 1 评论 -
Centos7.X搭建svn server以及windows用户commit和checkout以及各种问题汇总
1.搭建svn server(1)yum安装subversionyum install subversion(2) 查看安装版本svnserve --version(3)查看安装路径rpm -ql subversion2.创建版本库(1)创建用于存放版本库的目录mkdir 目录//我创建的目录:mkdir /opt/svn/repository(2)创建svn版本库...原创 2019-04-05 01:05:22 · 520 阅读 · 0 评论