
linux
bxw1992
这个作者很懒,什么都没留下…
展开
-
锁
一、引言无论对分布式系统、还是单机系统,锁对并发编程都有着重要的意义。二、知识点2.1 Unix 锁linux内核中有多种内核锁,内核锁的作用是:多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是可以访问所有内核数据的,因此要对共享数据进行保护,即互斥处理。linux内核锁机制有信号量、互斥锁、自旋锁还有原子操作。1、信号量(semaphore)信号量又称为...原创 2019-09-18 00:23:05 · 138 阅读 · 0 评论 -
IO操作:同步,异步,阻塞,非阻塞
思考:编程讨论的I/O模型,一般是在网络通信方面对I/O模型的理解抓住一个关键点,I/O操作分两步:1、等待数据准备好2、将数据从内核空间拷贝到用户空间a) 阻塞和非阻塞I/O,一般讨论的是第一阶段,等待数据准备好的策略。阻塞I/O的意思是,一直等待数据准备好,才进行到下一步;非阻塞I/O,查看数据是否准备好,如果在规定时间内还没准备好,那么就返回错误,如果转载 2017-08-29 13:02:06 · 492 阅读 · 0 评论 -
多路I/O复用(select epoll)
对比Ø select缺点:1、最大并发数限制:使用32个整数的32位,即32*32=1024来标识fd,虽然可修改,但是有以下第二点的瓶颈;2、效率低:每次都会线性扫描整个fd_set,集合越大速度越慢(select返回后,如果数据就绪,需要遍历整个fd_set);3、内核/用户空间内存拷贝问题(select函数开始时,将fd_set从用户空间拷贝进内核,函数返回时,内核将fd_转载 2017-08-29 17:08:57 · 382 阅读 · 0 评论 -
Shell 文件包含
Shell 文件包含和其他语言一样,Shell也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。Shell 文件包含的语法格式如下:. filename #注意点号(.)和文件名中间有一空格 或 source filename实例创建两个 shell脚本文件。test1.sh代码如下:#!/bin/bash转载 2017-06-27 22:53:56 · 193 阅读 · 0 评论 -
Shell 输入/输出重定向
Shell 输入/输出重定向大多数 UNIX系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。重定向命令列表如下:命令说明command > file将输出重定向到转载 2017-06-27 22:51:33 · 236 阅读 · 0 评论 -
Shell 函数
Shell 函数linux shell可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:[function ] funname[()]{ action; [returnint;]}说明:· 1、可以带function fun()定义,也可以直接fun()定义,不带任何参数。转载 2017-06-27 22:45:08 · 308 阅读 · 0 评论 -
Shell 流程控制
Shell 流程控制和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):phpif(isset($_GET["q"])){ search(q);}else{ // 不做任何事情}在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else。if elseif转载 2017-06-27 22:38:57 · 167 阅读 · 0 评论 -
Shell test 命令
Shell test 命令Shell中的 test命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真转载 2017-06-27 22:17:04 · 407 阅读 · 0 评论 -
Shell echo命令
Shell echo命令Shell 的 echo 指令与 PHP的 echo 指令类似,都是用于字符串的输出。命令格式:echo string您可以使用echo实现更复杂的输出格式控制。1.显示普通字符串:echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例效果一致:echo Itis a test2.显示转义字符e转载 2017-06-27 22:13:11 · 262 阅读 · 0 评论 -
Shell 基本运算符
Shell 基本运算符Shell 和其他编程语言一样,支持多种运算符,包括:· 算数运算符· 关系运算符· 布尔运算符· 字符串运算符· 文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk和 expr,expr最常用。expr 是一款表达式计算转载 2017-06-27 21:37:15 · 1482 阅读 · 0 评论 -
Shell 数组
Shell 数组数组中可以存放多个值。Bash Shell只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP类似)。与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:array_name=(value1... valuen)实例#!/bin/bash# author:转载 2017-06-27 21:29:34 · 181 阅读 · 0 评论 -
Shell 传递参数
Shell 传递参数我们可以在执行 Shell脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1为执行脚本的第一个参数,2为执行脚本的第二个参数,以此类推……实例以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:#!/bin/bash# author:菜鸟教程#url:www.runoob.com转载 2017-06-27 21:20:58 · 184 阅读 · 0 评论 -
shell简单命令
现在请继续在 linux 字符界面下输入 man bash,调出 bash 的帮助页面,然后找到 “shell语法”那一部分,我们就是以这里的描述作为实现的依据。在 bash帮助的“shell 语法”一节,是这样来定义shell 语法的: 简单命令简单命令是(可选的)一系列变量赋值, 紧接着是空白字符分隔的词和重定向符号, 最后以一个控制操作符结束. 第一个词指明了要执行的命令, 它被转载 2017-06-27 19:30:42 · 525 阅读 · 0 评论 -
shell变量
点击打开链接Shell 变量定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:your_name="runoob.com"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:· 首个字符必须为字母(a-z,A-Z)。· 中间不能有空格,可以使用下划线(_)。·转载 2017-06-27 19:27:38 · 209 阅读 · 0 评论 -
ubuntu系统根目录下各个目录用途说明
1、/ 根目录--------- 所有目录挂在其下2、/boot--------- 存放Ubuntu内核和系统启动文件。系统启动时这些文件先被装载。3、/etc--------- 系统的配置文件目录。密码文件、设置网卡信息、环境变量的设置等都在此目录中,许多网络配置文件也在其中。具体 参见 。4、/lib--------- 根文件系统目录下程序和核心模块的共享库转载 2017-06-23 11:18:23 · 1086 阅读 · 1 评论 -
linux命令(一)
下载Wget https://mc.qcloudimg.com/static/archive/3d8addbe52be88df4f6139ec7e35b453/seafile-server_5.1.4_x86-64.tar.gz管道举例:ls -a | grep netkeeper说明:就是把前一个命令的结果当成后一个命令的输入。结合本例就是先显示所有的文件,然后再转载 2017-06-27 11:22:51 · 229 阅读 · 0 评论 -
Shell 教程
点击打开链接Shell 教程Shell 是一个用 C语言编写的程序,它是用户使用 Linux的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh是第一种 Unix Shell,Windows Explorer是一个典型的图形转载 2017-06-27 11:25:34 · 313 阅读 · 0 评论 -
Linux下可执行文件格式详解
Linux下面,目标文件、共享对象文件、可执行文件都是使用ELF文件格式来存储的。程序经过编译之后会输出目标文件,然后经过链接可以产生可执行文件或者共享对象文件。Linux下面使用的ELF文件和Windows操作系统使用的PE文件都是从Unix系统的COFF文件格式演化来的。我们先来了解一些基本的想法。首先,最重要的思路是一个程序从人能读懂的格式转换为供操作系统执行的二进制格式之后,代码和转载 2017-06-30 22:04:19 · 323 阅读 · 0 评论