[病毒查杀]ping.exe Rar.exe 杀毒
前两天切回XP测试软件,结果中了个病毒,可强劲了,写下杀毒过程,说不定那个倒霉蛋用的到。
1.清空%temp%目录
2.下载360急救箱,扫描一遍
3.重启之后再扫一遍
4.这个过程中可能会无法上网,例如使用ping命令会出现unable to initialize windows socket interface,error code 0等等的错误提示,这个时候使用winsockfix修复一下就可以了

Life is not fair, get used to it.
前两天切回XP测试软件,结果中了个病毒,可强劲了,写下杀毒过程,说不定那个倒霉蛋用的到。
1.清空%temp%目录
2.下载360急救箱,扫描一遍
3.重启之后再扫一遍
4.这个过程中可能会无法上网,例如使用ping命令会出现unable to initialize windows socket interface,error code 0等等的错误提示,这个时候使用winsockfix修复一下就可以了

7.使用指定格式显示当前时间和日期
$ date
2010年 01月 09日 星期六 10:27:32 CST$ date –date=”now”
2010年 01月 09日 星期六 10:27:54 CST$ date –date=”today”
2010年 01月 09日 星期六 10:28:14 CST$ date –date=’1970-01-01 00:00:01 UTC +5 hours’ +%s
18001$ date ‘+Current Date: %m/%d/%y%nCurrent Time:%H:%M:%S’
Current Date: 01/09/10
Current Time:10:29:28$ date +”%d-%m-%Y”
09-01-2010$ date +”%d/%m/%Y”
09/01/2010$ date +”%A,%B %d %Y”
星期六,一月 09 2010
日期格式化选项的注释
%D date (mm/dd/yy)
%d 日 (01..31)
%m 月 (01..12)
%y 年份的最后两位 (00..99)
%a 星期的缩写 (Sun..Sat)
%A 星期的完整名称(Sunday..Saturday)
%b 月份缩写 (Jan..Dec)
%B 月份的完整名称(January..December)
%H 24小时制 (00..23)
%I 12小时制 (01..12)
%Y 年份 (1970…)
8.显示过去的时间和日期
$ date –date=’3 seconds ago’
2010年 01月 09日 星期六 10:38:42 CST$ date –date=”1 day ago”
2010年 01月 08日 星期五 10:39:09 CST$ date –date=”1 days ago”
2010年 01月 08日 星期五 10:39:24 CST$ date –date=”1 month ago”
2009年 12月 09日 星期三 10:39:45 CST$ date –date=”1 year ago”
2009年 01月 09日 星期五 10:40:04 CST$ date –date=”yesterday”
2010年 01月 08日 星期五 10:40:21 CST$ date –date=”10 months 2 day ago”
2010年 11月 07日 星期日 10:40:36 CST
9.显示未来的时间和日起
$ date
2010年 01月 09日 星期六 10:41:14 CST$ date –date=’3 seconds’
2010年 01月 09日 星期六 10:41:31 CST$ date –date=’4 hours’
2010年 01月 09日 星期六 14:41:38 CST$ date –date=’tomorrow’
2010年 01月 10日 星期日 10:41:51 CST$ date –date=”1 day”
2010年 01月 10日 星期日 10:42:03 CST$ date –date=”1 days”
2010年 01月 10日 星期日 10:42:14 CST$ date –date=”2 days”
2010年 01月 11日 星期一 10:42:34 CST$ date –date=”2 days”
2010年 01月 11日 星期一 10:42:47 CST$ date –date=’1 month’
2010年 02月 09日 星期二 10:43:01 CST$ date –date=’1 week’
2010年 01月 16日 星期六 10:43:13 CST$ date –date=”2 months”
2010年 03月 09日 星期二 11:06:52 CST$ date –date=”2 years”
2012年 01月 09日 星期一 11:09:14 CST$ date –date=”next day”
2010年 01月 10日 星期日 11:09:25 CST$ date –date=”-1 days ago”
2010年 01月 10日 星期日 11:09:38 CST$ date –date=”this Wednesday”
2010年 01月 13日 星期三 00:00:00 CST
原书下载 Free eBook: Linux 101 Hacks

