嵌入式軟件開發(fā)實(shí)驗(yàn)指導(dǎo)書_第1頁
嵌入式軟件開發(fā)實(shí)驗(yàn)指導(dǎo)書_第2頁
嵌入式軟件開發(fā)實(shí)驗(yàn)指導(dǎo)書_第3頁
嵌入式軟件開發(fā)實(shí)驗(yàn)指導(dǎo)書_第4頁
嵌入式軟件開發(fā)實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、嵌入式軟件開發(fā)實(shí)驗(yàn)指導(dǎo)書李軍 梁吉?jiǎng)?010年10月28日嵌入式軟件開發(fā)實(shí)驗(yàn)指導(dǎo)書目錄3 實(shí)驗(yàn)一 linux 開發(fā)基礎(chǔ)4一、常見命令測(cè)試4二、文件與目錄命令測(cè)試:8三、標(biāo)準(zhǔn)輸入輸出與重定向及管道 13四、linux幫助系統(tǒng)16五、linux下的網(wǎng)絡(luò)服務(wù)18一、實(shí)驗(yàn)?zāi)康?1二、實(shí)驗(yàn)內(nèi)容21三、預(yù)備知識(shí)21四、實(shí)驗(yàn)設(shè)備及工具21五、實(shí)驗(yàn)原理及說明21六、實(shí)驗(yàn)步驟22實(shí)驗(yàn)三 linux c程序設(shè)計(jì)33一、vi編輯器的使用33二、使用gcc編譯器,編譯程序35三、使用動(dòng)態(tài)庫36四、使用靜態(tài)庫37五、makefile的編寫(參考)38實(shí)驗(yàn)四 linux的實(shí)驗(yàn)環(huán)境的搭建44一、實(shí)驗(yàn)?zāi)康?4二、實(shí)驗(yàn)內(nèi)容44

2、三、實(shí)驗(yàn)設(shè)備44四、實(shí)驗(yàn)步驟44實(shí)驗(yàn)五 linux內(nèi)核、文件系統(tǒng)的移植與下載51一、實(shí)驗(yàn)?zāi)康?51二、實(shí)驗(yàn)內(nèi)容 51三、實(shí)驗(yàn)設(shè)備 51四、linux的移植說明51實(shí)驗(yàn)六 基于linux的鍵盤驅(qū)動(dòng)程序的編寫57一、實(shí)驗(yàn)?zāi)康?7二、實(shí)驗(yàn)內(nèi)容57三、實(shí)驗(yàn)設(shè)備57四、鍵盤驅(qū)動(dòng)程序的編寫57五、實(shí)驗(yàn)演示步驟(動(dòng)態(tài)加載)63實(shí)驗(yàn)七 搭建qt4實(shí)驗(yàn)環(huán)境65一、實(shí)驗(yàn)?zāi)康?5二、實(shí)驗(yàn)內(nèi)容65三、實(shí)驗(yàn)設(shè)備65四、實(shí)驗(yàn)步驟65實(shí)驗(yàn)八 基于qt的對(duì)話框程序設(shè)計(jì)實(shí)驗(yàn)70一、實(shí)驗(yàn)?zāi)康?0二、實(shí)驗(yàn)內(nèi)容70三、實(shí)驗(yàn)設(shè)備70四、實(shí)驗(yàn)步驟70實(shí)驗(yàn)九 五子棋游戲開發(fā)實(shí)驗(yàn)80一、實(shí)驗(yàn)?zāi)康?0二、實(shí)驗(yàn)內(nèi)容80三、實(shí)驗(yàn)設(shè)備80四、實(shí)驗(yàn)步

