简单的 SSH 脚本

要进入不同的服务器配置东西,一条条的输入 ssh 命令,一两台没事,一旦数量大于10台,想死的心都有了,所以还是写 shell 来的方便点。

#!/usr/bin/expect -f

set port Port_Number
set user Username
set host Host Address
set password Password
set timeout -1

spawn ssh -D $port $user@$host
expect "*assword:*"
send "$password\r"
expect eof

很简单的一个,就是用了 expect 来进行交互,timeout 可以根据自己需要来设置时长,这里配合 -D 翻墙就一直在线吧。

Photoshop无法读取首选项

firefox打开90+的tabs后PS貌似就没响应了,顺手关掉,再开,发现一直卡死在读取首选项。重启,无效,郁闷,Google之~

解决方法:Shift+Ctrl+Alt一起按,然后右键打开PS,再用右键选择“打开”,提示删除首选项,done!

想想还是在Linux下简单啊,如果gimp挂了,跑到$home下删掉gimp的配置文件,然后再启动,跟新装的一样!!

Hello, Android

android_logoGoogle发布android也有一段时间了,平时也没太多时间来折腾,现在趁春节在家好好捣鼓一下android。

Google发布android的时候就承诺opensource,只要能连上Internet的就能download到android的sourcecode。

首先需要安装一堆的包和库,

sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl python sun-java6-jdk valgrind

然后安装repo

cd ~
mkdir bin
export PATH=$PATH:~/bin
curl http://android.git.kernel.org/repo >~/bin/repo
chmod a+x ~/bin/repo

再初始化代码仓库

repo init -u git://android.git.kernel.org/platform/manifest.git

全部OK后就可以download了

repo sync

现在可以休息一下了,速度就看运营商的心情了,趁这个空挡看看《马达加斯加2》不错
BTW:里面的四只企鹅太恶搞了 :-)
download结束后就可以make了。

然后去http://code.google.com/intl/en/android/download.html下载最新的android SDK,解压后把tools路径加到PATH里

export PATH=${PATH}:~/android/android-sdk/tools

再添加make后的img

export ANDROID_PRODUCT_OUT=~/mydroid/out/target/product/generic

现在就可以运行刚才make好的android

emulator

home

如果没那么多闲功夫去折腾,直接运行SDK里面的emulator也能玩。

当然,光运行这个也没大意思,Google提供了一揽子的开发方案,最easy的就是用Eclipse+Android Development Tools了。

package com.android.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}

helloandroid

这段code就是显示“Hello, Android”, 其中HelloAndroid是自动生成的class,还是很方便的。

Hardy Heron

刚发现blogspot竟然没有被水产,终于不要用梯子了~~

实在不能忍受本本上的伤心硬盘,拿着刚到手的工资买了个Hitachi的HTS541612J9AT00,貌似有什么垂直技术,反正看着比伤心的好多了,顺带买个Pioneer的DVDRW,实习期的钱是花的一分不剩。

瓦卡卡~咱也用120G了,现在想放什么就放什么。立马买票回家!

想了几种分区方案,最后还是这么分:

Windows
C:20GB
D:20GB
E:40GB

Linux
/:20GB
/home:13GB
swap:2GB

本来是装gentoo的,无奈智商不够,还是回Ubuntu

装Hardy的 alpha1 ,alternate安装,一路顺利,进去后发现还是老样子,不管,删OOo先,然后修改源update,完成后reboot。
reboot没问题,把启动的splash去掉,改[OK]为绿色:

修改/etc/lsb-base-logging.sh ,找到”echo [ok]”,修改成:

printf '[  '
$TPUT setaf 2 # green
printf OK
$TPUT op # normal
echo '  ]'

然后安装915resolution,虽然xwindows已经能认宽屏了,但是这个915resolution还是得装,可以实现控制台下的宽屏。先下个lrmi,make之后执行vbetest,得到几个值,我这是354,再编辑grub中的menu.list,在kernel行中加入:

video=intelfb:mode=1280x768-24@60,mtrr,ywrap vga=866

完成后先不重启貌似从7.10开始,U默认把frame buffer关掉了,需要手动开启一下:
编辑 /etc/initramfs-tools/modules,加入

fbcon
vesafb
vga16fb

然后把 /etc/modprobe.d/blacklist-framebuffer 里面的vesafb和vga16fb这两行给注释掉,最后

sudo update-initramfs -u

最后改一下控制台的字体,还是喜欢瘦字体,