Comment » | Linux101Hacks, 技术, 翻译 | Views 34
4.使用“shopt -s cdspell”自动修正cd里的错误文件目录名
使用shopt -s cdspell可以自动修正cd命令里的错误文件目录名,
如下所示:
# cd /etc/mall
-bash: cd: /etc/mall: No such file or directory
# shopt -s cdspell
# cd /etc/mall
# pwd
/etc/mail
[注意: 错误的mall自动被修正为mail]
5.设置系统时间和日期
改变系统时间可以使用如下命令:
# date {mmddhhmiyyyy.ss}
o mm – 月
o dd – 日
o hh – 时
o mi – 分
o yyyy – 年
o ss – 秒
设置系统时间为一月31日 2008年 下午10点19分53秒
# date 013122192009.53
你也可以使用以下参数来修改系统日起和时间
# date 013122192009.53
# date +%Y%m%d -s “20090131″
# date -s “01/31/2009 22:19:53″
# date -s “31 JAN 2009 22:19:53″
# date set=”31 JAN 2009 22:19:53″
只设置时间
# date +%T -s “22:19:53″
6.设置硬件的时间和日期
将硬件日期和时间修改为基于系统的日期和时间
# hwclock –systohc
# hwclock –systohc –utc
hwclock命令不加任何参数则显示当前硬件设置的日起和时间
原书下载 Free eBook: Linux 101 Hacks

Comment » | Linux101Hacks, 技术, 翻译 | Views 31
发个牢骚,五千万个干!昨天可是想破头了,今天起来翻翻文档就实现了。
代码相当的ugly,希望有高手赐教更方便的方法,
实现方法很简单就是通过curl访问读取到内存中,
然后调用gdk_pixbuf_new_from_stream,
最后通过gtk_image_new_from_pixbuf创建。
/*
功能:演示在GTK中如何读取网络中的图片创建image控件
编译:gcc -Wall -g `pkg-config –cflags –libs gtk+-2.0` pixbuf.c -o pixbuf
作者:SuPanYong@Gmail.com
主页:http://www.spy8888.com
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>
#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
#include <gio/gio.h>
struct MemoryStruct {
char *memory;
size_t size;
};
/*
代码出处http://curl.haxx.se/libcurl/c/getinmemory.html
*/
static void *myrealloc(void *ptr, size_t size)
{
if(ptr)
return realloc(ptr, size);
else
return malloc(size);
}
static size_t
WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data)
{
size_t realsize = size * nmemb;
struct MemoryStruct *mem = (struct MemoryStruct *)data;
mem->memory = myrealloc(mem->memory, mem->size + realsize + 1);
if (mem->memory) {
memcpy(&(mem->memory[mem->size]), ptr, realsize);
mem->size += realsize;
mem->memory[mem->size] = 0;
}
return realsize;
}
/*网络图片地址*/
gchar *url=
“http://spy8888.com/wp-content/uploads/2009/11/gun-1255533971-stone-arshavin.jpg”;int main(int argc, char **argv)
{
GtkWidget *window,*image;
GdkPixbuf *pixbuf;
GInputStream *input_stream;
CURL *curl_handle;
GError *gerror=NULL;
struct MemoryStruct chunk;
chunk.memory=NULL;
chunk.size = 0;
curl_global_init(CURL_GLOBAL_ALL);
gtk_init (&argc, &argv);
curl_handle = curl_easy_init();
curl_easy_setopt(curl_handle, CURLOPT_URL, url);
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
/*访问并读取到内存*/
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk);
curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, “libcurl-agent/1.0″);
curl_easy_perform(curl_handle);
curl_easy_cleanup(curl_handle);
curl_global_cleanup();
/*从内存读取*/
input_stream = g_memory_input_stream_new_from_data(chunk.memory, chunk.size, NULL);
/*创建pixbuf来自stream*/
pixbuf = gdk_pixbuf_new_from_stream(input_stream, NULL, &gerror);
/*释放*/
g_input_stream_close(input_stream, NULL, NULL);
g_object_unref(input_stream);window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), “Pixbuf Image”);
g_signal_connect (G_OBJECT (window), “destroy”,
G_CALLBACK (gtk_main_quit), NULL);
/*创建image来自pixbuf*/
image = gtk_image_new_from_pixbuf(pixbuf);
gtk_container_add (GTK_CONTAINER (window), image);
gtk_widget_show_all (window);
gtk_main ();return 0;
}