3、驟80五、最后編譯、連接和運(yùn)行84嵌入式軟件開發(fā)實(shí)驗(yàn)指導(dǎo)書 實(shí)驗(yàn)一 linux 開發(fā)基礎(chǔ)一、常見命令測(cè)試1. 訪問/ 網(wǎng)站了解最新的linux內(nèi)核發(fā)布情況2. 掌握linux登錄的兩種方式正常的圖形用戶界面登錄,優(yōu)點(diǎn):操作界面美觀,熟悉,缺點(diǎn):圖形界面會(huì)占用系統(tǒng)一部分資源3關(guān)機(jī)命令 分別用shutdown -help和init -help命令查看幫助信息,記下如下兩條命令的作用分別用man shutdown和man init命令查看幫助信息,記下如下兩條命令的作用shutdown -h nowinit 0思考:若計(jì)劃在5分鐘后關(guān)機(jī),該輸入啥命令,在16:30分關(guān)

4、機(jī),該輸入啥命令提示部分: runlevels 0, 1, and 6 are reserved. runlevel 0 is used to halt the sys- tem, runlevel 6 is used to reboot the system, and runlevel 1 is used to get the system down into single user mode.# default runlevel. the runlevels used by rhs are:# 0 - halt (do not set initdefault to this)# 1 - s

5、ingle user mode# 2 - multiuser, without nfs (the same as 3, if you do not have networking)# 3 - full multiuser mode# 4 - unused# 5 - x11# 6 - reboot (do not set initdefault to this)# id:3:initdefault:時(shí)間 設(shè)置多久時(shí)間后執(zhí)行shutdown命令。時(shí)間參數(shù)有hh:mm或+m兩種模式。hh:mm格式表示在幾點(diǎn)幾分執(zhí)行shutdown命令。例如“shutdown 10:45”表示將在10:45執(zhí)行shu

6、tdown。+m表示m分鐘后執(zhí)行shutdown。比較特別的用法是以now表示立即執(zhí)行shutdown。值得注意的是這部分參數(shù)不能省略。shutdown h +5 shutdown h 16:304 關(guān)機(jī)前發(fā)送廣播命令 wall ,通知大家保存信息rootlocalhost root# wall computer will shutdown in 3minutes ,please save what you are doing broadcast message from root (pts/0) (fri jun 15 10:19:57 2007): computer will shutdo

7、wn in 3minutes ,please save what you are doing5 退出服務(wù)器或當(dāng)前用戶命令: exit6 查看當(dāng)前系統(tǒng)支持的shellrootlocalhost root# ls /bin/*sh*/bin/ash /bin/ash.static /bin/bash /bin/bash2 /bin/bsh /bin/csh /bin/sh /bin/tcsh7 查看命令的返回值rootlocalhost root# ls /bin/*sh/bin/ash /bin/bash /bin/bsh /bin/csh /bin/sh /bin/tcshrootlocalh

8、ost root# echo $?0rootlocalhost root# $?-bash: 0: command not foundrootlocalhost root# echo $?127rootlocalhost root#8 修改用戶口令rootlocalhost root# passwdchanging password for user root.new password: bad password: it is too simplistic/systematicretype new password: passwd: all authentication tokens upda

9、ted successfully.rootlocalhost root#10. 用戶認(rèn)證rootlocalhost root# iduid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)rootlocalhost root# su qianzgqianzglocalhost root$ iduid=500(qianzg) gid=500(qianzg) groups=500(qianzg)qianzglocalhost root$9 查看當(dāng)前用戶命令who10 echo 命令

10、 在終端顯示字符串 11 cat命令查看文件內(nèi)容 rootlocalhost root# echo how are youhow are yourootlocalhost root# echo how are you > aarootlocalhost root# cat aahow are yourootlocalhost root#12 date 顯示或設(shè)置日期或時(shí)間 請(qǐng)?jiān)O(shè)置當(dāng)前時(shí)間為: 2008年10月23日14點(diǎn)25分 rootlocalhost root# date五 6月 15 16:08:33 cst 2007rootlocalhost root# date 1023142

