久久天天躁狠狠躁夜夜不卡,…久久精品99久久香蕉国产 ,国产巨作麻豆欧美亚洲综合久久http://www.shnenglu.com/Viking/category/14096.html集中精力,放棄一切的去做一件事情,只要盡力了,即使失敗了,你也不會后悔!zh-cnSat, 07 Jan 2012 04:07:58 GMTSat, 07 Jan 2012 04:07:58 GMT60Debian下LAMP環境的搭建http://www.shnenglu.com/Viking/archive/2011/12/25/apache2.html張貴川張貴川Sun, 25 Dec 2011 06:03:00 GMThttp://www.shnenglu.com/Viking/archive/2011/12/25/apache2.htmlhttp://www.shnenglu.com/Viking/comments/162774.htmlhttp://www.shnenglu.com/Viking/archive/2011/12/25/apache2.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/162774.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/162774.html
Debian下LAMP環境的搭建
以前安裝LAMP環境都是采用下載軟件包自己編譯安裝的方法搭建的。當時以為采用apt的方式來安裝時軟件包版本的陳舊是一個問題,另一個主要的問題就是并不知道apt將這些軟件包安裝到什么地方,從而使得自己要修改一個配置文件或是啟動一個服務命令時都找不到。采用手工編譯安裝的方法,雖然可以很好的控制軟件包的安裝位置,但是卻不得不自己去解決各種的依賴關系。如編譯PHP時,就是因為各種的依賴關系而不能進正確的configure過程。當然如果是Debian的環境下,可以使用apt來安裝需要的各種軟件依賴,但是如果是在其他的發版本下,這樣的關系的解決就是一個很費力的過程。
在Debian的環境下搭建LAMP時,只是使用apt來安裝各種缺失的依賴關系,這樣的使用就顯得有一些大材小用的感覺了。其實采用apt的方式來搭建LAMP也可以安裝到最新的版本,而且可以自動的解決各種的依賴關系,實在是一個相當不錯的選擇。似乎很好的驗證了這句話:Debian上軟件包的安裝還是要采用apt的方式。下面我們就采apt的方式來安裝我們的LAMP環境:

1 安裝MySQL

# apt-get install mysql-server-5.0

這樣安裝的是MySQL的5.0版本,而且可以自動的解決各種依賴關系,從而會安裝上服務器端與客戶端以及各種相應的軟件包。

2 安裝Apache2

# apt-get install apache2

這樣安裝的是Apache的2.x版本,如果采用的是

# apt-get install apache

則安裝的是Apache的1.x版本。

3 安裝PHP5

# apt-get install php5

這樣就會安裝PHP5版本,而且會自動的安裝上各種所需要的模塊。如Apache2與MySQL的相應Module等。

這樣我們就已經成功的搭建了我們的LAMP開發環境了。我們可以簡單的進行一個測試:

1 apt在成功的安裝了MySQL后,默認啟動了MySQL服務器,我們可以用下面的命令來與之建立連接:

# mysql

如果顯示了mysql提示符,則說我們的MySQL安裝是成功的。

2 apt在成功的安裝了Apache2后,默認啟動了Apache2守護進程,我們可以在我們的瀏覽器地址欄中輸入localhost,如果可以看到默認的主頁,則說我們的Apache2安裝是成功的。

3 我們可以簡單的寫一個PHP的腳本如php.php放在Apache2目錄下,默認為/var/www/目錄。腳本內容如下:

<?php

phpinfo();

?>

這樣以后在我們的瀏覽器地址欄中輸入

http://localhost/php.php

如果可以正確的解析,則說明我們的PHP的安裝是成功的。

在這里我們要注意的一點就是,如果我們的PHP腳本沒有正確的進行解析,我們可以重啟Apache2來試一下,因為這時Apache2需要重啟來裝入相應在的PHP模塊,命令娛下:

# /etc/rc2.d/S91apache2 restart

當然S91apache2要依據我們系統的相應文件而定。

另外在默認的情況,Debian在啟動時會啟動Apache2與MySQL服務器,如果并不希望這樣做,我們可以參考一下Debian系統啟動腳本的相關內容。

我基本上是參照這篇博文來做的,當然,實現安裝了,apt-spy 工具來加快source源!



張貴川 2011-12-25 14:03 發表評論
]]>
Debian chinese fonts installhttp://www.shnenglu.com/Viking/archive/2011/09/30/debian.html張貴川張貴川Fri, 30 Sep 2011 15:47:00 GMThttp://www.shnenglu.com/Viking/archive/2011/09/30/debian.htmlhttp://www.shnenglu.com/Viking/comments/157259.htmlhttp://www.shnenglu.com/Viking/archive/2011/09/30/debian.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/157259.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/157259.html
the   desired effect: I wanna to install my new Debian system like this, with all En environment include mene, desktop, system fonts but displays nicely chines on web pages   and emails .so , do it like this:

First Step:
  
su - root
dpkg-reconfigure locales
restart you system .
config the language you want to use.

chose below opition:
en_US.ISO-8859-1
en_US.UTF
-8
zh_CN.GB2312
zh_CN.UTF
-8
zh_CN.GBK
zh_TW.BIG5
zh_TW.UTF
-8

use command to check does them selected.
#locale -a
C
en_US
en_US.iso88591
en_US.utf8
POSIX
zh_CN
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_TW
zh_TW.big5
zh_TW.utf8
#

Second Step:  
this step to install all  font deb package.
fonts package list:
 ttf-arphic-ukai
 ttf
-arphic-uming
 ttf
-arphic-gbsn00lp
 ttf
-arphic-bkai00mp 
 ttf
-arphic-bsmi00lp
go to Debian Search web-page search for all these packages.
http://packages.debian.org/search?keywords=search

download all these pakages and use this command:     dpkg -i   PackageName.deb    to install.


Three Step:
Enjoy your life!


why I record in En: because I have gradute from my school, I do not need always write chinese , so I delay to install my input method on my new Debian system.

張貴川 2011-09-30 23:47 發表評論
]]>
rpm http://www.shnenglu.com/Viking/archive/2011/07/16/abc.html張貴川張貴川Sat, 16 Jul 2011 08:09:00 GMThttp://www.shnenglu.com/Viking/archive/2011/07/16/abc.htmlhttp://www.shnenglu.com/Viking/comments/151162.htmlhttp://www.shnenglu.com/Viking/archive/2011/07/16/abc.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/151162.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/151162.html
rpm 安裝使用:

rpm -ivh rp-pppoe-3.5-32.1.i386.rpm
-i :install 的意思
-v :察看更細部的安裝資訊畫面
-h :以安裝資訊列顯示安裝進度

rpm 網絡安裝:
rpm -ivh http://website.name/path/pkgname.rpm

rpm 的一些相關參數:

--nodeps:
使用時機:當發生軟體屬性相依問題而無法安裝,但你執意安裝時
危險性: 軟體會有相依性的原因是因為彼此會使用到對方的機制或功能,如果強制安裝而不考慮軟體的屬性相依, 則可能會造成該軟體的無法正常使用!

--replacefiles:
使用時機:  如果在安裝的過程當中出現了『某個檔案已經被安裝在你的系統上面』的資訊,又或許出現版本不合的訊息 (confilcting files) 時,可以使用這個參數來直接覆蓋檔案。
危險性: 覆蓋的動作是無法復原的!所以,你必須要很清楚的知道被覆蓋的檔案是真的可以被覆蓋喔!否則會欲哭無淚!

--replacepkgs:
使用時機:  重新安裝某個已經安裝過的軟體!如果妳要安裝一堆 RPM 軟體檔案時,可以使用 rpm -ivh *.rpm ,但若某些軟體已經安裝過了, 此時系統會出現『某軟體已安裝』的資訊,導致無法繼續安裝。此時可使用這個選項來重複安裝喔!

--force:
使用時機:這個參數其實就是 --replacefiles 與 --replacepkgs 的綜合體!

--test:
使用時機:  想要測試一下該軟體是否可以被安裝到使用者的 Linux 環境當中,可找出是否有屬性相依的問題。範例為:
rpm -ivh pkgname.i386.rpm --test

--nosignature:
使用時機:  想要略過數位簽章的檢查時,可以使用這個選項。

--prefix NEW_PATH
使用時機:  要將軟體安裝到其他非正規目錄時。舉例來說,妳想要將某軟體安裝到 /usr/local 而非正規的 /bin, /etc 等目錄, 就可以使用『 --prefix /usr/local 』來處理了。

rpm升級時候使用的參數:
-Uvh : (U指 update)
後面接的軟體即使沒有安裝過,則系統將予以直接安裝; 若後面接的軟體有安裝過舊版,則系統自動更新至新版;

-Fvh : (F 指 fresh)
如果後面接的軟體並未安裝到你的 Linux 系統上,則該軟體不會被安裝;亦即只有已安裝至你 Linux 系統內的軟體會被『升級』!

注意:
通常有的朋友在進行整個作業系統的舊版軟體修補時,喜歡這麼進行:

   1. 先到各發展商的 errata 網站或者是國內的 FTP 映像站捉下來最新的 RPM 檔案;
   2. 使用 -Fvh 來將你的系統內曾安裝過的軟體進行修補與升級!(真是方便呀!)

所以,在不曉得 yum 功能的情況下,妳依舊可以到 CentOS 的映設站臺下載 updates 資料,然後利用上述的方法來一口氣升級! 當然囉,升級也是可以利用 --nodeps/--force 等等的參數啦!

-qi :
列出該軟體的詳細資訊 (information),包含開發商、版本與說明等;

-qa :
列出所有的,已經安裝在本機 Linux 系統上面的所有軟體名稱;

-q:
僅查詢,後面接的軟體名稱是否有安裝;

-qc :
列出該軟體的所有設定檔 (找出在 /etc/ 底下的檔名而已)

-qd :
列出該軟體的所有說明檔 (找出與 man 有關的檔案而已)

-qR:
列出與該軟體有關的相依軟體所含的檔案 (Required 的意思)

-qpl  name.rpm   :
可查看該 rpm 包內的內容

例子:
[root@www ~]# rpm -qf /bin/sh
bash-3.2-21.el5
# 這個參數後面接的可是『檔案』吶!不像前面都是接軟體喔!
# 這個功能在查詢系統的某個檔案屬於哪一個軟體所有的。

如果我誤砍了某個重要檔案,例如 /etc/crontab,偏偏不曉得他屬於哪一個軟體,該怎麼辦?
雖然已經沒有這個檔案了,不過沒有關係,因為 RPM 有記錄在 /var/lib/rpm 當中的資料庫啊!所以直接下達:
rpm -qf /etc/crontab
就可以知道是那個軟體囉!重新安裝一次該軟體即可!

