技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

随笔分类 -  UNIX&Linux

上一页 1 2 3 4 下一页

linux中screen命令的用法
摘要:http://www.9usb.net/201002/linux-screen-mingling.html作为linux服务器管理员,经常要使用ssh登陆到远程linux机器上做一些耗时的操作。也许你遇到过使用telnet或SSH远程登录linux,运行一些程序。如果这些程序需要运行很长时间(几个小时),而程序运行过程中出现网络故障,或者客户机故障,这时候客户机与远程服务器的链接将终端,并且远程服务器没有正常结束的命令将被迫终止。又比如你SSH到主机上后,开始批量的scp命令,如果这个ssh线程断线了,scp进程就中断了。在远程服务器上正在运行某些耗时的作业,但是工作还没做完快要下班了,退出的 阅读全文

posted @ 2013-09-16 16:55 codestyle 阅读(2137) 评论(0) 推荐(0) 编辑

shell下 使用心得
摘要:打印时间的命令date +'%F %k:%M:%d'crontab启动计划任务,注意两件事情:1)crontab里启动的脚本,如果需要读取文件,需要使用绝对路径,或者在脚本里cd到目录所在的绝对路径2)crontab里启动的脚本,如果需要使用mysql这样的命令,不能直接"mysql -h -uroot" 而是要指定mysql程序的绝对路径,例如/usr/local/mysql 该路径需要可以通过 which mysql 来查询 阅读全文

posted @ 2013-09-13 13:50 codestyle 阅读(150) 评论(0) 推荐(0) 编辑

新浪研发中心: Berkeley DB 使用经验总结
摘要:http://blog.sina.com.cn/s/blog_502c8cc40100yqkj.htmlNoSQL是现在互联网Web2.0时代备受关注的技术之一,被用来存储大量的非关系型的数据。Berkeley DB作为一款优秀的Key/Value存储引擎自然也在讨论之列。最近使用BDB来发一个KV系统,并将这段时间的BDB的学习和使用经验记录如下。(项目中使用了BDB的4.8.30版本,本文所有涉及的具体问题都基于该版本)。1. Berkeley DB的简介Berkeley DB(BDB)是一个高性能的嵌入式数据库编程库(引擎),它可以用来保存任意类型的键/值对(Key/Value Pair 阅读全文

posted @ 2013-08-20 14:41 codestyle 阅读(579) 评论(0) 推荐(0) 编辑

C语言解析日志,存储数据到伯克利DB 2
摘要:#编译程序gcc -o historydb historydb.c -ldb#将2013年8月9日的用户记录写入数据库 (程序自动识别新用户入库,跳过老用户)./historydb -f 20130809.userlist 20130809#查询guest1985215666654在2013年8月8日有没有访问业务bch2000./historydb -s "bch2000 guest1985215666654" 20130808#include #include #include #include #include #include #include #define DA 阅读全文

posted @ 2013-08-19 18:22 codestyle 阅读(341) 评论(0) 推荐(0) 编辑

(2010-8-31) awk内存泄漏以及缓慢的正则表达式计算速度
摘要:AWK内存泄露:这几天本来就很郁闷,遇到搭建在hadoop平台上的hive平台有很多问题。写个好好的sql语句,总是说这个错误那个错误。然后,今天遇到一个更加郁闷的问题,居然分析淘宝数据的awk都运行不了了,出现了传说中的内存不足的错误。如下2个简单的awk语句:awk '{match($4, /(search.taobao.com.+uniq=seller.*)/,a); if(a[1] != null) c++;}END{print c}'awk '{match($4, /(search.taobao.com)/,a); if(a[1] != null) c++;} 阅读全文

posted @ 2013-08-19 10:46 codestyle 阅读(636) 评论(0) 推荐(0) 编辑

C语言解析日志,存储数据到伯克利DB
摘要:编译命令gcc -o dbwriter dbwriter.c -ldbdbwriter.c#include #include #include #include #include #define DATABASE "demo.db"/* 功能:解析日志提取数据(pv)日志格式:pp.cn guest:123456 100*/int parseLog(char *s,char **pv){ int flag = 0; while(*s) { if(*s==' ') { ... 阅读全文

posted @ 2013-08-16 17:57 codestyle 阅读(504) 评论(0) 推荐(0) 编辑