11、5二 10月 23 14:25:00 cst 2007 rootlocalhost root# date 102314252008四 10月 23 14:25:00 cst 2008rootlocalhost root#13rootlocalhost root# cal 六月 2007日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 30rootlocalhost root# cal 7 2008 七月 2008日 一 二 三 四 五 六 1 2 3 4 5 6 7

12、8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30 31rootlocalhost root# cal 07 7 一月 二月 三月 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 1 2 3 4 5 1 2 3 4 5 2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12 9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 1916 17 18 19 20 21 22 20

13、 21 22 23 24 25 26 20 21 22 23 24 25 2623 24 25 26 27 28 29 27 28 27 28 29 30 3130 31 四月 五月 六月 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 2 1 2 3 4 5 6 7 1 2 3 4 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 1110 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 1817 18 19 20 21 22 23 22 23

14、24 25 26 27 28 19 20 21 22 23 24 2524 25 26 27 28 29 30 29 30 31 26 27 28 29 30 七月 八月 九月 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 2 1 2 3 4 5 6 1 2 3 3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 1010 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 1717 18 19 20 21 22 23 21 22 23 24 25 26

15、27 18 19 20 21 22 23 2424 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 3031 十月 十一月 十二月 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 1 2 3 4 5 1 2 3 2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10 9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 1716 17 18 19 20 21 22 20 21 22 23 24 25 26 18 1

16、9 20 21 22 23 2423 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 3130 3114 clear 清除當(dāng)前屏幕顯示內(nèi)容15二、文件與目錄命令測(cè)試:1ls命令查看當(dāng)前目錄下的文件 ls /root/; ls /. ls /root/ -a ls /root/ -l2cat命令查看文件內(nèi)容 cat /root/.bash_profile3more命令,分頁查看文件內(nèi)容 more /etc/inittab 2.3.5 改變工作目錄語法:cd namen a m e:目錄名、路徑或目錄縮寫。例如:cd 改變目錄位置至用戶登錄時(shí)的工作目

17、錄。cd dir1 改變目錄位置至d i r 1目錄下。cd user 改變目錄位置至用戶的工作目錄。cd . 改變目錄位置至當(dāng)前目錄的父目錄。cd ./user 改變目錄位置至相對(duì)路徑user 的目錄下。cd /./. 改變目錄位置至絕對(duì)路徑的目錄位置下。cd 改變目錄位置至用戶登錄時(shí)的工作目錄。2.3.6 復(fù)制文件語法: cp -r 源地址目的地址例如:cp file1 file2 將文件file1 復(fù)制成f i l e 2。cp file1 dir1 將文件file1 復(fù)制到目錄dir1 下,文件名仍為f i l e 1。cp /tmp/file1 . 將目錄/tmp 下的文件file1

18、 復(fù)制到當(dāng)前目錄下,文件名仍為f i l e 1。cp /tmp/file1 file2 將目錄/tmp 下的文件file1 復(fù)制到當(dāng)前目錄下,文件名為f i l e 2。cp -r dir1 dir2 復(fù)制整個(gè)目錄。2.3.7 移動(dòng)或更改文件、目錄名稱語法: mv 源地址目的地址例如:mv file1 file2 將文件file1更名為file2。mv file1 dir1 將文件file1移到目錄dir1 下,文件名仍為file1。mv dir1 dir2 將目錄dir1 更改為目錄dir2。2.3.8 建立新目錄語法: mkdir 目錄名例如:mkdir dir1 建立一新目錄d i r

19、 1。2.3.9 刪除目錄語法: rmdir 目錄名或rm 目錄名例如:rmdir dir1 刪除目錄dir1,但dir1 下必須沒有文件存在,否則無法刪除。rm -r dir1 刪除目錄dir1及其子目錄下所有文件。2.3.10 刪除文件語法: rm 文件名例如:rm file1 刪除文件名為file1 的文件。rm file? 刪除文件名中有五個(gè)字符且前四個(gè)字符為file 的所有文件。rm f* 刪除文件名中以f 為字首的所有文件。2.3.11 列出當(dāng)前所在的目錄位置語法: pwd2.3.12 查看文件內(nèi)容語法: cat 文件名例如:cat file1 以連續(xù)顯示方式,查看文件名file1

