北京理工大学 20981 陈罡
一些小技巧,总是容易忘记,写在网上就不容易忘记了,查起来也方便。我一直使用slackware做为自己的linux桌面环境,主要原因嘛:
首先,它full install以后基本上配套的源代码和工具啥的都装上了,不用再下载kernel自己编译工具链啥的,比较适合像偶这样的懒人;其次,它的启动脚本的处理还是严格按照unix的机制来用习惯了;软件管理,生成一个tgz,就可以直接用installpkg, removepkg啥的直接安装,也马马虎虎。多数软件都可以从源代码直接编译出来,不会缺这少那的。
(1)去掉slackware烦人的“嘀嘀”声
打开/etc/inputrc,将“set bell-style none”前面的“#”给去掉。
然后重新登录一次,于是,整个世界安静了。
(2)帖一些emacs的简单配置,省得每次重装都要满世界的去找
(custom-set-variables
;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
'(case-fold-search t)
'(current-language-environment "Chinese-GB")
'(default-input-method "chinese-py-punct")
'(global-font-lock-mode t nil (font-lock)))
(custom-set-faces
;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
)
;; enable cscope support
(add-hook 'c-mode-common-hook
'(lambda ()
(require 'xcscope)))
;; python-mode support
(setq auto-mode-alist (cons '("" . python-mode) auto-mode-alist))
(setq interpreter-mode-alist (cons '("python" . python-mode) interpreter-mode-alist))
(autoload 'python-mode "python-mode" "Python editing mode." t)
(setq font-lock-maximum-decoration t)
(global-font-lock-mode t)
;; get off tool bar
(tool-bar-mode -1)
(setq-default make-backup-files nil)
(show-paren-mode t)
(setq lazy-lock-defer-on-scrolling t)
(setq font-lock-support-mode 'lazy-lock-mode)
(column-number-mode t)
(display-time)
;; replace yes, no selection to y or n directly
(fset 'yes-or-no-p 'y-or-n-p)
(setq visiable-bell t)
(global-set-key [?\S- ] 'set-mark-command)
;; set emacs default frame window size
(setq default-frame-alist (append '((top . 0) (left . 0) (width . 100) (height . 40)) default-frame-alist))
;; highlight selected regions
(transient-mark-mode t)
(put 'upcase-region 'disabled nil)
;; text mode first
(setq default-major-mode 'text-mode)
;; support middle mouse key paste
(setq mouse-yank-at-point t)
(transient-mark-mode t)
;; support open iamge file
(auto-image-file-mode t)
;; shut up
(setq visible-bell t)
;; support mouse wheel
(mouse-wheel-mode t)
(3)对usb鼠标滚轮的支持方法
打开/etc/X11/xorg.conf,然后修改Identifier为Mouse1的Sesstion,使其满足下面的配置:
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/mouse"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection
(4)做为公网服务器的时候,得到公网ip地址的脚本
#!/usr/bin/python
import os ; import commands ;
cmd_str = "wget -q -O - | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'" ; output_str = commands.getoutput(cmd_str) ; print "public ip is ----> " + output_str ;
|
(5)win32环境下mingw+msys配置
win32环境下面有的时候需要调试和编译一些linux环境下面的软件。关于环境搭建,我首选mingw+msys环境。具体的方式如下:
首先安装mingw,从网站下载、安装即可。最好目录之间不要有什么空格,如果希望一次安装,以后不必再下载一遍,第一次安装的时候要选择“download only”。然后找个地方把这个mingw的setup以及它下载的一大堆tar.gz, tar.bz2的包都保存下来,下次安装的时候就不用下载了。
然后安装msys,没什么可说的,直接跟mingw安装在一个盘即可。
全部完毕以后,需要进入d:\msys\home\创建一个目录,例如wayne,然后把系统的环境变量HOME设置为这个目录。msys的字体有些小,可以通过修改d:\msys\msys.bat这个文件把字号改大:
start rxvt -backspacekey -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Courier-new-14 -tn msys -geometry 80x25 -e /bin/sh --login -i
把这一句的Courier-xx这里的Courier是字体,xx是字号,可以自己修改到满意为止。
然后可以安装emacs for win32,由于windows不支持.emacs这样的文件名。所以emacs的配置文件需要加上_emacs变成下划线才行。把_emacs拷贝到d:\msys\home\wayne目录下面,然后通过msys来改名成.emacs即可,如下图所示的颜色效果。
与其配套的.emacs文件(注意这是for win32 emacs的配置文件):
|
文件: |
emacs_w32_conf.rar |
大小: |
2KB |
下载: |
下载 | |
打开msys,进入/etc/目录找到fstab,用emacs进行编辑,添加如下挂接点:
d:/mingw \mingw
然后保存,退出msys即可,再次进入的时候就会发现msys已经支持gcc,g++之类的常规编译工具了。
目前是可以编译、运行linux常规应用程序的(不含ui的那种),但是还不能调试,可以到mingw上去下载gdb包,解压后直接覆盖到mingw目录即可。
如果要支持boost,还需要到mingw网站上下载jam编译器等相关工具,再此不再赘述。
(6)关于firefox2.0.0.14版本中无法输入中文的问题
找到/usr/lib/firefox-2.0.0.14/firefox脚本文件,找到如下行:
moz_libdir=/usr/local/lib/firefox-2.0
MRE_HOME=/usr/local/lib/mre/mre-2.0
在这几行的下面添加:
XMODIFIERS=@im=SCIM
GTK_IM_MODULE=scim-bridge
export XMODIFIERS GTK_IM_MODULE
然后保存,重新启动firefox,即可在firefox中输入中文了。
该问题也可以在bashrc中加入这几行解决。
(7)关于iso光盘镜像文件的命令
制作方法(光盘备份)
#cp /dev/cdrom /home/sunky/mydisk.iso
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso
目录制作方法(目录生成iso):
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
挂载方法:
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/cdrom
(8)关于动态创建二维数组的方法
很多公司面试都闲着没事考这个,贴一个正解:
/*Create a dynamic 2D array */
#include
#include
#define N 3
#define M 4
int main(void)
{
int (*p)[N];
int n,m;
p=(int (*)[N])malloc(N*M*sizeof(int));
if(!p) {
printf("Out of memory!\n");
exit(1);
}
for(n=0;n for(m=0;m scanf("%d",&p[n][m]);
for(n=0;n for(m=0;m printf("%d ",p[n][m]);
free(p);
return 0;
}
c99已经支持动态数组了。