随笔分类 -  Linux

摘要:1。用root或者运行mysqld的用户登录系统2。利用kill命令结束掉mysqld的进程3。使用--skip-grant-tables参数启动MySQL Servershellmysqld_safe --skip-grant-tables4。为root@localhost设置新密码shellmysqladmin -u root flush-privileges password "newpassword"5。重启MySQL Server 阅读全文
posted @ 2010-12-18 13:57 super119 阅读(332) 评论(0) 推荐(0) 编辑
摘要:diff  diff是生成源码补丁的必备工具。其命令格式为: diff [命令行选项] 原始文件 新文件常用命令行选项如下:   -r 递归处理目录     -u 输出统一格式(unified format)   -N patch里包含新文件   -a patch里可以包含二进制文件  它的输出在stdout上,所以你可能需要把它重定向到一个文件。diff的输出有“传统格式”和“统一格式”之分,现在大都使用统一格式:  传统格式示例:   [hahalee@builder]$ diff a.txt b.txt   1a2    here we insert a new line   3d3  阅读全文
posted @ 2010-12-18 13:54 super119 阅读(2436) 评论(0) 推荐(0) 编辑
摘要:发现这个问题来自对SGE的startmpi.sh脚本做改造的时候。考虑如下一段shell代码:[代码]代码中用到的testfile可以是任何文本的文件,比如:phy2 2phy3 2phy4 2这样的情况下,代码运行的结果出乎我的意料,testline这个变量在while循环中就好像没有被赋过值一样,输出是这样的:In cycle, the testline is: hello:phy2 2In cycle, the testline is: hello:phy2 2 phy3 2In cycle, the testline is: hello:phy2 2 phy3 2 phy4 2hell 阅读全文
posted @ 2010-12-18 11:38 super119 阅读(4280) 评论(0) 推荐(0) 编辑
摘要:Shell编程中,有时我们需要改变IFS,比如cat一个文件,然后想用for循环每次取出这个文件的一行出来,此时就需要修改IFS等于换行才行。否则,默认的IFS是空格和一些其他的字符,这样,每次for循环读出来的东西就不一定是一行的内容了,有可能是一行中的第一个单词了。经过试验,我发现,用IFS="\n", IFS='\n'都是不行的,如果这样做了,for第一次循环得到的就是整个文件的内容。经过网上查询,发现要这样:IFS=''这样就OK了。 阅读全文
posted @ 2010-12-18 11:36 super119 阅读(1624) 评论(1) 推荐(0) 编辑
摘要:直接输入dmidecode即可,输出有很多,好像是根据SM总线来查询的,包括能查询到BIOS的地址空间和其中的信息等等,内存信息只是其中的一部分。摘录如下:[代码]从这段输出可以看出,第一个Physical Memory Array是总体的内存信息,从这里可以看到有四个内存插槽、机器最大支持的内存总量等。然后下面开始就是每个内存插槽的情况,在这里可以看到,第三个内存插槽上插了一根512M的内存。更多的信息请参考dmidecode的手册。 阅读全文
posted @ 2010-12-18 11:29 super119 阅读(1492) 评论(0) 推荐(0) 编辑
摘要:plink和Putty的区别就是plink可以让我们直接在命令行制定好服务器的IP地址、口令和要执行的命令,然后执行,完成后自动关闭session。所以,plink对于自动化的执行命令和工作非常有好处。之前我在公司的路由服务器上写了一个脚本,这个脚本能分析目前的TCP连接信息,并给出哪台机器目前使用的TCP连接最多。由于这个脚本有可能经常会执行来查看,每次都登陆服务器太麻烦了,所以我使用plink来自动化这个事情,写在一个bat文件中,以后每次只要双击这个bat文件就可以完成这样的工作。bat文件内容如下:D:\Download\Software\Putty-0.60\plink.exe -p 阅读全文
posted @ 2010-12-18 11:27 super119 阅读(7265) 评论(0) 推荐(0) 编辑
摘要:最近在将lniautoconf和autossh这两个脚本合成的时候,碰到了一个问题:通过在kickstart文件的最后,将root用户生成好的公钥直接拷贝到目的机器/root/.ssh目录下,从而让ssh无密码登录在密钥准备方面OK了。但是随后就碰到了一个棘手的问题:ssh第一次登录对方节点的时候,会出现一个是否要添加hostkey的界面交互提示,要回答yes/no才行,虽然只需要回答一次,但是这个问题就导致了我们的自动化脚本有了大问题,因为如果这个问题不解决,就等于用户在使用完了这个脚本之后,还要再执行一个expect脚本来把每个节点的yes/no的这种情况都解决,这就违背了我们当初合并这两 阅读全文
posted @ 2010-12-18 11:24 super119 阅读(1975) 评论(0) 推荐(0) 编辑
摘要:可能是Chrome/Chromium的bug,这么处理:sudo chown your username:your user group ~/.config/chromium/Local\ Statesudo chown your username:your user group ~/.config/chromium/Default/Preference这两个文件不知道怎么回事owner变成了root,所以就出现了无法读取Preference的问题。 阅读全文
posted @ 2010-12-16 15:43 super119 阅读(437) 评论(0) 推荐(0) 编辑
摘要:要利用curl,关键就是要首先登录,获得cookie,然后才能下载文件。这样就可以利用CURL做很多自动化的脚本或是程序了。关键点是这么几个:1. 要分析网站的登录form,看需要提供哪些信息。然后组织curl命令行。2. curl -d表示一个post field。3. curl -b 指定一个cookie,-c 将得到的cookie写入一个文件。4. BASH中,Arithmetic expression要用((...)),其他的用[...]5. BASH中,&&, || 可以用来连接多个条件表达式以自动下载TorrentGUI, HD001和CHDBits的种子文件为例,脚本是这样的:[ 阅读全文
posted @ 2010-12-13 13:19 super119 阅读(1142) 评论(0) 推荐(0) 编辑
摘要:Rsync是个相当棒的同步工具,比如:1. 如何做本地两个目录之间的同步?rsync -av --delete --force ~/Desktop/Miscs/ /media/disk/DesktopMiscs这样就可以做~/Desktop/Miscs目录的镜像了。/media/disk是我的移动硬盘的挂载点。这里关键有个问题就是,一定要注意rsync中目录的表示方法,如果命令行这样写:rsync -av --delete --force ~/Desktop/Miscs/* /media/disk/DesktopMiscs那效果就和第一个命令行完全不一样了。第一个命令行是给Miscs目录做完全 阅读全文
posted @ 2010-12-13 13:15 super119 阅读(409) 评论(0) 推荐(0) 编辑
摘要:Configuring DHCP serverIf you have two network cards in your ubuntu server you need to select which interface you want to use for DHCP server listening.By default it listens to eth0.You can change this by editing /etc/default/dhcp3-server filesudo vi /etc/default/dhcp3-serverFind this lineINTERFACES 阅读全文
posted @ 2010-12-13 13:12 super119 阅读(310) 评论(0) 推荐(0) 编辑
摘要:semaphore很类似windows下的kernel object,一旦创建,可以被多个进程使用,当然一个进程中多个线程也可以使用semaphore来互斥。谈到互斥,一般semaphore的值就是1。man 7 sem_overview可以看到很多有用的信息。Semaphore和pipe一样,也有有名的和无名的两种。无名的嘛,在父子进程间使用比较方便,有名的嘛,在"不搭界"的多进程中使用很方便。这里贴一段代码,代码最能说明问题,其他都参考manual就OK了。[代码]1. 使用umask将创建出来的文件权限要设置正确了。因为后续所有不是root的进程都要能读写这个有名semaphore才行。 阅读全文
posted @ 2010-12-13 13:09 super119 阅读(1344) 评论(0) 推荐(0) 编辑
摘要:很多人都问到如何编译Linux kernel,所以把一些点总结一下。参考kernel源代码目录下的README文件,基本上是这么几步:1. make mrproper -- 注意这一步走过之后,.config会被恢复成默认设置2. make menuconfig -- 在这里面check配置项,决定哪个打开,哪个关闭。哪些driver编译成module,哪些直接编译进内核3. make -- 首先会编译内核,完成后会自动编译modules几个Tips:1. 如果要做交叉编译,只需要定义CROSS_COMPILE环境变量就可以,比如:export CROSS_COMPILE=arm-none-l 阅读全文
posted @ 2010-12-13 13:05 super119 阅读(631) 评论(0) 推荐(0) 编辑
摘要:diff -u -d xxx xxx 即可可以再加-r,这样就可以直接针对两个目录做diff比较并生成patch,也就是diff -u -d -r <dir A> <dir B>注意:<dir A>是没有修改过代码的目录,<dir B>是修改过代码的目录。否则弄反了将来patch的时候会出现:Reversed (or previously applied) patch detected! Assume -R? [n]生成patch之后,打patch一般是:1. 解开需要patch的源代码包2. cd进入源代码目录3. patch -p1 < 阅读全文
posted @ 2010-12-13 11:58 super119 阅读(557) 评论(0) 推荐(0) 编辑
摘要:想得到一个web terminal界面的兄弟们,别再用ajaxterm了,用shellinabox吧。Ajaxterm几大罪状:需要配合Apache使用,需要安装和配置Apache需要安装openssh server,而且需要打开PasswordAuthentication和Firefox 3.6有兼容性问题,我尝试下载了git上ajaxterm的新版本,貌似还是没有解决,尽管作者说解决了。Ajaxterm里面的paste功能,在每个浏览器里面都需要进行配置。貌似chrome和opera还不太好配置,firefox马马虎虎。Shellinabox就简单多了,一个deb直接安装就OK了。软件本身 阅读全文
posted @ 2010-12-13 11:57 super119 阅读(530) 评论(0) 推荐(0) 编辑
摘要:Ubuntu 9.10源中的ntfsprogs是2.0版本,这个版本已经full support NTFS read/write。安装ntfsprogssudo apt-get install ntfsprogs使用下面命令中任何一个格式化sudo mkfs -t ntfs /dev/sdb1或sudo mkfs.ntfs /dev/sdb1或sudo mkntfs /dev/sdb1如果需要快速格式化加上-f参数sudo mkntfs -f /dev/sdb1 阅读全文
posted @ 2010-12-13 11:57 super119 阅读(288) 评论(0) 推荐(0) 编辑
摘要:1. 如何知道Qt的安装路径?QLibraryInfo::location, 根据参数可以查询Qt不同模块的路径,如translations的路径、doc的路径等。2. QDir::fromNativeSeparators/QDir::toNativeSeparators这两个静态方法在UNIX/Linux下是没有效果的。请手动处理路径中的path separator,使用QString提供的方法。3. QString不能在std::cout/std::cin中使用因为QString重载符号定义是酱紫:QDataStream &operator ( QDataStream & stre 阅读全文
posted @ 2010-12-13 11:55 super119 阅读(352) 评论(0) 推荐(0) 编辑
摘要:ffmpeg+libx264不是装好就能work的,具体来说,需要在ffmpeg的命令行中加入一些option才能工作,具体请看这篇文章。下面是正确的命令行:x264 – Recommended General OptionsFor all rate control methods you will probably want libx264 to select the number of threads to use to maximise its performance on your CPU(s):-threads 0Two-Pass ExampleSo if you wanted to 阅读全文
posted @ 2010-12-13 11:54 super119 阅读(2753) 评论(0) 推荐(0) 编辑
摘要:一、如何彻底删除Eclipse1. 关闭Eclipse2. 将eclipse安装目录删掉3. 删除~/.eclipse目录4. 删除~/.mozilla/eclipse目录原则就是找用户目录下所有包含eclipse字样的目录,排除掉明显不是的,将剩下来的都删光。二、将Project从workspace中删除之后如何恢复1. 只是删除了project,文件没有删除2. 选择File - Import - General - Existing projects into workspace 阅读全文
posted @ 2010-12-13 11:46 super119 阅读(298) 评论(0) 推荐(0) 编辑
摘要:貌似很多人不知道,所以写一下。Backtrace中,一般都只有一些地址。但是利用addr2line这个工具,就可以找到对应的代码行。前提条件是可执行程序或者动态链接库编译的时候带-g选项。具体来说,分两种情况:如果关注的一行backtrace位于一个可执行文件中,那么直接addr2line -e executable address如果关注的backtrace位于一个动态链接库中,那么麻烦一些,因为动态链接库的基地址不是固定的。这个时候,首先要把进程的memory map找来。在Linux下,进程的memory map可以在/proc/pid/maps文件中得到。然后在这个文件中找 阅读全文
posted @ 2010-12-13 11:43 super119 阅读(1029) 评论(0) 推荐(0) 编辑