20、 的內(nèi)容。2.3.13 分頁查看文件內(nèi)容語法: more 文件名或cat 文件名| more例如:more file1 以分頁方式查看文件名file1 的內(nèi)容。cat file1 | more 以分頁方式查看文件名file1 的內(nèi)容。2.3.131 使用less命令瀏覽文件l e s s命令多少有點(diǎn)象m o r e命令,但是l e s s命令的功能比m o r e命令更強(qiáng)大。l e s s命令和m o r e命令一樣都是頁命令。但是它的編寫者mark nudelman,改進(jìn)了m o r e命令中的一些特色,并又添加了許多其他的特色。l e s s命令提供了許多比m o r e命令優(yōu)秀的功能:

21、可以使用光標(biāo)鍵在文本文件中前后滾屏。 可以用行號(hào)或百分比作為書簽來瀏覽文件。 可以實(shí)現(xiàn)在多個(gè)文件中進(jìn)行復(fù)雜的檢索、格式匹配、高亮度顯示等操作。 鍵盤操作與字處理程序如e m a c s兼容。 閱讀到文件結(jié)束或者標(biāo)準(zhǔn)輸入結(jié)束的時(shí)候l e s s命令不會(huì)退出。 屏幕底部的信息提示更容易控制使用,而且提供了更多的信息。 帶有許多的附件,包括一個(gè)獨(dú)立的鍵定義程序l e s s k e y,這樣就可以定義使用哪些按鍵來控制l e s s命令.2.3.14 查看目錄所占磁盤容量語法: du -s 目錄例如:du dir1 顯示目錄dir1 的總?cè)萘考捌渥幽夸浀娜萘?以kb 為單位)。du -s dir1

22、顯示目錄dir1 的總?cè)萘俊?.3.16 文件權(quán)限的設(shè)定1. 改變文件或目錄的讀、寫、執(zhí)行權(quán)限語法:chmod -r mode namen a m e :文件名或目錄名。mode: 3個(gè)8位數(shù)字或r w x的組合。r- r e a d (讀),w - w r i t e (寫),x - e x e c u t e (執(zhí)行),u - u s e r (當(dāng)前用戶),g - g r o u p(組),o - o t h e r(其他用戶)。例如:chmod 755 dir1 對(duì)于目錄d i r 1,設(shè)定成任何使用者皆有讀取及執(zhí)行的權(quán)利,但只有所有者可做修改。chmod 700 file1 對(duì)于文件f

23、 i l e 1,設(shè)定只有所有者可以讀、寫和執(zhí)行的權(quán)利。chmod u+x file2 對(duì)于文件f i l e 2,增加當(dāng)前用戶可以執(zhí)行的權(quán)利。chmod g+x file3 對(duì)于文件f i l e 3,增加工作組使用者可執(zhí)行的權(quán)利。chmod o-r file4 對(duì)于文件f i l e 4,刪除其他使用者可讀取的權(quán)利。2改變文件或目錄的所有權(quán)語法:chown -r 用戶名namen a m e:文件名或目錄名。例如:chown user file1 將文件file1 改為用戶user 所有。chown -r user dir1 將目錄d i r 1及其子目錄下面的所有文件改為用戶user 所

24、有。2.3.17 檢查自己所屬的工作組名稱語法:g r o u p s2.3.18 改變文件或目錄工作組所有權(quán)語法:chgrp -r 工作組名namen a m e:文件名或目錄名例如:chgrp vlsi file1 將文件file1 的工作組所有權(quán)改為vlsi 工作組所有。chgrp -r image dir1 將目錄d i r 1及其子目錄下面的所有文件,改為image 工作組所有。rootlocalhost qianzg# ls -l總用量 90756drwxr-xr-x 19 qianzg qianzg 4096 5月 31 21:15 basicrootlocalhost qian

