jeudi 21 janvier 2010

tecplot360 格式

open(11,file="angle.dat")
write(11,*) 'TITLE = " 2D mesh " '
write(11,*) 'VARIABLES = "X", "Y", "beta", "gamma" '
write(11,"(A,I3,A,I3,A)")' ZONE T="Yp" I=',nx,',J=',ny,',ZONETYPE=ORDERED, DATAPACKING=POINT'

mardi 12 janvier 2010

检测使用最多的linux命令

前十名:
history | awk '{CMD[$2]++ ;count++ ;}END {for (a in CMD) print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n 10

dimanche 10 janvier 2010

Linux man手册的章节分类

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。
Linux的man手册共有以下几个章节:

1、Standard commands (标准命令)
2、System calls (系统调用)
3、Library functions (库函数)
4、Special devices (设备说明)
5、File formats (文件格式)
6、Games and toys (游戏和娱乐)
7、Miscellaneous (杂项)
8、Administrative Commands (管理员命令)
例如:我们输入 man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输入“man ifconfig”它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。
man是按照手册的章节号的顺序进行搜索的,比如:
man sleep
只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:
man 3 sleep

jeudi 7 janvier 2010

clavier-Azerty 法语键盘布局



图片转换

ImageMagick中文站
http://www.imagemagick.com.cn/command_line_tools.html

convert -resize 25%x25% 1.jpg 1.eps
convert -sample 25%x25% 1.jpg 1.eps
convert -scale 25%x25% 1.jpg 1.eps

将文件夹下的.jpg先等比例缩小25%,此操作会覆盖原文件
mogrify -sample 25%x25% *.jpg

将文件夹下的.jpg先等比例缩小25%,然后转换为.eps
mogrify -sample 25%x25% -format eps *.jpg

-------------------------------------------------------------------------------------------------------------
1. 制作索引图和动画

!/bin/bash
montage -bordercolor red -borderwidth 3 -label “%f” -tile 5×3 *.JPG montage.jpg
mogrify -format gif *.JPG
display montage.jpg
animate *.JPG

2. 缩放 convert -sample 80×40 input.jpg output.jpg #注意:缩放后图像保持原来的长宽比例 convert -sample 25%x25% input.jpg output.jpg

3. 为当前目录的所有图像生成缩略图

for img in `ls *.jpg`
do
convert -sample 25%x25% $img thumb-$img
done

4. 获取文件信息 libtiff

tiffinfo filename.tiff
pnginfo filename.png

5. 可以使用 ImageMagick 的 identify

identify -verbose sample.png
identify -format “%wx%h” sample.png

6. 旋转图像

convert -rotate 90 input.jpg output.jpg

7. 更改文件类型

convert input.jpg output.png

8. 为图像增加注释文字

convert -font helvetica -fill white -pointsize 36 \
-draw ‘text 10,50 “Floriade 2002, Canberra, Australia”‘ \
floriade.jpg comment.jpg
convert -font fonts/1900805.ttf -fill white -pointsize 36 \
-draw ‘text 10,475 “stillhq.com”‘ \
floriade.jpg stillhq.jpg

9. 特殊效果

convert -charcoal 2 input.jpg output.jpg #炭笔
convert -colorize 255 input.jpg output.jpg #着色 可以指定三种颜色 red/green/blue
convert -implode 4 input.jpg output.jpg #内爆效果
convert -solarize 42 input.jpg output.jpg #曝光,模拟胶片曝光
convert -spread 5 input.jpg output.jpg #随机移动,参数是位移大小

10. 一次执行多个操作

convert -sample 25%x25% -spread 4 -charcoal 4 input.jpg output.jpg
----------------------------------------------------------------------------------------
几个简单的应用。

1、批量图像格式转换
如果想将某目录下的所有jpg文件转换为png文件,只要在命令行模式下输入:

for %f in (*.jpg) do convert "%f" "%~nf.png"

2、对所有图像进行同一操作
譬如,批量生成某目录下所有PNG图像文件的缩略图(大小为80×40):

for %f in (*.png) do convert "%f" -sample 80×40 "%~nf_sample.png"

类似的,将某目录下所有PNG图像旋转90度的操作为:

for %f in (*.png) do convert "%f" -rotate 90 "%~nf_rotate.png"