當/var/lib/rpm/ 目錄內的資料庫損毀時,可用:
rpm --rebuilddb   <==重建資料庫



     

張貴川 2011-07-16 16:09 發表評論
]]>
vim實用快捷鍵子總結http://www.shnenglu.com/Viking/archive/2011/04/13/144154.html張貴川張貴川Wed, 13 Apr 2011 13:38:00 GMThttp://www.shnenglu.com/Viking/archive/2011/04/13/144154.htmlhttp://www.shnenglu.com/Viking/comments/144154.htmlhttp://www.shnenglu.com/Viking/archive/2011/04/13/144154.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/144154.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/144154.html復制光標所在單詞方法:
viw, 或者 yiw
viw是進入可視模式,yiw在編輯模式就可用


張貴川 2011-04-13 21:38 發表評論
]]>
手把手教你把VIM改造成為IDE開發環境http://www.shnenglu.com/Viking/archive/2011/03/27/vimIDE.html張貴川張貴川Sun, 27 Mar 2011 03:45:00 GMThttp://www.shnenglu.com/Viking/archive/2011/03/27/vimIDE.htmlhttp://www.shnenglu.com/Viking/comments/142788.htmlhttp://www.shnenglu.com/Viking/archive/2011/03/27/vimIDE.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/142788.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/142788.html閱讀全文

張貴川 2011-03-27 11:45 發表評論
]]>
rpm 使用的一個問題?http://www.shnenglu.com/Viking/archive/2011/03/27/rpm.html張貴川張貴川Sun, 27 Mar 2011 02:46:00 GMThttp://www.shnenglu.com/Viking/archive/2011/03/27/rpm.htmlhttp://www.shnenglu.com/Viking/comments/142787.htmlhttp://www.shnenglu.com/Viking/archive/2011/03/27/rpm.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/142787.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/142787.html用rpm 命令 : rpm -qpl *.rpm | grep libstdc++-libc6.2-2.so.3
可以查出某個 rpm 包中含有 libstdc++-libc.6.2-2.so.3 ,但不知道具體是哪個包?
問題是怎么反回去?



張貴川 2011-03-27 10:46 發表評論
]]>
一個linux大俠的bloghttp://www.shnenglu.com/Viking/archive/2011/03/26/vim.html張貴川張貴川Sat, 26 Mar 2011 02:45:00 GMThttp://www.shnenglu.com/Viking/archive/2011/03/26/vim.htmlhttp://www.shnenglu.com/Viking/comments/142747.htmlhttp://www.shnenglu.com/Viking/archive/2011/03/26/vim.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/142747.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/142747.html http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx


張貴川 2011-03-26 10:45 發表評論
]]>
linux 中安裝 mplayerhttp://www.shnenglu.com/Viking/archive/2011/02/27/140754.html張貴川張貴川Sun, 27 Feb 2011 11:39:00 GMThttp://www.shnenglu.com/Viking/archive/2011/02/27/140754.htmlhttp://www.shnenglu.com/Viking/comments/140754.htmlhttp://www.shnenglu.com/Viking/archive/2011/02/27/140754.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/140754.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/140754.html 1.下載相關codes ( http://www.mplayerhq.hu/MPlayer/ ) 主要都在這里

  Mplayer-1.0rc1.tar.bz2(主程序)( http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc1.tar.bz2 )

  Abyss-1.6.tar.bz2 (皮膚) (http://www2.mplayerhq.hu/MPlayer/skins/Abyss-1.6.tar.bz2)

  all-20060611.tar.bz2(http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20060611.tar.bz2 )

  windows-all-20060611.zip(建議不要在win下使用. rar,用. zip)

  ( http://www.mplayerhq.hu/MPlayer/releases/codecs/windows-all-20060611.zip )

  這是我的mplayer的一些組件,你可以去http://www.mplayerhq.hu/MPlayer/ 下載你自己喜歡的皮膚和字體.

2.安裝過程(請把你的終端打開)

  a.安裝相應的解碼

  進入主目錄后,以root身份安裝 ,這樣改變身份:在終端輸入su或者su root ,然后輸入密碼就ok啦,有沒有看到 $ 變成了 #

  接著

  mkdir /usr/lib/codecs

  mkdir /usr/lib/wincodecs

  tar jxvf all-20060611.tar.bz2

  mv all-20060611/* /usr/lib/codecs

  unzip windows-all-20060611.zip

  mv windows-all-20060611/* /usr/lib/wincodecs

  b.安裝mplayer

  tar jxvf MPlayer-1.0rc1.tar.bz2

  cd MPlayer-1.0rc1

  ./configure --prefix=/usr/local/mplayer --enable-gui --enable-freetype --with-codecsdir=/usr/lib/codecs/ --with-win32libdir=/usr/lib/wincodecs/ --language=zh_CN

  注意:

  --prefix=/usr/local/mplayer 是安裝路徑

  --enable-gui 安裝圖形化用戶界面

  --enable-freetype 調節字體

  --with-codecsdir=/usr/lib/codecs/

  --with-win32libdir=/usr/lib/wincodecs 指定解碼位置

  --language=zh_CN 中文

  接著

  make

  make install

  c.安裝皮膚

  tar jxvf Abyss-1.6.tar.bz2

  mv Abyss /usr/local/mplayer/share/mplayer/skins/

  cd /usr/local/mplayer/share/mplayer/skins/

  mv Abyss default

  至此mplayer已經成為了萬能播放器

  執行程序在 /usr/local/mplayer/bin中

  你可以在終端中輸入gmplayer,也可以在桌面建立起動器來使用mplayer

  趕緊運行一下,看看有沒有問題

  你一定會發現我們還沒有裝字體,運行mplayer后它也會提示沒有字體

  你就從自己電腦中拷個字體到主目錄下的.mplayer文件夾下,并把你的字體改名為subfont.ttf,問題就解決了,或者做個鏈接也行,只要你喜歡

  字體你可以上網下載,mplayer網站也有,你電腦里也有字體,在/usr/share/fonts/chinese下(/usr /share/fonts/chinese/TrueType/uming.ttf就可以用)你就直接cp /usr/share/fonts/chinese/TrueType/uming.ttf $HOME/.mplayer下

  每個用戶都有自己的環境變量HOME,再cd $HOME/.mplayer 接著

  mv uming.ttf subfont.ttf 結束!



張貴川 2011-02-27 19:39 發表評論
]]>
linux 中調整亮度的方法http://www.shnenglu.com/Viking/archive/2010/11/05/132593.html張貴川張貴川Fri, 05 Nov 2010 12:10:00 GMThttp://www.shnenglu.com/Viking/archive/2010/11/05/132593.htmlhttp://www.shnenglu.com/Viking/comments/132593.htmlhttp://www.shnenglu.com/Viking/archive/2010/11/05/132593.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/132593.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/132593.html2種常見方法:

1

xgamma -gamma 0.7

最后的小數值最好設置在1.0以下。

2

[root@rocrocket fonts]# cat /proc/acpi/video/VGA/LCD/brightness
levels:  0 0 0 40 100
current: 100
[root@rocrocket fonts]# echo 40 > /proc/acpi/video/VGA/LCD/brightness



張貴川 2010-11-05 20:10 發表評論
]]>
qemuhttp://www.shnenglu.com/Viking/archive/2010/10/19/130420.html張貴川張貴川Tue, 19 Oct 2010 04:33:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/19/130420.htmlhttp://www.shnenglu.com/Viking/comments/130420.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/19/130420.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/130420.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/130420.html并且也沒有出現像bochs切換后就無法相應鍵盤的情況。

qemu安裝dos步驟:
qemu-img create dos.img 50M
qemu -hda dos.img -cdrom dos72.iso -boot d                                ==========(here a mean boot from first floppy, c mean boot from first hard-disk, d boot from
                                                                                                 ==========(first CD          

如果時兩張光盤,換盤的時候按control+alt+2到了一個 shell下面,提示符是(qemu),跟bash一樣,可以命令tab補齊的我們可以直接輸入命令,change fda DOS71_2.IMG這樣就可以了





張貴川 2010-10-19 12:33 發表評論
]]>
fedora 中添加字體http://www.shnenglu.com/Viking/archive/2010/10/19/130406.html張貴川張貴川Tue, 19 Oct 2010 02:39:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/19/130406.htmlhttp://www.shnenglu.com/Viking/comments/130406.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/19/130406.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/130406.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/130406.htmlps:再轉一篇南北的字體修改教程。我在fedora 13中實踐成功。當中有些文件稍有改變。具體安裝的時候靈活找一下。

作者:北南南北
來自:LinuxSir.Org
摘要:在Fedora Core 5.0中,對中文支持極為友好,我們可以自己添加自己的字體,以適合我們做文檔、圖形的需要。這樣有更多的字體供我們選擇;現在把簡單的方法說一下。可能 也不太簡單,還是要改一改文件的。初學的弟兄看看吧,可能一下就會了;


目錄


+++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++


1、首先我們要在/usr/share/fonts/chinese目錄中建一個文件夾;

比如名為custom

[root@localhost ~]# mkdir /usr/share/fonts/chinese/custom

然后把您的字體復制過去就行了;比如我把Windows中的所有字體都復制過去了。里面有Tahoma,Simsun,STSONG ... ...

然后再執行;

[root@localhost ~]# chmod -R 755  /usr/share/fonts/chinese/custom

當然要用到超級權限,如果您用的是普通用戶,要用su 切換到root ,這個我們在前面的超級權限控制中有講到;您不妨查一下文檔;


2、執行ttmkfdir命令在字體目錄;

首先我們進入 /usr/share/fonts/chinese/custom目錄;

[root@localhost ~]# cd /usr/share/fonts/chinese/custom/

然后執行;

[root@localhost custom]# ttmkfdir -e  /usr/share/X11/fonts/encodings/encodings.dir

這樣就生成一個fonts.scale的文件;自己看看吧。

3、更改fonts.conf文件,添加我們添加字體的目錄;(可選)

在/etc/fonts目錄中找到 fonts.conf文件,然后添加如下一行;

/usr/share/fonts/chinese/custom

添加到哪呢?找一找吧,下面是添加成功后的示例;

<!-- Font directory list -->
<dir>/usr/share/fonts/chinese/custom</dir>
<dir>/usr/share/fonts</dir>


4、更改 /etc/X11/xorg.conf文件;(可選)

在 FontPath "unix/:7100"一行的前面加上一行如下;

FontPath "/usr/share/fonts/chinese/custom"

退出桌面,或者重啟xfs服務器;

您可以按ctrl+alt+backspace組合鍵;
也可以以root權限執行

[root@localhost beinan]# /etc/init.d/xfs restart
重新啟動 xfs:
關閉 xfs:                                                 [確定]
啟動 xfs:                                                 [確定]


5、應用程序的設置;

這個就簡單了吧,在程序上用什么字體,就自己選擇一下,也沒有什么難的;不過桌面字體可能要設置一下。如果您認為不好的話;


5.1 GNOME桌面環境的的字體設置;

桌面->首選項->字體

我設置的內容如下:

桌面程序字體 Tahoma 10
文檔字體 Tahoma 10
桌面字體 Tahoma 10
窗口標題字體 Tahoma Bold 11
等寬字體 Monospace

字體渲染 最佳形狀


5.2 Firefox 瀏覽器的字體設置;

編輯->首選項->內容->字體和顏色->高級

語言編碼:簡體中文
比例字體:無襯線字體 大小:16
襯線字體:Tahoma
無襯線字體:Tahoma
等寬字體:Monospace 大小:16
屏幕解析度:96dpi 最小字體:12

要把允許頁面選擇字體而無需使用上面的字體選中;

默認字體編碼可以不用設置,自己看著辦吧;

5.3 關于OpenOffice 的字體設置;

OpenOffice的默認字體可能不適合我們的需要,我們習慣用宋體,也就是simsun字體;所以這時我們要設置一下。

工具->選項->語言設定 ,在這個選項里,自己點點看吧;大部份不用設置;

工具->選項->OpenOffice Writer

標準字體西文:我用的都是Tahoma;
標準字體(中日韓):我都設置成了simsun;

5.4 AbiWord的字體設置;

AbiWord的文檔字體,如果用默認的話,一般是打不上字的,這時我們要改一下模板;

一般的情況下AbiWord 安裝在 /usr/share/AbiSuite-2.4目錄中,這個需要您自己找找看了。我們在以前有說過怎么查找軟件的安裝目錄;

我們找到/usr/share/AbiSuite-2.4/templates,然后找到 normal.awt-zh_CN 文件;最好您先備份一下;

找到如下的字樣;

font-family:Times New Roman;

改為:

font-family:font-family:STSong;

當然您得有STSong這個字體,我們在前面提到的復制字體的事,那是個前提;


6、存在的問題;


好象添加上字體后,系統的速度就降了下來,第一次進入桌面時有點遲鈍;大家測試一下看看吧;

7、關于本文;

沒有技術含量,不值不提;老酒裝在新瓶里,還是那瓶酒;實踐是檢測真理的唯一標準;

8、后記;

希望能看到大家分享自己的學習成果,分享你我的快樂;幫助他人和得到幫助,都是一種快樂,不是嗎?
這段時間,我沒有太多的時間 ,今年的事情特別多,有時得在早上或者晚上寫文檔,至于修改都放在白天進行,白天沒有大塊的時間 ,請大家理解理解;謝謝;
如果有一點時間,我也會接著寫文檔的,“時間是海綿里的水,一擠就有了”,呵。。。。。。

繼續之中。。。。。

9、相關文檔;



張貴川 2010-10-19 10:39 發表評論
]]>
關于 bochs 和 bochs 調試http://www.shnenglu.com/Viking/archive/2010/10/19/130405.html張貴川張貴川Tue, 19 Oct 2010 02:36:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/19/130405.htmlhttp://www.shnenglu.com/Viking/comments/130405.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/19/130405.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/130405.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/130405.html每次進入虛擬機后,比如進入了free-dos,然后切換回終端,再次切換回來后就無法相應鍵盤輸入了。
及每次失去焦點后就無法再次相應鍵盤了。大小寫鍵可以相應。
問趙博,他的機子可以,看配置,一樣。蛋疼的是我的就時會有這樣的毛病,時而相應,時而死機。
目前位置還是沒有找到方法解決。

/**********************************************************/
今天終于蛋疼的找到bochs不能相應的原因了。
我平常 切換 軟件 都使用 ALT + TAB 組合鍵切換,原來bochs對這兩個按鍵相應有問題。
用alt + tab 切換 后 再切換回去就 不響應鍵盤了。
如果是用鼠標切換,那就可以相應了!

這是一個習慣的郁悶問題!
                                  ----------------------------10.22

偶然發現原來也可以使bochs相應切換后的按鍵問題了。
從其他程序切換回來后,再按一下alt鍵就又可以輸入了。。。^_^。
這時我調alt + tab 換為 ctrl + tab 組合鍵作切換程序的時候,發現切換回來后再按下ctrl鍵就又可以繼續輸入。不然還是和以前一樣。
再調回 alt + tab,道理一樣,再按下 alt 鍵又可以繼續輸入了。。。。
/********************************************************/
我的調試新技巧:
其實也不是新的,在ochsrc_sample.txt 有說明:
在bochs的配置文件最后一句加上:magic_break:enabled=1, 然后在程序里加上xchg bx, bx, 在bochs運行到這里的時候就會停止,這樣就可以繼續調試下去.....
用 xp /nuf  addr                 如:xp /10bx  0x00500000, 
最好用help x  查看xp 和 x 的命令使用方法。個人喜歡用的  x /10mx  es:edi   用mx 組合.
查看內存內容暫時不會。以及GDB+BOCHS調試也還不會.....

當然,還又其他的調試方法,這需要去研究鉤子一類的東西,我研究了就發上來:


張貴川 2010-10-19 10:36 發表評論
]]>
安裝debian (大便)系統http://www.shnenglu.com/Viking/archive/2010/10/18/130228.html張貴川張貴川Mon, 18 Oct 2010 01:47:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/18/130228.htmlhttp://www.shnenglu.com/Viking/comments/130228.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/18/130228.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/130228.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/130228.htmlgrub