25、zg# chgrp -r root basicrootlocalhost qianzg# ls -l總用量 90756drwxr-xr-x 19 qianzg root 4096 5月 31 21:15 basic2.3.19 改變文件或目錄的最后修改時(shí)間語法:touch namen a m e:文件名或目錄名。rootlocalhost root# ls net.sh -l-rwxrwxrwx 1 root root 85 5月 27 20:44 net.shrootlocalhost root# touch net.sh rootlocalhost root# ls net.sh -l-r

26、wxrwxrwx 1 root root 85 6月 15 16:13 net.sh2.3.20 文件的鏈接同一文件,可擁有一個(gè)以上的名稱,也就是把一個(gè)文件進(jìn)行鏈接。語法:ln 老文件名新文件名例如:ln file1 file2 將文件f i l e 2鏈接至文件f i l e 1。語法:ln -s 老文件名新文件名例如:ln -s file3 file4 將文件file4 鏈接至文件f i l e 3。2.3.21 文件中字符串的查尋語法:grep string file例如:grep abc file1 尋找文件f i l e 1中包含字符串a(chǎn)bc 所在行的文本內(nèi)容。2.3.22 查尋文件

27、或命令的路徑語法:whereis command 顯示命令的路徑。語法:which command 顯示命令的路徑,及使用者所定義的別名。語法:whatis command 顯示命令功能的摘要。語法:find search-path -name filename -print 搜尋指定路徑下某文件的路徑。例如:find / -name file1 -print 自根目錄下尋找文件file1 的路徑。2.3.23 比較文件或目錄的內(nèi)容語法:diff -r name1 name2name1 name2:可同時(shí)為文件名或目錄名。例如:d i ff file1 file2 比較文件file1 與fil

28、e2 內(nèi)各行的不同之處。d i ff -r dir1 dir2 比較目錄dir1 與dir2 內(nèi)各文件的不同之處。2.3.24 使用head或tail命令閱讀文件的開頭和結(jié)尾head用來顯示文件開頭x行的-n xtail用來顯示文件開尾x行的-n xqianzglocalhost s3c2410$ head -n 5 nand_read.c/* * vivi/s3c2410/nand_read.c: simple nand read functions for booting from nand * * copyright (c) 2002 mizi research, inc. *qianz

29、glocalhost s3c2410$ tail -n 5 nand_read.c /* chip disable */ nfconf |= 0x800; /* chip disable */ return 0;2.3.25 file 命令查看文件屬性qianzglocalhost 03_tty$ file tty.ctty.c: ascii c program textqianzglocalhost 03_tty$ file termterm: elf 32-bit lsb executable, arm, version 1 (arm), for gnu/linux 2.0.0, dyna

30、mically linked (uses shared libs), not stripped2.3.26 wc命令 wc命令的功能為統(tǒng)計(jì)指定文件中的字節(jié)數(shù)、字?jǐn)?shù)、行數(shù), 并將統(tǒng)計(jì)結(jié)果顯示輸出。語法:wc 選項(xiàng) 文件說明:該命令統(tǒng)計(jì)給定文件中的字節(jié)數(shù)、字?jǐn)?shù)、行數(shù)。如果沒有給出文件名,則從標(biāo)準(zhǔn)輸入讀取。wc同時(shí)也給出所有指定文件的總統(tǒng)計(jì)數(shù)。字是由空格字符區(qū)分開的最大字符串。該命令各選項(xiàng)含義如下:- c 統(tǒng)計(jì)字節(jié)數(shù)。- l 統(tǒng)計(jì)行數(shù)。- w 統(tǒng)計(jì)字?jǐn)?shù)。這些選項(xiàng)可以組合使用。 輸出列的順序和數(shù)目不受選項(xiàng)的順序和數(shù)目的影響??偸前聪率鲰樞蝻@示并且每項(xiàng)最多一列。行數(shù)、字?jǐn)?shù)、字節(jié)數(shù)、文件名 如果命令行中沒

