Linux
xuzhezhaozhao
这个作者很懒,什么都没留下…
展开
-
Linux 下 profile 技巧
Linux 下 profile 技巧用 profiler 来查看程序最耗时的部分, 以便在正确的地方优化是很重要的.zoom 一个图形化的 profiler, 非常简单, 而且好用, 入门教程, 注意编译的时候加上 ‘-O2 -g’ 参数以开启优化并保留符号列表. 最简单的用法就是启动 zoom 后点击 start, 然后马上运行你要 profile 的程序, 程序运行结束后点击 stop.原创 2015-09-17 19:07:31 · 2585 阅读 · 0 评论 -
Makefile语法详解 - 从入门到精通
由浅入深详细介绍Makefile的编写方法。概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一 个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要 了解HTML的标识的含义。特别在Unix转载 2013-05-03 12:12:19 · 3879 阅读 · 0 评论 -
使用Doxygen生成代码文档
doxygen 是一种用于 C/C++、Java™、Python 和其他编程语言的文档系统。其功能类似于原创 2014-09-13 21:46:42 · 1607 阅读 · 0 评论 -
LLVM Pass 初探
1. 首先要配置环境原创 2014-09-12 22:46:53 · 4454 阅读 · 1 评论 -
whitespace language, 全部由空白字符组成的编程语言
还是stack overflow 上的问题, Possibly quit your job with a polyglot原创 2014-09-11 12:04:41 · 2844 阅读 · 1 评论 -
Linux下无需输入密码自动登陆ssh服务器方法
用OpenSSH在linux下登陆ssh服务器时,每次都提示要输入密码,而且使用vim 的netrw插件编辑远程文件时每次修改后保存都要输密码,非常麻烦。查看了netrw的help文档,发现已经介绍了自动登陆ssh服务器的方法:1. 创建一个公开/私密钥对(在客户端机器上进行)ssh-keygen -t rsa(saving the file in ~/.ssh/id_rsa as pr原创 2014-08-27 09:45:49 · 3102 阅读 · 1 评论 -
gdb中调试stl
GDB中print方法并不能直接打印STL容器中保存的变量,其实只要http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt这个文件保存为~/.gdbinit 就可以使用它提供的方法方便调试容器.转载 2014-09-09 21:38:52 · 2114 阅读 · 0 评论 -
Linux下图形化调试工具: kdbg, Affinic
在linux下调试确实是个很麻烦的事, 用gdb调试不怎么方便, 没有在windows下用vs爽, 主要原因还是因为gdb是用命令行形式, 其实在linux下也有一些基于gdb的图形化调试工具.1. kdbgubuntu下 直接 sudo apt-get install kdbg 即可安装.若启动后出现 MNG error 11: Function is invalid at原创 2014-09-06 22:33:16 · 12835 阅读 · 0 评论 -
Ubuntu英文系统LaTex中文设置
原文地址:https://tumutanzi.com/archives/2007上次介绍过“简单的Windows英文操作系统LaTex中文解决方案”,然而我的个人笔记本电脑是Ubuntu 10.04英文操作系统,因此下面为博主亲自试验并总结的简单方法,解决如何在Ubuntu系统Texlive中处理LaTex中文文档(绝非不负责任地复制粘贴):先使用命令sudo apt-get in转载 2014-05-26 13:24:08 · 1306 阅读 · 0 评论 -
Linux 下git 保存用户名密码 (避免每次push输用户名密码)
Linux/Unix/Mac 系统新建一个 ~/.netrc 文件, 将 git 服务器, 用户名以及密码记录在这个文件, 如下所示:machine your-git-serverlogin your-usernamepassword your-password普通用户的如果有多个 server 就重复上面的三行, 分别输入对应的服务器、 用户名和密码即可.原创 2014-04-13 14:52:27 · 12881 阅读 · 0 评论 -
Linux 下编译使用Boost
Boost是什么不多说, 下面说说怎样在Linux下编译使用Boost的所有模块.1. 先去Boost官网下载最新的Boost版本, 我下载的是boost_1_56_0版本, 解压.2. 进入解压后目录: cd boost_1_56_0, 执行下面的命令:$ ./bootstrap.sh --prefix=path/to/installation/prefixprefix的原创 2014-09-26 18:06:09 · 4312 阅读 · 0 评论 -
Linux中getopt函数用法
最近做cache lab 用到了getopt函数, 用man 3 getopt查看了下用法, 做个总结.描述:getopt函数是用来解析命令行参数的, 以‘-’或‘--’开头的参数为选项元素,除去‘-’或‘--’的选项元素为选项字符。如果getopt函数被重复调用,则它将会依次返回每个选项元素中的选项字符。使用getopt函数需要包含以下头文件:#include #in原创 2013-05-01 11:25:24 · 20954 阅读 · 3 评论 -
Bash shell 终端快捷键
用linux离不开shell, 下面分享几个我最喜欢的原创 2014-10-16 17:41:54 · 1026 阅读 · 1 评论 -
Linux 下查找 .so 文件中函数入口
有时候会想知道 .so 文件中某些信息,比如版本,函数入口等。strings 命令是个很有用的命令,比如我想知道 libstdc++.so 这个动态库里面是否有 refill 函数,可以用$ strings libstdc++.so | grep refill输出_ZN9__gnu_cxx17__pool_alloc_base9_M_refillEm由于 c++ 编译后会修改函数签名,可以用 c++原创 2016-10-09 20:07:02 · 6635 阅读 · 0 评论 -
GDB调试技巧
GDB调试技巧自己经常用到的一些GDB命令. - si 单指令执行 - display/i $pc 执行si命令时打印汇编代码 - 回车 重复上一条命令 - b 断点, b *0x8048a45 在指定内存位置停止, 也可以设在函数名上 - n 单语句执行 - c 继续执行 - finish 结束当前函数 - bt 查看函数堆栈 - shell 执行shell命令 - li原创 2016-08-26 11:45:40 · 1241 阅读 · 1 评论 -
GDB调试中将信号发送给程序的方法
在看CSAPP的chapter 8 Exceptional Control Flow时发现用GDB调试程序时程序无法接收到ctrl-c发送的终止信号, 上网查了一下, 原来是因为GDB默认会截获信号, 使调试程序无法接收到信号, 要使调试程序能够接收到信号有两种办法:(1)改变gdb信号处理的设置 比如,以下设置会告诉gdb在接收到SIGINT时不要停止、打印出来、传递给调试目标程序原创 2013-05-07 13:49:30 · 7195 阅读 · 0 评论 -
Linux下比较好用的性能监控工具
Linux下比较好用的性能监控工具strace 监控进程的系统调用iostat 监控磁盘状态sarvmstat(待补充)原创 2016-08-23 15:34:33 · 2463 阅读 · 0 评论 -
bash 变量名中包含变量赋值方法
bash 变量名中包含变量赋值方法写bash脚本时经常要会有变量名中包含变量, 例如有变量 s1, s2, s3, … , 用变量 i 表示数字, 怎样方便的用for循环赋值, 解决方法是用 eval 命令. 如下:eval s${i} = ${var}给其他变量赋值eval ss=\$s${i}打印用echo \$s${i}原创 2015-09-06 16:38:31 · 6122 阅读 · 0 评论 -
GCC Tips
GCC Tips-print-file-name 打印默认的头文件搜索路径$ gcc -print-file-name=include/usr/lib/gcc/x86_64-linux-gnu/4.8/include-dM 不做实际的预处理,仅仅列出所有#define的宏, 这些宏大部分与体系结构和GNU相关,或来自所包含的头文件。$gcc -E -dM hello.c另外,还有一些-d原创 2015-08-23 18:09:57 · 667 阅读 · 0 评论 -
flex匹配json number, string
根据官网给出的number格式定义很容易匹配:DIGIT [0-9]DIGITS {DIGIT}+INT "-"?([0-9]|[1-9][0-9]*)FRAC "."{DIGITS}E [eE][-+]?EXP {E}{DIGITS}NUMBER {INT}({FRAC}|{EXP}|{FRAC}{EXP})?string的匹配就复杂点, 开始原创 2015-04-12 16:47:12 · 1082 阅读 · 0 评论 -
bison(yacc)学习笔记
看matz的streem项目时对其中bison解析语法的几个地方有些不懂, 上网搜了些资料, 把这些记录下来.bison是啥就不多说了, 网上一搜一大堆. bison官方文档.首先是这个用法%union { node* nd; strm_id id;}%type <nd> program compstmt%type <nd> stmt expr condition block con原创 2015-04-12 16:06:43 · 8205 阅读 · 3 评论 -
Lex匹配unicode字符
想用lex&yacc写一个json的解析, 而json的string类型是包含unicode的, 词法解析工具Lex是不直接支持unicode字符匹配的, 那如果要想匹配unicode字符应该怎么办呢, 在stack overflow上看到一个很好的解答: http://stackoverflow.com/questions/9611682/flexlexer-support-for-unicode原创 2015-04-11 22:23:23 · 2297 阅读 · 0 评论 -
Linux cat 命令源码剖析
最近在读APUE, 边看还得边做才有效果. 正好linux下很多命令的是开源的, 可以直接看源码. GNU coreutils 是个不错的选择. 源码包有我们最常用的 ls, cat等命令的源码, 每个命令都比较短小精悍, 适合阅读. 下面是我阅读 cat 命令的一点笔记.到这里下载源码. 在源码根目录下 ./configure; make 就可以直接编译, 修改后make就可以编译了. 命令源码在 src/目录中, lib/目录下有一些用到的辅助函数和常量定义.原创 2014-11-07 21:05:52 · 9317 阅读 · 3 评论 -
Ubuntu 12.04 建立 TopCoder 启动器
Ubuntu 12.04 建立启动器很简单, 选右上角的齿轮图标 - Starup原创 2014-04-13 14:15:41 · 1595 阅读 · 0 评论 -
Linux下pdf乱码解决方案
今天在ubuntu看一篇中文PDF时,发现乱码了原创 2014-04-10 16:57:41 · 1790 阅读 · 0 评论 -
Linux下卸载vmware
最近vmware出问题了, 要卸载vmware, 记录一下过程.vmware搞的进系统就崩溃, 于是重启进了recovery模式, 进入root shell模式, 先将文件系统挂载为可读写#mount -o remount,rw /#vmware-installer -l # 列出安装的所有的vmware组件#vmware-installer -u vmware-work原创 2013-05-02 23:51:55 · 2140 阅读 · 0 评论 -
GDB 常用技巧
自己经常用到的一些GDB命令.si 单指令执行display/i $pc 执行si命令时打印汇编代码回车 重复上一条命令b 断点, b *0x8048a45 在指定内存位置停止, 也可以设在函数名上n 单语句执行c 继续执行finish 结束当前函数bt 查看函数堆栈shell 执行shell命令原创 2013-04-23 20:56:28 · 1024 阅读 · 0 评论 -
Linux 常用命令
转载地址: http://blog.csdn.net/cyl937/article/details/8946180系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁转载 2013-05-19 20:17:35 · 916 阅读 · 0 评论 -
读懂diff
读懂diff作者: 阮一峰日期: 2012年8月29日diff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入: $ diff diff就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂diff。转载 2013-05-04 20:06:20 · 939 阅读 · 0 评论 -
GDB命令大全
学习使用了GDB一段时间后,发现它真的好强大!好用!GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:转载 2013-04-20 18:50:54 · 1098 阅读 · 0 评论 -
GDB查看内存命令(x命令)
GDB查看内存命令(x命令)可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示:x/ n、f、u是可选的参数。n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。f 表示显示的格式,参见上面。如果地址所指的是字符串,那么格式可以是s,如果地址是指令地址,那么格式可以是i。u 表示从当前地址往后请求转载 2013-04-20 19:45:48 · 2167 阅读 · 0 评论 -
linux下用vim+ctags看源代码
生成tags文件、配置vi-------------------------------------------(1)进入源码所在目录:# cd /usr/src/linux(2)生成针对源码的tags,因为ctags确省不把函数声明作为tag所以要加--c-types=+px(见注1)# ctags -R --c-types=+px(3)在vi配置文件中加入生成的tags转载 2013-04-27 23:40:50 · 2714 阅读 · 0 评论 -
Unix下rootkit
传统的Rootkit是一种比普通木马后门更为阴险的木马后门。它主要通过替换系统文件来达到目的,这样就会更加隐蔽,使检测变得比较困难。传统的Rootkit主要针对Unix平台,例如Linux、AIX、 SunOs等操作系统,有些Rootkits可以通过替换DLL文件或更改系统来攻击Windows平台。Rootkit并不能让你直接获得权限,相反它是在你通过各种方法获得权限后才能使用的一种保护权限的措施转载 2013-04-25 00:10:48 · 1463 阅读 · 0 评论 -
完全用Linux工作
我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。 GNU/Linux 不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。 我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的。 这篇文章也不是用来比较 Linux 和 Windo转载 2013-04-24 22:45:50 · 1220 阅读 · 0 评论 -
vim 常用技巧
平时自己用的时候整理的cw 修改词cc 修改整行 c$dd 删除yw 复制一个单词"*yy 复制行到剪贴板e 移到单词尾w 移到下一个单词首:tabedit 标签页ctrl+u 当前文件的前一个位置ctrl+d 向下半页ctrl+e 向下一行ctrl+f 向下一页ctrl+b 向上一页zt 将当前行置顶zb原创 2013-04-23 20:52:51 · 1353 阅读 · 0 评论 -
Install Gimp 2.8 in Ubuntu 12.04
Ubuntu 12.04 的源里的gimp一直不更新, 只能安装gimp 2.6版本, 下面是在ubuntu 12.04下安装gimp 2.8的方法:1. Uninstall Gimp from your system:sudo apt-get autoremove gimp gimp-plugin-registry2. Ad原创 2013-05-19 17:12:08 · 1414 阅读 · 0 评论 -
解决文件存在却提示 No such file or directory 错误的问题
重装了下Ubuntu发现做CSAPP的shell lab时运行 ./tshref 会提示 No such file or directory但文件tshref存在, 上网搜了下, 原来是运行该程序需要32bit的libs, 而我的系统是64位的, 用下面的命令安装32位包sudo apt-get install ia32-libsOK, 问题解决了!可以用命令 fi原创 2013-05-06 13:55:26 · 33668 阅读 · 0 评论 -
Ubuntu开机保存屏幕亮度的最有效方法, 无需任何软件
Ubuntu每次重启之后都不能保存屏幕亮度, 这是个很烦人的问题, 在国外一个网站上搜到了一个很有效的解决方法, 无需任何软件就可以实现. 方法如下: 将下面的python代码复制保存为.setBrightness.py文件, 放在你的家目录下面, 然后点击ubuntu右上角的齿轮图标, 选择Startup Application, 再点击Add, Name行随便输, command行输入py原创 2013-05-02 10:01:30 · 1928 阅读 · 0 评论 -
Linux下有道词典客户端 openyoudao
无意中发现有道居然有Linux客户端了,不过不是官方出品的,是开源原创 2014-04-15 22:04:18 · 1412 阅读 · 0 评论 -
wget下载整个网站
在windows下可以用Teleport下载网址,在linux下可以使用wget实现类似功能。原创 2014-04-15 21:18:11 · 1172 阅读 · 0 评论