修改grub文件,使啟動項指向該iso文件

sudo gedit /boot/grub/menu.lst

復制下面的部分到menu.lst文件

title Ubuntu 9.10 LiveCD
root (hd0,3)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd /initrd.lz
boot

說明:第二行的root (hd0,3)部分依據你的具體情況而定 如果你的/media/disk/位置是 (hd0,1) ,那么你就應該設置為(hd0,1) 設置好后保存退出 多說一句,理論上來說把iso文件放在磁盤的任意位置(包括U盤)都是可以安裝的,但是hd編號你必須要搞清楚,盡量讓啟動安裝一次性成功。


這里是從ubuntu liveCD安裝方法上找的一段東西。關鍵是注意 iso-scan 這句。這個只對ubuntu系統管用。

如果是硬盤安裝debian系統,從debian安裝CD上提取出來的vmlinuz 和 initrd.gz 是不能引導系統的。
只有下載硬盤版的vmlinuz 和 initrd.gz 。可以從下面網址得到:
http://mirror.switch.ch/ftp/pub/debian/dists/stable/main/installer-i386/current/images/hd-media/
之后的grub安裝引導我就不多說了。
多說一個grub使用的小技巧:
>cat (hd0,                                     ---------------- 然后按tab鍵便可以看到所有hd0上的分區(不要再問可以看到分區又什么用)
>cat (hd0, 3)/                                ----------------同上按tab鍵可以看到分區中的內容(如能掛載)
 
還有一點要說的是,grub 不支持ntfs文件系統。所以不要吧 vmlinuz 和 initrd.gz 和 鏡像放到 ntfs 格式的分區中。



張貴川 2010-10-18 09:47 發表評論
]]>
簡述Linux 文件系統的目錄結構http://www.shnenglu.com/Viking/archive/2010/10/17/130187.html張貴川張貴川Sun, 17 Oct 2010 00:18:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/17/130187.htmlhttp://www.shnenglu.com/Viking/comments/130187.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/17/130187.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/130187.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/130187.html

作者:北南南北
來自:LinuxSir.Org
摘要: Linux文件系統是呈樹形結構,了解Linux文件系統的目錄結構,對于我們駕馭Linux還是有必要的。本文對Linux下比較重要的目錄加以解說, 以答初學者所說的“雜亂無章”目錄結構,給一個簡要的說明。


目錄


++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++

Linux文件系統結的結構是樹形結構,其入口從/開始,了解Linux文件系統的結構,對于我們需要掌握的基礎知識點之一。


1、什么是文件系統;

請參見:《Linux 文件系統概述》


2、文件系統的組織結構簡說;

當您使用Linux的時候,如果您通過ls -la / 就會發現,在/下包涵很多的目錄,比如etc、usr、var、bin ... ... 等目錄,而在這些目錄中,我們進去看看,發現也有很多的目錄或文件。文件系統在Linux下看上去就象樹形結構,所以我們可以把文件系統的結構形象的稱為 樹形結構。

查看文件系統的結構,我們可以通過tree命令來實現;

[root@localhost ~]# tree

不過tree 這個命令目前在Fedora Core 5.0 中已經消失,在Slackware 10.2的版本中仍有保留。不過其它版本的Linux應該有;由tree命令的輸出結果來看,最頂端應該是/,我們稱/為Linux的root,也就是 Linux操作系統的文件系統。Linux的文件系統的入口就是/,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的 領導者。

下面我們把Linux文件系統的樹形結構的主要目錄列一下,主要


3、文件系統的組織結構分析;

文件系統的組織結構分析,我們能分析什么呢?也就是當我們列/目錄時,所看到的/usr、/etc ... ... /var 等目錄是做什么用的,這些目錄是不是有些特定的用途。無論哪個哪個版本的Linux系統,都有這些目錄,這些目錄應該是標準的。當然各個Linux發行版 本也會存在一些小小的差異,但總體來說,還是大體差不多。

Linux發行版本之間的差別其實很少,差別主要表現在系統管理的特色工具以及軟件包管理方式的不同,除此之外,沒有什么大的差別; 比如Fedora軟件包管理工具是rpm,而Slackware是pkgtool 或installpkg等;

言歸正傳,我們接著說文件系統組織結構。

/ Linux文件系統的入口,也是處于最高一級的目錄;

/bin 基礎系統所需要的那些命令位于此目錄,也是最小系統所需要的命令;比如 ls、cp、mkdir等命令;功能和/usr/bin類似,這個目錄中的文件都是可執行的,普通用戶都可以使用的命令。做為基礎系統所需要的最基礎的命 令就是放在這里。

/boot Linux的內核及引導系統程序所需要的文件,比如 vmlinuz initrd.img 文件都位于這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位于這個目錄;

/dev 設備文件存儲目錄,比如聲卡、磁盤... ...

/etc 系統配置文件的所在地,一些服務器的配置文件也在這里;比如用戶帳號及密碼配置文件;

/home 普通用戶家目錄默認存放目錄;

/lib 庫文件存放目錄

/lost+found 在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這里。當系統啟動的過程中fsck工具會檢查這里,并修復已經損 壞的文件系統。 有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或移到文件到原來的位置上。