31、有文件名,則輸出中不出現(xiàn)文件名。 例如:$ wc - lcw file1 file24 33 file17 52 file2 11 11 85 total省略任選項(xiàng)-lcw,wc命令的執(zhí)行結(jié)果與上面一樣。  三、標(biāo)準(zhǔn)輸入輸出與重定向及管道 1 標(biāo)準(zhǔn)輸入與輸出我們知道,執(zhí)行一個(gè)shell命令行時(shí)通常會(huì)自動(dòng)打開三個(gè)標(biāo)準(zhǔn)文件,即標(biāo)準(zhǔn)輸入文件(stdin),通常對(duì)應(yīng)終端的鍵盤;標(biāo)準(zhǔn)輸出文件(stdout)和標(biāo)準(zhǔn)錯(cuò)誤輸出文件(stderr),這兩個(gè)文件都對(duì)應(yīng)終端的屏幕。進(jìn)程將從標(biāo)準(zhǔn)輸入文件中得到輸入數(shù)據(jù),將正常輸出數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出文件,而將錯(cuò)誤信息送到標(biāo)準(zhǔn)錯(cuò)誤文件中。我們以cat命令為例,c

32、at命令的功能是從命令行給出的文件中讀取數(shù)據(jù),并將這些數(shù)據(jù)直接送到標(biāo)準(zhǔn)輸出。若使用如下命令:$ cat config將會(huì)把文件config的內(nèi)容依次顯示到屏幕上。但是,如果cat的命令行中沒有參數(shù),它就會(huì)從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù),并將其送到標(biāo)準(zhǔn)輸出。例如:$ cathello worldhello worldbyebye$用戶輸入的每一行都立刻被cat命令輸出到屏幕上。直接使用標(biāo)準(zhǔn)輸入/輸出文件存在以下問題:輸入數(shù)據(jù)從終端輸入時(shí),用戶費(fèi)了半天勁輸入的數(shù)據(jù)只能用一次。下次再想用這些數(shù)據(jù)時(shí)就得重新輸入。而且在終端上輸入時(shí),若輸入有誤修改起來不是很方便。輸出到終端屏幕上的信息只能看不能動(dòng)。我們無法對(duì)此輸

33、出作更多處理,如將輸出作為另一命令的輸入進(jìn)行進(jìn)一步的處理等。為了解決上述問題,linux系統(tǒng)為輸入、輸出的傳送引入了另外兩種機(jī)制,即輸入/輸出重定向和管道。 2. 輸入重定向 輸入重定向是指把命令(或可執(zhí)行程序)的標(biāo)準(zhǔn)輸入重定向到指定的文件中。也就是說,輸入可以不來自鍵盤,而來自一個(gè)指定的文件。所以說,輸入重定向主要用于改變一個(gè)命令的輸入源,特別是改變那些需要大量輸入的輸入源。例如,命令wc統(tǒng)計(jì)指定文件包含的行數(shù)、單詞數(shù)和字符數(shù)。如果僅在命令行上鍵入:$ wcwc將等待用戶告訴它統(tǒng)計(jì)什么,這時(shí)shell就好象死了一樣,從鍵盤鍵入的所有文本都出現(xiàn)在屏幕上,但并沒有什么結(jié)果,直至按下ctrl+d,

34、wc才將命令結(jié)果寫在屏幕上。如果給出一個(gè)文件名作為wc命令的參數(shù),如下例所示,wc將返回該文件所包含的行數(shù)、單詞數(shù)和字符數(shù)。$ wc /etc/passwd20 23 726 /etc/passwd$另一種把/etc/passwd文件內(nèi)容傳給wc命令的方法是重定向wc的輸入。輸入重定向的一般形式為:命令<文件名。可以用下面的命令把wc命令的輸入重定向?yàn)?etc/passwd文件:$ wc < /etc/passwd20 23 726$3. 輸出重定向 輸出重定向是指把命令(或可執(zhí)行程序)的標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤輸出重新定向到指定文件中。這樣,該命令的輸出就不顯示在屏幕上,而是寫入到指定

