分类: '经验技巧' 的归档
gedit增加个外部工具,转换文本为windows格式。
大家应该知道,换行符在每个操作系统中是不一样的,比如windows是0x0d,0x0a,linux是0x0a,mac是0x0d。
这样就导致各操作系统间的文本交流出现了一点不大不小的问题,虽然windows和linux下的大部分编辑器都会知道识别这个差异,并进行相应的转换,但是像windows中的记事本这类老古董就不会了。。。。而且据说windows中用记事本的不在少数。。。所以,在linux下创建的文本文件,到了windows中用记事本一打开,就会发现所有的换行符都变成了黑方块
不过既然知道了原理,解决起来当然是相当地方便:gedit(我的版本是 2.18.1)已经可以支持自定义的外部工具了,还可以给每个外部工具定义一个快捷键,可谓相当方便。于是就在工具-外部工具里面新建一条:名字自己取,命令如下:
代码: |
#!/bin/sh tr “\n” “\r” | sed ‘s/\r/\r\n/g’ |
输入选择当前文档,输出选择替换当前文档。
不过我这个版本的gedit似乎有个小bug,就是选择了输出之后不会自动保存,想了个另外的办法:在~/.gnome2/gedit/tools目录下新建一个文件(文件名随便,不过记得加可执行权限 chmod +x 文件名)内容如下:
引用: |
#!/bin/sh# [Gedit Tool] # Comment=转换为windows格式 # Name=转换为windows格式 # Shortcut=F10 # Applicability=all # Output=replace-document # Input=document tr “\n” “\r” | sed ‘s/\r/\r\n/g’ |
这个和上面说的方法其实是一样的,只不过可以避免gedit的bug。完成了以后gedit的工具菜单里面就会多出一项。然后linux下编辑好文本以后再执行一下,再保存,windows的朋友就可以轻松打开你的文件了。
本例其实很简单,主要是研究下gedit的自定义外部工具功能。
用lighttpd代替apache2
卸载:
代码: |
sudo apt-get remove apache2 |
这样会提示要卸载很多软件,包括php和phpmyadmin等等,不想卸载这些的话,可以试试
代码: |
sudo aptitude remove apache2 |
,不过其实那些先卸了也不要紧,反正缓存里面有deb包的,呆会儿再装上也不费力。
安装:
代码: |
sudo apt-get install lighttpd php phpmyadmin |
配置:
这样换了以后,php的配置文件变成:
/etc/php5/cgi/php.ini
lighttpd的配置文件在:
/etc/lighttpd/lighttpd.conf
好处就是省几M内存,速度暂时还没感觉出来。
Compiz下的永中窗口空白的解决办法
永中office因为其对M$ office的良好兼容性而著称,但因其界面是基于java的,在compiz下,启动以后整个窗口就都是空白的了,今天无意中得到了解决的办法,特此标记:
其实就一句话:编辑/usr/bin/eio,在”#!/bin/sh”下增加一行,写入:”export AWT_TOOLKIT=MToolkit”。
不过永中是要钱滴~我的试用期早过了,但好像就会弹出个对话框,还可以继续用。
彩色命令行
看了坛子里ee的帖子,试了下下面这个脚本,发现彩色的命令行很好玩,但不知哪里有更详细的资料。
#!/bin/sh ############################################################ # Nico Golde Homepage: http://www.ngolde.de # Last change: Mon Feb 16 16:24:41 CET 2004 ############################################################ for attr in 0 1 4 5 7 ; do printf "ESC[%s;Foreground;Background --------------------- \n" $attr for fore in 30 31 32 33 34 35 36 37; do for back in 40 41 42 43 44 45 46 47; do printf '33[%s;%s;%sm %02s;%02s ' $attr $fore $back $fore $back done printf '33[0m\n' done printf '33[0m' done |
再帖张图:
GCC_VERSION
...... #include <ansidecl.h> ...... #ifdef GCC_VERSION int g_nGccVersion=GCC_VERSION; #else int g_nGccVersion=0; #endif printf( "GCC_VERSION: %d\n", g_nGccVersion ); ..... |
这样可以输出编译环境的GCC版本。在只有二进制文件的情况下,就可以确认一下适不适合自己的系统了。以下这段取自ansidecl.h:
/* This macro simplifies testing whether we are using gcc, and if it is of a particular minimum version. (Both major & minor numbers are significant.) This macro will evaluate to 0 if we are not using gcc at all. */ #ifndef GCC_VERSION #define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) #endif /* GCC_VERSION */ |
但目前不知道编译环境的内核版本怎么输出来。
邮件里面收到winmail.dat附件的解决办法- tnef
不知广大ubuntuer有没有收到过带个winmail.dat的邮件,我想在公司用ubuntu办公的一定收到过不少这种麻烦邮件。而你完全不知道这个附件如何打开,甚至更惨的是原本附件在邮件中的文件也不幸被这个winmail.dat吃掉了。你也许会询问这封邮件的发件人,这个时候对方多半也是一头雾水,因为人家用Outlook用的好好的,从来没有听说过这个问题,说得直白一点,就是完全不知道你在说什么。
那么winmail.dat到底是个啥东西呢?是M$的工具在编码打包你的邮件进行发送时,如果按照默认指定的RTF格式,会把格式信息按照MS自己的一套标准存放在邮件体中(在此,强烈BS M$的这种做法),造成非Outlook客户端不认识,无法正确解析。
你当然可以要求你的发件人不要用Outlook,或者不要用rtf格式,纯文本或HTML均可。但是如果你做不到这点,也还是有办法的。那就是使用 tnef。
安装:
代码: |
sudo apt-get install tnef |
使用:
代码: |
tnef winmail.dat |
你也可以先用tnef -t winmail.dat 来看看包含的文件。
由于发件人用的大多是windows,一般这样得到的附件在utf8的linux下,文件名都会是乱码,无奈再用convmv转一下文件名的编码:
代码: |
convmv -f gbk -t utf8 –notest * |
至此大功告成。
再用一行总结一下以上过程:
代码: |
tnef winmail.dat && tnef -t winmail.dat | xargs convmv -f gbk -t utf8 –notest |
再写点关于ssh的
一、gnome终端ssh登录服务器时提示密码慢的解决办法:
原帖:http://forum.ubuntu.org.cn/viewtopic.php?t=47794&highlight=
原先用gnome终端ssh登录服务器时,输入ssh命令到提示可以输入密码大概要等20多秒,后来查到说是由于
引用: |
IP地址反向解析 禁用掉就好了 |
解决办法就是:
引用: |
系统->系统管理->网络->常规,把自动服务探测关闭 |
验证有效~
而且那选项本来就标着“这是一个潜在的安全隐患”估计还是实验性的东东吧!
二、用 RSA 密钥代替密码验证身份,无须每次连接都输密码的办法
1.再本机执行
代码: |
ssh-keygen -t rsa |
先会提示密钥对保存位置,默认为(~/.ssh/id_rsa),接受默认选项。
然后会提示输入一个短语用于代替密码,这里如果以后不想每次都输密码的话,就直接回车,留空。
会再次让你输入上面的内容,继续回车留空。
这时候密钥对就生成好了,文件在~/.ssh/id_rsa和~/.ssh/id_rsa.pub
2.将本机刚才生成的~/.ssh/id_rsa.pub文件里面的内容添加到远程机的登录用户的~/.ssh/authorized_keys文件下面,如果该文件不存在,可以手工创建一个。
3.完成,现在ssh远程机的话,就直接登录了
不过要保证本机的~/.ssh/id_rsa文件的安全哦~万一这个文件被盗,后果将是很严重滴~~~
apt-file
# apt-file search filename——查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字符串。
apt-file是一个独立的软件包。您必须先使用apt-get install来安装它,然後运行apt-file update(这步会很慢,而且没有提示,需要点耐心)。
如果apt-file search filename输出的内容太多,您可以尝试使用apt-file search filename | grep -w filename(只显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的话,这样做是有帮助的)。
apt-get update 系统软件包更新