/media 即插即用型存儲設備的掛載點自動在這個目錄下創建,比如USB盤系統自動掛載后,會在這個目錄下產生一個目錄 ;CDROM/DVD自動掛載后,也會在這個目錄中創建一個目錄,類似cdrom 的目錄。這個只有在最新的發行套件上才有,比如Fedora Core 4.0 5.0 等。可以參看/etc/fstab的定義;

/misc

/mnt 這個目錄一般是用于存放掛載儲存設備的掛載目錄的,比如有cdrom 等目錄。可以參看/etc/fstab的定義。有時我們可以把讓系統開機自動掛載文件系統,把掛載點放在這里也是可以的。主要看/etc/fstab中怎 么定義了;比如光驅可以掛載到/mnt/cdrom 。

/opt 表示的是可選擇的意思,有些軟件包也會被安裝在這里,也就是自定義軟件包,比如在Fedora Core 5.0中,OpenOffice就是安裝在這里。有些我們自己編譯的軟件包,就可以安裝在這個目錄中;通過源碼包安裝的軟件,可以通過 ./configure --prefix=/opt/目錄 。

/proc 操作系統運行時,進程(正在運行中的程序)信息及內核信息(比如cpu、硬盤分區、內存信息等)存放在這里。/proc目錄偽裝的文件系統proc的掛載 目錄,proc并不是真正的文件系統,它的定義可以參見 /etc/fstab 。

/root Linux超級權限用戶root的家目錄;

/sbin 大多是涉及系統管理的命令的存放,是超級權限用戶root的可執行命令存放地,普通用戶無權限執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的; 我們記住就行了,凡是目錄sbin中包含的都是root權限才能執行的。

/tmp 臨時文件目錄,有時用戶運行程序的時候,會產生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。

/usr 這個是系統存放程序的目錄,比如命令、幫助文件等。這個目錄下有很多的文件和目錄。當我們安裝一個Linux發行版官方提供的軟件包時,大多安裝在這里。 如果有涉及服務器配置文件的,會把配置文件安裝在/etc目錄中。/usr目錄下包括涉及字體目錄/usr/share/fonts ,幫助目錄 /usr/share/man或/usr/share/doc,普通用戶可執行文件目錄/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超級權限用戶root的可執行命令存放目錄,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;還有程序的頭文件存放目錄/usr/include。

/var 這個目錄的內容是經常變動的,看名字就知道,我們可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日志的目錄。/var/www目錄是定義Apache服務器站點存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數據庫的的存放地;

我們再補充一下一些比較重要的目錄的用途;

/etc/init.d 這個目錄是用來存放系統或服務器以System V模式啟動的腳本,這在以System V模式啟動或初始化的系統中常見。比如Fedora/RedHat;
/etc/xinit.d 如果服務器是通過xinetd模式運行的,它的腳本要放在這個目錄下。有些系統沒有這個目錄, 比如Slackware,有些老的版本也沒有。在Rehat/Fedora中比較新的版本中存在。

/etc/rc.d 這是Slackware發行版有的一個目錄,是BSD方式啟動腳本的存放地;比如定義網卡,服務器開啟腳本等。

/etc/X11 是X-Windows相關的配置文件存放地;
比如下面的例子:

[root@localhost ~]# /etc/init.d/sshd start   注:啟動sshd服務器
[root@localhost ~]# /etc/init.d/sshd stop 注:停止sshd服務器
啟動 sshd:                                                [確定]

這就是典型的sshd 服務器 System V模式啟動腳本,通過這運行這個腳本可以啟動sshd服務器了。

/usr/bin 這個目錄是可執行程序的目錄,普通用戶就有權限執行; 當我們從系統自帶的軟件包安裝一個程序時,他的可執行文件大多會放在這個目錄。比如安裝gaim軟件包時。相似的目錄是/usr/local/bin; 有時/usr/bin中的文件是/usr/local/bin的鏈接文件;

/usr/sbin 這個目錄也是可執行程序的目錄,但大多存放涉及系統管理的命令。只有root權限才能執行;相似目錄是/sbin 或/usr/local/sbin或/usr/X11R6/sbin等;

/usr/local 這個目錄一般是用來存放用戶自編譯安裝軟件的存放目錄;一般是通過源碼包安裝的軟件,如果沒有特別指定安裝目錄的話,一般是安裝在這個目錄中。這個目錄下 面有子目錄。自己看看吧。

/usr/lib 和/lib 目錄相似,是庫文件的存儲目錄;

/usr/share 系統共用的東西存放地,比如 /usr/share/fonts 是字體目錄,是用戶都共用的吧。

/usr/share/doc和/usr/share/man幫助文件,也是共用的吧;

/usr/src 是內核源碼存放的目錄,比如下面有內核源碼目錄,比如 linux 、linux-2.xxx.xx 目錄等。有的系統也會把源碼軟件包安裝在這里。比如Fedora/Redhat,當我們安裝file.src.rpm的時候,這些軟件包會安裝在/usr /src/redhat相應的目錄中。請參考: 《file.src.rpm 使用方法的簡單介紹》 。另外Fedhat 4.0 5.0,他的內核源碼包的目錄位于/usr/src/kernels目錄下的某個目錄中(只有安裝后才會生成相應目錄);

/var/adm 比如軟件包安裝信息、日志、管理信息等,在Slackware操作系統中是有這個目錄的。在Fedora中好象沒有;自己看看吧。
/var/log 系統日志存放,分析日志要看這個目錄的東西;
/var/spool 打印機、郵件、代理服務器等假脫機目錄;


4、本文未盡事宜;

由于Linux發行版很多,總有一點差別,但總體上還是差不多。多列目錄看看就慢慢明白了。Windows的好多目錄,我們也不是一樣不知道它是用 來做什么的,但我們一樣用Windows。再說目前Linux一樣可以點鼠標來查看這些目錄,沒有什么難的。如果不會用命令,點鼠標總會看,對不對?


5、關于本文;

本文是Linux文件系統的一個組成部份,對于一個系列文檔來說,還是必不可缺的,它也是基礎文檔之一。因為我想能過本文引出Linux文件相關的 操作的文章 。為新手寫的... ....


6、后記;

寫文檔是一個堅持的過程,寫文檔還是給了我很多的樂趣 ,權限休閑而寫,并沒有感覺到有多痛苦;如果一件事被當成壓力,也沒有什么樂趣而言,如果果真如此,不如不做。在隨后,我可能寫一寫Linux文件相關的 內容,比如創建、刪除、移動、屬性、權限等;


7、參考文檔

man fstab


8、相關文檔

《Linux 文件系統概述》




張貴川 2010-10-17 08:18 發表評論
]]>
linux學習方向http://www.shnenglu.com/Viking/archive/2010/10/14/129927.html張貴川張貴川Thu, 14 Oct 2010 13:00:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/14/129927.htmlhttp://www.shnenglu.com/Viking/comments/129927.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/14/129927.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/129927.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/129927.html首先說明希望學linux的朋友能夠忘記windows,最起碼忘記windows下的盤符、應用程序等基礎的東西,其次要深刻明白linux和windows是2個不同的系統平臺,可以去對比著學習,但不要直接拿windows那套東西直接套用到linux學習中。

學習方向:

一、桌面系統,就是系統安裝好后的視窗系統,在windows下叫windows,在linux下叫 X Windows,其實只是名字不一樣而已(ps:看看紅旗做的桌面,真是跟windows要做象有多象,真暈,這樣雖然有助于linux桌面的使用,但對于linux系統的推廣真是沒什么好處)

       很多初學linux人的安裝好linux后,進入其 X windows桌面,興奮不已,以為大工告成,linux自己會了,這種想法是很可怕的;如果我告訴你linux的X windows環境不是linux 系統,它只是在linux下面運行的應用程序(類似于在windows下運行office2000),你是怎么想的?

       windows下的應用程序幾乎是不能直接在linux系統下安裝和使用,學編程的應該明白,所以不要去找windows工具盤安裝你的RAR,QQ,realone等常用工具,你是裝不上的。

       你可以嘗試去安裝你硬件的最新驅動程序,安裝linux下的常用工具,做一些linux簡單的漢化,你就會理解經常在論壇里問這方面問題的朋友的困難了。

       總之,學桌面,不是學linux系統。


二、內核源代碼學習。跟unix操作系統一樣都是用C語言編寫。

     去買正版的linux系統(不是很貴),會附帶一張或者2張linux源代碼盤,
     linux程序員從這里開始,是起點也是終點~~~~
     c就是比較NB,可以本人放棄~~~不是那塊料啊!!!!

     很羨慕能經常寫些讀核日記的朋友,強啊!支持你們~~~~~~~~~
     有興趣的朋友可以嘗試~~~從身邊做c的朋友那里看到,以后會受益終身的!


三、系統管理

       也就是管理linux系統環境:SHELL、圖形、系統服務、硬件驅動等等。

       系統管理LINUX跟UNIX類似(是看了些unix系統管理才這樣說的),基本上都是通過命令----->配置文件----->腳本文件。

       初學這建議從這里開始,不要一味去安裝Xwindows,這個X windows環境只要你盡量保持經常使用,相信學會是自然而然的事情.(感覺那真實沒什么好學的,只要計算機應用在1年以上的朋友,應該都能在下面操作吧)


四、應用開發

         在linux應用上,LINUX確實跟它的競爭對手WINDOWS相比還有一定的差距.(大家都用的餓是盜版啊,如果都用正版的系統,你看用linux的多還是用windows的多,開發 linux程序的人多還是開發windows程序的人多,錢在那里擺著呢)

         不過在高端的應用上,linux的市場是越來越大,如:

linux內核開發;
         ----PDA個人掌上電腦;
         ----專用的網絡設備;防火墻設備,VPN設備。。。我都見過,是用linux編寫的,國產的,現在銷售的十分不錯;
         ----硬件驅動程序


linux網絡編程:
         ----php編程,建立動態站點;
         ----jsp編程,
         ----perl,cgi編程;
linux系統下數據庫的開發:
         ----my sql中小型數據庫系統;
         ----oracle數據庫
         ----DB2數據庫,IBM數據庫系統

五、服務器領域

         一說linux,很多自然就想到了做服務器,但現在網絡服務器方面,linux的市場占有率確實是第一的;


linux服務器領域:
         ----代理服務器,使用的是linux的iptables功能;
         ----電影服務器,使用的是linux的samba服務的功能,文件和打印共享服務器
         ----游戲服務器,cs服務器,在linux系統下使用cs的linux版本建立的服務器
         ----客戶存檔服務器,采用的linux的ftp服務器,常用的有:wu-ftp,pro-ftp軟件建立的

         ----www服務器,使用的是linux下的apache服務器軟件
         ----ftp服務器,下載服務器,使用的是linux下的wu-ftp,pro-ftp,vs-ftp軟件
         ----mail服務器,采用的是linux下的sendmail,qmail軟件
         ----dns服務器,使用的是linux下的bind軟件
         ----數據庫服務器,使用的是mysql或者oracle軟件
         ----防火墻,軟件防火墻服務器,使用的是linux的iptables功能建立的
         ----路由器,軟路由器,使用的是linux下的routed軟件建立的
         ----撥號服務器,vpn服務器等等