35、文件中。輸出重定向比輸入重定向更常用,很多情況下都可以使用這種功能。例如,如果某個(gè)命令的輸出很多,在屏幕上不能完全顯示,那么將輸出重定向到一個(gè)文件中,然后再用文本編輯器打開這個(gè)文件,就可以查看輸出信息;如果想保存一個(gè)命令的輸出,也可以使用這種方法。還有,輸出重定向可以用于把一個(gè)命令的輸出當(dāng)作另一個(gè)命令的輸入(還有一種更簡單的方法,就是使用管道,將在下面介紹)。 bbs.bitscn.com國內(nèi)最早的網(wǎng)管論壇 輸出重定向的一般形式為:命令>文件名。例如:$ ls > directory.out$ cat directory.outch1.doc ch2.doc ch3.doc chi

36、mp config mail/ test/$如果要將一條命令的輸出結(jié)果追加到指定文件的后面,可以使用追加重定向操作符>>。形式為:命令>>文件名。例如:$ ls *.doc>>directory.out$ cat directory.outch1.doc ch2.doc ch3.doc chimp config mail/ test/ch1.doc ch2.doc ch3.doc$和程序的標(biāo)準(zhǔn)輸出重定向一樣,程序的錯(cuò)誤輸出也可以重新定向。使用符號(hào)2>(或追加符號(hào)2>>)表示對(duì)錯(cuò)誤輸出設(shè)備重定向。例如下面的命令: bitscn.com中國網(wǎng)管

37、聯(lián)盟 $ ls /usr/tmp 2> err.file可在屏幕上看到程序的正常輸出結(jié)果,但又將程序的任何錯(cuò)誤信息送到文件err.file中,以備將來檢查用。還可以使用另一個(gè)輸出重定向操作符(&>)將標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出同時(shí)送到同一文件中。例如:$ ls /usr/tmp &> output.file利用重定向?qū)⒚罱M合在一起,可實(shí)現(xiàn)系統(tǒng)單個(gè)命令不能提供的新功能。例如使用下面的命令序列:$ ls /usr/bin > /tmp/dir$ wc w < /tmp/dir459統(tǒng)計(jì)了/usr/bin目錄下的文件個(gè)數(shù)。4. 管 道將一個(gè)程序或命令的輸出作為

38、另一個(gè)程序或命令的輸入,有兩種方法,一種是通過一個(gè)臨時(shí)文件將兩個(gè)命令或程序結(jié)合在一起,例如上個(gè)例子中的/tmp/dir文件將ls和wc命令聯(lián)在一起;另一種是linux所提供的管道功能。這種方法比前一種方法更好。 管道可以把一系列命令連接起來,這意味著第一個(gè)命令的輸出會(huì)作為第二個(gè)命令的輸入通過管道傳給第二個(gè)命令,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸入,以此類推。顯示在屏幕上的是管道行中最后一個(gè)命令的輸出(如果命令行中未使用輸出重定向)。通過使用管道符“|”來建立一個(gè)管道行。用管道重寫上面的例子:$ ls /usr/bin|wc -w1789再如:$ cat sample.txt|grep &q

39、uot;high"|wc -l管道將cat命令(列出一個(gè)文件的內(nèi)容)的輸出送給grep命令。grep命令在輸入里查找單詞high,grep命令的輸出則是所有包含單詞high的行,這個(gè)輸出又被送給wc命令,wc命令統(tǒng)計(jì)出輸入中的行數(shù)。假設(shè)sample.txt文件的內(nèi)容如下:things to do today:low:go grocery shoppinghigh:return moviehigh:clear level 3 in alien vs. predatormedium:pick up clothes from dry cleaner那么該管道行的結(jié)果是2。tee命令功能說明

