循序漸進(jìn)學(xué)習(xí)LINUX之LINUX編程
一、文本編輯
LINUX系統(tǒng)標(biāo)準(zhǔn)的文本編輯程序是vi,它提供了編寫命令、程序的環(huán)境??梢?,vi與編程息息相關(guān),因此很有必要在此次先介紹vi的運(yùn)用。
vi有命令及文本輸入模式,通過按 來切換。
(1)在命令模式下:
i--在光標(biāo)前添加文本,與按 相同;
a--在光標(biāo)后添加文本;
r--替換文本,與按兩次 相同;
x--刪除光標(biāo)處初的字符;
:u--取消最后一次操作;
:wq/:x/:ZZ--保存文本退出;
:q!--防棄修改退出;
:w--將緩沖區(qū)寫入文件;
:w filename--將緩沖區(qū)寫入filename(相當(dāng)于另存為:filename);
:w!Filename2--強(qiáng)迫vi重寫名為filename2的文件;j--移動(dòng)光標(biāo)到下一行當(dāng)前位置,與k相反;
h--將光標(biāo)左移至下一字符,與l相反;
dd--刪除一行, dd刪除n行;
dw--刪除一個(gè)詞, dw刪除n個(gè)詞;
o--在當(dāng)前行下添加一行,與O相反;^--行首;$--行尾;:%d--全部刪除文件內(nèi)容;
/string:--在緩沖區(qū)向前查找字符串string,與?String相反。按 表示繼續(xù)查找下一個(gè);
set number--顯示行號(hào),便于查找錯(cuò)誤;
(二)在文本輸入模式下,主要進(jìn)行文本的輸入。 +x可刪除光標(biāo)前的一個(gè)字符;還可以通過鼠標(biāo)進(jìn)行快捷的拷貝。
LINUX的文本編輯環(huán)境還有emacs、ex等,與vi相似。
二、SHELL編程
bash shell有一組可以從鍵盤使用的強(qiáng)有力的交互功能:輸入/輸出重定向,作業(yè)控制,歷史命令表以及命令行編輯。另外,shell還提供完整的程序語(yǔ)言節(jié)是程序及讀取和執(zhí)行用戶自己編寫的shell的手段。這些shell程序成為shell script。編寫shell程序,能配置自己的登錄環(huán)境,進(jìn)行交互輸入,編輯和別名shell命令,控制流程等。
由于筆者對(duì)LINUX操作系統(tǒng)的學(xué)習(xí)還不夠,所以暫時(shí)不能進(jìn)行深層次的編程,只是了解SHELL的語(yǔ)法結(jié)構(gòu):if命令,test命令,while命令,for循環(huán),until命令,case選擇。況且,筆者的學(xué)習(xí)目的并不在于此,因而沒有花太多的時(shí)間,而是應(yīng)能熟練的運(yùn)用SHELL命令。
三、高級(jí)語(yǔ)言編程在LINUX上編寫以上程序用到glibc/c++,jdk。步驟如下:
1 # vi xxx.c(/cpp/.java)進(jìn)入vi編輯界面進(jìn)行編輯。
2 編譯過程
(1)對(duì)于C程序:
# cc -o exe-filename(可執(zhí)行文件名)xxx.c
# ./exe-filename
(2)對(duì)于C++程序:
# c++ -o exe-filename xxx.cpp
# ./exe-filename
(3)對(duì)于JAVA程序:
# javac xxx.java
# java xxx
可以用gdb來調(diào)試程序:gdb exe-filename。其命令通過help來查看。
此外,進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),使用C語(yǔ)言并調(diào)用內(nèi)部函數(shù),例如用fork創(chuàng)建進(jìn)程等。