六、系統集成

         范圍太廣,內容太多。相信IBM等建立的linux研發中心主要就是做這個的。


張貴川 2010-10-14 21:00 發表評論
]]>
bochs使用http://www.shnenglu.com/Viking/archive/2010/10/14/129827.html張貴川張貴川Thu, 14 Oct 2010 03:43:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/14/129827.htmlhttp://www.shnenglu.com/Viking/comments/129827.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/14/129827.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/129827.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/129827.html
 使用插件? 
- 用戶資源 
嘗試狀態頁:告知什么已經嘗試做過了,并在Bochs網站上搜尋誰獲得了這個工作。 
SourceForget 
     - 查找漏洞報告 
     - 如何報告問題(象第6章那樣提交FIXME請求) 
     - 如何提出特色請求 

5.1 命令行參數 
下表列出了可以用在命令行上的參數。其他參數參見bochsrc章節。 
表5-1 命令行參數 
參數                                 描述 
-q                     快速啟動(跳過配置界面) 
-f filename       定義配置文件 
-n                     不嘗試加載配置文件 
-r   path             定義狀況還原文件的路徑(如果save/restore支持被編譯進來的話) 
--help               顯示幫助信息和退出 
啟動Bochs后這些參數會被直接處理。下一步是加載默認的或者指定的配置文件(除非使用了-n參數予以禁止)。然后其余的命令行(bochsrc選項)被依據語法分析。讀取配置文件后命令行參數會覆蓋配置文件的設置。 

5.2 搜索配置文件件的順序 
如果在命令行上沒有指定配置文件,有沒有把加載配置文件禁止,Bochs會搜索一個默認的配置文件。以下是搜索順序: 
     1.在當前目錄中的.bochsrc文件 
     2.在當前目錄中的bochsrc文件 
     3.在當前目錄中的bochsrc.txt文件 
     4.(僅限win32)在當前目錄中的bochsrc.bxrc文件 
     5.(僅限Unix)在用戶home目錄中的.bochsrc文件 
     6.(僅限Unix)在/etc目錄中的bochsrc文件 

5.3 'textconfig'模式的配置界面 
'textconfig'模式的配置界面是Bochs配置系統的文本模式版本。它是一系列菜單(使用 stdin/stdout),根據這一系列菜單允許你編輯所有控制Bochs行為的設置。如果你沒有寫一個配置界面行,Bochs會為你選擇'textconfig'模式的配置界面作為默認設置(除非Bochs被編譯為僅限使用wxWidgets模式)。 
'textconfig'模式的配置界面有以下三部分組成: 
開始菜單 
頂端工具欄 
運行時配置 

5.3.1 開始菜單 
如果你沒有使用快速啟動參數(-q)來啟動Bochs,Bochs配置主菜單將出現: 
------------------------------ 
Bochs Configuration: Main Menu 
------------------------------ 
This is the Bochs Configuration Interface, where you can describe themachine that you want to simulate.   Bochs has already searched for aconfiguration file (typically called bochsrc.txt) and loaded it if itcould be found.   When you are satisfied with the configuration, goahead and start the simulation. 
You can also start bochs with the -q option to skip these menus. 
1. Restore factory default configuration 
2. Read options from... 
3. Edit options 
4. Save options to... 
5. Begin simulation 
6. Quit now 
Please choose one: [5] 
在這里你可以載入、編輯和保存配置,最后開始仿真。可以沒有配置文件而啟動Bochs,然后使用這里的“Edit options”編輯所有的設置。如果你想把這次的配置應用到以后的Bochs登陸,請不要忘記保存這次的配置信息。 

5.3.2 Bochs頂端工具欄 

頂端工具欄出現在Bochs仿真窗口的頂部。如果你單擊這些按鈕中的某一個可以控制Bochs的運行時行為。 
軟盤按鈕 
在此你可以切換軟盤媒體的狀態(插入/彈出)。Win32版的Bochs會彈出一個小對話框,讓你更改軟盤鏡像。你可以在配置文件中使用floppya/floppyb選項來安裝軟驅。 
光驅按鈕 
在此你可以切換光盤媒體的狀態(插入/彈出)。你可以在配置文件中使用ata(0-3)-master/-slave選項來安裝光驅。 
鼠標按鈕 
這個按鈕具有讓你激活主機鼠標事件的作用。一旦鼠標事件被捕獲,你就不能再使用這個按鈕來禁止捕獲了。在這種情況下,使用“Ctrl+第三鼠標按鈕”來禁止鼠標事件的捕獲。 
支持兩鍵鼠標切換捕獲模式現在還沒有完成。一些顯示庫還不支持新特性,但是它已經支持X11、SDL、wxWidgets和Win32。 
用戶按鈕 
如果你想發送通過user_shortcut選項定義的鍵盤快捷鍵到客戶端,按這個按鈕。根據使用的display_library選項,有可能在發送之前編輯快捷鍵。 
復制按鈕 
按這個按鈕后文本模式屏的文本能被輸出到剪貼板,這個按鈕在圖形模式下無效。 
粘貼按鈕 
剪貼板上的文本作為模擬按鍵,也可通過Bochs粘貼到客戶操作系統。鍵盤映射必須支持這一特色功能。 
快照按鈕 
如果你想保存一個文本模式屏的快照按這個按鈕。Windows32版的Bochs會彈出一個“Save as...”對話框。其他平臺會利用修改“snapshot.txt”文件實現。 
配置按鈕 
這個按鈕會停止Bochs仿真而開始運行時配置。(見下文) 
復位按鈕 
按此按鈕觸發一次硬件復位。 
電源按鈕 
這個按鈕停止仿真并退出Bochs。 
在你的主機平臺上,這些功能中有的執行或工作起來會有所不同。 

5.3.3 運行時配置 
如果你想在運行時改變某些設置,你不得不按頂端工具欄上的配置按鈕。仿真停止,運行時菜單出現在Windows或xterm的終端控制臺上。(譯者注:xterm是一個X Window System上的標準虛擬終端。) 
--------------------- 
Bochs Runtime Options 
--------------------- 
1. Floppy disk 0: /dev/fd0, size=1.44M, inserted 
2. Floppy disk 1: floppyb.img, size=1.44M, inserted 
3. 1st CDROM: (master on ata1) /dev/cdrom, ejected 
4. 2nd CDROM: (slave on ata1) /dev/cdrecorder, ejected 
5. 3rd CDROM: (not present) 
6. 4th CDROM: (not present) 
7. (not implemented) 
8. Log options for all devices 
9. Log options for individual devices 
10. VGA Update Interval: 100000 
11. Mouse: disabled 
12. Keyboard paste delay: 100000 
13. Userbutton shortcut: ctrlaltdel 
14. Instruction tracing: off (doesn't exist yet) 
15. Continue simulation 
16. Quit nowPlease choose one:   [15] 
在運行時配置中,你可以改變軟盤/光盤鏡像或者設備,改變日志選項或者調整其他設置。如果你在使用特定的設備時有麻煩,你可以為此設備改變日志選項,結果是獲得更多的信息(例如:報告調試信息)。然而,這不能在配置文件中做到。 

5.4 保存和還原仿真 
從2.3版開始,Bochs具有有限的“保存/還原”支持。CPU(s)、內存和所有設備的狀態可以被保存。當運行Bochs時,頂端工具欄會有一個“Suspend”按鈕。依據配置接口和圖形用戶界面,使用此按鈕會有一個讓你輸入路徑的提示,或者讓你選擇圖形用戶界面文件夾的對話框。允許在任何時候保存仿真狀態,但是我們推薦但仿真空閑時去做這件事。當按下OK/Enter之后,Bochs會把一套文件保存到選定的文件夾中。然而硬盤鏡像的狀態不被處理,所以Bochs會詢問你保存狀態后是否想繼續。我們不推薦你繼續,除非你正運行一個只讀的客戶系統(例如:Live-CD)。 
(譯者注:Live CD(臺譯為:自生系統)是:“事先儲存于某種可移動存儲介質上,可不特定于計算機硬件(non-hardware-specific)而啟動的操作系統(通常亦包括一些其他軟件)”,不需安裝至計算機的本地外部存儲器 - 硬盤。采用的介質包括CD-ROM (Live CD),DVD (Live DVD),閃存盤(Live USB)甚至是軟盤等。退出自生系統并重新開機后,計算機就可以恢復到原本的操作系統。自生系統的運作機制,是透過“把原本放在硬盤里的檔案,放到內存的虛擬磁盤中”來運作;因此系統內存愈大,則執行速度愈快。資料來源http://zh.wikipedia.org/wiki/LiveCD) 
要還原保存的仿真狀態,你可以選擇在文本模式下的開始菜單中的還原功能,或者在命令行中指定還原路徑: 
bochs -r /path/to/save-restore-data 
于是Bochs使用保存的配置和日志選項啟動,恢復硬件狀態開始仿真。在還原模式,Bochs會從命令行中忽略bochsrc選項,也不加載常規的配置文件。(第5章 完)



張貴川 2010-10-14 11:43 發表評論
]]>
linux mount命令使用http://www.shnenglu.com/Viking/archive/2010/10/14/129824.html張貴川張貴川Thu, 14 Oct 2010 02:32:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/14/129824.htmlhttp://www.shnenglu.com/Viking/comments/129824.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/14/129824.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/129824.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/129824.html掛接命令(mount) 
  首先,介紹一下掛接(mount)命令的使用方法,mount命令參數非常多,這里主要講一下今天我們要用到的。

  命令格式:

  mount [-t vfstype] [-o options] device dir

  其中:

  1.-t vfstype 指定文件系統的類型,通常不必指定。mount 會自動選擇正確的類型。常用類型有:

  光盤或光盤鏡像:iso9660

  DOS fat16文件系統:msdos

  Windows 9x fat32文件系統:vfat

  Windows NT ntfs文件系統:ntfs

  Mount Windows文件網絡共享:smbfs

  UNIX(LINUX) 文件網絡共享:nfs

  2.-o options 主要用來描述設備或檔案的掛接方式。常用的參數有:

  loop:用來把一個文件當成硬盤分區掛接上系統

  ro:采用只讀方式掛接設備

  rw:采用讀寫方式掛接設備

  iocharset:指定訪問文件系統所用字符集

  3.device 要掛接(mount)的設備。

  4.dir設備在系統上的掛接點(mount point)。

  掛接光盤鏡像文件

  由于近年來磁盤技術的巨大進步,新的電腦系統都配備了大容量的磁盤系統,在Windows下許多人都習慣把軟件和資料做成光盤鏡像文件通過虛擬光驅來使用。這樣做有許多好處:一、減輕了光驅的磨損;二、現在硬盤容量巨大存放幾十個光盤鏡像文件不成問題,隨用隨調十分方便;三、硬盤的讀取速度要遠遠高于光盤的讀取速度,CPU占用率大大降低。其實linux系統下制作和使用光盤鏡像比Windows系統更方便,不必借用任何第三方軟件包。

  1、從光盤制作光盤鏡像文件。將光盤放入光驅,執行下面的命令。

   #cp /dev/cdrom /home/sunky/mydisk.iso 或

   #dd if=/dev/cdrom of=/home/sunky/mydisk.iso

   注:執行上面的任何一條命令都可將當前光驅里的光盤制作成光盤鏡像文件/home/sunky/mydisk.iso

  2、將文件和目錄制作成光盤鏡像文件,執行下面的命令。

   #mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir

   注:這條命令將/home/sunky/mydir目錄下所有的目錄和文件制作成光盤鏡像文件/home/sunky/mydisk.iso,光盤卷標為:mydisk

  3、光盤鏡像文件的掛接(mount)

   #mkdir /mnt/vcdrom

   注:建立一個目錄用來作掛接點(mount point)

   #mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom

   注:使用/mnt/vcdrom就可以訪問盤鏡像文件mydisk.iso里的所有文件了。  

