关闭

一些linux小tips(随时想到随时加)

1081人阅读 评论(0) 收藏 举报
北京理工大学  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 '("\\.py$" . 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 - www.whatismyip.org | 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   <stdio.h>  
  #include   <stdlib.h>  
  #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<N;n++)   
       for(m=0;m<M;m++)   
           scanf("%d",&p[n][m]);   
    for(n=0;n<N;n++)  
        for(m=0;m<M;m++)  
            printf("%d   ",p[n][m]);  
   
    free(p);   
    return   0;  
  }  
  c99已经支持动态数组了。 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:287221次
    • 积分:2416
    • 等级:
    • 排名:第15960名
    • 原创:41篇
    • 转载:37篇
    • 译文:0篇
    • 评论:25条
    文章分类
    最新评论