还可以进行批量裁剪、淡化、抖动、炭化、加边框、圆角等等一系列操作,具体可参考: http://www.ibm.com/developerworks/cn/linux/l-graf/index.html
http://linux.chinaunix.net/docs/2006-12-15/3481.shtml

3、在图像上加上文字说明
如果你有大量图片需要发布,在所有图片上加上版权说明是很明智的做法。用ImgeMagick可以很容易的实现:

convert 1.png -fill white -pointsize 13 -draw "text 10,15 ‘lifesinger 2006'" 2.png

可以用-font指定字体,这时需要安装Ghostscript支持: http://www.cs.wisc.edu/~ghost/

还可以用composite命令在所有图片上加上水印,有兴趣的看这里:
http://www.imagemagick.org/script/composite.php

-----------------------------------------------------------------------------------------------------------------------------

convert
转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。

identify
描述一个或较多图像文件的格式和特性。

mogrify
按规定尺寸制作一个图像,模糊,裁剪,抖动等。Mogrify改写最初的图像文件然后写到一个不同的图像文件。

eg:
mogrify -format png *.jpg上面命令将会把目录下面所有的jpg文件转化为png格式


composite
根据一个图片或多个图片组合生成图片。

montage
创建一些分开的要素图像。在含有要素图像任意的装饰图片,如边框、结构、图片名称等。

compare
在算术上和视觉上评估不同的图片及其它的改造图片。

display
如果你拥有一个X server的系统,它可以按次序的显示图片

animate
利用X server显示动画图片

import
在X server或任何可见的窗口上输出图片文件。 你可以捕获单一窗口,整个的荧屏或任何荧屏的矩形部分。

conjure
解释执行 MSL (Magick Scripting Language) 写的脚本。

convert -sample 100x20 input.jpg output.jpg

上述命令生成一个100x20的缩略图

更好的方法是用等比例缩放,像这样,统一生成1/4的缩略图

convert -sample 25%x25% input.jpg output.jpg

如果写成脚本,就是像这个样子

for img in `ls *.jpg`
do
convert -sample 25%x25% ${img} thm${img}
done

加注图片

convert -font fonts/font.ttf -stroke color -fill color -pointsize size

-draw 'text 10,10 "String"' input.jpg output.jpg
-font 指定字体,因为这样我加注文字,
-stroke 描边用的颜色,
-fill 填充用的颜色,这里用none就可以画出空心字了,
-pointsize 加注字体大小,像素数,
-draw 是用来画,这里是文字,下面的位置10,10 是以图片左上角为原点坐标的

-------------------------------------------------------------

convert