掛接移動硬盤

  對linux系統而言,USB接口的移動硬盤是當作SCSI設備對待的。插入移動硬盤之前,應先用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。

  [root at pldyrouter /]# fdisk -l

  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

  255 heads, 63 sectors/track, 8924 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 4 32098+ de Dell Utility

  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

  /dev/sda3 2555 7904 42973875 83 Linux

  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 8924 8193118+ 82 Linux swap

  在這里可以清楚地看到系統有一塊SCSI硬盤/dev/sda和它的四個磁盤分區/dev/sda1 -- /dev/sda4, /dev/sda5是分區/dev/sda4的邏輯分區。接好移動硬盤后,再用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況

  [root at pldyrouter /]# fdisk -l

  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

  255 heads, 63 sectors/track, 8924 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 4 32098+ de Dell Utility

  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

  /dev/sda3 2555 7904 42973875 83 Linux

  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 8924 8193118+ 82 Linux swap

  Disk /dev/sdc: 40.0 GB, 40007761920 bytes

  255 heads, 63 sectors/track, 4864 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sdc1 1 510 4096543+ 7 HPFS/NTFS

  /dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)

  /dev/sdc5 511 4864 34973473+ b Win95 FAT32

  大家應該可以發現多了一個SCSI硬盤/dev/sdc和它的兩個磁盤分區/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分區的邏輯分區。我們可以使用下面的命令掛接/dev/sdc1和/dev/sdc5。

   #mkdir -p /mnt/usbhd1

   #mkdir -p /mnt/usbhd2

   注:建立目錄用來作掛接點(mount point)

   #mount -t ntfs /dev/sdc1 /mnt/usbhd1

   #mount -t vfat /dev/sdc5 /mnt/usbhd2 

   注:對ntfs格式的磁盤分區應使用-t ntfs 參數,對fat32格式的磁盤分區應使用-t vfat參數。若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令格式。

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

   #mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2

  linux系統下使用fdisk分區命令和mkfs文件系統創建命令可以將移動硬盤的分區制作成linux系統所特有的ext2、ext3格式。這樣,在linux下使用就更方便了。使用下面的命令直接掛接即可。

   #mount /dev/sdc1 /mnt/usbhd1 

掛接U盤

  和USB接口的移動硬盤一樣對linux系統而言U盤也是當作SCSI設備對待的。使用方法和移動硬盤完全一樣。插入U盤之前,應先用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。

  [root at pldyrouter root]# fdisk -l

  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

  255 heads, 63 sectors/track, 8924 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 4 32098+ de Dell Utility

  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

  /dev/sda3 2555 7904 42973875 83 Linux

  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 8924 8193118+ 82 Linux swap

  插入U盤后,再用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。

  [root at pldyrouter root]# fdisk -l

  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

  255 heads, 63 sectors/track, 8924 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 4 32098+ de Dell Utility

  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

  /dev/sda3 2555 7904 42973875 83 Linux

  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 8924 8193118+ 82 Linux swap

  Disk /dev/sdd: 131 MB, 131072000 bytes

  9 heads, 32 sectors/track, 888 cylinders

  Units = cylinders of 288 * 512 = 147456 bytes

  Device Boot Start End Blocks Id System

  /dev/sdd1 * 1 889 127983+ b Win95 FAT32

  Partition 1 has different physical/logical endings:

  phys=(1000, 8, 32) logical=(888, 7, 31)

  系統多了一個SCSI硬盤/dev/sdd和一個磁盤分區/dev/sdd1,/dev/sdd1就是我們要掛接的U盤。

  #mkdir -p /mnt/usb

  注:建立一個目錄用來作掛接點(mount point)

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

  注:現在可以通過/mnt/usb來訪問U盤了, 若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令。

  #mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb

掛接Windows文件共享

  Windows網絡共享的核心是SMB/CIFS,在linux下要掛接(mount)windows的磁盤共享,就必須安裝和使用samba軟件包。現在流行的linux發行版絕大多數已經包含了samba軟件包,如果安裝linux系統時未安裝samba請首先安裝samba。當然也可以到www.samba.org網站下載......新的版本是3.0.10版。

  當windows系統共享設置好以后,就可以在linux客戶端掛接(mount)了,具體操作如下:

  # mkdir –p /mnt/samba 

  注:建立一個目錄用來作掛接點(mount point)

  # mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba

  注:administrator 和 pldy123 是ip地址為10.140.133.23 windows計算機的一個用戶名和密碼,c$是這臺計算機的一個磁盤共享

  如此就可以在linux系統上通過/mnt/samba來訪問windows系統磁盤上的文件了。以上操作在redhat as server 3、redflag server 4.1、suse server 9以及windows NT 4.0、windows 2000、windows xp、windows 2003環境下測試通過。

  掛接UNIX系統NFS文件共享

  類似于windows的網絡共享,UNIX(Linux)系統也有自己的網絡共享,那就是NFS(網絡文件系統),下面我們就以SUN Solaris2.8和REDHAT as server 3 為例簡單介紹一下在linux下如何mount nfs網絡共享。

  在linux客戶端掛接(mount)NFS磁盤共享之前,必須先配置好NFS服務端。

  1、Solaris系統NFS服務端配置方法如下:

   (1)修改 /etc/dfs/dfstab, 增加共享目錄

      share -F nfs -o rw /export/home/sunky

   (2)啟動nfs服務

      # /etc/init.d/nfs.server start

   (3)NFS服務啟動以后,也可以使用下面的命令增加新的共享

      # share /export/home/sunky1

      # share /export/home/sunky2

   注:/export/home/sunky和/export/home/sunky1是準備共享的目錄

  2、linux系統NFS服務端配置方法如下:

   (1)修改 /etc/exports,增加共享目錄

  /export/home/sunky 10.140.133.23(rw)

  /export/home/sunky1 *(rw)

  /export/home/sunky2 linux-client(rw) 

   注:/export/home/目錄下的sunky、sunky1、sunky2是準備共享的目錄,10.140.133.23、*、linux- client是被允許掛接此共享linux客戶機的IP地址或主機名。如果要使用主機名linux-client必須在服務端主機/etc/hosts文件里增加linux-client主機ip定義。格式如下:

   10.140.133.23 linux-client

   (2)啟動與停止NFS服務

   /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認啟動的) 

   /etc/rc.d/init.d/nfs start 啟動NFS服務

   /etc/rc.d/init.d/nfs stop 停止NFS服務

   注:若修改/etc/export文件增加新的共享,應先停止NFS服務,再啟動NFS服務方能使新增加的共享起作用。使用命令exportfs -rv也可以達到同樣的效果。

  3、linux客戶端掛接(mount)其他linux系統或UNIX系統的NFS共享

   # mkdir –p /mnt/nfs

   注:建立一個目錄用來作掛接點(mount point)

   #mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs

   注:這里我們假設10.140.133.9是NFS服務端的主機IP地址,當然這里也可以使用主機名,但必須在本機/etc/hosts文件里增加服務端ip定義。/export/home/sunky為服務端共享的目錄。

  如此就可以在linux客戶端通過/mnt/nfs來訪問其它linux系統或UNIX系統以NFS方式共享出來的文件了。以上操作在redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc環境下測試通過。

LOOP設備

loop 設備 (循環設備)

1. loop 設備介紹
在類 UNIX 系統里,loop 設備是一種偽設備(pseudo-device),或者也可以說是仿真設備。它能使我們像塊設備一樣訪問一個文件。

在使用之前,一個 loop 設備必須要和一個文件進行連接。這種結合方式給用戶提供了一個替代塊特殊文件的接口。因此,如果這個文件包含有一個完整的文件系統,那么這個文件就可以像一個磁盤設備一樣被 mount 起來。

上面說的文件格式,我們經常見到的是 CD 或 DVD 的 ISO 光盤鏡像文件或者是軟盤(硬盤)的 *.img 鏡像文件。通過這種 loop mount (回環mount)的方式,這些鏡像文件就可以被 mount 到當前文件系統的一個目錄下。

至此,順便可以再理解一下 loop 之含義:對于第一層文件系統,它直接安裝在我們計算機的物理設備之上;而對于這種被 mount 起來的鏡像文件(它也包含有文件系統),它是建立在第一層文件系統之上,這樣看來,它就像是在第一層文件系統之上再繞了一圈的文件系統,所以稱為 loop。

在 Linux 里,loop 設備的設備名形如:
引用
ls /dev/loop*
/dev/loop0  /dev/loop2  /dev/loop4  /dev/loop6
/dev/loop1  /dev/loop3  /dev/loop5  /dev/loop7
... ...

例如,要在一個目錄下 mount 一個包含有磁盤鏡像的文件,需要分 2 步走:
引用
losetup /dev/loop0 disk.img           #使磁盤鏡像文件與循環設備連結起來
mount /dev/loop0 /home/groad/disk_test   #將循環設備 mount 到目錄 disk_test 下

經過上面的兩個命令后,鏡像文件就如同一個文件系統掛載在 disk_test 目錄下,當然我們也可以往鏡像里面添加文件。