awk的接口实现方案1
摘要:module/a.awkfunction sum(a, b){ return a + b}module/b.awkfunction sum(a, b){ return a * b}main.awkEND{ print sum(3,4); }调用方式:echo "" | igawk -f main.awk -f module/a.awk# 打印 7echo "" | igawk -f main.awk -f module/b.awk# 打印 12这样也能体现接口的一种理念:让main.awk里的代码依赖接口(sum函数) 而控制不同模块文件的加载控制行为, 阅读全文

posted @ 2013-08-15 15:23 codestyle 阅读(181) 评论(0) 推荐(0) 编辑

痛并快乐的造轮子之旅:awk访问数据库之旅
摘要:俺是一枚悲催的数据统计程序员,从先辈的手里接收了这样的代码:#! /bin/shalias statdb="mysql -h 192.168.1.1 -u stat -paaa statdb"sql="select * from abc"echo $sql | statdb -s > abccat abc | awk '{...}' #此处省略400行俺对于这样的代码标示极度不认同,追求模块化才是俺的理想,于是我把代码写成了这样#! /bin/shalias statdb="mysql -h 192.168.1.1 -u 阅读全文

posted @ 2013-08-07 17:11 codestyle 阅读(640) 评论(0) 推荐(0) 编辑

shell脚本的桩
摘要:项目代码:alias book_search="/usr/local/mysql/bin/mysql -h 172.18.12.202 -uppstat -pstatpp book_search"echo "select id,cpname from search_cp_infomation where hide=1;" | book_search -s > $cpFile使用打桩代码alias book_search="/home/lishujun/src/mockobject/book_search"echo "s 阅读全文

posted @ 2013-07-31 18:12 codestyle 阅读(378) 评论(0) 推荐(0) 编辑

ldd命令--查看命令依赖的库文件
摘要:.在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行;在Linux环境下通过ldd命令即可实现,在终端下执行:ldd /bin/ls //ldd命令通常使用"-v"或"--verbose"选项来显示所依赖的动态连接库的尽可能的详细信息。即可得到/bin/ls命令的相关共享库文件列表:libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001c000) libc.so.6 => /lib/libc.so.6 (0x40020000) /lib/ld- 阅读全文

posted @ 2013-07-30 13:42 codestyle 阅读(3631) 评论(0) 推荐(0) 编辑

链接
摘要:http://littlepig3056.blog.163.com/blog/static/180758353201152992934358/编译器在链接时优先在环境变量$LD_LIBRARY_PATH指定的路径下寻找,如果多个路径下都有需要的动态链接库,则且优先使用靠前的路径下的动态链接库一般默认的优先级是: /usr/local/lib /usr/lib /lib /lib64(实际上是一个链接符,指向/lib)strings /home/lxn/lib/libxul.so | grep keywords 使用模式识别出libxul.so中的字符串,并找出包含keywords的 阅读全文

posted @ 2013-07-30 13:29 codestyle 阅读(184) 评论(0) 推荐(0) 编辑

LDD命令--可执行文件依赖的库出现错误时
摘要:http://littlepig3056.blog.163.com/blog/static/180758353201212751814134/ldd 查看可执行文件依赖的库,结果会列出依赖的库名及依赖库所在路径ldd命令执行时,从环境变量LD_LIBRARY_PATH查找可执行文件链接的库。所以要让可执行文件链接到正确的库有两种方式:1. 编写setenv.sh脚本设置环境变量LD_LIBRARY_PATH 采用这种方式,要求每次启动新会话后,都必须执行source setenv.sh命令行,使得设置对于当前会话生效。2. 修改用户根目录的.bash_profile文件export LD_L. 阅读全文

posted @ 2013-07-30 13:21 codestyle 阅读(1551) 评论(0) 推荐(0) 编辑

log4c 编译安装简单小结(ubuntu12)
摘要:1 下载源码,解压 (假定解压到了当前用户的根目录下,位置是~/log4c-1.2.3)2 编译安装log4c(指定--prefix极其重要,如果没有指定到/usr下会有一堆麻烦事,还有,不能按照他的README里说的,指定到/path/of/installation,因为这样真的会在根目录下建立这样的目录)cd ~tar -zxvf log4c-1.2.3.tar.gzmkdir build; cd build../log4c-1.2.3/configure --prefix=/usr/local/log4cmakemake install3 编译log4c自带的例子cd ~/log4c-1 阅读全文