40、:讀取標(biāo)準(zhǔn)輸入的數(shù)據(jù),并將其內(nèi)容輸出成文件。 語  法:tee -ai-help-version文件 補(bǔ)充說明:tee指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù),將其內(nèi)容輸出到標(biāo)準(zhǔn)輸出設(shè)備,同時(shí)保存成文件。我們可利用tee把管道導(dǎo)入的數(shù)據(jù)存成文件,甚至一次保存數(shù)份文件。 參  數(shù):-a 附加到既有文件的后面,而非覆蓋它。如果給予tee指令的文件名稱已經(jīng)存在,預(yù)設(shè)會(huì)覆蓋該文件的內(nèi)容。加上此參數(shù)后,數(shù)據(jù)會(huì)新增在該文件內(nèi)容的最后面,而不會(huì)刪除原先之內(nèi)容。 -i 忽略中斷信號(hào) -help 在線幫助 -version 顯示版本信

41、息 范  例: 列出文本文件slayers.story的內(nèi)容,同時(shí)復(fù)制3份副本,文件名稱分別為ss-copy1、ss-copy2、ss-copy3: $ cat slayers.story |tee ss-copy1 ss-copy2 ss-copy3四、linux幫助系統(tǒng)1help命令 ls -helpusage: ls option. file.list information about the files (the current directory by default).sort entries alp

42、habetically if none of -cftusux nor -sort. mandatory arguments to long options are mandatory for short options too. -a, -all do not hide entries starting with . -a, -almost-all do not list implied . and . -author print the author of each file -b, -escape print octal escapes for nongraphic characters

43、 -block-size=size use size-byte blocks -b, -ignore-backups do not list implied entries ending with -c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort by ctime2 man 命令man ls ls(1) user commands ls(1) name l

44、s - list directory contents synopsis ls option. file. description list information about the files (the current directory by default). sort entries alphabetically if none of -cftusux nor -sort. mandatory arguments to long options are mandatory for short options too. -a, -all do not hide entries star

45、ting with . -a, -almost-all do not list implied . and . -author print the author of each file -b, -escape print octal escapes for nongraphic characters -block-size=size use size-byte blocks五、linux下的網(wǎng)絡(luò)服務(wù)qianzglocalhost 01_hello$ cat /etc/resolv.conf nameserver 0search localdomainqianzgloca

46、lhost 01_hello$ cat /etc/hosts# do not remove the following line, or various programs# that require network functionality will fail. localhost.localdomain localhostqianzglocalhost 01_hello$ cat /etc/sysconfig/networknetworking=yeshostname=localhost.localdomainless /etc/rc.d/rc3.d/s10network

47、#! /bin/bash# network bring up/down networking# chkconfig: 2345 10 90# description: activates/deactivates all network interfaces configured to # start at boot time.# begin init info# provides: $network# end init info # source function library. /etc/init.d/functions if ! -f /etc/sysconfig/network ; t

48、hen exit 0fi . /etc/sysconfig/network使用ifconfig 命令 :如ifconfig eth0 netmask uproute 添加網(wǎng)關(guān)route add default gw 54 dev eth0 netstat 查看網(wǎng)絡(luò)狀態(tài)qianzglocalhost 01_hello$ netstat -arkernel ip routing tabledestination gateway genmask flags mss window irtt iface55 54 55 ugh 0 0 0 eth0 * u 0 0 0 eth0 * u 0 0 0 eth0default 54 ug 0 0 0 eth0inetd守護(hù)進(jìn)程監(jiān)聽所有的端口,如果某端口上有請(qǐng)求到達(dá),就啟動(dòng)相應(yīng)服務(wù)器進(jìn)行處理,完成后退出此服務(wù)器/mnt/yaffscat /etc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論