GuruNet's profileGuru_Net's BlooooogPhotosBlogLists Tools Help

Blog


    October 28

    升级了kernel

    那天把我的台式机从古老的Sarge升级到了Etch之后,今天启动系统,突然发现进不了X了,报了一个这样的错误:failed to initialize core devices.突然想起在启动的时候还出现过这样的信息:udev requires a kernel>=2.6.15.估计是内核的版本低了,造成了udev不能正常工作导致的,于是google了一把,原来Debian升级内核可以 这样简单,按照如下几步来做便可。
    1.查看现在最新的内核

        aptitude search kernel-image

        注意:这里说的最新内核只是通过了Debian的内核

    2.选择最新内核进行升级

        apt-get install kernel-image-2.6-686
    然后reboot,选择新的内核进入,再用如下的命令删除旧内核即可:
    # dpkg --purge --force-remove-essential kernel-image-2.4.27-2-386
    然后startx,就能进入X window了.
    Debian真是太方便了,为懒人准备的Linux....哈哈

    April 09

    BASH笔记【摘自肥肥世家】

    1.BASH初始化环境文件查找顺序
    /etc/profile (初始化系统级别环境)------> $HOME/.bash_profile---------->.bashrc文件

    2.一些常用的环境变量
    $LOGNAME $HOME $PATH $TZ $MAILCHECK $PS1 $PS2 $PWD

    3.后台运行 & ,查看后台运行的命令 jobs

    4.常用的控制键
    Ctrl_C 中止当前命令
    Ctrl_D 输入结束
    Ctrl_\ 若Ctrl_C无效,则中止当前命令
    Ctrl_S 禁止屏幕输出
    Ctrl_Q 开启屏幕输出
    DEL或Ctrl_?删除最后的字符(不知为啥Ctrl_?在我的debian下无效:( )
    Ctrl_U 删除整行
    Ctrl_Z 暂停当前命令

    5.用户环境配置
    1> .bash_profile  .bashrc  .bash_logout
       以上3个是bash shell的用户配置文件,位于用户的主目录下。其中的.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行。.profile(由Bourne Shell 和 Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词。
    2> .bashrc文件会在shell调用另一个shell时读取,也就是在shell中再键入bash命令启动一个新shell时就会去读该文件,但一般都会在.bash_profile里调用.bashrc脚本以便统一配置用户环境。
    3> .bash_logout在退出shell时被读取,可以做一些清理工作。
    4> /etc目录的bash.bashrc和profile是系统级的配置文件,当在用户主目录下找不到.bash_profile和.bashrc时,就会读取该两个文件,.bash_history是bash shell的历史记录文件,里面记录了你在bash shell中输入的所有命令,可通过HISSIZE环境变量设置在历史记录文件里保存的记录条数。
       当我们修改了这些配置文件后,可以用source .bash_profile使修改内容马上生效.


                                                 ----------Edited by Gvim 7.0
    March 19

    残念

           今天在水木病毒版逛,偶遇昨天那个病毒的解法,这里贴一个地址:
            http://baike.baidu.com/view/767931.htm
           我想说的是:   FUCK OSO.EXE,AND FUCK THE VIRUS WRITER!!!!
    February 07

    Java notes

    出于谋生的原因,最近还是静下心来学习Java programming了,贴一些最近自己动手coding过的代码以及经验吧.Java大牛们狠狠的拍吧.(代码都是来自Core Java 2 Volume I,有所改动)--------------------------------------------------------------------------------------------------------------------public class ArrayTest{public static void main(String args[]){int[] smallPrimes = {2,3,5,7,9,11,13};for(int i = 0;i < smallPrimes.length;i++)System.out.println(i+": "+smallPrimes[i]);smallPrimes = new int[]{1,1,1,1,1,1,1};System.out.println("After reinitialize...");for(int i = 0;i < smallPrimes.length;i++)System.out.println(i+": "+smallPrimes[i]);}}/*1.Array的获取大小的方法是length而不是length();2.可以用 A = new int[]{x,x,x,x,x,x}的方式重新初始化一个Array;*/--------------------------------------------------------------------------------------------------------------------public class ArrayCopyTest{public static void main(String args[]){int[] OldArray = {1,2,3,4,5,6};int[] NewArray = {7,8,9,10,11,12};System.out.println("Before Copying...");System.out.println("OldArray is ...");for(int i = 0;i < OldArray.length;i++)System.out.println(i+": "+OldArray[i]);System.out.println("NewArray is ...");for(int i = 0;i < NewArray.length;i++)System.out.println(i+": "+NewArray[i]);System.arraycopy(NewArray,0,OldArray,0,6);System.out.println("After copying...");System.out.println("OldArray is ...");for(int i = 0;i < OldArray.length;i++)System.out.println(i+": "+OldArray[i]);System.out.println("NewArray is ...");for(int i = 0;i < NewArray.length;i++)System.out.println(i+": "+NewArray[i]);}}/*1.System.arraycopy可以在两个Array之间进行Array元素的值的copy;2.Array元素的index从0开始,在遍历Array时应该是使用< sets.length;i++)sets[i] = i + 1;for(int i = 0;i < k;i++){int r = (int)(Math.random() * n);result[i] = sets[r];sets[r] = sets[n-1];n--;}Arrays.sort(result);for(int r:result)System.out.println("I_th in result is "+r);}}/*1.Math.random()与某个int型相乘后可能损失精度,需要用(int)(Math.random()*n)强制转换,Math类属于java.lang.2.foreach形式的loop里面那个是':'而不是';';3.Arrays类属于java.util,里面有些可用于Array(搜索和排序)的方法.*/--------------------------------------------------------------------------------------------------------------------import java.util.*;public class OutStreamTest{public static void main(String args[]){Scanner in = new Scanner(System.in);System.out.println("What's your name?");String name = in.nextLine();System.out.println("OK,your name is "+name);}}/*总结:1.Scanner必须引用自java.util;2.System.in...3.import一行后面必须有';'*/PS:MSN的空间实在是太慢了,又想搬家了...
    February 04

    Vista...

    昨天和同事去电脑城,发现一片喜气洋洋的景象...张灯结彩似的,才知道,原来是Vista发布了正式版了.
    不可否认,对于M$来说,这是又一个milestone,因为他们又做出了一个挣钱工具,可以依靠其在PC OS的垄断地位,继续推行他们的商品,而且这个据称耗资6 billion dollars,花了5年时间完工的炫目的东东.国内的各大PC厂商也能依靠着M$的这个平台,靠着春节这个黄金时段,打捞一笔,而内存厂商,估计得天天给M$烧香了,感谢佛祖神明了.NND,这个劳什子玩意,靠着那个弱智的炫丽界面,也就能忽悠下PC user而已,越来越傻瓜化的操作界面(晕啊~~~,电脑城那小伙居然给偶演示语音操作OS的功能),越来越大的内存胃口...启动个系统,不开其他的程序,居然内存就耗了近500M.有这个必要嘛?
    然而,微软是大势,Vista终究要一举夺得国内的90%以上的PC市场份额(嗯,这里面至少又有不低于80%的源于盗版),不过,应该还得要个两年左右的时间吧,按照内存升级的速度来说,普通人应该不会为了个5元左右的盗版去加个512M的条子吧?何苦呢,家里的盗版XP用得好好的,呵呵,再说了,垃圾Vista居然现在连QQ都用不了...(虽然这只是流氓微软对流氓腾讯的策略)对于微软来说,盗版带来的只是阵痛,过个五年十年的,国民生活水平再继续提高了,如果到时知识版权法规什么的观念已经深入人心,那么最终获益的还是微软,中国是世界上最大的市场,微软以阵痛能够换得未来,有什么不好呢?“计算机从娃娃抓起”,邓爷爷想不到的,应该是“微软操作系统,从娃娃抓起”吧,呵呵
     
    February 01

    今天遇到了ORACLE中传说的0

    解释见此:http://www.hellodba.com/Doc/oracle_date_zero_bug.htm
    长见识了
    January 27

    [转载]Debian忘记root密码的解决方法

    现在我们一般使用grub作为系统的引导程序,而lilo进入单用户的方法很简单,这里就不提了。

    对于一些版本的OS(如redhat)来说,编辑grub,在后面加上“single”即可进入单用户模式。但是对于debian来说,这种方式是无效的,因为debian进入单用户模式也需要你输入root用户的密码。

    下面介绍一个在所有版本linux的grub上均可以使用的方法:

    1、在Grub的引导装载程序菜单上,选择你要进入的条目,键入 “e” 来进入编辑模式。
    2、在第二行(类似于kernel /vmlinuz-2.6.15 ro root=/dev/hda2 ),键入”e”进入编辑模式;
    3、在句末加上”init=/bin/bash”,回车;
    4、按“b”启动系统。

    这样我们即可获得一个bash的shell。

    进入shell后,根分区的挂载模式默认是只读,我们要将其改为可写,否则不能更改root密码:

    mount -no remount,rw /
    passwd root
    sync
    mount -no remount,ro /
    reboot

    这样即可成功更改debian的root用户的密码。
     
    BTW:试验成功,hoho,有了Laptop再来从自己的PC上学习linux确实很方便:)
    January 24

    VIM Notes

    很久没有来MSN的空间了,几乎都快荒废了......hoho,偶就是这么懒滴,最近迷上了VIM(世界上最强大的两款editor之一),对于一个programmer来说,没有听说过它的大名,那真是....残念....了,可惜上手需要一定的学习时间,故先利用这里来记录偶滴学习过程吧^_^
    -------------------------------------window-----------------------------------------------------------
    :split 命令可以新开一个window,但两个window是打开的同一个文件
     CTRL+W,w命令可以在两个window之间切换
     CTRL+W,j(k)可以向上(下)移动一个window,CTRL+Wc可以关闭一个window
     也可以:split filename在新window里打开一个新文件,还可以在split命令前加上数字,表示打开新文件在第几行.
     :new命令类似:split,不过是新打开一个文件,还有就是:sview命令,即:split和:view命令的联合使用.
     也可以在CTRL+W后面加+、-、=、_等符号改变window大小.
     

    --------------------------------------buffer------------------------------------------------------------
      一个buffer有3种状态,Active,Hidden,Inactive,可以用:hidden命令隐藏你当前buffer.
      一个buffer的状态可以用以下的flag来表示:
      - Inactive buffer
      % Current buffer
      h buffer is hidden
      # Alternate buffer
      + File has been modified