
linux
文章平均质量分 84
Linux 文章聚集地
岚天逸剑
这个作者很懒,什么都没留下…
展开
-
Linux后台开发工具箱-葵花宝典
目录 11. 前言 52. 脚本类工具 52.1. 双引号和单引号 52.2. 环境变量和变量 52.3. sed命令-字符串文本操作 62.4. sed和awk使用外部变量 62.5. awk 应用 62.5.1. awk给外部变量赋值 62.5.2. awk 多字符串分割 72.6. 日期操作 72.7. 设置shell模式 82.8. 设置shell提示 82.9. 浮点计算 92.10. 变量指定默认值 92.11. 确认是否继续 92.12. 取当前脚本文件路径 92.13. 动态变量 102.1原创 2023-02-20 17:00:08 · 1341 阅读 · 0 评论 -
IP和网段及子网掩码基础知识
IP地址由网络号和主机号两部分组成,网络号的最高位必须是“0”,IP地址和子网掩码求“与”算出网络地址,只有网络地址相同才可直接通信,否则需要借助路由。主机标识段为全1的IP地址为广播地址, 广播数据包不经过路由器,只能在同一子网内部广播,UDP的广播地址为255.255.255.255。子网中第一个地址为网络地址,最后一个地址为广播地址,这两个地址是不能配置在计算机主机上。根据网络号的不同,...原创 2018-10-10 09:53:58 · 22643 阅读 · 2 评论 -
将资源文件编译成源代码文件
目的:简化使用,比如省去了读取配置或者代码中直接大段难以维护的定义。常用场景:Schema、Lua、SQL等Linux 自带了资源编译工具 xxd,可将任意文件编译成 c 源代码文件。常用命令格式:xxd -i 源文件 目标文件CMake应用示例1(将 test.lua 编译为 test.cpp):# test.lua 编译成 cpp 文件exec_program( xxd ${CMAKE_CURRENT_SOURCE_DIR} ARGS -原创 2020-07-20 17:20:14 · 693 阅读 · 0 评论 -
获取指定目录大小函数源码
static __thread off_t dirsize; // 目录大小static int _du_fn(const char *fpath, const struct stat *sb, int typeflag){ if (FTW_F == typeflag) dirsize += sb->st_size; return 0;}// 获取指定目录大小函数(线程安全,但仅适用Linux)// 遍历方式实现,低性能off_t du(const原创 2020-07-20 14:52:12 · 255 阅读 · 0 评论 -
Linux后台开发工具箱-葵花宝典
目录目录 11. 前言 42. 脚本类工具 52.1. 双引号和单引号 52.2. 取脚本完整文件路径 52.3. 环境变量和变量 52.4. sed命令-字符串文本操作 52.5. sed和awk使用外部变量 62.6. awk给外部变量赋值 62.7. 设置shell模式 72.8. 设置shell提示 72.9. 浮点计算 72.10. 字符串操作 82.10.1. 删除前尾空格 82.10.2. 大小写转换 82.10.3. 不区分大小原创 2020-07-17 10:14:18 · 2590 阅读 · 1 评论 -
修改目录proc下的tcp_tw_recycle报“只读文件系统”
试图修改tcp_tw_recycle的值时,遇到错误: # echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle -bash: /proc/sys/net/ipv4/tcp_tw_recycle: 只读文件系统 该错误的原因是因为以只读(ro)方式mount了tcp_tw_recycle所在目录,比如因为目录“/pro...原创 2020-01-13 16:00:52 · 728 阅读 · 0 评论 -
联想笔记本上Ubuntu无线网卡问题
可能有两个问题:1、无无线网卡驱动2、无线网卡驱动不能自动加载问题1:无线网卡驱动百度出网卡驱动iwlwifi-9000,如iwlwifi-9000-pu-b0-jf-b0-34.618819.0.tar.gz,解压后将文件“.ucode”复制到目录/lib/firmware/问题2:自动加载无线网卡驱动编辑或新建文件/etc/modprobe.d/ideapa...原创 2019-12-22 18:59:14 · 1053 阅读 · 3 评论 -
C++ CGI报“资源访问错误”问题分析
一线上CGI偶发性会报“资源访问错误”,经过分析得出是因为CgiHost没有读取到CGI的任务输出,即CGI运行完成后连HTTP头都没有一点输出。然而实际上,不可能没有任何输出,因为CGI至少有无条件的HTTP头部分输出,因此问题是输出丢失了。CGI和CgiHost间是通过重定向CGI的标准输出到Unix套接字进行交互的,如果这个套接字坏了,或者CGI的标准输出关闭了,自然不会有任何输出...原创 2019-11-08 10:44:57 · 1549 阅读 · 0 评论 -
将Fedora 18 LXDE安装到U盘和进入图形界面的方法
打开Universal-USB-Installer,设置如下,点“Create”将Fedora安装到U盘上: 安装成功后,用U盘重启电脑,最后会进入Fedora 18LXDE的图形化登录界面,在这个界面是无法登录的。为了可登录,需要完成以下操作:1) 按“Ctrl+Atl+F1”组合键进入终端界面,如果“Ctrl+Atl+F1”不行,可试试“Ctrl+Atl+F2”等原创 2013-03-16 12:24:59 · 9418 阅读 · 0 评论 -
进程间传递文件描述符fd
众所周知,子进程会继承父进程已经打开的文件描述符fd,但是fork之后的是不会被继承的,这个时候是否无能无力了?答应是NO。Linux提供了一个系统调用sendmsg,借助它,可以实现进程间传递文件描述符fd,而且不仅限于父进程到子进程。sendmsg函数的原型如下: #include ssize_t sendmsg(int socket, const struct m原创 2014-04-14 09:44:22 · 19582 阅读 · 0 评论 -
madvise、fadvise、posix_madvise和posix_fadvise函数的使用
系统调用madvise的作用:建议内核如何使用指定段的内存。函数原型如下:#include int madvise(void *addr, size_t length, int advice); 参数advice的取值有如下几种:MADV_NORMAL MADV_RANDOM原创 2014-04-14 14:46:41 · 10985 阅读 · 0 评论 -
磁盘文件读性能测试
未缓存前:time ./x bin.tar file size is 816322560816322560 bytes read nowreal 0m3.378suser 0m0.000ssys 0m0.996s 被缓存后:time ./x bin.tar file size is 8163原创 2014-04-14 16:25:45 · 8060 阅读 · 0 评论 -
mysql_init调用卡住原因分析
有同学做类似如下的操作:class X{public:X() // 类X的构造函数ctor{_mysql_handler = mysql_init(NULL);}}; // 定义类X的全局变量X g_x; // 程序入口main函数int main(){。。。 。。。} 看似简单的代码,但非原创 2014-04-15 20:23:19 · 8857 阅读 · 0 评论 -
OpenSSH免密码登录SSH2
1. 如何确定是OpenSSH还是SSH2?执行命令“ssh -V”,通过它的输出,即可确定:SSH2ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) onOpenSSHOpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010原创 2014-04-16 12:22:02 · 2532 阅读 · 2 评论 -
strerror线程安全分析
导读strerror是否线程安全了? 1errno是否线程安全? 1附1:strerror源码 2附2:__strerror_r源码 2 strerror是否线程安全了?答案是NO,但它有个线程安全的版本:strerror_r。借助Linux的man,即可看到详情:#include char *strerror(int errnum);int原创 2014-04-16 13:30:47 · 10118 阅读 · 0 评论 -
SSH2免密码登录OpenSSH
1. 如何确定是OpenSSH还是SSH2?执行命令“ssh -V”,通过它的输出,即可确定:SSH2ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) onOpenSSHOpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010原创 2014-04-16 12:24:02 · 11649 阅读 · 1 评论 -
两个SSH2间免密码登录
以下针对的是ssh2,而不是ssh,也不是OpenSSH。配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过,操作环境为SuSE 10.1。如何确定是OpenSSH还是SSH2?执行命令“ssh -V”,通过它的输出,即可确定:原创 2014-04-16 12:25:40 · 9150 阅读 · 0 评论 -
Linux上获取CPU Core个数的实现
Linux上获取CPU Core个数的实现 可以通过多种手段取得CPU Core的个数,如:1) 调用系统提供的函数get_nprocs(),可以在头文件sys/sysinfo.h中发现它2) 借助系统提供的sysconf()函数:sysconf(_SC_NPROCESSORS_CONF)、sysconf(_SC_NPROCESSORS_ONLN),get_nprocs()也有个相原创 2014-05-02 16:39:03 · 10403 阅读 · 0 评论 -
SuSE Linux上修改主机名
1) 临时修改主机名临时修改使用hostname即可,格式为:hostname 新主机名。Hostname命令除可以临时修改主机名外,还可以用它来查看主机名,不带参数执行它,即为查看主机名。 2) 永久修改主机名修改文件/etc/HOSTNAME即可:cat /etc/HOSTNAMEVM-40-171-sles10-64 但修改后,原创 2014-04-17 16:01:00 · 10730 阅读 · 0 评论 -
Linux内核2.6.14源码分析-双向循环链表代码分析(巨详细)
Linux内核源码分析-链表代码分析 分析人:余旭 分析时间:2005年11月17日星期四 11:40:10 AM 雨 温度:10-11度 编号:1-4 类别:准备工作 Email:yuxu9710108@163.com 时代背景:开始在www.linuxforum.net Linux内核技术论坛上面发贴,在网友的帮忙下,解决了一些问题。 版权声明:版权保留。本文用作其他用途当经作者本人同意,转载原创 2014-04-10 10:55:57 · 721 阅读 · 0 评论 -
选择设置好ext3日志模式
Linux是一种开放的、因Internet而产生的操作系统。Internet的发展、以网络为中心的计算模式如电子商务被迅速接受和普及,都为 Linux提供了更巨大的机会,使之成为企业和部门级的首选平台。同时,Linux也以其对新技术的巨大包容能力为自身发展提供了良好的生长和栖息环境。这表现在其内核技术的发展为Linux环境下管理数据、存储数据、分配数据、升级数据提供了高性能的系统技术支持。ext3原创 2014-04-10 10:56:20 · 7937 阅读 · 0 评论 -
ps&CPU
#include void f();int main() { f(); return 0;} void f() { int i=0; //volatile int i=0; while (i} root@x:~# ps aux|grep xxx|grep -v greproot 825 96.5 0.0原创 2014-04-10 10:55:48 · 7811 阅读 · 0 评论 -
nginx详解
Nginx 概述HTTP基础功能: 处理静态文件,索引文件以及自动索引; 反向代理加速(无缓存),简单的负载均衡和容错; FastCGI,简单的负载均衡和容错; 模块化的结构。过滤器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请原创 2014-04-10 10:56:01 · 7972 阅读 · 0 评论 -
网站压力测试工具集
压力测试工具集工具 相关网址LoadRunner http://www.mercuryinteractive.com/products/loadrunner/SilkPerformer http://www.segue.com/products/load-s ... nce-testing/index.aspQALoad http://www.compuware.com/products/qace原创 2014-04-10 10:56:06 · 1330 阅读 · 0 评论 -
linux下top命令参数解释
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped,原创 2014-04-10 10:56:13 · 563 阅读 · 0 评论 -
算术运算指令
作者: 来源: 发布日期:2007-04-25 算术运算指令是反映CPU计算能力的一组指令,也是编程时经常使用的一组指令。它包括:加、减、乘、除及其相关的辅助指令。 该组指令的操作数可以是8位、16位和32位(80386+)。当存储单元是该类指令的操作数时,该操作数的寻址方式可以是任意一种存储单元寻址方式。 1、加法指令 、加法指令ADD(ADD Binar原创 2014-04-10 10:56:48 · 1080 阅读 · 0 评论 -
Linux下的strerror是否线程安全?
下列是glibc-2.14中的源代码: 点击(此处)折叠或打开 char * strerror (errnum) int errnum; { char *ret = __strerr原创 2014-04-10 10:58:30 · 9218 阅读 · 0 评论 -
bash/shell的字符串trim实现
#!/bin/shtrim(){ trimmed=$1 trimmed=${trimmed%% } trimmed=${trimmed## } echo $trimmed}测试:a=" x x "b=" b b"c="c c "echo "=$a="echo "=$b="echo "=$c="a原创 2014-04-10 10:58:34 · 13312 阅读 · 0 评论 -
brk/sbrk和mmap行为分析程序
#include #include #include // #include // int mallopt(int param, int value);// info mallopt, 一些系统可以man mallopt// M_TRIM_THRESHOLD: 紧缩内存阈值,对应的环境变量为MALLOC_TRIM_THRESHOLD_// M_MMAP_THRESHOLD: 使用原创 2014-04-10 16:20:11 · 17085 阅读 · 0 评论 -
Lsof命令详解
一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied” 我总结一下lsof指令的用法: lsof abc.txt 显示开启文件abc.txt的进程 lsof -i :22 知道22端口现在运行什么程序 lsof -c abc 显示abc进程现在打开的文件 lsof原创 2014-04-10 10:55:41 · 24333 阅读 · 0 评论 -
UNIX和Linux信号
1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。 另外注意:* 多个实时信号的响应顺序是有保证的。* 如果一个进程同时有实时信号和标准信号在pending,则优先响应标准信号。大家用的一般都是非时实信号,下边是信号列表.1)原创 2014-04-10 10:55:50 · 7789 阅读 · 0 评论 -
Linux操作系统下IPTables配置方法详解
如果你的IPTABLES基础知识还不了解,建议先去看看。 们来配置一个filter表的防火墙 1、查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCE原创 2014-04-10 10:56:16 · 7751 阅读 · 0 评论 -
autoconf手册(一)
Autoconf Creating Automatic Configuration Scripts Edition 2.13, for Autoconf version 2.13 December 1998 by David MacKenzie and Ben Elliston ------------------------------------------------原创 2014-04-10 10:56:41 · 554 阅读 · 0 评论 -
libtool的工作原理
libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;使用libtool的标准方法,可以在不同平台上创建并调用动态库。可以认为libtool是gcc的一个抽象,其包装了gcc(或者其他的编译器),用户无需知道细节,只要告诉libtool需要编译哪些库即可,libtool将处理库的依赖等细节。libtool只与后缀名为lo、la为的libtool文件打交道。(lo是目原创 2014-04-10 10:56:59 · 17192 阅读 · 0 评论 -
Vim编码知识,乱码问题
原文:http://demi-panda.com/2012/12/26/vim-encoding/ 在vim的初始学习阶段,乱码经常是困扰新手的一个比较烦躁的问题,本文试图阐述Vim的编码知识,及设置,针对乱码的原因和解决方案。 文本编码 常见的文本编码包括:ASCII、GBK、GB2312、GB18030、UTF8、UTF16等,各种编码的来源与详细知识请原创 2014-04-10 10:57:36 · 7863 阅读 · 0 评论 -
编译boost,去掉不使用的组件
说明:下面内容仅针对Linux环境(boost官网为:http://www.boost.org/,可从这里下载它的源代码包,这里要求下载.tar.gz包,而非.7z、.zip或bz2包)。在当前目录下,解压boost库,如:tar xzf boost_1_52_0.tar.gz完成后,会在当前目录下新生成一个boost子目录boost_1_52_0,进入boos原创 2014-04-10 14:30:59 · 8300 阅读 · 0 评论 -
Linux进程KILL不掉的原因
做过Linux开发的人通常遇到过一个进程不能kill掉的情况,即使使用的是kill -9方式,而一般的教课书都只说kill -9能杀死任何进程,遇到这种情况时就会感觉到很矛盾,其它这也是正常的,通常有两种情况是不能kill掉的:一是进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;二是进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当原创 2014-04-10 10:55:36 · 19886 阅读 · 0 评论 -
为什么ps中CPU占用率会有超出%100的现象?
前面的关于ps中的%CPU的含义一文已经介绍了CPU占用率的含义,那么为什么有时会在ps的输出中看到CPU占用率超出%100的现象呢?我们知道在/proc目录下每个进程都会有一个以它的PID以名字的目录,这个目录中有一个stat文件,它包含了和这个进程状态相关的各种信息,它的各个数值对应的含义在内核文档的Documentation/filesystems/proc.txt文件中有明确的定义:原创 2014-04-10 10:55:43 · 6402 阅读 · 0 评论 -
linux core文件机制
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制--------------------------------- 1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。 2原创 2014-04-10 10:56:54 · 7951 阅读 · 0 评论 -
升级Ubuntu 12.04下的gcc到4.7
我们知道C++11标准开始支持类内初始化(in-class initializer),Qt creator编译出现error,不支持这个特性,原因在于,Ubuntu12.04默认的是使用gcc4.6,而只有gcc4.7才支持C++11,使用如下办法升级Ubuntu 12.04下的gcc : 更新Ubuntu源g++-4.rarsudo add-apt-reposit原创 2014-04-10 10:58:11 · 760 阅读 · 0 评论