3.将mkdir和cd合并为一条命令
一般你创建一个新的目录后,你想进入这个目录需要在执行cd
如下所示:
# mkdir -p /tmp/subdir1/subdir2/subdir3
# cd /tmp/subdir1/subdir2/subdir3
# pwd
/tmp/subdir1/subdir2/subdir3
通过下列配置将cd和mkdir合并为一条命令
$ vi .bash_profile
function mkdircd () { mkdir -p “$@” && eval cd
“\”\$$#\”"; }
测试一下合并后的命令
# mkdircd /tmp/subdir1/subdir2/subdir3
[注意: 此时创建目录并自动进入创建的目录]
# pwd
/tmp/subdir1/subdir2/subdir3
4.使用“cd-”在最后进入的两个目录中切换
如下所示
# cd /tmp/very/long/directory/structure/that/is/too/deep
# cd /tmp/subdir1/subdir2/subdir3
# cd -
# pwd
/tmp/very/long/directory/structure/that/is/too/deep
# cd -
# pwd
/tmp/subdir1/subdir2/subdir3
# cd -
# pwd
/tmp/very/long/directory/structure/that/is/too/deep
使用dirs,pushd和popd对目录进行栈操作
压入弹出目录栈主要是通过下列三个命令完成的
o dirs: 显示目录栈
o pushd: 压入目录栈
o popd: 弹出目录栈
dir输入当前目录栈中的内容,如果目录栈为空,则输入
当前目录的内容,如下所示:
# popd
-bash: popd: directory stack empty
# dirs
~
# pwd
/home/ramesh
如何运用pushd和popd呢?首先创建些零时目录,然后
将他们压入栈中,如下所示:
# mkdir /tmp/dir1
# mkdir /tmp/dir2
# mkdir /tmp/dir3
# mkdir /tmp/dir4
# cd /tmp/dir1
# pushd .
# cd /tmp/dir2
# pushd .
# cd /tmp/dir3
# pushd .
# cd /tmp/dir4
# pushd .
# dirs
/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
[注意: 命令行中第一个输出的目录(/tmp/dir4)是当前文件夹
下的目录名,不是目录栈中的]
当前目录栈中的内容
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1
最后压入栈中的总是显示在最上方,当你执行popd,将
首先弹出他,如下所示,最后压入的是/tmp/dir4,所以
当执行popd,将弹出/tmp/dir4
# popd
# pwd
/tmp/dir4
[注意: 若执行popd之后,栈中内容为:
/tmp/dir3
/tmp/dir2
/tmp/dir1]
# popd
# pwd
/tmp/dir3
[注意: 若执行popd之后,栈中内容为:
/tmp/dir2
/tmp/dir1]
# popd
# pwd
/tmp/dir2
[注意: 若执行popd之后,栈中内容为:
/tmp/dir1]
# popd
# pwd
/tmp/dir1
[注意: 若执行popd之后,栈中内容为空!]
# popd
-bash: popd: directory stack empty
原书下载 Free eBook: Linux 101 Hacks

Comment » | Linux101Hacks, 技术, 翻译 | Views 86