posted @ 2013-07-29 18:03 codestyle 阅读(1218) 评论(0) 推荐(1) 编辑

/etc/ld.so.conf的使用说明
摘要:/etc/ld.so.conf这个文件记录了编译时使用的动态链接库的路径。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件如果你安装了某些库,比如在安装gtk+-2.4.13时它会需要glib-2.0 >= 2.4.0,辛苦的安装好glib后没有指定 --prefix=/usr 这样glib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib=================库文件的路径如 /usr/lib 或 /usr/local/lib 应该在 /etc/ld.so.conf 文件中,这样 ldd 才能找 阅读全文

posted @ 2013-07-29 17:47 codestyle 阅读(5623) 评论(0) 推荐(0) 编辑

sort命令总结
摘要:功能:排序语法:sort [-bcdfimMnr][-o][-t][+-][--help][--verison][文件]参数: -b 忽略每行前面开始出的空格字符。 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 -f 排序时,将小写字母视为大写字母。 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -c 检查文件是否已经按照顺序排序。 -m 将几个排序好的文件进行合并。 -M 前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -o 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t 指定排序时所用的栏位分隔字符。 -k 阅读全文

posted @ 2013-07-19 15:17 codestyle 阅读(354) 评论(0) 推荐(0) 编辑

Shell脚本调试技术
摘要:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调试机制和调试工具的支持,其输出的错误信息又往往很不明确,初学者在调试脚本时,除了知道用e 阅读全文

posted @ 2013-07-19 13:10 codestyle 阅读(245) 评论(0) 推荐(0) 编辑

解决SecureCRT中文显示乱码
摘要:操作步骤以下两步:远程linux机器。修改环境变量LANG。例如在~/.bash_profile里面添加[plain]view plaincopyexportLANG=zh_CN.UTF8重新登录之后生效。现在查看一下当前设置:[plain]view plaincopymyname@myhost~>localeLANG=zh_CN.UTF8LC_CTYPE="zh_CN.UTF8"LC_NUMERIC="zh_CN.UTF8"LC_TIME="zh_CN.UTF8"LC_COLLATE="zh_CN.UTF8" 阅读全文

posted @ 2013-07-15 17:12 codestyle 阅读(286) 评论(0) 推荐(0) 编辑

shell的数组操作
摘要:#/bin/bash#创建数组方式1arr[0]=helloarr[1]=world#创建数组方式2arr=(hello world)#创建数组方式3arr=([1]=hello [2]=world)#遍历数组方式1for i in ${arr[*]}do echo $idone#获得数组长度length=${#arr[@]}echo $length#遍历数组方式2i=1while [ $i -lt $length ]do echo $i echo ${arr[i]} i=`expr $[$i+1]`donebash是更高级的sh(支持数... 阅读全文

posted @ 2013-07-11 13:16 codestyle 阅读(217) 评论(0) 推荐(0) 编辑

用linux mail命令发送邮件[Linux]
摘要:mail [-s 邮件标题] [邮件地址2] [邮件地址3]> [ [-F 显示发送人姓名]说明接收邮件地址以空格分隔加粗的表示必选从终端输入邮件内容# 以单独的一行点号结束邮件内容的输入mail -s "bookshelf.pp.cn" lishujun@3gpp.com.cn jinpeng@3gpp.com.cn -- -f lishujun@3gpp.com.cn -F leehello.EOT从文件中输入邮件内容mail -s "bookshelf.pp.cn" lishujun@3gpp.com.cn jinpeng@3gpp.com. 阅读全文

posted @ 2013-07-03 15:17 codestyle 阅读(753) 评论(0) 推荐(0) 编辑

awk的日志模块追加日期时间字段的方案
摘要:function test(){ i = 0 while(i<20) { system("sleep 1") "date +'%Y-%m-%d %H:%M:%S'" | getline mydate; close("date +'%Y-%m-%d %H:%M:%S'"); print "[INFO]["mydate"]"; i++ }}{ test()}function test(){ i = 0 while(i<20) { system(" 阅读全文

posted @ 2013-06-18 16:08 codestyle 阅读(665) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 下一页
点击右上角即可分享
微信分享提示