[置顶]关于博主

首先感谢各位通过域名52coder.net 52murong.com访问本站。52murong.com 慕蓉是我女朋友的名字,她也是一名程序员,现在访问该域与52coder.net均会打开本站。

52coder.net是很早之前与同学一起脑洞的域名:中文名可以叫做-我爱程序员。我记得那年冬天孟非主持的非诚勿扰很火,我信誓旦旦的说以后要做一个网站,专门去为程序员解决个人问题,于是就有了现在的这个域名52coder.net。当时比较热衷于论坛,折腾过Discuz,在读书时折腾过,最多的时候同时在线人数超过1000,论坛的注册人数达到了2w左右,现在却早已忘记当初因为什么原因关闭论坛。

博客开始......

七牛云失效

目前博客的写作方式为Makedown+图床方式,图床的话选择了七牛,前几天突然发现图片无法显示,参考如下链接七牛图片失效,将图床从七牛移动到github。

七牛有一点特别坑的是登录后台在后台无法下载图片,必须使用qrsctl命令行工具。而且我查找了邮箱,发现在域名失效前并未发送邮件通知,这真的是一个非常坑的处理问题的方法。参考上文链接中的方法,可以将图片下载到本地然后再上传到github。

脚本:

#!/bin/bash

#修改52coder为你的存储空间名,并将qrsctl与该脚本放在同一目录

imgs=`./qrsctl listprefix 52coder ''`

i......

11.09-11.25学习笔记

学习shell时学习了广为人知的fork炸弹

fork炸弹

GNU parallel官方文档

命令

find /usr/bin -type f -mtime +1 | xargs ls -alh | awk '{print $9}'

假如我们想要删除光标后的内容可以使用:CTRL + K,恢复的话使用CTRL + Y,如果想删除光标前的内容使用CTRL + U,CTRL+W删除光标前的一个单词直到遇到下一个空格。

使用上面的find命令可以测试上述快捷键。

CPU测试工具的使用:

Unixbench

awk入门教程

git官方文档

Linux top命......

GNU parallel

安装GNU parallel报错

因公司项目编译由串行修改为并行,因此学习GNU parallel知识,使用GNU parallel进行并行编译。

在下载了GNU parallel安装包,解压之后执行

./configure

make&&make install

结果提示如下错误:

[root@centos-linux-10 parallel-20171222]# make

CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /root/parallel-20171222/missing a......

使用addr2line定位程序崩溃位置

dmesg介绍

在介绍addr2line前需要学习下dmesg:

dmesg命令用于打印Linux系统开机启动信息,kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看(print or control the kernel ring buffer)。开机信息亦保存在/var/log/dmesg的文件里。

常用参数

格式:dmesg

查看开机信息。

格式:dmesg -c

清除开机信息,但/var/log/dmesg文件中仍然有这些信息。

实例一

dmesg消息重定向

dmesg >boot.me......

系统调用跟我学

系统调用跟我学

最近浏览到一篇不错的文章,略带有科普性质,原文链接:

系统调用跟我学一

系统调用跟我学二

系统调用跟我学三

系统调用跟我学四

coredump

最近在定位一个非必现的问题时存在一个认识错误,在linux中开启coredump的脚本如下:

#!/bin/bash

### Filename: coredumpshell.sh

### Description: enable coredump and format the name of core file on centos system

# enable coredump whith unlimited ......

Linux内核模块

cat /proc/modules

第一列: 模块的名字

第二列: 模块的内存大小,单位是bytes

第三列: 被load的次数,0以为着没有被load过

第四列: 是否依赖第三方moudle,列出这些module,不依赖第三方moudle使用-代替

第五列: 模块的状态,有Live, Loading, Unloading三种状态

第六列: 模块当前的内核内存偏移位置。这些信息,debug的时候会非常有用。例如一些诊断工具 oprofile。

[root@centos7-10 ~]# cat /proc/modules

xt_CHECKSUM 12549 1 - Live ......

C语言中的隐式转换

为了定义转换规则,C99允许每个整数类型具有"整数转换等级"。下面按从最高级到最低级的顺序排列。

(1)long long int、usigned long long int

(2)long int、unsigned long int

(3) int 、unsigned int

(4) short int 、unsigned short int

(5) char、signed char、unsigned char

(6)_Bool

比较转换规则如下:

如果两个操作数类型相同,过程结束,否则依次尝试下面的规则:

(1):如果两个操作数都是有符号型或者都......

Linux网络安全技术与实现

本文记录Linux网络技术与实现读书笔记,这是一本已经停产了的书,在豆瓣上评分颇高,此书为第二版,第一版书名为-更安全的Linux网络。笔记记录的形式不会采取面面俱到的方式,精选一些比较重要的内容,如果你没有接触过这方面的内容,阅读本文可能会有强烈的不适感。

TCP UDP及Socket的关系端口的分类

公认的端口:0-1023

注册的端口:1024-49151

动态端口:49152-65535

端口的作用

假设我们在服务器端主机运行了Web SSH及DNS三项服务。在TCP/IP的网络规范中,当一个网络应用运行起来时,都会占用一个端口,如服务器端的Web服务器启动时,即会占用......

The Linux Programming Interface

本文复习The Linux Programming Interface一书中,一些知识点的总结,源代码存在github中,在源代码中添加部分注释,用于学习与总结。

确定glibc版本

使用如下命令:

[root@centos7-10 files]# ldd /usr/bin/ls | grep libc

libcap.so.2 => /lib64/libcap.so.2 (0x00007f7d5a0c1000)

libc.so.6 => /lib64/libc.so.6 (0x00007f7d59aeb000)

然后在shell窗口中执行如下命令可以看到:

......