convert顾名思义就是对图像进行转化,它主要用来对图像进行格式的转化,同时还可以做缩放、剪切、模糊、反转等操作。

  • 格式转化

    比如把 foo.jpg 转化为 foo.png:

    convert foo.jpg foo.png
    如果要想把目录下所有的jpg文件都转化为gif,我们可借助于shell的强大功能:
    find ./ -name "*.jpg" -exec convert {} {}.gif \;
    转化后的gif名称为 *.jpg.gif ,这样看起来不太自然,没关系,我们可以再来一步:
    rename .jpg.gif .gif *.jpg.gif
    本来,我想在find的时候,用basename来取得不带后缀的文件名的,这样就不会形成.jpg.gif这种丑陋的名子了,可是不知道为什么,就是不行,如果你知道的话,告诉我

    或者,你也可用shell script来完成上述的操作:

    for i in *.jpg
    do
    convert $i `basename $i .jpg`.gif
    done

    我们还可用mogrify来完成同样的效果:

    mogrify -format png *.jpg
    上面命令将会把目录下面所有的jpg文件转化为png格式。

    convert还可以把多张照片转化成pdf格式:

    convert *.jpg foo.pdf
  • 大小缩放

    比如我们要为一个普通大小的图片做一个缩略图,我们可以这样

    convert -resize 100x100 foo.jpg thumbnail.jpg
    你也可以用百分比,这样显的更为直观:
    convert -resize 50%x50% foo.jpg thumbnail.jpg
    convert会自动地考虑在缩放图像大小时图像的高宽的比例,也就是说着新的图像的高宽比与原图相同。

    我们还可以批量生成缩略图:

    mogrify -sample 80x60 *.jpg
    注意,这个命令会覆盖原来的图片,不过你可以在操作前,先把你的图片备份一下。
  • 加边框

    在一张照片的四周加上边框,可以用 -mattecolor 参数,比如某位同志牺牲了,我们需要为他做一张黑边框的遗像,可以这样:

    convert -mattecolor "#000000" -frame 60x60 yourname.jpg rememberyou.png
    其中,"#000000"是边框的颜色,边框的大小为60x60

    你也可以这样加边框:

    convert -border 60x60 -bordercolor "#000000" yourname.jpg rememberyou.png
  • 在图片上加文字
    convert -fill green -pointsize 40 -draw 'text 10,50 "charry.org"' foo.png bar.png
    上面的命令在距离图片的左上角10x50的位置,用绿色的字写下charry.org,如果你要指定别的字体,可以用-font参数。
  • 模糊

    高斯模糊:

    convert -blur 80 foo.jpg foo.png
    -blur参数还可以这样-blur 80x5。后面的那个5表示的是Sigma的值,这个是图像术语,我也不太清楚,总之,它的值对模糊的效果起关键的作用。
  • 翻转

    上下翻转:

    convert -flip foo.png bar.png

    左右翻转:

    convert -flop foo.png bar.png
  • 反色

    形成底片的样子:

    convert -negate foo.png bar.png
  • 单色

    把图片变为黑白颜色:

    convert -monochrome foo.png bar.png
  • 加噪声
    convert -noise 3 foo.png bar.png
  • 油画效果

    我们可用这个功能,把一张普通的图片,变成一张油画,效果非常的逼真

    convert -paint 4 foo.png bar.png
  • 旋转

    把一张图片,旋转一定的角度:

    convert -rotate 30 foo.png bar.png
    上面的30,表示向右旋转30度,如果要向左旋转,度数就是负数。
  • 炭笔效果
    convert -charcoal 2 foo.png bar.png
    形成炭笔或者说是铅笔画的效果。
  • 散射

    毛玻璃效果:

    convert -spread 30 foo.png bar.png
  • 漩涡

    以图片的中心作为参照,把图片扭转,形成漩涡的效果:

    convert -swirl 67 foo.png bar.png
  • 凸起效果

    用-raise来创建凸边:

    convert -raise 5x5 foo.png bar.png
    执行后,你会看到,照片的四周会一个5x5的边,如果你要一个凹下去的边,把-raise改为+raise就可以了。其实凸边和凹边看起来区别并不是很大。
  • 其他

    其他功能都是不太常用的,如果你感兴趣的话,可以看它的联机文档

import

import是一个用于屏幕截图的组件,下面列出的是我们常用的功能,其他的功能,你参考它的man好了。

  • 截取屏幕的任一矩形区域
    import foo.png
    在输入上述的命令后,你的鼠标会变成一个十字,这个时候,你只要在想要截取的地方划一个矩形就可以了
  • 截取程序的窗口
    import -pause 3 -frame foo.png
    回车后,用鼠标在你想截的窗口上点一下即可。参数-frame的作用是告诉import,截图的时候把目标窗口的外框架带上,参数-pause的作用很重 要,你可以试着把它去掉,对比一下,你会发现,目标窗口的标题栏是灰色的,pause就是让import稍微延迟一下,等你的目标窗口获得焦点了,才开始 截图,这样的图才比较自然。
  • 截取一个倾斜的窗口

    如果想让你的截图比较cool,你可以把截取一个倾斜的窗口,方法如下:

    import -rotate 30 -pause 3 -frame foo.png
  • 截取整个屏幕
    import -pause 3 -window root screen.png
    注意,暂停了3秒钟,你需要在3秒钟内切换到需要截取的画面噢。

display

display应该是我们使用的最为频繁的图像处理软件了,毕竟,还是看的多

  • 显示图片
    display foo.png
    如果你要显示多个文件,你可以使用通配符
    display *.png
  • 幻灯片
    display -delay 5 *
    每隔5个百分之秒显示一张图片
  • 一些快捷键
    1. space(空格): 显示下一张图片
    2. backspace(回删键):显示上一张图片
    3. h: 水平翻转
    4. v: 垂直翻转
    5. /:顺时针旋转90度
    6. \:逆时针旋转90度
    7. >: 放大
    8. <: 缩小
    9. F7:模糊图片
    10. Alt+s:把图片中间的像素旋转
    11. Ctrl+s:图象另存
    12. Ctrl+d:删除图片
    13. q: 退出

