
linux
文章平均质量分 56
小蜜蜂爱编程
积跬步以致千里,积小流以成江海
展开
-
linux查看core文件保存位置
一般文件内容只有core的话,只会保存到运行环境目录,生成一个core.xxx的文件,可以自己配置core的文件名信息core%e%u…原创 2024-04-07 10:19:30 · 1656 阅读 · 0 评论 -
使用openssl库进行数据加密与签名
1、RSA加密与签名的区别2、信息防泄漏与信息防篡改的做法3、openssl开源库的使用原创 2021-01-21 23:48:48 · 1857 阅读 · 0 评论 -
手撕通用线程池组件
线程池原创 2020-12-27 18:15:52 · 223 阅读 · 0 评论 -
并发计数原理及其无锁实现
1、多线程2、多线程进入临界区的深入剖析3、互斥锁、自旋锁的实现及应用场景4、原子操作的实现5、CAS原子操作原理及实现原创 2020-12-24 11:43:23 · 995 阅读 · 1 评论 -
通过有限状态机实现文章的单词统计
通过有限状态机实现的单词统计小应用原创 2020-12-21 18:07:39 · 521 阅读 · 1 评论 -
shell脚本之通过脚本获取本机IP地址
通过shell获取本机ip地址,并传给程序,用作其他用途原创 2020-12-20 14:42:21 · 2637 阅读 · 5 评论 -
shell脚本之字符串测试
有意思的是,当字符串遇到=,!=时,就不再是赋值的含义了= 等于则为真!= 不相等则为真-z 字符串 字符串的长度为零则为真-n 字符串 字符串的长度不为零则为真原创 2020-12-17 22:39:00 · 279 阅读 · 0 评论 -
shell脚本之基本算术运算的两种方法
1、使用expr或awk例:a=10b=20echo `expr a + b`2、使用[]例result=$[a+b] #等号两边不能有空格echo result原创 2020-12-17 22:35:08 · 254 阅读 · 0 评论 -
shell脚本之printf命令打印技巧
shell printf命令简介printf 命令模仿 C 程序库(library)里的 printf() 程序。printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认 printf 不会像 echo 自动添加换行符,我们可以手动添加 \n格式printf format-string [arguments...]例原创 2020-12-17 22:27:33 · 1783 阅读 · 0 评论 -
shell脚本之文件测试运算符
常用文件测试运算符文件测试运算符用于检测unix文件的各种属性,常用的文件测试运算符及其属性描述如下:-b file—检测文件是否是块设备文件,如果是,返回true[ -b $file ]-c file—检测文件是否是字符设备文件,如果是,则返回true-d file—检测文件是否是目录,如果是,返回true-f file—检测文件是否是普通文件(非目录/设备文件),如果是,返回true-g file—检测文件是否设置了SGID位,如果是,则返回true-k file—检测文件是否设原创 2020-12-17 22:01:44 · 454 阅读 · 0 评论 -
shell脚本之关系运算符
常用的关系运算符shell脚本关系运算符只支持数字,不支持字符串除非字符串的值是数字。常用的关系运算符如下列出:1、-eq —检测两个数是否相等,如相等返回true原创 2020-12-17 21:50:00 · 1058 阅读 · 0 评论 -
shell脚本之算术运算符
shell运算符有哪些1、算术运算符2、关系运算符3、布尔运算符4、字符串运算符5、文件测试运算符需要注意的是,原生的bash不支持简单的数学运算,需要配合其他工具命令实现,如awk, expr。使用expr运算示例#!/bin/bashecho "传入两数相加"echo ${`expr $1 + $2`}计算传入的两数之和。注意,表达式和运算符之间要有空格,不能写成2+2。完整的表达式要使用反引号``包含常用算术运算符1、加法运算符 +2、减法运算符 -(与加法同)3、乘原创 2020-12-16 20:52:15 · 406 阅读 · 0 评论 -
shell脚本之$#与$*的区别
相同点:都能引用所有参数不同点:只有在双引号中体现出来,假设脚本运行写了三个参数1、2、3,∗传递的是“123”一个参数,*传递的是“1 2 3”一个参数,∗传递的是“123”一个参数,#传递的是“1” “2” “3”三个参数...原创 2020-12-16 19:59:00 · 465 阅读 · 0 评论 -
shell脚本之注释技巧
单行注释不用多说,#号多行注释将要注释的代码定义成函数,没有地方调用,则该代码不会执行:<<EOF:<<EOF要注释代码段EOF:<<’ 与 ’同24.:<<! 与 !同2 3原创 2020-12-15 12:57:11 · 311 阅读 · 0 评论 -
shell脚本之shell函数
shell函数定义shell中函数的定义格式如下:[ function ] funname [()] { action; [return int;] } 可以带function fun()定义也可以不带shell函数返回值若显示地使用return,则根据return 的值返回,否则以最后一条命令的运行结果作为返回值例add_func() 26 { 27 echo -e "两数相加\n" 28 echo "请输入第一个数字:" 29 re原创 2020-12-15 12:27:48 · 135 阅读 · 0 评论 -
shell脚本之数组
shell数组简介bash 支持一维数组(不支持多维数组),并且没有限定数组的大小。 类似于 C 语言,数组元素的下标由 0 开始编号。获取数组中的元素要利用下标,下标可以 是整数或算术表达式,其值应大于或等于 0。shell数组定义方法用括号()来定义,数组元素用"空格"符号分割开,见示例2对数组值单个定义,下标可不连续,见示例,对不连续下标数组中不存在的下标打印无输出数组的读取方法读取单个元素${数组名[下标]}echo ${array[n]}4.读取整个数组—使用@或*ec原创 2020-12-15 11:44:27 · 211 阅读 · 0 评论 -
shell脚本之字符串操作
获取字符串长度string=“this is a test”echo ${#string}提取子串echo ${string:3:5}需要注意的是,字符串这里的3:5实际上是提取第4个到第6个,即字符串的起始是从0开始,与c字符数组类似查找子字符串实际上是查找子字符串中字母首次出现的位置,哪个字母先出现就先计算哪个child_str="ae"echo `expr index "$string" $ae`注意上述是反引号不是单引号...原创 2020-12-15 11:02:13 · 286 阅读 · 0 评论 -
shell脚本之Unset命令
unset可以删除变量:unset var被删除后,变量不能再次使用#!/bin/bashvar="unset test"unset varecho $var将无任何输出Unset不能删除只读变量原创 2020-12-15 09:55:55 · 6090 阅读 · 0 评论 -
Linux shell脚本编程之大括号{}使用变量
在shell脚本编程中,我们给变量加上大括号,作用是为了帮助解释器识别变量边界对于变量有空格隔开独立的情形,$val与${val}等价;对于变量之间无空格隔开,想要组合两个变量或变量与字符串时,{}就起到限定边界作用例:for skill in C CPP Linux Shell; do echo "I am good at ${skill}Code"done运行结果依次打印CCode, CPPCode, LinuxCode, ShellCode...原创 2020-12-15 09:35:05 · 2784 阅读 · 0 评论 -
Linux shell编程之检测局域网主机宕机
还是直接上代码#!/bin/bashfor i in {1..254} #-c指定ping几次,-i指定超时 ping -c 2 -i 0.5 192.168.43.$i &> /dev/null #$?是上一个指令的执行返回值 ,0表示没有错误,其他任何值表明有错误 #-eq equal 的缩写 if [$? -eq 0]; then echo "192.168.43.$i is up" else echo "192.168.43.$i is down" fi原创 2020-12-15 09:22:34 · 224 阅读 · 0 评论 -
Linux shell之打印目录
#!/bin/bashfor file in $(ls /home); doecho $filedone原创 2020-12-14 21:42:23 · 1279 阅读 · 0 评论 -
使用shell实现从1加到100
话不多说,直接上脚本#!/bin/bashsum=0for i in [1…100]; dolet sum+=idoneecho $sum原创 2020-12-14 21:36:35 · 1546 阅读 · 2 评论 -
Linux shell之shell分类
Linux 中的 shell 有很多种类,常用的几种:Bourne Shell(/usr/bin/sh 或/bin/sh)Bourne Again Shell(/bin/bash)C Shell(/usr/bin/csh)K Shell(/usr/bin/ksh)Shell for Root(/sbin/sh)Shell 是一个用 c 语言编写的程序,不同的人实现的命名也不一样,Linux下常用bash shell,即第二种...原创 2020-12-14 21:15:46 · 511 阅读 · 0 评论 -
Linux命令行之常用文件操作命令
目录操作命令比较常用,这里总结7个文件命令,可以极大方便提高Linux下文件操作效率命令描述cat由第一行开始显示文件内容tac与cat相反,由最后一行显示文件内容nl显示行号:选项与参数: -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行不要列出行号(默认值); -n :列出行号表示的方法,主要有三种: -n ln :行号在荧幕的最左方显示; -n rn :行号在自己原创 2020-12-14 21:11:12 · 106 阅读 · 0 评论 -
Linux下Gcc编译器的安装
为了能更新比较快,如果apt-get源为国外的,需要先改为国内的地址,方法如下cd /etc/aptmv sources.list sources.list.old #保存一个备份mv sources.list.me sources.list#sources.list.me为自己的地址源文件2.gcc安装sudo apt-get install build-essentail...原创 2020-12-14 20:51:38 · 164 阅读 · 0 评论 -
Linux下Samba的配置
配置Samba的目的目的就是为了使Linux的文件系统映射到windows上,方便文件的共享。如何配置sambasudo vim /etc/samba/smb.conf在最后添加如下几行:[share]comment = My Smabapath = /home/lzs/share #定义你自己的路径browseable = yes #允许浏览writeable = yes #允许写保存后退出3.为samba添加密码sudo smbpa原创 2020-12-14 20:39:07 · 137 阅读 · 0 评论 -
ulimit 命令
文章内容主要参考菜鸟教程ulimit命令作用Linux ulimit命令用于控制shell程序的资源。ulimit为shell内建指令,可用来控制shell执行程序的资源。用法ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u &l原创 2020-12-11 15:22:30 · 492 阅读 · 1 评论 -
ps命令常常用参数
ps是linux下最常用的也是非常强大的进程查看命令,常用搭配参数如下:-e 显示所有进程。-f 全格式。-h 不显示标题。-l 长格式。-w 宽输出。a 显示终端上的所有进程,包括其他用户的进程。r 只显示正在运行的进程。x 显示没有控制终端的进程可以配合管道命令 | 和查找命令 grep 同时执行来查看特定进程例: ps -ef | grep ls全格式显示ls命令...原创 2020-12-11 15:13:37 · 3704 阅读 · 0 评论 -
高性能服务器编程之统一事件源
文章目录高性能服务器编程之统一事件源一个简单的统一事件源实现示例2.读入数据总结高性能服务器编程之统一事件源在服务器编程框架中,都伴随着配置初始化,日志打印、信号处理、连接处理,数据处理等步骤。信号常常可以用来进行父子进程,线程的管控,但信号与连接到来/数据到来走的是不同的执行路线,并且信号处理函数要尽可能快地执行完,因为在信号函数处理期间,该信号不会被再次触发。为了能统一管理这些事件,一种典型的统一事件源的方法是,把信号的主要处理逻辑放到主循环中来做,当信号处理函数被触发时,它只是简单地执行目标信.原创 2020-12-09 12:34:05 · 386 阅读 · 1 评论 -
常见的IO复用场景
在网络程序中比较常见的要使用到IO复用的场景如下:客户端程序要同时处理多个socket,如非阻塞connect技术客户端程序要同时处理用户输入和网络连接。比如聊天室程序。TCP服务器要同时处理监听socket和连接socket。服务器要同时处理TCP请求和UDP请求。如回射服务器服务器要同时监听多个端口或处理多种服务,如xinetd服务器...原创 2020-12-06 15:03:30 · 415 阅读 · 0 评论 -
fork系统调用详解
写在前面的话最开始了解fork的时候,着急着应用,也没太去深究fork()的原理,因此也踩了些坑,比如,在fork之后,对类中定义好的一个变量,或对一个全局的变量(对父子进程全局),父子进程中的运行输出结果不一样,与最开始的子进程共享父进程资源预期结果不一样。在这里总结一下,希望后续看到的筒子做学问切记马马虎虎一个简单小问题的引入在详细展开前,请大家先来看这样一段代码:int main(){ int val = 0; pid_t pid ; pid = fork(); if(pid &g原创 2020-12-04 23:04:44 · 1874 阅读 · 0 评论