其實上面的兩個步驟可以寫成一個步驟:
引用
mount -t minix -o loop ./disk.img ./disk_test

其中,加了 -o loop 指定后,那么也就相當于執行了第一行的 losetup 命令。做一個簡單的試驗可以證明一點,首先分開執行 losetup 和 mount 命令,那么我們看到我們可以 mount 的是 /dev/loop0 這個設備。當我們在 mount 中指定參數 -o loop 時,鏡像文件其實已和 /dev/loop1 相關聯,這里我們在掛載鏡像文件后,嘗試再執行一下 mount -t minix /dev/loop1 ./disk_test 來驗證,它會得到提示:
引用
linux-z13e:/usr/local/share/bochs/Linux011/temp # mount -t minix /dev/loop1 ./test_dir/ 
mount: /dev/loop1 already mounted or ./test_dir/ busy
mount: according to mtab, /dev/loop1 is already mounted on /usr/local/share/bochs/Linux011/temp/test_dir


最后,要卸載的話,就直接 umount /dev/loop0 即可。

losetup -- 設置循環設備

格式
引用
losetup [ -e encryption ] [ -o offset ] loop_device file
losetup [ -d ] loop_device

說明
此命令用來設置循環設備。循環設備可把文件虛擬成塊設備,籍此來模擬整個文件系統,讓用戶得以將其視為硬盤驅動器,光驅或軟驅等設備,并掛入當作目錄來使用。
上面,命令格式中的選項與參數名:
-e 表示加密的方式
-o 設置數據偏移量
-d 卸載設備
loop_device 循環設備名,在 linux 下如 /dev/loop0 , /dev/loop1 等。
file 要與循環設備相關聯的文件名,這個往往是一個磁盤鏡象文件,如 *.img


張貴川 2010-10-14 10:32 發表評論
]]>
dgb的使用http://www.shnenglu.com/Viking/archive/2010/10/12/129594.html張貴川張貴川Tue, 12 Oct 2010 03:56:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/12/129594.htmlhttp://www.shnenglu.com/Viking/comments/129594.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/12/129594.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/129594.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/129594.html 一:列文件清單
1. List
(gdb) list line1,line2

二:執行程序
要想運行準備 調試的程序,可使用run命令,在它后面可以跟隨發給該程序的任何參數,包括標準輸入和標準輸出說明符(<和>)和外殼通配符 (*、?、[、])在內。
如果你使用不帶參數的run命令,gdb就再次使用你給予前一條run命令的參數,這是很有用的。
利用 set args 命令就可以修改發送給程序的參數,而使用show args 命令就可以查看其缺省參數的列表。
(gdb)set args –b –x
(gdb) show args
backtrace命令為堆棧提供向后跟蹤功能。
Backtrace 命令產生一張列表,包含著從最近的過程開始的所以有效過程和調用這些過程的參數。

三:顯示數據
利用print 命令可以檢查各個變量的值。
(gdb) print p (p為變量名)
whatis 命令可以顯示某個變量的類型
(gdb) whatis p
type = int *

print 是gdb的一個功能很強的命令,利用它可以顯示被調試的語言中任何有效的表達式。表達式除了包含你程序中的變量外,還可以包含以下內容:
l 對程序中函數的調用
(gdb) print find_entry(1,0)
l 數據結構和其他復雜對象
(gdb) print *table_start
$8={e=reference=’\000’,location=0x0,next=0x0}
l 值的歷史成分
(gdb)print $1 ($1為歷史記錄變量,在以后可以直接引用 $1 的值)
l 人為數組
人為數 組提供了一種去顯示存儲器塊(數組節或動態分配的存儲區)內容的方法。早期的調試程序沒有很好的方法將任意的指針換成一個數組。就像對待參數一樣,讓我們 查看內存中在變量h后面的10個整數,一個動態數組的語法如下所示:
base@length
因此,要想顯示在h后面的10個元素,可 以使用h@10:
(gdb)print h@10
$13=(-1,345,23,-234,0,0,0,98,345,10)

四: 斷點(breakpoint)
break命令(可以簡寫為b)可以用來在調試的程序中設置斷點,該命令有如下四種形式:
l break line-number 使程序恰好在執行給定行之前停止。
l break function-name 使程序恰好在進入指定的函數之前停止。
l break line-or-function if condition 如果condition(條件)是真,程序到達指定行或函數時停止。
l break routine-name 在指定例程的入口處設置斷點

如 果該程序是由很多原文件構成的,你可以在各個原文件中設置斷點,而不是在當前的原文件中設置斷點,其方法如下:
(gdb) break filename:line-number
(gdb) break filename:function-name

要想設置 一個條件斷點,可以利用break if命令,如下所示:
(gdb) break line-or-function if expr
例:
(gdb) break 46 if testsize==100

從斷點繼續運行:countinue 命令
五. 斷點的管理

1. 顯示當前gdb的斷點信息:
(gdb) info break
他會以如下的形式顯示所有的斷點信 息:
Num Type Disp Enb Address What
1 breakpoint keep y 0x000028bc in init_random at qsort2.c:155
2 breakpoint keep y 0x0000291c in init_organ at qsort2.c:168
(gdb)
2.刪除指定的某個斷點:
(gdb) delete breakpoint 1
該命令將會刪除編號為1的斷點,如果不帶編號參數,將刪除所有的斷點
(gdb) delete breakpoint
3.禁止使用某個斷點
(gdb) disable breakpoint 1
該命令將禁止斷點 1,同時斷點信息的 (Enb)域將變為 n
4.允許使用某個斷點
(gdb) enable breakpoint 1
該 命令將允許斷點 1,同時斷點信息的 (Enb)域將變為 y
5.清除原文件中某一代碼行上的所有斷點
(gdb)clean number
注:number 為原文件的某個代碼行的行號
六.變量的檢查和賦值
l whatis:識別數組或變量的類型
l ptype:比whatis的功能更強,他可以提供一個結構的定義
l set variable:將值賦予變量
l print 除了顯示一個變量的值外,還可以用來賦值

七.單步執行
l next
不進入的單步執行
l step
進入的單步執行
如果已經進入了某函數,而想退出該函數返回到它的調用函數中,可使用命令finish
八.函數的調 用
l call name 調用和執行一個函數
(gdb) call gen_and_sork( 1234,1,0 )
(gdb) call printf(“abcd”)
$1=4
l finish 結束執行當前函數,顯示其返回值(如果有的話)

九. 機器語言工具
有一組專用的gdb變量可以用來檢查和修改計算機的通用寄存器,gdb提供了目前每一臺計算機中實際使用的4個寄存器的標準名字:
l $pc : 程序計數器
l $fp : 幀指針(當前堆棧幀)
l $sp : 棧指針
l $ps : 處理器狀態

十.信號
gdb通常可以捕捉到發送給它的大多數信號,通過捕捉信號,它就可決定對于正在運行的進程要做些什么工 作。例如,按CTRL-C將中斷信號發送給gdb,通常就會終止gdb。但是你或許不想中斷gdb,真正的目的是要中斷gdb正在運行的程序,因 此,gdb要抓住該信號并停止它正在運行的程序,這樣就可以執行某些調試操作。

Handle命令可控制信號的處理,他有兩個參數,一個 是信號名,另一個是接受到信號時該作什么。幾種可能的參數是:
l nostop 接收到信號時,不要將它發送給程序,也不要停止程序。
l stop 接受到信號時停止程序的執行,從而允許程序調試;顯示一條表示已接受到信號的消息(禁止使用消息除外)
l print 接受到信號時顯示一條消息
l noprint 接受到信號時不要顯示消息(而且隱含著不停止程序運行)
l pass 將信號發送給程序,從而允許你的程序去處理它、停止運行或采取別的動作。
l nopass 停止程序運行,但不要將信號發送給程序。
例 如,假定你截獲SIGPIPE信號,以防止正在調試的程序接受到該信號,而且只要該信號一到達,就要求該程序停止,并通知你。要完成這一任務,可利用如下 命令:
(gdb) handle SIGPIPE stop print
請注意,UNIX的信號名總是采用大寫字母!你可以用信號編 號替代信號名
如果你的程序要執行任何信號處理操作,就需要能夠測試其信號處理程序,為此,就需要一種能將信號發送給程序的簡便方法,這就是 signal命令的任務。該 命令的參數是一個數字或者一個名字,如SIGINT。假定你的程序已將一個專用的SIGINT(鍵盤輸入,或CTRL-C;信號2)信號處理程序設置成采 取某個清理動作,要想測試該信號處理程序,你可以設置一個斷點并使用如下命令:
(gdb) signal 2
continuing with signal SIGINT(2)
該程序繼續執行,但是立即傳輸該信號,而且處理程序開始運行.

十一. 原文件的搜索
search text:該命令可顯示在當前文件中包含text串的下一行。
Reverse-search text:該命令可以顯示包含text 的前一行。

十二.UNIX接口
shell 命令可啟動UNIX外殼,CTRL-D退出外殼,返回到 gdb.

十三.命令的歷史
為了允許使用歷史命令,可使用 set history expansion on 命令
(gdb) set history expansion on

小結:常用 的gdb命令
backtrace 顯示程序中的當前位置和表示如何到達當前位置的棧跟蹤(同義詞:where)
breakpoint 在程序中設置一個斷點
cd 改變當前工作目錄
clear 刪除剛才停止處的斷點
commands 命中斷點時,列出將要執行的命令
continue 從斷點開始繼續執行
delete 刪除一個斷點或監測點;也可與其他命令一起使用
display 程序停止時顯示變量和表達時
down 下移棧幀,使得另一個函數成為當前函數
frame 選擇下一條continue命令的幀
info 顯示與該程序有關的各種信息
jump 在源程序中的另一點開始運行
kill 異常終止在gdb 控制下運行的程序
list 列出相應于正在執行的程序的原文件內容
next 執行下一個源程序行,從而執行其整體中的一個函數
print 顯示變量或表達式的值
pwd 顯示當前工作目錄
pype 顯示一個數據結構(如一個結構或C++類)的內容
quit 退出gdb
reverse-search 在源文件中反向搜索正規表達式
run 執行該程序
search 在源文件中搜索正規表達式
set variable 給變量賦值
signal 將一個信號發送到正在運行的進程
step 執行下一個源程序行,必要時進入下一個函數
undisplay display命令的反命令,不要顯示表達式
until 結束當前循環
up 上移棧幀,使另一函數成為當前函數
watch 在程序中設置一個監測點(即數據斷點)
whatis 顯示變量或函數類型
****************************************************
 GNU的調試器稱為gdb,該程序是一個交互式工具,工作在字符模式。在 X Window 系統中,有一個gdb的前端圖形工具,稱為xxgdb。gdb 是功能強大的調試程序,可完成如下的調試任務:
  * 設置斷點;