mercredi 6 janvier 2010

grep

1. grep简介

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

2. grep正则表达式元字符集(基本集)

^

锚定行的开始 如:'^grep'匹配所有以grep开头的行。

$

锚定行的结束 如:'grep$'匹配所有以grep结尾的行。\
.

匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。

*

匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。

[]

匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。

[^]

匹配一个不在指定范围内的字符,如:'[^A-RT-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

\(..\)

标记匹配字符。相当于数值计算中的(),表示其中的表达式是个总体,并且具有优先级。

\<

锚定单词的开始,如:'\

\>

锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。

x\{m\}

重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。

x\{m,\}

重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。

x\{m,n\}

重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。

\w

匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。

\W

\w的反置形式,匹配一个或多个非单词字符,如点号句号等。

\b

单词锁定符,如: '\bgrepb\'只匹配grep。

3. 用于egrep和 grep -E的元字符扩展集

+

匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。

?

匹配零个或多个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。

a|b|c

匹配a或b或c。如:grep|sed匹配grep或sed

()

分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。

x{m},x{m,},x{m,n}

作用同x\{m\},x\{m,\},x\{m,n\}

4. POSIX字符类

为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是A-Za-z0-9的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。

[:alnum:]

文字数字字符

[:alpha:]

文字字符

[:digit:]

数字字符

[:graph:]

非空字符(非空格、控制字符)

[:lower:]

小写字符

[:cntrl:]

控制字符

[:print:]

非空字符(包括空格)

[:punct:]

标点符号

[:space:]

所有空白字符(新行,空格,制表符)

[:upper:]

大写字符

[:xdigit:]

十六进制数字(0-9,a-f,A-F)

5. Grep命令选项

-?

同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行。

-b,--byte-offset

打印匹配行前面打印该行所在的块号码。

-c,--count

只打印匹配的行数,不显示匹配的内容。

-f File,--file=File

从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。

-h,--no-filename

当搜索多个文件时,不显示匹配文件名前缀。

-i,--ignore-case

忽略大小写差别。

-q,--quiet

取消显示,只返回退出状态。0则表示找到了匹配的行。

-l,--files-with-matches

打印匹配模板的文件清单。

-L,--files-without-match

打印不匹配模板的文件清单。

-n,--line-number

在匹配的行前面打印行号。

-s,--silent

不显示关于不存在或者无法读取文件的错误信息。

-v,--revert-match

反检索,只显示不匹配的行。

-w,--word-regexp

如果被\<和\>引用,就把表达式做为一个单词搜索。

-V,--version

显示软件版本信息。

6. 实例

要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。

$ ls -l | grep '^a'

通过管道过滤ls -l输出的内容,只显示以a开头的行。

$ grep 'test' d*

显示所有以d开头的文件中包含test的行。

$ grep 'test' aa bb cc

显示在aa,bb,cc文件中匹配test的行。

$ grep '[a-z]\{5\}' aa

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

$ grep 'w\(es\)t.*\1' aa

如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用"\"号进行转义,直接写成'w(es)t.*\1'就可以了。(T002)

mardi 5 janvier 2010

.emacs -20100105

(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(blink-cursor-mode nil)
'(column-number-mode t)
'(display-time-mode t)
)
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)

