linux常见问题

  1. UNIX用户怎样与WINDOWS用户互发控制台信息?

    发送控制台信息给WINDOWS主机比较容易实现,需要要安装SAMBA,然后将下面的脚本复制为/usr/bin/net文件,并用chmod 777 /usr/bin/net使其可执行。

    #!/bin/bash
    #/usr/bin/net
    case "$1" in
        send)
            echo "$3"| -I "$2" -M `nmblookup -A "$2"|sed -e '1d' -e '3,/*/d'|cut -f2|cut -d' ' -f1`
                ;;
        *)
            echo "Usage:net send <ipaddr></ipaddr><message></message>"
            exit 1
    esac
    

    收取WINDOWS主机发来的控制台信息可以在你的smb.conf文件的Global段增加如下一句:

    messsage command = cat %s | mail root -s "PopMsg from: %f";rm %s;
    

    这句话的意思是SAMBA收到的信息以邮件的形式发给用户(root),邮件标题为"PopMsg from: 主机名"。当然,要想正确收到信息你需要配置好sendmail或其它邮件程序。

  2. 在UNIX下如何更改显示器的刷新频率?

    在UNIX下可以使用xvidtune这个工具来调整显示器的刷新率,在调整好之后,你需要将调整好的参数写到XF86Config文件中,否则重新启动之后又会回到原来的样子。在工具界面有个show按扭,它会将当前的参数输入到控制台,类似于:

    "1024x768"     94.50   1024 1084 1180 1356    768  769  772  812 +hsync +vsync
    

    将这个参数作为Modeline的值写到Section "Monitor"一段中,如下:

    Section "Monitor"
            Identifier   "Monitor0"
            VendorName   "Monitor Vendor"
            ModelName    "Monitor Model"
            DisplaySize  310        233
            HorizSync    30.0 - 96.0
            VertRefresh  50.0 - 160.0
            Option      "dpms"
            
    EndSection
    
  3. LaTeX生成DVI文档时常出现underfull提示,它对文档到底有什么影响?

    生成DVI时出现很多这样的提示,虽说不影响生成DVI, 但不很清楚对文档就底有什么影响,信息如下:

    #latex test.tex
    ...
    Underfull \hbox (badness 10000) in paragraph at lines 192--193
    Underfull \hbox (badness 10000) in paragraph at lines 194--195
    Underfull \hbox (badness 10000) in paragraph at lines 206--221
    Underfull \hbox (badness 10000) in paragraph at lines 224--230
    Underfull \hbox (badness 10000) in paragraph at lines 224--230 [7]
    Underfull \hbox (badness 10000) in paragraph at lines 240--241 [8] [9] (./test.aux) )
    (see the transcript file for additional information)
    Output written on test.dvi (9 pages, 27268 bytes).
    Transcript written on test.log.
    

    LaTeX遇到的文字间距太宽或太窄时,计算出badness值超过了设定的容忍值,因此就会有underfull or overfull的waring,用CJK包的时候常常有,可以不必理会。

  4. 在LINUX中如何加载NTFS文件系统?

    在FreeBSD等UNIX系统中对NTFS格式是默认支持的,但在LINUX中这个特性默认是没有打开的。可以通过重新编辑内核的方式打开NTFS格式的支持,但重编内核的工作量比较大,简便的方法是从这里下载一个NTFS内核支持包(RPM格式),安装后即可。

    加载NTFS分区的方法是:

    #mount -t ntfs /dev/hda1 /mnt/ntfs
    

    如需中文文件名支持,你需要这样做:

    #mount -t ntfs -o iocharset=cp936 /dev/hda1 /mnt/ntfs
    

    需要注意的是,这个内核支持包只对特定的内核版本有效(2.4.18-14),其它内核版本的支持包可以从这里下载。

  5. 如何用NT LOADER引导LINUX操作系统?

    在LINUX中有一个工具dd,它可以精确定量的复制磁盘上的数据。系统引导数据通常写在磁盘(或分区)的前512字节,因此只要用dd命令将这512字节内容复制为一个文件,即可用它来引导LINUX系统。

    假设硬盘分区情况如下:

       Device Boot    Start       End    Blocks   Id  System
    /dev/sda1   *         1      2234  17944573+   7  HPFS/NTFS
    /dev/sda2          2235      3278  18385930   83  Linux
    /dev/sda3          3279      4427    538146   82  Linux swap
    

    在上边的磁盘中,分区sda1装有WINDOWS2000,sda2装有LINUX操作系统,并且LILO安装在sda2(如装在sda1,则需要在LINUX系统中将LILO重新安装到sda2分区),在LINUX中执行如下命令:

    #dd if=/dev/sda2 of=/linux.sec bs=512 count=1
    

    这个命令会在根目录下生成一个linux.sec文件,将其复制到WINDOWS分区的C盘根目录下(具体可以使用FTP,MAIL等方式进行复制),然后修改NT LOADER的boot.ini文件,改法如下:

    [Boot Loader]
    Timeout=10
    Default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
    [Operating Systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
    c:\linux.sec="RedHat Linux 8.0"
    

    如果不出意外,现在你就可以用NT LOADER来引导LINUX了。

    为什么那么多人喜欢用NT LOADER来引导LINUX呢?我就不用:P

  6. 怎样在LINUX下使用WINDOWS的simsun字体

    很多人装了LINUX之后,都会觉得X-WINDOWS的字体很难看,不如WINDOWS看着清晰,下面介绍如何在REDHAT8下使用WINDOWS的SIMSUN字体。

    此文摘自linuxsirs.org

    1.在/usr下建一个文件夹system,然后在里面建两个文件夹fonts和truetype,命令如下:

    #cd /usr
    #mkdir system
    #cd system
    #mkdir fonts truetype
    

    2.从windows的fonts目录拷贝以下字体文件到/usr/system/fonts,要特别注意字体文件名的大小写,以下字体文件名都是小写:

    simsun.ttf     #如果是simsun.ttc改名成simsun.ttf
    tahomabd.ttf
    tahoma.ttf
    verdanab.ttf
    verdanai.ttf
    verdana.ttf
    verdanaz.ttf
    

    3.把/usr/system/fonts下的所有文件拷贝到/usr/system/truetype下,然后从这里下载fonts.dir文件, 保存到/usr/system/truetype下,再将fonts.dir复制一份改名为fonts.scale.

    4.从这里下载redhat8.tar.gz文件, 然后再到text模式执行以下几步操作。(因为有很多兄弟说在xterm执行会提示崩溃):

    #tar zxvf redhat8.tar.gz
    #cd xft2-test-fans
    #chmod +x install.sh
    #./install.sh
    

    5.装完之后进入xwindows,然后从这里下载gtkrc.zh_CN文件并保存到/etc/gtk/下覆盖原文件.

    6.修改/etc/X11/XF86Config文件,见下面红色部分,因为篇幅关系,下面只是XF86Config文件的中间一部分,前面的、后面的部分都不要动。

    RgbPath "/usr/X11R6/lib/X11/rgb"
    
    # Multiple FontPath entries are allowed (they are concatenated together)
    # By default, Red Hat 6.0 and later now use a font server independent of
    # the X server to render fonts.
    	...
    	
    	FontPath "unix/:7100"
    EndSection
    
    Section "Module"
    	Load "dbe"
    	Load "extmod"
    	Load "fbdevhw"
    	Load "dri"
    	Load "glx"
    	Load "record"
    	 Load "freetype"
    	
    	Load "type1"
    EndSection
    

    7.运行命令fc-cache -f,运行qtconfig,在Fonts那个tab中激活Xft和aa.然后选择菜单中的File-save。如果运行#fc-cache -f很长时间没相应,可按ctrl+c结束,继续进行下一条操作。

    8.退出X,重新进入

    9.控制中心,将字体选择为Tahoma 9,等宽字体选择为SimSun 9(1024x768,其他分辨率按照需求修改).

    10.启动konqueror浏览器,配置,将外观字体选择为Tahoma 9,浏览器字体设置全部设置为Tahoma(1024x768,其他分辨率按照需求修改).

    11.启动konsole,将字体设置为Terminal 10,并保存设置(1024x768,其他分辨率按照需求修改).

    这个汉化的方法的优点就是打开了字体平滑,效果非常好,在浏览器里可以正常的显示粗斜体,在保证了速度的同时美化了redhat linux. 看看我的桌面效果吧~

  7. Linux忘记密码怎么办?

    一. 如果你使用lilo引导操作系统:

    1. 在出现 lilo: 提示时键入

    lilo: linux single

    (如果是图形模式的Lilo请先按ctrl+x进入文本模式), 回车后进入linux单用户模式;

    2. 修改口令文件:

    #vi /etc/shadow

    将第一行,即以root开头的一行中root:后和下一个:前的内容删除,改成如下模样:

    root::......

    保存口令文件,重启计算机,此时root密码已经为空.

    二. 如果你使用grub:

    1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键;

    2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键;

    3. 修改你现在见到的命令行,加入single,结果如下:

    kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/

    4. 回车返回,然后按b键启动,即可直接进入linux命令行;

    5. 修改口令文件:

    #vi /etc/shadow

    将第一行,即以root开头的一行中root:后和下一个:前的内容删除,改成如下模样:

    root::......

    保存口令文件,重启计算机,此时root密码已经为空.

  8. 在Linux下如果挂接USB DISK?

    本方法在RedHat 8.0下测试通过.

    USB闪存在LINUX下的设备文件名叫做/dev/sda, 在只存在一个分区的情况下一般都为/dev/sda1, 因此使用USB盘一般可以用下面的命令:

    #mount -t vfat /dev/sda1 /mnt/usb        #事先应存在/mnt/usb目录。
    

    如果恰巧你像我一样使用的是SCSI接口的硬盘,而SCSI硬盘的设备文件使用的名称是/dev/sda1,/dev/sda2 ..., 此时,USB盘的设备名就变为/dev/sdb1:

    #mount -t vfat /dev/sdb1 /mnt/usb
    

    当然在挂接时可以不必指定其文件系统类型,LINUX会自动判断其文件系统的类型。

    #mount /dev/sda1(sdb1) /mnt/usb
    
  9. 在Linux下有关声音文件处理的应用程序

    A.关于编码和播放等问题

    (1). 用play可以播wav文件,事实上 play 只是一个 shell script, 真正的工作是由 sox 在做的. 不信你可以"vi /usr/bin/play"看看它的内容.

    (2). sox 可以播放很多不同格式的文件. 若 sox 无法正确辨认文件, 可先用 file 命令查看文件格式, 再改成正确的扩展名 (或在 sox 命令列上,文件名之前, 加上 -t参数.

    sox /usr/share/sndconfig/sample.au -t ossdsp /dev/dsp

    (3). cdda2wav 可以把cd 以轨道为单位, 转换作成 .wav文件. 例如:

    cdda2wav -sx -t 2 -D /dev/cdrom melody.wav 

    这个命令将以最高品质将CD上第二首歌 (第二轨道) 存成 melody.wav文件.

    (4). wavplay 可以播放 .wav文件.

    (5). bladeenc 可以把 .wav文件转换成 .mp3 格式文件.

    (6). 直接把 CD里的第二首歌存成 melody.mp3 格式:

    cdda2wav -sx -t 2 -D /dev/cdrom - | bladeenc STDIN melody.mp3

    (7). mpg123 可以播放 .mp3 文件.

    (8). wavrec 可以把 aumix 所指定的音源上正在播放的声音录制成 .wav 格式文件. (若希望将录制成果直接转给 bladeenc 制成 .mp3 格式, 需在录制时加 -s 48000 参数)

    (9). 录音前, 先用 aumix 确认想录的音源左边都有 "R" 字样, 不想录的音源左边是空白或是 "P" 字样.

    B.关于音乐文件的批量处理问题

    批量处理一般用在将音乐文件刻到光盘上的过程中,可以刻成CD格式,也可以直接将MP3文件直接写到CDR中。下面介绍一些常用的方法:

    注:以下命令均在bash中完成。

    (1)将所有的mp3文件集中到一个文件夹中,如果文件名中有空格,用下划线代替:

    for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done

    (2)制作CD前,需要将它们转换成wav格式,命令如下:

    for i in *.mp3; do mpg123 -w `basename $i .mp3` .wav $i; done

    注:命令`basename $i .mp3` .wav 将用wav扩展名代替mp3. 我有101种方法来实现这种功能,这里是另一个:

    `echo "$i" | sed 's/.mp3/.wav/g'`

    (3)执行"file *.wav"命令,然后查看输出内容不同于16bit stereo 44100 Hz的所有文件.

    (4)如果存在格式不统一的文件,需要将他们转换为上述的规格,例如将文件track01.wav转成44.1kHz可以用如下命令:

    sox track01.wav -r 44100 track01-new.wav resample

    Sox非常之流行,因此很有可能在每个GNU/Linux发行套件中 都是缺省安装的,也可以从这里找到. 当然,命令行参数对于普通的用户多少还是有些神秘的.请参考这里,多了解一些使用技巧吧.

    7.正常化你的WAV文件,以避免过分的音量失真.我使用了一个由Chris Vaill所编写的程序,叫做normalize. 这个程序可以从这里或者这里取得.

    使用如下的命令格式,可以使得音量尽可能的大(-m是指定mix模式):

    normalize -m *.wav

    可以说,LINUX下的Sound和Midi资料是非常丰富的,有兴趣的可以看看这个主页.

  10. Debian Woody 3.0r1安装汉化指南

    1.安装基本系统,大约70M,之后先不必使用tasksel和dselect安装其它软件;

    用光盘引导安装程序,默认引导2.2.20内核,如果需要2.4.18内核,可以在光盘引导后,按下F3,然后
    输入bf2.4,这样大可不必急于升级到2.4.20内核了。

    2.更新apt sourcelist:

    将如下几行加到/etc/apt/source.list中:
    
    deb http://ftp.jp.debian.org/debian/ unstable main non-free contrib   #日本的apt server,更新较快,速度可以
    deb http://ftp.debian.org/debian/ unstable main non-free contrib   #主站点,速度也不慢
    deb http://marillat.free.fr/unstable main     #mplayer在此服务器上
    
    然后执行apt-get update来更新apt-cache.
    

    3.更新内核版本(使用bf2.4内核的可以跳过这一步):

    #apt-get install kernel-image
    列出以下版本的内核:
    
    Reading Package Lists... Done
    Building Dependency Tree... Done
    Package kernel-image is a virtual package provided by:
    kernel-image-2.4.20-k7-smp 2.4.20-5
    kernel-image-2.4.20-k7 2.4.20-5
    kernel-image-2.4.20-k6 2.4.20-5
    kernel-image-2.4.20-686-smp 2.4.20-5
    kernel-image-2.4.20-686 2.4.20-5
    kernel-image-2.4.20-586tsc 2.4.20-5
    kernel-image-2.4.20-386 2.4.20-5
    kernel-image-2.4.18-bf2.4 2.4.18-6
    kernel-image-2.2.22-idepci 2.2.22-1
    kernel-image-2.2.22-compact 2.2.22-1
    kernel-image-2.2.22 2.2.22-1
    kernel-image-2.2.20-udma100-ext3 2.2.20-7
    kernel-image-2.2.20-reiserfs 2.2.20-4
    You should explicitly select one to install.
    E: Package kernel-image has no installation candidate
    
    我们的目的是升级到2.4.20版本,选择适合你的CPU的内核.
    例如我的CPU是INTEL的P4-1.8G,所以选686的:
    # apt-get install kernel-image-2.4.20-686
    
    取回新的内核映像后,接下来的第一个提示是:
    
    Do you want to stop now? [Y/n]
    
    这里应该打n,除非你想中途退出.
    
    接下来,安装过程会提示是否使用现有的LILO配置:
    
    You already have a LILO configuration in /etc/lilo.conf
    Install a boot block using the existing /etc/lilo.conf? [Yes]
    
    直接回车,或打Yes就完成了kernel的安装.
    
    由于安装过程不会自动修改你的lilo.conf,所以接下来要手动修改一下:
    
    首先为你的新内核的initrd做一个符号链接:
    
    ln -s /boot/initrd-xxx(xxx根据你的内核版本而定) /boot/initrd
    
    其次,修改你的lilo.conf
    
    vi /etc/lilo.conf
    找到image=/vmlinuz,在它下边增加一行:initrd=/boot/initrd
    
    最后重新引导记录:#lilo -v -v -v
    
    #reboot
    
    重启之后,有时会遇到网卡不能正确被识别的问题,一般需要在/etc/modules.conf中增加网卡的module,
    
    例如我的网卡是3COM的,就加上 alias eth0 3c59x 即可;
    如果用vmware安装的,就加上 alias eth0 pcnet32;
    如果是tp-link,D-link,intel-2114x之类普通的牌号,一般加上 alias eth0 tulip 就可.
    
    当然你也可以用modconf来选择添加. 添加之后重新启动.
    

    4.用apt-get安装新版本的XFree86(XFree86-4.2.1-16)

    #apt-get install x-window-system-core
    
    取回X-server及相关软件包之后,会提示你做一些简单的X的配置;
    
    接下来会有两个提示:
    
    Do you want to upgrade glibc? [Y/n]
    Do you want to restart services? [Y/n]
    
    直接打Y或回车确定.
    
    接下运行tasksel,选择X Window system,用来安装X的其它组件.
    
    X的安装完成.
    

    5.安装一个窗口管理器,这里介绍wmaker

    #apt-get install wmaker wmaker-data wmakerconf wmakerconf-data
    
    到这里,我们已经基本安装完成,接下来进行汉化的工作.
    

    6.用defoma安装中文字体

    a.安装defoma (Debian Font Manager): #apt-get install defoma
    
    b.安装x-ttcidfont-conf (Configure TrueType and CID fonts for X): #apt-get istall x-ttcidfont-conf
    
    c.安装文鼎的四个字体文件: #apt-get install ttf-arphic-*
    
    d.安装xfs-xtt (X TrueType-Font Server)
    
    e.在/etc/X11/XF86config-4文件中添加如下字体路径:
        FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
        FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
    
    f.安装simsun.ttf字体
    先取回simsun字体,放到以下目录:
    #mkdir /usr/share/fonts/truetype/sim
    #cp simsun.ttf /usr/share/fonts/truetype/sim/
    
    g.为simsun.ttf字体编写hints文件(或用defoma-hints truetype simsun.ttf > simsun.hints来生成)
    #cd /etc/defoma/hints
    #vi ttf-sim-simsun.hints
    
    内容如下:
    category truetype
    begin /usr/share/fonts/truetype/sim/simsun.ttf
        Family = Sim-Sun
        FontName = SimSun-Medium
        Encoding = Unicode
        Location = Chinese-China English
        Charset = ISO10646-1 GB2312 ISO8859-1
        UniCharset = GB2312 ISO8859-1
        GeneralFamily = SimSun
        Weight = Medium
        Width = Fixed
        Shape = Upright
        Alias = Sim-SunGB SimSunGB
        Foundry = Sim
        Priority = 20
        X-Family = SimSun
        X-ElementAlias=foundry=default:family=simsun:resx=72:resy=72
        TTCap = halfwidth-bw=0.5 italic-angle=0.167 no-roblique no-oblique no-ritalic
    end
    注意:begin与end的前边不要有空格.
    
    h.将写好的hints文件注册到defoma:
    #defoma-font reregister-all ttf-sim-simsun.hints
    
    同样,安装tahoma.ttf和tahomabd.ttf,hints文件如下:
    category truetype
    begin /usr/share/fonts/truetype/sim/tahoma.ttf
        Family = Tahoma
        FontName = Tahoma-Regular
        Encoding = Unicode
        Location = English
        Charset = ISO8859-1
        GeneralFamily = Roman
        Weight = Medium
        Width = Variable
        Shape = Upright
        Foundry = Microsoft
        Priority = 10
    end
    
    category truetype
    begin /usr/share/fonts/truetype/sim/tahomabd.ttf
        Family = Tahoma
        FontName = Tahoma-Bold
        Encoding = Unicode
        Location = Englishh
        Charset = ISO8859-1
        GeneralFamily = Roman
        Weight = Bold
        Width = Variable
        Shape = Upright
        Foundry = Microsoft
        Priority = 10
    end
    然后执行:
    #defoma-font reregister-all tahoma.hints
    #defoma-font reregister-all tahomabd.hints
    
    i.修改/etc/X11/XF86Config-4文件,用xtt代替freetyp.
    讲到这里,有一个问题需要注意,就是XF86-4.2.1-16有一个bug,就是加开libxtt.a时会出错,
    因此需要从这里下载一个新的
    libxtt.a文件,覆盖掉/usr/X11R6/lib/modules/fonts/libxtt.a即可.
    

    7.设置系统locale

    安装国际语言数据locales: #apt-get install locales
    取回软件包后,在配置界面中选择zh_CN GB2312, 默认的locales选择zh_CN.
    

    8.设置字体及输入法

    a.修改gtkrc.zh_CN更换字体:
    
    内容如下:
    style "gtk-default-zh-cn" {
    fontset = "-adobe-helvelica-medium-r-normal--14-*-*-*-*-*-iso8859-1,\
    -sim-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0,fixed"
    }
    class "GtkWidget" style "gtk-default-zh-cn"
    
    b.修改wmaker配置文件更换字体:
    
    #vi ~/GNUstep/Defaults/WindowMaker
    将每个字体的后边加上simsun的字体,例如:
    "-原-来-的-字-体-,-sim-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0";
    
    c.编辑~/GNUstep/Defaults/WMGLOBAL文件(无此文件就新创建一个):
    
    内容如下:
    {
    MultiByteText = YES;
    }
    
    d.安装fcitx:
    #apt-get install fcitx
    
    装完后,将以下三行加到~/.bashrc中:
    export XMODIFIERS="@im=fcitx"
    export XIM=fcitx
    export XIM_PROGRAM=fcitx
    
    如果你希望在WMaker启动时自动运行fcitx, 需要修改~/GNUstep/Library/WindowMaker/下的autostart文件
    (如没有该文件就创建一个), 内容如下:
    #!/bin/sh
    exec fcitx &
    
    当然也可以将你希望进入X时自动运行的其它程序也加到这里. 最后不要忘记将该文件的属性改成可执行:
    #chmod 755 autostart
    
    e.安装rxvt rxvt-ml:
    #apt-get install rxvt rxvt-ml
    
    rxvt-ml中含有支持简体中文的crxvt-gb和繁体中文的crxvt-big5两个版本
    
    修改~/.Xresources文件,添加如下内容:
    
    !! RXVT setting
    Rxvt.background:black
    Rxvt.foreground:white
    Rxvt.colorBD:yellow
    Rxvt.colorUL:green
    Rxvt.multichar_encoding:gb2312
    Rxvt.scrollBar:True
    Rxvt.scrollBar_right:True
    Rxvt.scrollBar_floating: False
    Rxvt.scrollstyle: next
    Rxvt.saveLines:1500
    Rxvt.color0:black
    Rxvt.color1:red
    Rxvt.color2:#3a5da3
    Rxvt.color3:#4b76cc
    Rxvt.color4:RoyalBlue4
    Rxvt.color4:#123f75
    Rxvt.color5:magenta
    Rxvt.color6:#a1b5dd
    Rxvt.color7:#8a95aa
    Rxvt.color8:#616668
    Rxvt.color9:#075982
    Rxvt.color10:#0f82bc
    Rxvt.color11:#13a9f4
    Rxvt.color12:SkyBlue2
    Rxvt.color12:#3d99c6
    Rxvt.color13:#63c2f2
    Rxvt.color14:#6caccc
    Rxvt.color15:#dbeff9
    Rxvt.font:7x14
    Rxvt.font:-b&h-lucidatypewriter-medium-r-normal-*-12-*-*-*-*-*-iso8859-*
    Rxvt.mfont:-*-simsun-medium-r-normal-*-14-*-*-*-c-*-gb*-*
    Rxvt.menu:/etc/X11/rxvt.menu
    Rxvt.preeditType:Root
    
    以上配置用于更改rxvt的风格及中文字体.
    
    

    9.基于gtk-2.0的程序的中文问题

    9-a. gtk-2.0的配置文件
    style "gtk-default-zh-cn" {
            font_name = "trebuchet,verdana,helvetica,Song,Sans, 14"
    
    }
    class "GtkWidget" style "gtk-default-zh-cn"
    
    9-b. 解决小字体模糊的问题
    
    由于基于gtk-2.0程序中的汉字默认使用了平滑的效果, 因此小中文字体显得模糊不清, 
    解决的办法对/etc/fonts/fonts.conf文件做如下修改:
    此文件最后一行最后应该是“</fontconfig>”,在这行前加入如下的一段:
    <match target="pattern">
    <test name="size" compare="less_eq">
    <int>14</int>
    </test>
    <edit name="antialias" mode="assign">
    <bool>false</bool>
    </edit>
    </match>
    
    上面是设定字体小于等于14则不用平滑效果。
    
    9.c. 将gtk-2.0的程序的 "input method" 默认为 "X input method"
    
    我习惯只将locale的LANG变量和LC_CTYPE赋为GB2312, 其它的值例如SHELL的提示等仍显示为英文, 
    因此, 我的环境变量是这样子的:
    LANG=zh_CN.GB2312
    LC_CTYPE=zh_CN.GB2312
    LC_NUMERIC=POSIX
    LC_TIME="POSIX
    LC_COLLATE=POSIX
    LC_MONETARY=POSIX
    LC_MESSAGES=POSIX
    LC_PAPER=POSIX
    LC_NAME=POSIX
    LC_ADDRESS=POSIX
    LC_TELEPHONE=POSIX
    LC_MEASUREMENT=POSIX
    LC_IDENTIFICATION=POSIX
    LC_ALL=
    
    如果你的LOCALE都是GB2312就不存在这个问题, 如果跟我一样的话, 就又引发了另一个问题, 
    那就是在gtk-2.0的程序中输入想输入中文的时候还要手动选择一下Input Methods = X Input Methods, 
    挺麻烦的, 可以这样解决:
    修改/etc/gtk-2.0/gtk.immodules,找到这一行:
    "xim" "X Input Method" "gtk+" "/usr/share/locale" "ko:ja:zh"
    
    改成:
    "xim" "X Input Method" "gtk+" "/usr/share/locale" "ko:ja:zh:C"
    
    将locale "C"加进去的意思就是在locale等于英文时也默认使用"X Input Method".
    

    到此,我们的汉化工作基本告成, 此时系统一般会占用400M左右的空间.

    10.Enjoy it!

  11. Debian 常用apt server
    #Debian APT 主站点,更新很快,速度也可以
    deb http://ftp.debian.org/debian/ unstable main non-free contrib
    #日本的APT SERVER,速度较快,更新比较及时
    deb http://ftp.jp.debian.org/debian/ unstable main non-free contrib
    #法国APT SERVER,Mplayer在此服务器上,但速度较慢
    deb http://marillat.free.fr/ unstable main
    #需要JAVA开发环境的同学可以使用这个APT SERVER
    deb ftp://ftp.tux.org/pub/java/debian unstable main non-free 
    
  12. Linux中java中文不能正常显示的问题

    Linux下通常在使用netscape,mozilla 或 phoenix的时候,java插件中的中文字符显示为方块,原因是java找不到中文字体,解决办法是修改java的字体配置文件。

    首先系统要安装中文字体,下边以simsun字体为例。

    java中字体配置是下面两个文件:

    $JAVA_HOME/1.4/jre/lib/font.properties.zh.Turbo
    $JAVA_HOME/1.4/jre/lib/font.properties
    

    首先修改font.properties.zh.Turbo文件,将其中的中文字体通通替换成simsun字体

    -default-simsun-medium-r-normal--*-100-*-*-c-*-gb2312.1980-0
    或
    -default-simsun-medium-r-normal--12-*-*-*-c-*-gb2312.1980-0
    

    上面写的字体在debian中是有效的,在其它系统中不一定完全一样。

    改完后font.properties.zh.Turbo文件应该象下面这样:

    erif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
    serif.1=
    
    serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
    serif.italic.1=
    
    serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
    serif.bold.1=
    
    serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
    serif.bolditalic.1=
    
    sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.1=
    
    ... ...
    
    dialoginput.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.bolditalic.1=
    
    # Missing Glyph Character
    #
    default.char=274f
    
    # Component Font Character Encodings
    #
    fontcharset.serif.0=sun.io.CharToByteISO8859_1
    fontcharset.serif.1=sun.awt.motif.CharToByteX11GBK
    
    fontcharset.sansserif.0=sun.io.CharToByteISO8859_1
    fontcharset.sansserif.1=sun.awt.motif.CharToByteX11GBK
    
    fontcharset.monospaced.0=sun.io.CharToByteISO8859_1
    fontcharset.monospaced.1=sun.awt.motif.CharToByteX11GBK
    
    ... ...
    
    fontset.serif.plain=\
    -b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\
    
    
    fontset.serif.italic=\
    -b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1,\
    
    
    fontset.serif.bold=\
    -b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1,\
    
    
    fontset.serif.bolditalic=\
    -b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1,\
    
    
    ... ...
    
    
    
    

    注意文件的最末一行,这个路径是你的simsun.ttf字体方件存放的位置,不要写错了。

    最后,将font.properties.zh.Turbo文件复制为font.properties覆盖掉原来的,否则当你的浏览器运行javavm时会使X重启。当然,最好事先备个份。

  13. 如何将一个rpm包解开(不是安装)
    #rpm2cpio file.rpm | cpio --extract --make-directories
  14. smbclient访问windows共享时中文乱码问题

    smbclient客户端访问unix/linux的samba共享时,中文显示默认没有问题,但访问windows的共享时中文却无法显示,解决办法如下:

    编辑samba的配置文件(一般在/etc/samba/smb.conf),在global配置部分加入如下两行:
      client code page = 936
      character set = 936
    注: 这两行的顺序很重要, 不能颠倒.
    
    之后再执行的时候有时会有一行错误信息"unrecognized character set", 不过不影响使用.
  15. Debian下grub的安装
    1.首先安装Grub :
    apt-get install grub
    
    2.复制文件:
    cp -r /usr/lib/grub/i386-pc/ /boot/grub
    
    3.做个文件链接:
    ln -s /boot/vmlinuz-2.4.21-2-686 /boot/vmlinuz
    ln -s /boot/initrd.img-2.4.21-2-686 /boot/initrd #没有就不做
    
    4.编制menu.lst:
    nano /boot/grub/menu.lst
    简单加入以下内容:
    timeout 20
    default 0
    title Debian
    root (hd0,0)       #第一个分区就写hd0,0
    kernel /boot/vmlinuz ro root=/dev/hda1   #我的DEBIAN装在第一个分区
    initrd /boot/initrd   #没有就不写
    title Windows         #没有WINDOWS就不写下三行
    root (hd0,1)
    chainloader +1
    
    5.把Grub安装到MBR :
    grub-install /dev/hda
    
    6.完成,重启
    
  16. 各类UNIX/LINUX的rooT密码丢失解决办法

    (1)solarisROOT密码遗忘的处理方法

    1,如果还能用普通用户登陆的话,%df /etc,确定包含/etc目录分区的设备名
    %df /etc
    / /dev/dsk/c0t0d0s0...
    此例中是c0t0d0s0,如果你的根目录分区设备不一样的话,替换一下就可以啦
    
    2,把系统盘插入cdrom中
    
    3,出现提示符后,使用sync命令刷新文件系统
    
    4,按下stop+A
    
    5,"ok"状态下键入boot cdrom -s
    
    6,在"#"提示符下键入mkdir /temp ,然后键入mount /dev/dsk/c0t0d0s0 /temp
    如果出现挂接不上的情况时,那么就运行fsck先 fsck /dev/rdsk/c0t0d0s0,然后在mount
    
    7,cd /temp/etc
    
    8,cp shadow shadowbak
    
    9,cat shadow
    得到root的口令字符串
    root:djglcj0J:6453:::其中djglcj0J就是root的加密后的口令字符串)
    
    10,sed s/djglcj0J// shadow>shadownew
    
    11,cat shadownew查看是否已经变为
    root::6453::::
    
    12,cp shadownew shadow
    
    13,cd /
    unmount /temp
    sync
    shutdown -i0 -g0 -y
    
    14,取出CD后,重起系统,这时root就不需要密码啦!
    
    这样也可以!
    OK boot cdrom -s
    #TERM=sun
    #export TERM
    #mount /dev/dsk/c0t0d0s0 /a
    #vi /a/etc/shadow(删除root的加密后的密码)
    #reboot 
    

    (2)恢复SCO UNIX超级用户口令

    一旦运行SCO UNIX 机器的超级用户口令忘了,可以用这个方法解决。
    在另一台安装了SCO UNIX的机器上,以Root用户注册,进入系统,用 mkdev fd命令或命令scoadmin中的
    Filesystem之Floppy Filesystem Manager来制作应急启动盘,包括Boottable 盘和Root filesystem盘。
    将上述制作的Root filesystem盘安装到硬盘上。
    # mount /dev/fd0135ds18 /mnt
    再将硬盘上的/etc/passwd 和/tcb/files/auth/r/root两个文件拷贝到Root filesystem盘上。
    # cp /etc/passwd /mnt
    # cp /tcb/files/auth/r/root /mnt
    卸载机器1硬盘上的软盘。
    # umount /dev/rfd0135ds18
    用Boot软盘去启动遗忘口令的机器,根据提示插入Root filesystem软盘,待出现“#”时,进行下面操作,将
    硬盘挂到软盘上:
    # mount /dev/hd0root /mnt
    备份硬盘上的/etc/passwd和/tcb/files/auth/r/root两个文件。因为这两个文件中还包含其他用户的注册信息。
    用Root filesystem软盘上的两个文件,覆盖硬盘上的两个文件/etc/passwd 和/tcb/files/auth/r/root。
    # mkdir /cyh
    # mount /dev/fd0135ds18 /cyh
    # cd /cyh
    # cp passwd /mnt/etc
    # cp root /mnt/tcb/files/auth
    卸载安装上的两个文件系统。
    # umount /dev/hd0root
    # umount /dev/fd0135ds18
    取出软盘,重新启动机器,待出现Login时,以Root用户注册,键入第二台机器的超级用户口令,这样便可进入的超级用户了。
    进入超级用户后,用Passwd和Root这两个文件的备份覆盖原来的文件,接着用passwd命令修改超级用户的口令。
    用户可以用Alt+F2换一个窗口,以Root注册,现在用修改后的口令就能用了。
    

    (3)aix4.3.3(ibm) rs/6000的root密码丢失

    将第一张安装盘放入光驱,重起机器,按f5键,终端按5,进入maintance页面,选择mount rootvg的功能选项,调
    用password修改口令,退出即可
    

    (4)freebsd的root密码丢了

    FreeBSD 4.7
    当显示 "boot ... 9 seconds"按任意健
    输入:boot -s
    
    登录以后
    #/sbin/mount -a
    #passwd
    

    (5)找回linux忘记了的root口令(lilo/grub)

    三种办法:
    1.在系统进入单用户状态,直接用passwd root去更改
    2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下:
    cd /mnt
    mkdir hd
    mount -t auto /dev/hdaX(原来/分区所在的分区号) hd
    cd hd
    chroot ./
    passwd root
    这样可以搞定
    3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同
    rh8中
    
    用lilo引导系统时:
    1. 在出现 lilo: 提示时键入 linux single
    画面显示 lilo: linux single
    2. 回车可直接进入linux命令行
    3. #vi /etc/shadow
    将第一行,即以root开头的一行中root:后和下一个:前的内容删除,
    第一行将类似于
    root::......
    保存
    4. #reboot重启,root密码为空
    
    用grub引导系统时:
    1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键
    2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键
    3. 修改你现在见到的命令行,加入single,结果如下:
    kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/
    4. 回车返回,然后按b键启动,即可直接进入linux命令行
    5. #vi /etc/shadow
    将第一行,即以root开头的一行中root:后和下一个:前的内容删除,
    第一行将类似于
    root::......
    保存
    6. #reboot重启,root密码为空 
    

    (6)HP-UX 的root密码丢失

    启动时按esc 进入isl
    进入ISL后:
    isl>bo pri
    (yes/no)y
    ipl>hpux -is
    ipl>vi /etc/passwd
    去掉root 的密码即可
    
  17. 在debian中less无法显示中文的解决办法
    在~/.bashrc中加入下边一句:
    export LESS=-isMrf
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值