* 監視程序變量的值;
  * 程序的單步執行;
  * 修改變量的值。
  在可以使用 gdb 調試程序之前,必須使用 -g 選項編譯源文件。可在 makefile 中如下定義 CFLAGS 變量:
   CFLAGS = -g
運行 gdb 調試程序時通常使用如下的命令:
   gdb progname

  在 gdb 提示符處鍵入help,將列出命令的分類,主要的分類有:
  * aliases:命令別名
  * breakpoints:斷點定義;
  * data:數據查看;
  * files:指定并查看文件;
  * internals:維護命令;
  * running:程序執行;
  * stack:調用棧查看;
  * statu:狀態查看;
  * tracepoints:跟蹤程序執行。
  鍵入 help 后跟命令的分類名,可獲得該類命令的詳細清單。


gdb 的常用命令
命令 解釋
  break NUM 在指定的行上設置斷點。
  bt 顯示所有的調用棧幀。該命令可用來顯示函數的調用順序。
  clear 刪除設置在特定源文件、特定行上的斷點。其用法為clear FILENAME:NUM
  continue 繼續執行正在調試的程序。該命令用在程序由于處理信號或斷點而 導致停止運行時。
  display EXPR 每次程序停止后顯示表達式的值。表達式由程序定義的變量組成。
  file FILE 裝載指定的可執行文件進行調試。
  help NAME 顯示指定命令的幫助信息。
  info break 顯示當前斷點清單,包括到達斷點處的次數等。
  info files 顯示被調試文件的詳細信息。
  info func 顯示所有的函數名稱。
  info local 顯示當函數中的局部變量信息。
  info prog 顯示被調試程序的執行狀態。
  info var 顯示所有的全局和靜態變量名稱。
  kill 終止正被調試的程序。
  list 顯示源代碼段。
  make 在不退出 gdb 的情況下運行 make 工具。
  next 在不單步執行進入其他函數的情況下,向前執行一行源代碼。
  print EXPR 顯示表達式 EXPR 的值。

******gdb 使用范例************************
-----------------
清單 一個有錯誤的 C 源程序 bugging.c
代碼:

-----------------
1 #i nclude
2
3 static char buff [256];
4 static char* string;
5 int main ()
6 {
7   printf ("Please input a string: ");
8 gets (string);  
9   printf ("\nYour string is: %s\n", string);
10 }


-----------------
上面這個程序非常簡單,其目的是接受用戶的輸入,然后將用戶的輸入打印出來。該程序使用了一個未經過初始化的字符串地址 string,因此,編譯并運行之后,將出現 Segment Fault 錯誤:
$ gcc -o bugging -g bugging.c
$ ./bugging
Please input a string: asfd
Segmentation fault (core dumped)
為了查找該程序中出現的問題,我們利用 gdb,并按如下的步驟進行:
1.運行 gdb bugging 命令,裝入 bugging 可執行文件;
2.執行裝入的 bugging 命令 run;
3.使用 where 命令查看程序出錯的地方;
4.利用 list 命令查看調用 gets 函數附近的代碼;
5.唯一能夠導致 gets 函數出錯的因素就是變量 string。用print命令查看 string 的值;
6.在 gdb 中,我們可以直接修改變量的值,只要將 string 取一個合法的指針值就可以了,為此,我們在第8行處設置斷點 break 8;
7.程序重新運行到第 8行處停止,這時,我們可以用 set variable 命令修改 string 的取值;
8.然后繼續運行,將看到正確的程序運行結果。
(http://www.fanqiang.com)



張貴川 2010-10-12 11:56 發表評論
]]>
linux 文件系統命名的來由http://www.shnenglu.com/Viking/archive/2010/10/11/129516.html張貴川張貴川Mon, 11 Oct 2010 15:29:00 GMThttp://www.shnenglu.com/Viking/archive/2010/10/11/129516.htmlhttp://www.shnenglu.com/Viking/comments/129516.htmlhttp://www.shnenglu.com/Viking/archive/2010/10/11/129516.html#Feedback0http://www.shnenglu.com/Viking/comments/commentRss/129516.htmlhttp://www.shnenglu.com/Viking/services/trackbacks/129516.html
Unix已經有35年歷史了。許多人認為它開始于中世紀,這個中世紀是相對于
計算機技術的產生和發展來說的。在過去的時間里,Unix和它的子分支Linux收集
有許多的歷史和一些完全古老的語言。在這篇技巧文章中,我們將介紹一少部分古
老的語言和它們的目的和作用,以及它們真正的來源。 

RC 

在Linux中,最為常用的縮略語也許是“rc”,它是“runcomm”的縮寫――即名詞
“run   command”(運行命令)的簡寫。今天,“rc”是任何腳本類文件的后綴,這些
腳本通常在程序的啟動階段被調用,通常是Linux系統啟動時。如   
/etc/rs是
Linux啟動的主腳本,而.bashrc是當Linux的bash   shell啟動后所運行的腳
本。.bashrc的前綴“.”是一個命名標準,它被設計用來在用戶文件中隱藏那些用戶
指定的特殊文件;“ls”命令默認情況下不會列出此類文件,“rm”默認情況下也不會
刪除它們。許多程序在啟動時,都需要“rc”后綴的初始文件或配置文件,這對于
Unix的文件系統視圖來說,沒有什么神秘的。 

ETC 

在“etc
/bin”中的“etc”真正代表的是“etcetera”(附加物)。在早期的Unix系
統中,最為重要的目錄是“bin”目錄   (“bin”是“binaries”二進制文件――編譯后的
程序的縮寫),“etc”中則包含瑣碎的程序,如啟動、關機和管理。運行一個Linux
必須的東西的列表是:一個二進制程序,etcetera,etcetera――換句話說,是一個
底層的重要項目,通常添加一些次等重要的零碎事物。今天,   “etc”包含了廣泛
的系統配置文件,這些配置文件幾乎包含了系統配置的方方面面,同樣非常重要。 

Bin 

今天,許多在Linux上運行的大型子系統,如GNOME或Oracle,所編譯成的程
序使用它們自己的“bin”目錄(或者是   
/usr/bin,或者是/usr/local/bin)作為標
準的存放地。同樣,現在也能夠在這些目錄看到腳本文件,因為“bin”目錄通常添
加到用戶的PATH路徑中,這樣他們才能夠正常的使用程序。因此運行腳本通常在
bin中運行良好。 

TTY 

在Linux中,TTY也許是跟終端有關系的最為混亂的術語。TTY是TeleTYpe的
一個老縮寫。Teletypes,或者   teletypewriters,原來指的是電傳打字機,是
通過串行線用打印機鍵盤通過閱讀和發送信息的東西,和古老的電報機區別并不是
很大。之后,當計算機只能以批處理方式運行時(當時穿孔卡片閱讀器是唯一一種
使程序載入運行的方式),電傳打字機成為唯一能夠被使用的“實時”輸入
/輸出設
備。最終,電傳打字機被鍵盤和顯示器終端所取代,但在終端或   TTY接插的地
方,操作系統仍然需要一個程序來監視串行端口。一個getty“Get   TTY”的處理過
程是:一個程序監視物理的TTY
/終端接口。對一個虛擬網絡沮喪服務器(VNC)來說,
一個偽裝的TTY(Pseudo
-TTY,即家貓的TTY,也叫做“PTY”)是等價的終端。當你運
行一個xterm(終端仿真程序)或GNOME終端程序時,PTY對虛擬的用戶或者如xterm一
樣的偽終端來說,就像是一個TTY在運行。“Pseudo”的意思是“duplicating   
in 
a   fake   way”(用偽造的方法復制),它相比“
virtual”或“emulated”更能真實的
說明問題。而在現在的計算中,它卻處于被放棄的階段。 

Dev 

從TTY留下的命令有“stty”,是“
set   tty”(設置TTY)的縮寫,它能夠生成
一個配置文件
/etc/initab(“initialization   table”,初始表),以配置gettys
使用哪一個串口。在現代,直接附加在Linux窗口上的唯一終端通常是控制臺,由
于它是特殊的TTY,因此被命名為“console”。當然,一旦你啟動
X11,“console”TTY就會消失,再也不能使用串口協議。所有的TTY都被儲存在
/dev”目錄,它是“[physical]   devices”([物理]設備)的縮寫。以前,你必須在
電腦后面的串口中接入一個新的終端時,手工修改和配置每一個設備文件。現
在,Linux(和   Unix)在安裝過程中就在此目錄中創建了它所能向導的每一個設備
的文件。這就是說,你很少需要自己創建它。 

隨著硬件在電腦中的移出移進,這些名字將變得更加模糊不清。幸運的是,
今天在Linux上的高等級軟件塊對歷史和硬件使用容易理解的名字。舉例來說,
嗯,Pango(http:
//www.pango.org/)就是其中之一。 

如果你對這些內容很感興趣,那么我建議你閱讀宏大的,但有些以美國英語
歷史為中心的,由Eric   S.   Raymond撰寫的Jargon   File。它并沒有解釋所有
在Unix中使用的術語,但是它給出了這些形成的大致情況。  



張貴川 2010-10-11 23:29 發表評論
]]>
伊人久久大香线蕉综合热线| 国产精品久久久香蕉| 国产精品久久一区二区三区| 欧美精品一区二区久久| jizzjizz国产精品久久| 亚洲欧美一区二区三区久久| 久久精品国产乱子伦| 久久综合色区| 久久亚洲春色中文字幕久久久| 久久亚洲av无码精品浪潮| 一本色道久久HEZYO无码| 中文字幕无码久久人妻| 久久精品国产一区二区三区| 国产精品久久久久影院色| 久久AⅤ人妻少妇嫩草影院| 久久99精品久久久久久水蜜桃 | 青春久久| 精品久久久久久无码人妻蜜桃| 久久久国产精华液| 国产精品久久久久一区二区三区| 97久久精品无码一区二区天美 | 伊人久久大香线蕉综合Av| 国产精品成人无码久久久久久| 无码人妻精品一区二区三区久久久 | 国产成人精品白浆久久69| 国产精品中文久久久久久久| 99久久精品费精品国产| 久久久久久A亚洲欧洲AV冫| 久久99国产精品久久99| 久久精品国产清自在天天线| 国产精品国色综合久久| 久久久久高潮毛片免费全部播放 | 7777精品久久久大香线蕉| 久久久久亚洲AV成人网人人网站| 久久91精品久久91综合| 久久久中文字幕| 少妇人妻综合久久中文字幕| 九九久久精品国产| 看全色黄大色大片免费久久久| 久久精品国产99国产精品| 久久久久一级精品亚洲国产成人综合AV区 |