;;-----------------------------------------------------------------------------
;;用win+space为set-mark键,留出ctrl+space热键作为输入法
(global-set-key (kbd "C-SPC") 'nil)
(global-set-key (kbd "s-SPC") 'set-mark-command)
;;设置字体大小
(set-default-font "DejaVu Sans Mono-8")
;;在窗口左侧显示行号
(global-linum-mode t)
;;在状态栏(mode line)上显示行号
(setq column-number-mode t)
(setq line-number-mode t)
;;鼠标自动避开指针,如当你输入的时候,指针到了鼠标的位置,鼠标有点挡住视线了
(mouse-avoidance-mode 'animate)
;;指针不要闪
(blink-cursor-mode -1)
(transient-mark-mode 1)
;;当指针到一个括号时,自动显示所匹配的另一个括号
(show-paren-mode 1)
;;去掉烦人的警告铃声
(setq visible-bell nil)
;;去掉Emacs和gnus启动时的引导界面
(setq inhibit-startup-message t)
(setq gnus-inhibit-startup-message t)
;; 显示时间
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(display-time)
;;当前行高亮
(require 'hl-line)
(global-hl-line-mode t)
;;滚动条在窗口右侧
'(scroll-bar-mode (quote right))
;;在窗口的标题栏上显示文件名称
(setq frame-title-format "%n%F/%b")
;;允许emacs和外部其他程序的粘
(setq x-select-enable-clipboard t)
;;支持中键粘贴
(setq mouse-yank-at-point t)
;;所有的问题用y/n方式,不用yes/no方式
(fset 'yes-or-no-p 'y-or-n-p)
;;显示屏幕大小
(setq default-frame-alist
(append '((top . 0)(left . 0)(width . 85)(height . 40)) default-frame-alist))

;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;; Add the directories to your load path
(add-to-list 'load-path "~/elisp")
;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;;-----------------------------------------------------------------------------
(require 'cursor-chg) ; Load this library
(change-cursor-mode 1) ; On for overwrite/read-only/input mode
(toggle-cursor-type-when-idle 1) ; On when idle
;;-----------------------------------------------------------------------------
;;调用smart-compile
(require 'smart-compile)
(global-set-key [f7] 'smart-compile)
;;-----------------------------------------------------------------------------
;; Add the directories to your load path
(add-to-list 'load-path "~/elisp/emacs-wiki-2.72")
;;调用emacs-wiki
(require 'emacs-wiki)
(require 'emacs-wiki-menu)
(load "emacs-wiki")
;;----------------------------------------------------------------------------
;;调用tabbar
(require 'tabbar)
(tabbar-mode)
;;(define-prefix-command 'lwindow-map)
;;For emacs 23.1,to get list all buffers as one group and
;;only the non-scratch buffers can be made to be displayed
(when (require 'tabbar- nil t)
(setq tabbar-buffer-groups-function
(lambda () (list "All Buffers")))
(setq tabbar-buffer-list-function
(lambda ()
(remove-if
(lambda(buffer)
(find (aref (buffer-name buffer) 0) "*"))
(buffer-list))))
)

(global-set-key (kbd "") 'tabbar-backward-group)
(global-set-key (kbd "") 'tabbar-forward-group)
(global-set-key (kbd "") 'tabbar-backward)
(global-set-key (kbd "") 'tabbar-forward)

;;----------------------------------------------------------------------------
;;使用一个简单的 Elisp 函数
;;:如果选定了区域,那么按 M-w 就复制这个区域;如果没有选定区域,那么 M-w 就复制一行
(defun huangq-kill-ring-save (&optional n)
"If region is active, copy region. Otherwise, copy line."
(interactive "p")
(if mark-active
(kill-ring-save (region-beginning) (region-end))
(if (> n 0)
(kill-ring-save (line-beginning-position) (line-end-position n))
(kill-ring-save (line-beginning-position n) (line-end-position)))))

(global-set-key (kbd "M-w") 'huangq-kill-ring-save)

;;-----------------------------------------------------------------------------
;;备份设置
;;emacs还有一个自动保存功能,默认在~/.emacs.d/auto-save-list里,
;;这个非常有用,具体可以参见Sams teach yourself emacs in 24hours(我简称为sams24)
;;启用版本控制,即可以备份多次
(setq version-control t)
;;备份最原始的版本两次,记第一次编辑前的文档,和第二次编辑前的文档
(setq kept-old-versions 2)
;;备份最新的版本五次,理解同上
(setq kept-new-versions 5)
;;删掉不属于以上7中版本的版本
(setq delete-old-versions t)
;;设置备份文件的路径
(setq backup-directory-alist '(("." . "~/.emacs.tmp")))
;;备份设置方法,直接拷贝
(setq backup-by-copying t)
;;-----------------------------------------------------------------------------
;;启用minibuffer,好像是默认设置吧
(minibuffer-electric-default-mode 1)
;;启用部分补全功能,如输入M-x q r r相当于M-x query-replace-regexp
(partial-completion-mode 1)

;; 当光标在行尾上下移动的时候,始终保持在行尾
(setq track-eol t)
;;-----------------------------------------------------------------------------
;;目的是开一个shell的小buffer,用于更方便地测试程序(也就是运行程序了),我经常会用到。
;;f8就是另开一个buffer然后打开shell,C-f8则是在当前的buffer打开shell
;(defun open-eshell-other-buffer ()
;"Open eshell in other buffer"
;(interactive)
;(split-window-horizontally)
;(eshell))
;(global-set-key [C-f8] 'open-eshell-other-buffer)

;;-----------------------------------------------------------------------------
;;当前buffer的文件名,前加“./”,后去掉后面4位数字,输入到minibuffer
(define-key minibuffer-local-map [f8]
(lambda ()
(interactive)
(insert (concat "./") )
(insert (substring (buffer-name (current-buffer-not-mini)) 0 -4 ))
(insert (concat ".exe") )
)
)

(defun current-buffer-not-mini ()
"Return current-buffer if current buffer is not the *mini-buffer*
else return buffer before minibuf is activated."
(not (window-minibuffer-p)) (current-buffer)
(if (eq (get-lru-window) (next-window))
(window-buffer (previous-window)) (window-buffer (next-window))))

;;-----------------------------------------------------------------------------

;;-----------------------------------------------------------------------------
;;保存前,删除当前buffer中行尾空格和TAB等whitespace
(add-hook 'before-save-hook 'delete-trailing-whitespace)

rename

将当前地址下的后缀名".dat"转换为“.txt”:
rename 's/.dat/.txt/' *.dat

将y_002_xd*文件开头的y_002换成y_010
rename 's/^y_002/y_010/' y_002_xd*

OpenOffice

openoffice-calc --spreadsheet =Microsoft Office Excel
/usr/bin/oocalc
openoffice-impress --presentation =Microsoft Office PPT
/usr/bin/ooimpress
openoffice-writer --word processor =Microsoft Office Word
/usr/bin/oowriter

lundi 4 janvier 2010

远程登录

登录远程系统:(ssh)
1) 以root身份登录到远程系统192.168.1.100
ssh 192.168.1.100
….. (yes/no): yes
2)以abc身份登录到远程系统192.168.1.100
ssh -l abc 192.168.1.100
或:
ssh abc@192.168.1.100
3)以root身份登录到远程系统192.168.1.100后,执行 cat /etc/fatab后,把结果返回.
ssh 192.168.1.100 cat /etc/fstab
********************************************************************************

linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录;

==================
scp 命令
==================
scp 可以在 2个 linux 主机间复制文件;

命令基本格式:
scp [可选参数] file_source file_target

======
从 本地 复制到 远程
======
* 复制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
* 例子:
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

* 复制目录:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
* 例子:
scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录


======
从 远程 复制到 本地
======
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如:
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

最简单的应用如下 :

scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

********************************************************************************
远程系统进行文件传输(sftp):
1) 以root身份登录到远程系统192.168.1.100
sftp 192.168.1.100
2) 以abc身份登录到远程系统192.168.1.100
sftp abc@192.168.1.100
3) 以abc身份登录到远程系统192.168.1.100后进入/usr/local目录.
sftp abc@192.168.1.100:/usr/local

sftp Available commands:
-------------------------------------------------------------------------
get remote-path [local-path] Download file
put local-path [remote-path] Upload file
-------------------------------------------------------------------------
lcd path Change local directory to 'path'
lls [ls-options [path]] Display local directory listing
lmkdir path Create local directory
lpwd Print local working directory
-------------------------------------------------------------------------
cd path Change remote directory to 'path'
ls [path] Display remote directory listing
mkdir path Create remote directory
pwd Display remote working directory

rename oldpath newpath Rename remote file
rmdir path Remove remote directory
rm path Delete remote file
-------------------------------------------------------------------------
chgrp grp path Change group of file 'path' to 'grp'
chmod mode path Change permissions of file 'path' to 'mode'
chown own path Change owner of file 'path' to 'own'
df [path] Display statistics for current directory or
filesystem containing 'path'
help Display this help text
ln oldpath newpath Symlink remote file
lumask umask Set local umask to 'umask'
progress Toggle display of progress meter
exit Quit sftp
quit Quit sftp
symlink oldpath newpath Symlink remote file
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help

dimanche 3 janvier 2010

查看文件夹大小

du [OPTION] ... [FILE]...

-s --summarize
disploay only a total for each argument
-h --human-readable
print sizes in human readable formate (e.g., 1K 234m 2g)