Unix系統編程概述
1.系統編程的程序模型
用戶輸入數據,計算機中的程序(可運行的一段代碼)對數據進行相應的處理,再在顯示器上輸出結果。
許多鍵盤或顯示器受到一種機制的管理連接到不同的程序。
2操作系統的職責
計算機用操作系統管理所有資源,將不同設備和程序連接起來。操作系統其實是一個特殊
的程序。
操作系統又稱為內核。
3系統資源
處理器:程序有指令構成,處理器是執行指令的硬件設備。
輸入輸出(I/O):程序中的、終端的、硬盤輸入輸出數據,都流經內核。
進程管理:內核中與進程相關的服務有新建一個進程、終止進程、進程調度。
內存:內存空間是用來存放程序和數據。所有程序必須在內存中運行。系統空間是用來容納操作系統的內存空間,容納應用程序的內存空間是用戶空間。
設備:磁帶機,光驅、鼠標、掃描儀和數碼攝像機
計時器:程序工作與時間有關。比如定時觸發
進程間通信:計算機中不同的進程也要相互通信。
網絡:網絡使得不同主機上的進程互相通信
4使用Unix
下列均是Ubuntu系統下的操作
(1)運行顯示時間和日期的程序如下
在Ubuntu系統中,運行如下圖,Ubuntu中沒有自帶fortune這個程序,我們按enter鍵後會提示我們如何輸入指令進行安裝,然後只要輸入密碼即可進行安裝。
5目錄操作
(1)查看目錄結構
因為我們用戶的主目錄一般在/home目錄中,所以輸入tree只能顯示/home下的目錄樹
輸入tree -L 1 / 是查看/下的第一層目錄
輸入tree -Ld 1 / 只顯示目錄
(2)ls 列出目錄內容
如:輸入ls /etc 會列出/etc目錄裏面所包含的文件和子目錄
輸入ls /會列出根目錄的內容
(3)cd 改變當前目錄
當前目錄為自己的主目錄,可以通過cd命令轉到其他目錄
如 cd /bin我們可以看到$ 前面已經有變化了
輸入 cd .. 我們可以將目錄轉為上一層目錄,即為根目錄,可見$前面有變化
無論當前目錄是什麽,我們都可以通過cd 這一命令回到用戶的主目錄,見上圖
(4)mkdir和rmdir
先用cd 回到主目錄
輸入mkdir jokes 這裏mkdir是新建目錄,jokes 是目錄名
輸入rmdir jokes 這裏rmdir 是刪除目錄的命令,但是刪除目錄時,目錄中的文件和子目錄要先被刪除或移走
6文件操作
(2)cat,more,less,pg---查看文件的內容
區別:
cat可以一下子列出文件的所有內容
當文件的內容比較多,在一屏內顯示不完時,more會更加合適:
顯示一屏後會暫停輸出,這時用戶按空格鍵,more會繼續輸出下一屏。
按enter鍵會顯示下一行,輸入“q”則退出
(3)cp 文件復制
如$ cp language hello world
將文件language復制一份,新的文件名為hello world
rm 文件刪除
如$ rm language hello world
一次刪掉兩個文件language和hello world
(4)通過ls -l 命令可以看到文件的所有者和許可權限
三個權限r:read w:write x:execute
7 Unix的計算器
輸入bc 啟動計算器
可以進行上述運算,該計算器可以處理很大的整數
8動手實踐
more的三種用法
$ more filename
$ command | more
$ more < filename
第一種情況,more顯示文件filename的內容;第二種情況,more將command命令的輸出分頁顯示;第三種情況,more從標準輸入獲取要分頁顯示的內容,這時more的標準輸入被重定向到文件filename。
可見這個程序中在顯示24行後會出現白底的more?
後面仍然顯示代碼
在列出/bin目錄下的文件時,仍是這種情況
改進more02
按enter鍵後
Unix系統的主要結構:內存被分為系統空間和用戶空間,內核和它的數據結構位於系統空間,用戶程序位於用戶空間,用戶通過終端連接到系統,文件存放在磁盤上各種各樣的設備都會被內核直接管理,用戶程序可以通過內核來訪問設備,最後還有網絡連接,用戶可以通過網絡接入系統。
Unix系統編程概述