![]() ![]() 實(shí)驗(yàn)一 UNIX/LINUX使用環(huán)境及vi編輯器
[實(shí)驗(yàn)?zāi)康腯 1、了解UNIX/LINUX的命令及使用格式。 2、復(fù)習(xí)C語言程序基本知識(shí)練習(xí)并掌握UNIX提供的vi編輯器來編譯C程序 3、學(xué)會(huì)利用gcc、gdb編譯、調(diào)試C程序 [實(shí)驗(yàn)學(xué)時(shí)] 2學(xué)時(shí) [實(shí)驗(yàn)類型] 驗(yàn)證性 [實(shí)驗(yàn)內(nèi)容] 1、通過WINDOWS系統(tǒng)中的遠(yuǎn)程登錄程序telnet.exe 登錄UNIX/LINUX。 2、熟悉UNIX/LINUX的常用基本命令如ls、mkdir、cd、rm、cat、gcc、./等。 3、用vi編寫一個(gè)簡(jiǎn)單的、顯示"Hello,World!"的C程序,用gcc編譯并觀察編譯后的結(jié)果。利用gdb調(diào)試該程序.運(yùn)行生成的可執(zhí)行文件。
[實(shí)驗(yàn)步驟] 一、UNIX的登錄與退出 1、登錄 在DOS環(huán)境下用MS提供的telnet程序(也可使用WINDOWS 自帶的telnet圖形界面程序或多功能的S-Term終端程序),可使PC作為終端(terminal)登錄(login)UNIX服務(wù)器(UNIX Server)。
(1)執(zhí)行格式: telnet hostname(主機(jī)名) 或 telnet 主機(jī)的IP地址 例: telnet www.yahoo.com telnet 140.122.77.120 (2)步驟 login: (輸入username) password: (輸入密碼) 2、退出 在UNIX系統(tǒng)提示符$下,輸入logout、exit或shutdown 。 例:$ logout 二、UNIX命令格式 命令 [選項(xiàng)] [處理對(duì)象] 例:ls -la mydir 注意:(1)命令一般是小寫字串。注意大小寫有別 (2)選項(xiàng)通常以減號(hào)(-)再加上一個(gè)或數(shù)個(gè)字符表示,用來選擇一個(gè)命令的不同操作 (3)同一行可有數(shù)個(gè)命令,命令間應(yīng)以分號(hào)隔開 (4)命令后加上&可使該命令后臺(tái)(background)執(zhí)行 三、UNIX常用命令 1、目錄操作 和DOS相似,UNIX采用樹型目錄管理結(jié)構(gòu),由根目錄(/)開始一層層將子目錄建下去,各子目錄以 / 隔開。用戶login后,工作目錄的位置稱為 home directory,由系統(tǒng)管理員設(shè)定。'~’符號(hào)代表自己的home directory,例如 ~/myfile 是指自己home目錄下myfile這個(gè)文件。 UNIX的通配符有三種:’*’ 和 ’?’ 用法與DOS相同, '-' 代表區(qū)間內(nèi)的任一字符,如test[0-5]即代表test0,test1,……,test5的集合。 (1)顯示目錄文件 ls 執(zhí)行格式: ls [-atFlgR] [name] (name可為文件或目錄名稱) 例: ls 顯示出當(dāng)前目錄下的文件 ls -a 顯示出包含隱藏文件的所有文件 ls -t 按照文件最后修改時(shí)間顯示文件 ls -F 顯示出當(dāng)前目錄下的文件及其類型 ls -l 顯示目錄下所有文件的許可權(quán)、擁有者、文件大小、修改時(shí)間及名稱 ls -lg 同上 ls -R 顯示出該目錄及其子目錄下的文件 注:ls與其它命令搭配使用可以生出很多技巧(最簡(jiǎn)單的如"ls -l | more"),更多用法請(qǐng)輸入ls --help查看,其它命令的更多用法請(qǐng)輸入 命令名 --help 查看.
(2)建新目錄 mkdir 執(zhí)行格式: mkdir directory-name 例: mkdir dir1 (新建一名為dir1的目錄) (3)刪除目錄 rmdir 執(zhí)行格式: rmdir directory-name 或 rm directory-name 例:rmdir dir1 刪除目錄dir1,但它必須是空目錄,否則無法刪除 rm -r dir1 刪除目錄dir1及其下所有文件及子目錄 rm -rf dir1 不管是否空目錄,統(tǒng)統(tǒng)刪除,而且不給出提示,使用時(shí)要小心
(4) 改變工作目錄位置 cd 執(zhí)行格式: cd [name] 例: cd 改變目錄位置至用戶login時(shí)的working directory cd dir1 改變目錄位置,至dir1目錄 cd ~user 改變目錄位置,至用戶的working directory cd .. 改變目錄位置,至當(dāng)前目錄的上層目錄 cd ../user 改變目錄位置,至上一級(jí)目錄下的user目錄 cd /dir-name1/dir-name2 改變目錄位置,至絕對(duì)路徑(Full path) cd - 回到進(jìn)入當(dāng)前目錄前的上一個(gè)目錄
(5)顯示當(dāng)前所在目錄pwd 執(zhí)行格式: pwd (6)查看目錄大小du 執(zhí)行格式: du [-s] directory 例: du dir1 顯示目錄dir1及其子目錄容量(以kb為單位) du -s dir1 顯示目錄dir1的總?cè)萘?/span> 2、文件操作 (1)查看文件(可以是二進(jìn)制的)內(nèi)容 cat 執(zhí)行格式:cat filename或more filename 或cat filename|more 例: cat file1 以連續(xù)顯示方式,查看文件file1的內(nèi)容 more file1 或 cat file1|more 以分頁方式查看文件的內(nèi)容 (2)刪除文件 rm 執(zhí)行格式: rm filename 例: rm file? rm f* (3)復(fù)制文件 cp 執(zhí)行格式: cp [-r] source destination 例: cp file1 file2 將file1復(fù)制成file2 cp file1 dir1 將file1復(fù)制到目錄dir1 cp /tmp/file1 將file1復(fù)制到當(dāng)前目錄 cp /tmp/file1 file2 將file1 復(fù)制到當(dāng)前目錄名為file2 cp –r dir1 dir2 (recursive copy)復(fù)制整個(gè)目錄。 四、文件編輯器vi vi是在UNIX 上被廣泛使用的中英文編輯軟件。vi是visual editor的縮寫,是UNIX提供給用戶的一個(gè)窗口化編輯環(huán)境。 進(jìn)入vi,直接執(zhí)行vi編輯程序即可。 例:$vi test.c 顯示器出現(xiàn)vi的編輯窗口,同時(shí)vi會(huì)將文件復(fù)制一份至緩沖區(qū)(buffer)。vi先對(duì)緩沖區(qū)的文件進(jìn)行編輯,保留在磁盤中的文件則不變。編輯完成后,使用者可決定是否要取代原來舊有的文件。 1、vi的工作模式 vi提供二種工作模式:輸入模式(insert mode)和命令模式(command mode)。使用者進(jìn)入vi后,即處在命令模式下,此刻鍵入的任何字符皆被視為命令,可進(jìn)行刪除、修改、存盤等操作。要輸入信息,應(yīng)轉(zhuǎn)換到輸入模式。 (1)命令模式 在輸入模式下,按ESC可切換到命令模式。命令模式下,可選用下列指令離開vi:
(2)命令模式下光標(biāo)的移動(dòng)
(3)輸入模式 輸入以下命令即可進(jìn)入vi輸入模式:
五、GCC編譯器 LINUX 上的GC C編譯器是一個(gè)全功能的ANCI C兼容編譯器,下面介紹一些GCC編譯器最常用的選項(xiàng)。 1、使用GCC 通常后跟一些選項(xiàng)和文件名來使用GCC編譯器。GCC命令的基本用法如下: gcc [options] [filenames] 命令行選項(xiàng)指定的編譯過程中的具體操作 2、GCC常用選項(xiàng) GCC有超過100個(gè)的編譯選項(xiàng)可用,這些選項(xiàng)中的許多可能永遠(yuǎn)都不會(huì)用到,但一些主要的選項(xiàng)將會(huì)頻繁使用。很多的GCC選項(xiàng)包括一個(gè)以上的字符,因此必須為每個(gè)選項(xiàng)指定各自的連字符,并且就像大多數(shù)LINUX 命令一樣不能在一個(gè)單獨(dú)的連字符后跟一組選項(xiàng)。例如,下面的命令是不同的: gcc -p-g test.c gcc -pg test.c 第一條命令告訴GCC編譯test.c時(shí)為prof命令建立剖析(profile)信息并且把調(diào)試信息加入到可執(zhí)行文件里。第二條命令告訴GCC只為gprof命令建立剖析信息。 當(dāng)不用任何選項(xiàng)編譯一個(gè)程序時(shí),GCC將建立(假定編譯成功)一個(gè)名為a.out的可執(zhí)行文件。例如, gcc test.c 編譯成功后,當(dāng)前目錄下就產(chǎn)生了一個(gè)a.out文件。 也可用-o選項(xiàng)來為即將產(chǎn)生的可執(zhí)行文件指定一個(gè)文件名來代替a.out。例如: gcc –o count count.c 此時(shí)得到的可執(zhí)行文件就不再是a.out,而是count。 GCC也可以指定編譯器處理步驟多少。-c選項(xiàng)告訴GCC僅把源代碼編譯為目標(biāo)代碼而跳過匯編和連接步驟。這個(gè)選項(xiàng)使用得非常頻繁因?yàn)樗幾g多個(gè)C程序時(shí)速度更快且更易于管理。默認(rèn)時(shí)GCC建立的目標(biāo)代碼文件有一個(gè).o的擴(kuò)展名。 3、執(zhí)行文件 格式: ./可執(zhí)行文件名 例:./a.out ./count 六、參考程序 main( ) { printf("Hello,world!\n"); } [實(shí)驗(yàn)報(bào)告要求] 1.調(diào)試說明。包括:調(diào)試情況,如上機(jī)時(shí)遇到問題及解決辦法,觀察到的現(xiàn)象及其分析,對(duì)程序設(shè)計(jì)技巧的總結(jié)及分析等;程序的輸出結(jié)果及對(duì)結(jié)果的分析;實(shí)驗(yàn)的心得體會(huì),以及調(diào)試日期等需要記錄的信息。
|
|