Linux
啊啊啊西吧
写点什么呢
展开
-
四层负载均衡与七层负载均衡的区别
https://zhuanlan.zhihu.com/p/34904010https://www.jianshu.com/p/9826d866080a现有的负载均衡分层所谓四层负载均衡就是使用IP加端口的方式进行路由转发;七层负载均衡一般是基于请求URL地址的方式进行代理转发。同理,还有基于MAC地址信息(虚拟MAC地址到真实MAC地址)进行转发的二层负载均衡和基于IP地址(虚拟IP到真...转载 2018-11-08 16:14:32 · 1109 阅读 · 0 评论 -
shell特殊变量
特殊的shell变量: $0 获取当前执行的shell脚本的文件名 $n 获取当前执行的shell脚本的第n个参数值,n=1..9 $* 获取当前shell的所有参数 “11 2 $3 …,受IFS控制 $# 获取当前shell命令行中参数的总个数 $$ 获取当前shell的进程号(PID) $! 执行上一个指令的PID $? 获取执行的上一个指令的返回值(0 为成功, 非转载 2017-05-22 22:44:03 · 266 阅读 · 0 评论 -
从网卡到应用层nginx,一个数据包经历了什么?
内容目录数据包从网卡到nginx从网卡到内存内存-网络模块-协议栈传输层应用层nginx处理socket套接字的流程下面进入nginx http请求处理的11个阶段处理请求的过程数据包从网卡到nginx本文将研究一个数据包从被网卡接收到流出应用层到底经历了什么,并探究在应用层nginx的处理流程。**注:**本文只讨论物理网卡,暂不涉及虚拟网卡。从网卡到内存1: 数据包从外面的网络进入物理...原创 2018-11-07 20:07:12 · 4371 阅读 · 2 评论 -
linux进程的几种状态
1、TASK_RUNNING:(R) 进程当前正在运行,或者正在运行队列中等待调度。只有在该状态的进程才可能在CPU上运行,同一时刻可能有多个进程处于可执行状态。2、TASK_INTERRUPTIBLE:(S) 进程处于睡眠状态,处于这个状态的进程因为等待某事件的发生(比如等待socket连接、等待信号量),而被挂起。当这些事件发生时,对应的等待队列中的一个或多个进程将被唤醒。一般情况下,进程列原创 2016-09-12 22:15:02 · 2795 阅读 · 0 评论 -
线程状态:分离状态(detached)与可结合状态(joinable)
1、在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。 一个可结合的线程能够被其他线程收回其资源和杀死;在被其 他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 2、线程的分离状态决定一个线程以什么样的方式来终止自己。 在默认情况下线程是非分离状态的,这种情况下,转载 2016-09-12 21:50:07 · 2494 阅读 · 0 评论 -
《APUE.3E》习题4.6编写自己的cp(l)程序,它复制包含空洞的文件,但不将字节0包含到输出文件中去
1、产生空洞的方式lseek()#include "apue.h"#include <fcntl.h>char buf1[] = "abcdefghij";char buf2[] = "ABCDEFGHIJ";intmain(void){ int fd; /* 创建一个文件 */ if ((fd = creat("file.hole", FILE_MODE)原创 2016-07-12 14:29:21 · 1798 阅读 · 2 评论 -
linux中的/dev/fd详解(linux3.2.0)
比较新的系统都提供名为/dev/fd的目录,其目录项是名为0、1、2等的文件。打开文件/dev/fd/n等效于复制描述符n(假定描述符n是打开的)。 在函数中调用:fd=open("/dev/fd/0",mode);大多数系统忽略所指定的mode,而另外一些则要求mode是所涉及的文件(在这里则是标准输入)原先打开时所使用的mode的子集。因为上面的打开等效于:fd=dup(0);描述符0和fd共转载 2016-07-21 14:50:46 · 6939 阅读 · 0 评论 -
FreeBSD和linux下/proc 目录介绍
1. /proc目录 Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。 用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,转载 2016-07-21 14:37:38 · 1465 阅读 · 0 评论 -
unix:fork()函数进阶讲解
一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。转载 2016-07-19 21:12:42 · 801 阅读 · 0 评论 -
CentOS 6.7上使用gdb调试时出现Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.192.el6.x86_64
CentOS 6.7上使用gdb调试时出现Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.192.el6.x86_641、先修改/etc/yum.repos.d/CentOS-Debuginfo.repo里面的debuginfo目录中enabled=1 2、yum install nss-softokn-debugi原创 2016-07-07 16:09:09 · 3240 阅读 · 0 评论 -
ps -aux指令详解
1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。 2)ps -A 显示所有程序。 3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 4)ps -e 此参数的效果和指定”A”参数相同。 5)ps e 列出程序时,显示每个程序所使用的环境变量。 6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。 7转载 2016-10-12 16:04:21 · 11083 阅读 · 0 评论 -
linux下git命令的使用
在linux下搭建git环境 1、创建Github账号,https://github.com 2、Linux创建SSH密钥: ssh-keygen ##一直默认就可以了 3、将公钥加入到Github账户信息Account Settings->SSH Key 4、测试验证是否成功。 ssh -T git@github.com Hi someone! You've successfull转载 2016-10-25 16:28:21 · 2186 阅读 · 0 评论 -
POSIX标准和XSI扩展
POSIX 表示可移植操作系统接口(Portable Operating System Interface )。电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植性。然而,POSIX 并不局限于 UNIX。许多其它的操作系统,例如 DEC Open转载 2016-10-08 18:43:56 · 2201 阅读 · 0 评论 -
Linux:实现自己的pwd命令
/** 文件名:mypwd.c* 描述:实现简单的pwd命令*/#include <stdio.h>#include <stdlib.h>#include <dirent.h>#include <sys/types.h>#include <sys/stat.h>#include <string.h>#include <unistd.h>/*根据文件名获取文件inode-numbe翻译 2017-01-03 20:31:14 · 823 阅读 · 0 评论 -
select、poll、epoll总结
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户转载 2016-11-04 08:42:39 · 1007 阅读 · 0 评论 -
linux/python正则表达式与通配符的不同
1、正则表达式在Python中,可以参考此处2、Linux中的正则表达式与通配符的不同。首先正则表达式与通配符是完全不一样的东西!在文本过滤工具里,都是用正则表达式,比如像awk,sed,vi,grep,这些是针对文件的内容的,re是一种字符串处理的表示方式而通配符多用在文件名上,比如查找find,ls,cp,等等,wtilcard代表的是bash操作接口的一个功能原创 2016-04-28 10:21:49 · 12493 阅读 · 2 评论 -
awk详解:awk语言及应用
是时候归纳一下awk命令了。 awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg和(Brain)Kernighan。正是这三个人创造了awk—一个优秀的样式扫描与处理工具。 作为linux三剑客之一,与sed和grep很相似,awk是一种样式扫描与处理工具,但其功能却大大强于sed和grep。awk提供了极其强大的功能:它几乎可以完成grep和sed所能完成的全部工作,同时转载 2017-05-16 09:10:23 · 1307 阅读 · 0 评论 -
锁的种类与特点
在Linux内核中,同步机制是一大特性。比较经典的有原子操作、spin_lock(自旋锁)、mutex(互斥锁)、semaphore(信号量)等。互斥锁和自旋锁的区别?转载 2017-06-21 20:08:49 · 7461 阅读 · 0 评论 -
Linux源码编译三步曲,分别发生了什么
目录configuremakemake installconfigureconfigure脚本生成makefile文件,提供给make工具使用执行configure脚本时,configure会结合用户通过命令行指定的选项以及各个Makefile.in模板文件来生成makefile文件congigure常用选项如下: --help:获得其支持使用的选项 --prefix=/PATH/...转载 2018-11-09 00:32:16 · 1272 阅读 · 0 评论 -
linux下终端的类型(TTY)
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。 tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机,是由Teletype公司生产的。设备名放在特殊文件目录/dev/下,终端特殊设备文件一般有以下几种: 1.串行端口终端(/dev/ttySn) 串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终转载 2016-07-27 15:17:37 · 2856 阅读 · 0 评论 -
创建内存流:fmemopen()函数详解
创建内存流的3个函数如下:#include <stdio.h>FILE* fmemopen(void*buf, size_t size, const char* mode);FILE* open_memstream(char**ptr, size_t* sizeloc);#include <wchar.h>FILE* open_wmemstream(wchar_t** ptr, size_t*原创 2016-07-14 21:12:55 · 8740 阅读 · 0 评论 -
更改系统环境设置,让alias永远生效
alias(中文称为“别名”)允许使用更加简短的名称来重新定义 Linux 中的 Shell 命令,从而简化命令行的输入。如果经常与 CLI 打交道,那么使用 alias 不仅会节省时间,而且也能提高效率,真是一举两得的好事。基本用法: alias 的基本使用方法为:alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只转载 2016-05-16 21:50:37 · 5083 阅读 · 0 评论 -
linux下手动新建账号及配置的过程
1. 创建群组 normalgroup ,假设 520 这个 GID 没有被使用!并且同步gshadow[root@www ~]# vi /etc/group# 在最后一行加入底下这一行!normalgroup:x:520:[root@www ~]# grpconv[root@www ~]# grep 'normalgroup' /etc/group /etc/gshadow/etc原创 2016-05-05 11:09:32 · 542 阅读 · 0 评论 -
linux下批量新建账号及设置密码
使用了passwd --std username 代码如下: 1 #!/bin/bash 2 export PATH=/bin:/sbin:/usr/bin:/usr/sbin 3 if [ test ! -f "account.txt" ];then 4 echo "no account1.txt \n please new one 每行一个帐号名称"原创 2016-05-05 11:05:24 · 1236 阅读 · 0 评论 -
~/.viminfo与~/.vinrc
1. viminfo在vim中操作的行为,vim会自动记录下来,保存在 ~/.viminfo 文件中。这样为了方便下次处理,如:vim打开文件时,光标会自动在上次离开的位置显示。原来搜索过的字符串,新打开文件时自动高亮显示。~/.viminfo 文件是系统自动生成。2. vimrcvimrc文件是vim的环境设置文件。整体的vim的设置是在 /etc/vimrc 文件中。不建议修改转载 2016-05-04 21:49:38 · 1298 阅读 · 0 评论 -
shell script笔记
下面记录linux里shell script学习过程中的一些笔记:1:#!/bin/bash#programe:# This program creates three files, which named by user's input and date command#History:#2016/4/29 dairen First releasePATH=/bin原创 2016-04-29 10:49:00 · 579 阅读 · 0 评论 -
linux ping命令
Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”、不能打开网页时会说“你先ping网关地址192.168.1.1试试”。它通过发送ICMP ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST to network hosts),并显示响应情况,这样我们就可以根据它输出的信息来确定目标转载 2016-05-04 14:30:18 · 515 阅读 · 0 评论 -
linux awk命令详解
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfr转载 2016-05-10 21:22:05 · 369 阅读 · 0 评论 -
linux 2>&1的含义
其实要弄清楚 2>&1 的含义,首先应当知道linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2。STDIN就是标准输入,默认从键盘读取信息;STDOUT是标准输出,默认将输出结果输出至终端,也就是显示器之类的东西;STDERR是标准的错误信息,默认也会显示在终端上。由于STDOUT与STDERR都会默认显示在终端上,为了区分二者的信息,就有了编号的转载 2016-05-10 15:33:04 · 829 阅读 · 0 评论 -
linux命令mv:移动文件、文件重命名
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。1.命令格式: mv [选项] 源文件或目录 目标文件或目录2.命令功能:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,转载 2016-05-06 09:44:34 · 2029 阅读 · 0 评论 -
linux xargs命令及find命令
简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:这个命令是错误的find /sbin -perm +700 |ls -l这样才是正确的find /sbin -perm +700 |xargs ls -l xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 s转载 2016-05-06 10:36:56 · 712 阅读 · 0 评论 -
awk脚本
编写awk脚本1. 从 Hello, World 开始we create a file named test that contains a single line. This example shows a script that contains the print statement:$ echo 'this line of data is ignored' > test$ awk '{ p原创 2016-06-29 20:30:23 · 422 阅读 · 0 评论 -
apue.3e源码编译、环境配置(centos6.7)
1.从官网上下载源码: 2.解压源码至指定位置:tar -zxv -f src.3e.tar.gz -C /usr/src/ 3.转到解压后的apue.3e/目录下:cat README cat DISCLAIMER4.make 5.把make生成的apue.h与静态链接库libapue.a放到系统指定寻找的地方:cp ./include/apue.h /usr/include/cp ./原创 2016-06-29 09:35:49 · 2011 阅读 · 3 评论 -
linux命令后台进行和查看、关闭后台任务
主要就是fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 这些命令1、&加在一个命令的最后,可以把这个命令放到后台执行,如: watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本2、ctrl + z可以将一个正在前台执行的命令放到后台,并且处于暂停状态。3、jobs查看当前有多少在后台运行的命令 jobs -l选项可显示所有转载 2016-06-07 10:29:01 · 5461 阅读 · 0 评论 -
shel script:学校管理系统批量新建账号
代码如下: 1 #!/bin/bash 2 # History: 3 #2016/05/05 dairen first release 4 #2016/05/06 dairen second release 5 #export LANG=zh_TW.big5 6 export PATH=/sbin:/usr/sbin:/bin:/usr/bin 7 accountfi原创 2016-05-09 10:27:46 · 849 阅读 · 0 评论 -
linux下如何使用systemctl管理systemd服务与单元
先来个简单总结(后面才是from的链接的内容):启动一个服务:systemctl start postfix.service 关闭一个服务:systemctl stop postfix.service 重启一个服务:systemctl restart postfix.service 显示一个服务的状态:systemctl status postfix.service 在开机时启用一个服转载 2016-05-18 09:00:27 · 14311 阅读 · 0 评论 -
linux初始化init系统:systemd
近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 systemd。本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系统和开发应用。本文是系列的第 3 部分,主要讲述 s转载 2016-05-17 18:42:56 · 1347 阅读 · 0 评论 -
systemd的使用以及与sysvinit的区别
systemd被设计用来改进sysvinit的缺点,它和ubuntu的upstart是竞争对手,预计会取代它们。systemd的很多概念来源于苹果的launchd。创始人Lennart是redhat员工,但systemd不是redhat项目。systemd的目标是:尽可能启动更少进程;尽可能将更多进程并行启动。systemd尽可能减少对shell脚本的依赖。传统sysvinit使用init转载 2016-05-17 17:05:33 · 11661 阅读 · 1 评论 -
systemd的使用(centos7之后使用systemd代替init)
systemd 是 Linux 下一个与 SysV 和 LSB 初始化脚本兼容的系统和服务管理器。systemd 使用 socket 和 D-Bus 来开启服务,提供基于守护进程的按需启动策略,保留了 Linux cgroups 的进程追踪功能,支持快照和系统状态恢复,维护挂载和自挂载点,实现了各服务间基于从属关系的一个更为精细的逻辑控制,拥有前卫的并行性能。systemd 无需经过任何修改便可以转载 2016-05-17 17:02:56 · 8899 阅读 · 0 评论 -
常见的分布式文件系统简介
常见的分布式文件系统有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。 Google学术论文,这是众多分布式文件系统的起源==================================Google Fil转载 2016-04-25 16:13:02 · 763 阅读 · 0 评论