sudo vim /etc/default/console-setup

或者

sudo dpkg-reconfigure console-setup

reboot后应该可以看到支持widescreen的控制台了,剩下的就是按照wiki里的一步步做下去了。

Install OMNeT++ under feisty

昨天被小杨同学叫去装软件,本以为很easy的东西,没想到从下午4点弄到晚上近7点,还没弄好!主要是长时间待在Ubuntu下人变得越来越懒,configure后一堆warning & erro都没心思看!不甘心,今天下午自己实验,仔仔细细的看了一遍config.log把错误一条条的找出来解决,经过两个小时的奋斗终于搞定!
1、首先要下载OMNeT++ 貌似现在最新的是3.4b2.将压缩包解压到用户目录下:

 tar -C ~/ -xvzf omnetpp-3.4b2-src.tgz

2、然后就是下载所依赖的包,好在这些包源里都有,直接apt得到:

 sudo aptitude install bison byacc flex graphviz imagemagick tk8.4-dev doxygen giftrans blt-dev libxml2-dev blt-demo doxygen-doc doxygen-gui html2ps tcl8.4-doc tk8.4-doc bison-doc

3、设置环境变量:

vim ~/.bashrc

添加如下内容:

export PATH=$PATH:~/omnetpp-3.4b2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/omnetpp-3.4b2/lib
export TCL_LIBRARY=/usr/lib/tcl8.4

保存后最好logout一次,偶一开始就是没有logout,结果在configure的时候报错,导致make不了!最好还是logout一下吧!

4、进入omnetpp-3.4b2目录下config & make

./configure

根据输出来判断是否正确,如果缺少某些包的话会提示(Akaroa,、MPI除外) 直到没有出现erro,并且看见三个Good后说明成功!然后就是make了!

5、一般config没错误的话make也应该没问题的,make通过后就可以运行了!

cd ~/omnetpp-3.4b2/samples/dyna
 ./dyna

Q:What is OMNeT++?

A:“The fact that OMNeT++ is highly modular and well structured is a big advantage when it comes to implementing new protocols to be used in the simulator. The process of implementing MQTT for OMNeT++ was quite straightforward and convenient especially thanks to the NED language.” Master’s Thesis of Julio Perez, September 2005, IBM Zurich Research Laboratory, Switzerland. Section 4.1, pp25.

我们到底为什么用linux?

问题源自于fans上的新手们,为了让您少一点烦恼,请用ubuntu吧!

自从04年用linux以来,关于win和lin的争吵就没有停止过!偶尔愤青一下,过去瞎掰两句,也有和别人吵的面红耳赤的时候;但是这次看见的确是linux的窝里斗!争执起Distribution来了!

回顾一下偶的linux史,从asialinux->RedHat9->FC3->SUSE9->Ubuntu,用过的不多,但只有ubuntu才是最适合我的!linux仅仅是个工具罢了,而不是拿来炫耀的资本!

很多”老牌”的linuxer对于ubuntu这种傻瓜似的操作嗤之以鼻!认为那是丢弃了linux的本来面目!可是偶不禁要问:linux的本来面目是什么?成天无休止的下源码包编译、安装?还是为了那仅有的一点点所谓的速度就动不动make一下kernel?
看看论坛里的问题吧:什么显卡不显示了,声卡没声音了,网卡认不出了,SATA的盘没法装了……问一下Distribution,结果来句RH7、FC2……试问在硬件发展如此迅速的今天这些tooooooold的Distribution还有什么意义?除了打击新手的信心还能干什么?为winfans提供辩论的证据?

Windows为什么成功?用户群是一方面,简单易用也是主要的问题!很多人曾经在论坛里跟我辨说linux不可能取代windows,因为她永远不会比windows易用!可是现在有个易用性和windows相当的ubuntu,linuxer们应该高兴才是,可是看看fans里面的反应! linux是一个工具,不是少数所谓“高手”的玩具。 绝大多数人装完linux都希望无须太多配置就可以立即投入使用,而不是在那里查资料、捣鼓各种配置。
的确,运用最原始的方法去安装linux软件,去看linux的kernel,可以了解OS的机制!但是不是所有的人都是稿研究的,他们需要的是一个安全的、干净的操作环境!而不是在那跟人唠唠叨叨自己的OS是怎么工作的!

这些人不是在推广linux,而是在那拖linux的后退!他们以”高手”自居,以为自己会make一些software就很ZB?!恰恰相反,他们是linux界最大的SB!