版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《計算機操作系統(tǒng)》實驗指導書2
一、實驗第01講Windows系統(tǒng)管理與訪問Linux系統(tǒng)2
1、實驗1Windows2000系統(tǒng)管理(必做)2
2、實驗2Windows2000進程編程(必做)3
3、實驗3linux系統(tǒng)訪問泌做)4
二、實驗第02講Windows進程管理與管理Linux系統(tǒng)進程及Linux重定向和管
道7
1、實驗1Windows任務管理器的進程管理(必做)7
2、實驗2Windows2000進程編程(必做)8
3、實驗3管理Linux系統(tǒng)進程(必做)10
4、實驗4Linux重定向和管道(必做)11
三、實驗第03講Linux文件信息命令、基本文件管理與文件權限12
1、實驗1Linux文件信息命令和基本文件管理(必做)12
2、實驗2Linux文件權限(必做)13
四、實驗第04講Windows進程與線程編程15
1、實驗1Windows2000進程的“一生”(必做)15
2、實驗2Windows2000線程同步(必做選做)19
3、實驗3Windows2000線程間的通訊(選做)23
五、實驗第05講Linux并發(fā)程序設計及Linux用戶程序的內存管理28
1、實驗1Linux并發(fā)程序設計(必做)28
2、實驗2Linux用戶程序的內存管理(必做)30
六、實驗第06講Windows存儲管理32
1、實驗1提高Windows2000的內存性能(必做)32
2、實驗2Windows2000內存結構(必做)35
3、實驗3Windows2000虛擬內存(必做)36
七、實驗第07講Linux聲音設備編程40
1、實驗1Linux聲音設備編程(必做)40
《計算機操作系統(tǒng)》實驗指導書
課程編號:10302340實驗學時:8學時
先修課程:《計算機組成原理》、《高級語言程序設計》、《數據結構》
—、實驗第01講Windows系統(tǒng)管理與訪問Linux系統(tǒng)
1、實驗1Windows2000系統(tǒng)管理(必做)
1、實驗學時與難度
?實驗估計時間:60分鐘,難度系數:3。
2、背景知識簡介
-Windows2000Professional的“管理工具”中集成了許多系統(tǒng)管理工具,利用這
些工具,管理員可以方便地實現各種系統(tǒng)維護和管理功能
'這些工具集中在“控制面板”的“管理工具”選項下,用戶和管理員可以很容易地
對它們操作和使用
■默認情況下,只有一些常用工具隨Windows200。系統(tǒng)的安裝而安裝
?服務:啟動和停止由Windows系統(tǒng)提供的各項服務
?計算機管理器:管理磁盤以及使用其他系統(tǒng)工具來管理本地或遠程計算機
?事件查看器:顯示來自于Window和其他程序的監(jiān)視與排錯信息
?數據源(ODBC):添加、刪除以及配置ODBC數據源和驅動程序
?性能:顯示系統(tǒng)性能圖衣以及配置數據日志和警報
?組件服務:配置并管理C0M+應用程序
-另一些工具則隨系統(tǒng)服務的安裝而添加到系統(tǒng)中,例如:
?Telnet服務器管理:查看以及修改Telnet服務器設置和連接
?Internet服務管理器:管理HS、Internet和IntranetWeb站點的W2b服
務器
?本地安全策略:查看和修改本地安全策略,諸如用戶權限和審計策略
3、實驗目的和要求
■了解和學習Windows系統(tǒng)管理工具及其使用
?熟悉Windows系統(tǒng)工具的內容和應用
■進一步熟悉Windows操作系統(tǒng)的應用環(huán)境
4、實驗環(huán)境
■需要準備一臺運行Windows2000Professional操作系統(tǒng)的計算機
5、實驗內容與步驟
■為了幫助用戶管理和監(jiān)視系統(tǒng),Windows2000提供了多種系統(tǒng)管理工具,其中最主
要的有
?計算機管理
?事件查看器
?性能監(jiān)視
?服務
?數據源(ODBC)
?管理工具組中,有哪些系統(tǒng)管理工具,基本功能是什么?
'對“系統(tǒng)工具”、“存儲”、“服務和應用程序”等進行實驗記錄
實驗記錄
名稱類型描述
2、實驗2Windows2000進程編程(必做)
1、實驗學時與難度
■實驗估計時間:30分鐘,難度系數:3。
2、背景知識簡介
■Windows2000可以識別的應用程序包括控制臺應用程序、GUI應用程序和服務應用
程序
■控制臺應用程序匕以創(chuàng)建GUI:GUI應用程序可以作為服務來運行;服務也可以向標
準的輸出流寫入數據一一不同類型應用程序間的惟一重要區(qū)別是其啟動方法
■Windows2000是以NT的技術構建的,它提供了創(chuàng)建控制臺應用程序的能力,使用
戶可以利用標準的C++工具,如iostream庫中的cout和cin對象,來創(chuàng)建小型應
用程序。當系統(tǒng)運仃時,Windows2000的服務道常要向系統(tǒng)用尸提供所需功能
■服務應用程序類型需要ServiceMailO函數,由服務控制管理器(SCM)加以調用。
SCM是操作系統(tǒng)的集成部分,負責響應系統(tǒng)啟動以開始服務、指導用戶控制或從另
一個服務中來的請求。其本身負責使應用程序的行為像一個服務。通常,服務登錄
到特殊的LocalSystem賬號下,此賬號具有與開發(fā)人員創(chuàng)建的服務不同的權限
'當令C++編譯器創(chuàng)建可執(zhí)行程序時,編譯器將源代碼編譯成OBJ文件,然后將其與
標準庫相鏈接。產生的EXE文件是裝載器指令、機器指令和應用程序的數據的集合。
裝載器指令告訴系統(tǒng)從哪里裝載機器代碼。另一個裝載器指令告訴系統(tǒng)從哪里開始
執(zhí)行進程的主線程。在進行某些設置后,進入開發(fā)者提供的mainO>Service亞in()
或WinMainO函數的低級入口點。機器代碼中包括有控制邏輯,它所做的事包括跳
轉到WindowsAPI函數,進行計算或向磁盤寫入數據等
'Windows允許開發(fā)人員將大型應用程序分為較小的、互相有關系的服務模塊,即動
態(tài)鏈接庫(DLL)代碼塊,在其中包含應用程序所使用的機器代碼和應用程序的數據
3、實驗目的和要求
■通過對Windows200()進程編程
?進一步熟悉操作系統(tǒng)的基本概念
?進一步熟悉進程的概念
?初步理解Windows2(X)0進程的編程
4、實驗環(huán)境
■需要做以下準備
?一臺運行Windows2(X)0Professional操作系統(tǒng)的計算機
?計算機中需安裝VisualC++6.0專業(yè)版或企業(yè)版
5、實驗內容與步驟
■列出當前運行進程的優(yōu)先級(具體內容見源程序)
6、源程序
//prochandle項目
#include<windows.h>
#include<iostream>
//確定自己的優(yōu)先權的喻單應用程序
voidmain()
(
//從當前過程中提雙句柄
HANDLEhProccssThis=::GctCurrcntProcess():
//請求內核提供該過程所屬的優(yōu)先權類
DWORDdwPriority=::GetPriorityClass(hProcessThis);
//發(fā)出消息,“為用戶描述該類
std::cout?."currentprocesspriority/';
switch(dwPriority)
(
caseHIGH_PRIORITY_CLASS:
std::cout?*High*;
break;
caseNORMAkPRIORITY_CLASS:
std::cout<<"Normal";
break;
caseIDLE_PRIORITY_CLASS:
std::cout?*ldle,x;
break;
caseREALTIME_PRIORTTY_C1.ASS:
std::cout?”Realtime";
break;
default:
std::cout?*<unknow>*;
break;
)
std::cout?std::endl;
)
7、進階
■更改當前運行進程的優(yōu)先級。
3、實驗3linux系統(tǒng)訪問(必做)
1、實驗學時與難度
?實驗估計時間:90分鐘,難度系數:4。
2、背景知識簡介
?Linux是■個與DOS或Windows完全不同的操作環(huán)境,具有它自己獨特的風格
-登錄Linux和使用GNOME
?首先回顧Linux登錄ID和II令的要求,使用標準圖形用戶界面GNOME練習
登錄Linux系統(tǒng),并修改登錄口令
?接著,學習使用GNOME。GNOME是優(yōu)秀的Linux桌面平臺,也是目前Linux
各版本中使用的對國際化支持最好的桌面平臺。使用GNOME需要熟悉面板,
練習使用鼠標和鍵盤管理視窗;還需要練習工作空間的切換和使用工作空間
菜單
?然后通過Linux系統(tǒng)的Shell、Linux文件、目錄和權限等諸方面來掌握Linux
系統(tǒng)管理的有關知識
?最后,退出(或者注銷)并返回Linux登錄界面
■Linux系統(tǒng)的Shell
?使用Linux系統(tǒng)時,用戶多數時間是通過Shell與系統(tǒng)進行對話的。Shell
是一個接收用戶輸入命令并將其轉換成指令的程序,它是用戶與Linux系統(tǒng)
之間的界面之一
?Linux系統(tǒng)中可以使用的Shell包括:
■bash:BourneAgainShello這是Linux系統(tǒng)上最常用的Shell,它
合乎POS1X(PortableOperatingSystemInterface)標準且相容
于BourneShell,是GNU工程[自由軟件基金會)的產物,并且提
供了編輯命令行的功能
■esh:CShello由Berkeley(伯克利大學)開發(fā),與BourneShell
在交互式使用上很多是相兼容的,但在程序設計界面上卻有很大的
不同。它不提供編輯命令行的功能,但它有類似的功能叫命令歷史
記錄
■ksh:KornShell。在UNIX系統(tǒng)下得到普遍使用,并最早將現代Shell
技術(包括取自CShell的部分)引入BourneShell,提供了編輯
命令行功能
■sh:BourneShell?是原始的Shell,不提供編輯命令行功能
■tesh:CShell的加強版,提供了編輯命令行的功能
■zsh:ZShello最新的Shell,與BourneShell兼容,提供編輯命
令行的功能
?Linux系統(tǒng)的文件、目錄和權限
?Linux的文件名與DOS有許多相似之處也有其自身的特點
?Linux文件名沒有標準格式。通常文件名中可以包含任何字符(“/”字符
除外,”字符不能作為文件名的第一個字符),文件名的長度限制在256
個字符以內。Linux的文件名也提供了功能強大且精確的通配符
?文件的權限是Linux系統(tǒng)安全的核心部分,包括
?Read(可讀)權限:表示可以讀取文件內的數據
?Write(可寫)權限:表示可以改變或刪除該文件
?Execute(可執(zhí)行)權限:表示可以把該文件當成程序執(zhí)行
-除文件權限之外,Linux系統(tǒng)上還有目錄和很多其他類型的文件,其中包括
特殊文件(設備)、Socket和符號連接等等(平時我們經常使用的Windows
設備如軟驅、光驅等在Linux中也是一種特殊的文件)
?擁有root口令的用戶稱為超級用戶,超級用戶有權訪問整個系統(tǒng),包括建
立普通用戶帳號、修改密碼、安裝與卸載軟件等一切權限。超級用戶的提示
符為“#",普通用戶提示符為“$”
?幾個用戶在一個系統(tǒng)下共用一個帳號,其個人文件的安全就得不到保障。建
立普通用戶帳號后,系統(tǒng)能保證用戶是唯一能夠存取其個人文件的人。另一
方面,即使沒有與人共享一個系統(tǒng),建立普通用戶帳號也是必要的。因為如
果總是以超級用戶登錄進行操作(超級用戶的權限是整個系統(tǒng)),一旦出現
誤操作(如:破壞或移動、刪除一個重要的系統(tǒng)文件)處理起來也很棘手
■Linux文件系統(tǒng)
?Linux的文件系統(tǒng)是文件和FI錄層次的集合。了解Linux文件系統(tǒng)的結構有
助于更好地理解和使用Linuxo在Linux文件系統(tǒng)根目錄下,有如下子目錄:
bin-,dev,etc、home-install、lib、nnl、proc、roottmp、user,var
(不同版本,目錄會略有不同)
■/bin目錄該目錄中存放許多基本的系統(tǒng)程序。
■/cev目錄該目錄中存放的文件是設備驅動程序,用來訪問系統(tǒng)設
備和資源,如磁盤設備、調制解調器、內存等
3、實驗目的和要求
■登錄Linux和熟悉GNOME
?通過登錄Linux操作理解以下內容
■Linux登錄ID的要求
■在GMOME環(huán)境下登錄進入Linux系統(tǒng)
■修改口令
■正確退出或者注銷Linux系統(tǒng)
?通過以下操作熟悉GNOME界面
■回顧GNOME面板圖標和菜單
■管理GNOME視窗
■使用LinuxShell
?了解用戶Linux環(huán)境所使用的Shell
?更改用戶系統(tǒng)的Shell
,初步了解bash
■熟悉Linux的文件和目錄
?掌握Linux文件名通配符的使用
?了解Linux系統(tǒng)目錄的特點
■了解Linux文件系統(tǒng)
?Linux文件系統(tǒng)根目錄的子目錄
?/bin目錄中的文件
?/dev目錄中的文件
4、實驗環(huán)境
?需要做以下準備
?由指導老師分配的Linux登錄用戶ID(如user2)和口令
?一臺運行RedHatLinux操作系統(tǒng)并帶有GNOME的計算機
5、實驗內容與步驟
-登錄規(guī)則和口令規(guī)則
■登錄Linux
■熟悉GNOME
■Linux系統(tǒng)中的Shell
■Linux系統(tǒng)中文件與目錄
,Linux的文件系統(tǒng)
?注銷GNOME
6、進階
-Linux的常用命令(可選練習)
?有關目錄的命令:pwd、cd
,有關文件的命令:Is、cat、chown、cp、date、dd、file、find
?其他的命令:kill>clear、mount、umountsreboot>passwd、su
二、實驗第02講Windows進程管理與管理Linux系統(tǒng)進程及
Linux重定向和管道
1、實驗1Windows任務管理器的進程管理(必做)
1、實驗學時與難度
?實驗估計時間:30分鐘,難度系數:3。
2、背景知識簡介
■Windows2000的任務管理器提供了用戶計算機上正在運行的程序和進程的相關信
息,也顯示了最常用的度量進程性能的單位
■使用任務管理器
?可以打開監(jiān)視計算機性能的關鍵指示器,快速查看正在運行的程序的狀態(tài),
或者終止已停止響應的程序
-也可以使用多個參數評估正在運行的進程的活動,以及查看CPU和內存使
用情況的圖形和數據
■任務管理器中
?“應用程序”選項卡:顯示正在運行程序的狀態(tài),用戶能夠結束、切換或者
啟動程序
?“進程”選項卡:顯示正在運行的進程信息。例如,可以顯示關于CPU和
內存使用情況、頁面錯誤、句柄計數以及許多其他參數的信息
?“性能”選項卡:顯示計算機動態(tài)性能,包括CPU和內存使用情況的圖表,
正在運行的句柄、線程和進程的總數,物理、核心和認可的內存總數(KB)等
3、實驗目的和要求
-通過在Windows任務管理器中對程序進程進行響應的管理操作
'熟悉操作系統(tǒng)進程管理的概念
?學習觀察操作系統(tǒng)運行的動態(tài)性能
4、實驗環(huán)境
■需要準備一臺運行Windows2000Professional操作系統(tǒng)的計算機
5、實驗內容與步驟
?使用任務管理器終止進程
-顯示其他進程記數器
?更改正在運行的程序的優(yōu)先級
6、實驗提示
■注意實驗中所使用的是操作系統(tǒng)的哪個版本
?了解在當前機器中正在運行的應用程序
-在WindowsXP的任務管理相中,“進程”選項卡增加了一個“用戶名”欄目,其中
區(qū)分了SYSTEM、NETWORKSERVICE、LOCALSERVICE和用戶的不同進程類別
-終止進程時要小心,有可能導致不希望發(fā)生的結果,包括數據丟失和系統(tǒng)不穩(wěn)定等;
終止進程將結束它直接或間接創(chuàng)建的所有子進程
2、實驗2Windows2000進程編程(必做)
1、實驗學時與難度
?實驗估計時間:60分鐘,難度系數:4。
2、背景知識簡介
'Windows2000可以識別的應用程序包括控制臺應用程序、GUI應用程序和服務應用
程序
-控制臺應用程序可以創(chuàng)建GUI;GUI應川程序可以作為服務來運行;服務也可以向標
準的輸出流寫入數據一一不同類型應用程序間的惟一重要區(qū)別是其啟動方法
?Windows2000是以NT的技術構建的,它提供了創(chuàng)建控制臺應用程序的能力,使用
戶可以利用標準的C++工具,如iostream庫中的cout和cin對象,來創(chuàng)建小型應
用程序。當系統(tǒng)運行時,Windows2000的服務通常要向系統(tǒng)用戶提供所需功能
■服務應用程序類型需要ServiceMailO函數,由服務控制管理器(SCM)加以調用。
SCM是操作系統(tǒng)的集成部分,負責響應系統(tǒng)啟動以開始服務、指導用戶控制或從另
一個服務中來的請求。其本身負責使應用程序的行為像一個服務。通常,服務登錄
到特殊的LocalSystem賬號下,此賬號具有與開發(fā)人員創(chuàng)建的服務不同的權限
■當令C++編譯器創(chuàng)建可執(zhí)行程序時,編譯器將源代碼編譯成OBJ文件,然后將其與
標準庫相鏈接。產生的EXE文件是裝載器指令、機器指令和應用程序的數據的集合。
裝載器指令告訴系統(tǒng)從哪里裝載機器代碼。另一個裝載器指令告訴系統(tǒng)從哪里開始
執(zhí)行進程的主線程。在進行某些設置后,進入開發(fā)者提供的mainO.Service址in()
或眄nMain()函數的低級入口點。機器代碼中包括有控制邏輯,它所做的事包括跳
轉到WindowsAPI函數,進行計算或向磁盤寫入數據等
?Windows允許開發(fā)人員將大型應用程序分為較小的、互相有關系的服務模塊,即動
態(tài)鏈接庫(DLL)代碼塊,在其中包含應用程序所使用的機器代碼和應用程序的數據
3、實驗目的和要求
■通過對Windows2000進程編程
?進一步熟悉操作系統(tǒng)的基本概念
?進一步熟悉進程的概念
進一步理解Windows2000進程的編程
較好地理解Windows2000進程的結構
4、實驗環(huán)境
'需要做以下準備
?一臺運行Windows2000Professional操作系統(tǒng)的計算機
?計算機中需安裝VisualC++6.0專業(yè)版或企業(yè)版
5、實驗內容與步驟
?參照計算機的任務管理器中的進程欄所列出的內容,列出當前系統(tǒng)所有運行進程及
其相關信息(具體內容見源程序)
6、源程序
//proc1ist項目
#include〈windows.h>
#include<tlhelp32.h>
#include<iostream.h>
//當在用戶模式機內核模式下都提供所耗時間時,在內核模式下進行所耗時間的64位計算的利助方
法
DWORDGetKernelModePercentage(constFILETIME&ftKernel,
constFILETIME&ftUser)
{
//將FILETIME結構轉化為64位整數
Ul.ONGLONGqwKernel=(((ULONGLONG)ftKernel.dwIIighDateTime)
?32)+ftKcrncl.dwLowDatcTimc:
LLONGLONGqwlser=(((ULONGLONG)ftUser.dwHighDateTime)
?32)+ftUser.dwLowDateTime;
//將消耗時間相加,然后計算消耗在內核模式下的時間百分比
LLONGLONGqwTotal=qwKernel+qwliser;
DWORDdwPct=(DWORD)(((ULONGLONG)100*qwKernel)/qwTotal);
return(dwPct);
}
//以下是將當前運行過程名和消耗在內核模式下的時間百分數都顯示出來的應用程序
voidmain()
(
//對當前系統(tǒng)中運行的過程拍取“快照”
HANDLEhSnapshot=::CreateToolhelp32Snapshot(
TH32CS_SNAPPR0CESS,//提取當前過程
0);//如果是當前過程,就將其忽略
//初始化過程入口
PR0CESSENTRY32pe:
::ZeroMemory(&pe,sizeof(pe));
pe.dwSize=sizeof(pe);
BOOLbMore=::Process32First(hSnapshot,&pe);
while(bMore)
(
//打開用于讀取的過程
HANDLEhProccss=::0penProccss(
PROCESS_QUERY_INEORMATION,//指明要得到信息
FALSE,//不必繼承這一句柄
pe.th32ProcessID);//要打開的進程
if(hProcess!=Nl)LL)
(
//找出進程的時間
FILETIMEftCreation,ftKernelMode,ftUserMode,ftExit;
::GetProcessTimes(
hProcess,//所感興趣的進程
&f[Creation,//進程的啟動時間
&ftExit,//結束時間(如果有的話)
&flKernelMode,//在為核模式下消耗的時間
&ftUscrModc);//在用戶模式下消耗的時間
//計算內核模式消耗的時間百分比
DWORDdvPctKernel=::GetKernelModePercentage(
ftKernelMode,//在內核模式上消耗的時間
ftUserMode);//在用戶模式下消耗的時間
//向用戶犀示進程的某號信息
cout?*processID:"?pe.th32ProcessID
?”,EXEfile:*?pe.szExeFile
?*,%inKernelmode:*?dwPctKernel?endl:
//消除句柄
::Closelland1c(hProcess);
}
//轉向下一個進程
bMorc=::Proccss32Ncxt(hSnapshot,&pe);
}
)
7、進階
?對列出的所有的進程,可以改變所選進程的優(yōu)先級。
3、實驗3管理Linux系統(tǒng)進程(必做)
1、實驗學時與難度
-實驗估計時間:30分鐘,難度系數:4。
2、背景知識簡介
-在本實驗中,我們將使用Linux命令工作,來標識和控制系統(tǒng)進程。Linux操作系
統(tǒng)使用進程管理作業(yè),進程由系統(tǒng)或者用戶初始化。用戶在Linux環(huán)境下執(zhí)行的作
業(yè)大多數都會啟動?個進程。進程可以啟動或者派生一個子進程,這樣創(chuàng)建了?個
進程層次結構或者進程樹,類似于具有父子關系的文件系統(tǒng)層次結構
'可以使用ps(進程狀態(tài))命令工作,監(jiān)控系統(tǒng)進程,使用kill命令終止不想要的
進程
3、實驗目的和要求
■回顧系統(tǒng)進程的概念,加深對Linux/UNIX進程管理的理解
■回顧ps命令和選項
■列出當前shell中的進程
?列出運行在系統(tǒng)中的所有進程
?根據命令名搜索特定的進程
?確定一個進程,終止它
?使用kill命令終止進程
'根據用戶查找和終止進程
-根據命令名終止近程
4、實驗環(huán)境
■需要做以下準備
?由指導老師分配的登錄用戶ID(如user2)和口令
?一臺運行RedHatLinux操作系統(tǒng)的計算機
5、實驗內容與步驟
登錄進入GNOME
訪問命令行
?回顧系統(tǒng)進程概念
■回顧ps命令和信息
?列出系統(tǒng)中運行的所有進程
-根據命令名搜索特定的進程
■確定一個要終止的進程
?使用kill命令終止一個進程
-按照用戶查找和終止一個進程
4、實驗4Linux重定向和管道(必做)
1、實驗學時與難度
?實驗估計時間:60分鐘,難度系數:5。
2、背景知識簡介
■本實驗使用高級Linux命令來完成重定向和管道。
?每一個Linux命令都有一個源作為標準輸入,一個目的作為標準輸出
?命令的輸入通常來自鍵盤(盡管它也可以來自文件)
?命令通常輸出到監(jiān)視器或者屏幕上
?Linux計算環(huán)境使用重定向可以控制命令的I/O.當試圖把命令的輸出保存到一個文
件,以供以后查看的時候是很有用的
?通過管道,可以取得一個命令的輸出,把它作為另一個命令的進一步處理的輸入
-有幾個元字符可用于輸入/輸出重定向符號
?輸出重定向使用右尖括號(》,又稱大于號)
?輸入重定向使用左尖括號(<,又稱小于號)
?出錯輸出重定向使用右尖括號之前有一個數字2(如2>)
-重定向命令的格式是:
?CommandRedirection-Symbo1File(textfileordevicefile)
-標準輸出比標準輸入或標準出錯更經常被重定向。許多命令,如Is、cat、head和
tail產生標準輸出到屏幕上,常常會希望把這個輸出重定向到一個文件中,以便將
來查看、處理或者打印
-通過替換文件名,可以截獲命令的輸出
?最強大的元字符之一是管道符號(I)。管道取得一個命令的標準輸出,把它作為
標準輸入傳遞給下一個命令(通常為more命令、Ip(行式打印機)命令或者一個文
件處理命令,如grep或sort)
?必須在管道的每邊都有一個命令,命令和管道之間的空格是可選的
-管道命令的格式是:
?command|command
3、實驗目的和要求
■通過重定向和管道操作:
?熟悉輸入/輸出(I/O)重定向
?把標準輸出重定向創(chuàng)建一個文件
?防止使用重定向的時候覆蓋文件
?把輸出追加到一個現有的文件中
把一個命令的輸出導入到另一個命令中
4、實驗環(huán)境
■需要做以下準備:
?由指導老師分配的登錄用戶名(如user2)和口令
?一臺運行RedHatLinux操作系統(tǒng),帶有GNOME的計算機
5、實驗內容與步驟
■在本實驗中將會用到下列命令:
?pwd顯示當前的工作路徑
?cd改變目錄路徑
?1S顯示指定目錄的內容
?more分頁顯示文件的內容。顯示文本文件首選
?head截取顯示文件的開頭部分(默認為開頭10行:)
?tail截取顯示文件的結尾部分(默認為最后10行)
?cal有關日歷的命令
?setshell特性的設置
?echo顯示變量的值
?ps顯示當前進程
?data顯示或設置系統(tǒng)日期和時間
?grep查找文件中有無指定的關鍵字
?使用重定向標準輸出符號
-使用管道符號
6、實驗提示
-如果對命令的格式不清楚,可以用man命令請求幫助,即:
?manmore
三、實驗第03講Linux文件信息命令、基本文件管理與文件
權限
1、實驗1Linux文件信息命令和基本文件管理(必做)
1、實驗學時與難度
'實驗估計時間:60分鐘,難度系數:4。
2、背景知識簡介
?在本實驗中,我們將使用不同的信息命令,來調查和發(fā)現文件的信息;使用命令來
幫助確定文件類型和創(chuàng)建文件的應用;也可以使用幾個命令來查看文本文件的內容
和對它們進行比較
■作為基礎,使用命令來分析和管理文件及目錄的能力對于進一步學習Linux操作系
統(tǒng)是非常重要的。Linux特權用戶和系統(tǒng)管理員必須有使用命令行的工作背景,例
如創(chuàng)建可執(zhí)行的腳本文件等(Linux腳本文件包含著一系列的Linux命令)。許多
操作系統(tǒng)管理和設備配置作業(yè)需要理解Linux命令,并且在某些情況下,命令行是
僅有的操作方式
?在本實驗中,我們將在命令行下使用文件管理命令工作,介紹文件和目錄命名規(guī)則。
我們將創(chuàng)建一個簡單的目錄結構,然后在那些目錄中創(chuàng)建一個文件,并練習創(chuàng)建和
刪除文件和目錄
3、實驗目的和要求
■通過本實驗
?使用控制字符執(zhí)行特殊功能
?使用file和strings命令確定文件類型
?使用cat利more命令顯示文本文件的內容
?使用head和tai]命令顯示文本文件的部分內容
?使用NC命令確定單詞、行和字符數
?使用diff命令比較2個文件
?回顧文件和目錄命名約定
?使用touch命令創(chuàng)建新文件
?使川mkdir命令創(chuàng)建新目錄
?使用rm命令刪除文件
?使用rm-r命令刪除目錄
4、實驗環(huán)境
■需要做以下準備
?由指導老師分配的登錄用戶帳號(如user2)和口令
?一臺運行Linux操作系統(tǒng)的計算機
5、實驗內容與步驟
?文件信息命令
'基本的命令行文件管理
2、實驗2Linux文件權限(必做)
1、實驗學時與難度
?實驗估計時間:90分鐘,難度系數:5。
2、背景知識簡介
■作為全面安全策略的一個主要組成部分,文件系統(tǒng)安全決定了誰可以訪問什么數據,
以及他們可以如何處理數據。系統(tǒng)管理員基于用戶、屬組和權限建立其文件系統(tǒng)安
全。目錄和文件權限可以使用帶-I(長列表)選項的Is(列表)命令來確定???/p>
以使用IsT命令確定文件類型、權限、所有者和屬組。系統(tǒng)將顯示文件和目錄的
權限,解釋結果,以評價不同用戶類別上權限的作用
'接著,將使用命令行工具程序分析和修改Linux文件系統(tǒng)安全權限
?文件和目錄權限可以使用chmod(修改模式)命令修改。在正常情況下,文件或目
錄的默認權限可以滿足大多數安全的需要??赡苡泻芏啻蜗胍薷奈募蚰夸浀臋?/p>
限。在默認情況下,所有創(chuàng)建的文件設定了允許其他類別的用戶可以讀取這個文件
的權限。這意味著所有擁有登錄id的人都可以查看和拷貝文件的內容。對于機密文
件和私人信息,可以修改文件的權限,防止其他人訪問它
?shell腳本是想要修改其權限的另一個例子。當創(chuàng)建一個shell腳本文件(或任何
文件)的時候,既使是對文件的所有者/創(chuàng)建者,默認的權限不包括執(zhí)行權限。為了
運行shell腳本,必須通過給用戶(所有者)類別添加執(zhí)行權限來修改權限
'最后,使用GNOME(公共桌面環(huán)境)文件管理器來分析和修改文件系統(tǒng)權限。GNOME
文件管理器工具程序提供了一個文件系統(tǒng)的圖形化界面,可以用來查看和修改文件
和文件夾的權限
3、實驗目的和要求
?確定文件系統(tǒng)權限
?顯示文件系統(tǒng)權限
?解釋權限
?確定文件的用戶權限、屬組權限或其他(公共)權限
?確定對于一個可執(zhí)行文件的文件權限
?使用默認權限創(chuàng)建一個文件或目錄
-從命令行中修改權限
?使用文件系統(tǒng)來控制安全訪問
?回顧chmod命令模式
?使用符號模式修改文件或目錄的權限
?確定八進制模式權限
?使用八進制模式修改文件或目錄的權限
?使用vi編輯器創(chuàng)建一個腳本文件,并且使它可執(zhí)行
?使用文件管理器修改權限
?訪問文件管理器,使用文件和目錄權限工作
.使用文件管理器確定文件或文件夾的權限
?使用文件管理器修改文件或文件夾的權限
4、實驗環(huán)境
?需要做以下準備
?由指導老師分配的登錄用戶帳號(如user2)和口令
?一臺運行Linux操作系統(tǒng)的計算機
5、實驗內容與步驟
-確定文件系統(tǒng)權限及在命令行中修改權限
?使用文件管理器修改權限
6、進階
在不同的角色下,安裝相同的軟件(如Oracle),從而體會Linux的文件權限的重要
性以及如何設置與操作。
四、實驗第04講Windows進程與線程編程
1、實驗1Windows2000進程的“一生”(必做)
1、實驗學時與難度
■實驗估計時間:60分鐘,難度系數:4。
2、背景知識簡介
■Windows所創(chuàng)建的每個進程都從調用CreateProcess()API函數開始,該函數的任
務是在對象管理器子系統(tǒng)內初始化進程對象
■每?進程都以調用ExitProcess()或TerminateProcess()API函數終止。通常應
用程序的框架負責調用ExitProcess()函數。對于C++運行庫來說,這一調用發(fā)
生在應用程序的main。函數返回之后
?創(chuàng)建進程
?CreateProcessO調用的核心參數是可執(zhí)行文件運行時的文件名及其命令
行
-正在運行的進程
?如果一個進程擁有至少一個執(zhí)行線程,則為正在系統(tǒng)中運行的進程。道常,
這種進程使用主線程來指示它的存在。當主線程結束時,調用ExitProcess。
API函數,通知系統(tǒng)終止它所擁有的所有正在運行、準備運行或正在掛起的
其他線程
?當進程正在運行時,可以通過一系列的API函數來查看它的許多特性,其中
少數特性也允許加以修改
■終止進程
?所有進程都是以調用ExitProcess。或者TerminateProcess()函數結束
的。但最好使用前者而不要使用后者,因為進程是在完成了它的所有的關閉
“職責”之后以正常的終止方式來調用前者的。而外部進程通常調用后者即
突然終止進程的進行,由于關閉時的途徑不太正常,有可能引起錯誤的行為
?TerminateProcessOAPI函數只要打開帶有PROCESS_TERMINATE訪問權的
進程對象,就可以終止進程,并向系統(tǒng)返回指定的代碼。這是一種“野蠻”
的終止進程的方式,但是有時卻是需要的
3、實驗目的和要求
■通過創(chuàng)建進程、觀察正在運行的進程和終止進程的程序設計和調試操作,進一步熟
悉操作系統(tǒng)的進程概念,理解Windows200()進程的“一生”
■通過閱讀和分析實驗程序,學習創(chuàng)建進程、觀察進程和終止進程的程序設計方法
4、實驗環(huán)境
?需要做以下準備:
?一臺運行Windows2000Professional操作系統(tǒng)的計算機
?計算機中需安裝VisualC++6.0專業(yè)版或企業(yè)版
5、實驗內容與步驟
■創(chuàng)建進程(具體內容見源程序1)
?正在運行的進程(具體內容見源程序2)
■終止進程(具體內容見源程序3)
6、源程序
源程序1
//proccreate項目
^include〈windows.h>
^include<iostream>
#include<stdio.h>
//創(chuàng)建傳遞過來的進程的克隆過程并賦于其ID值
voidStartClone(intnCloneID)
(
//提取用于當前可執(zhí)行文件的文件名
TCHARszFilename[MAX_PATH];
::GetModuleFileNameTNULL,szFilename,MAXPATH);
//格式化用于子進程的命令行并通知其EXE文件名和克隆TD
TCHAKszCmdLine[MAX_PATH];
::sprintf(szCmdLine,szFilename,nCloneID):
//用于子進程的STARTUPINFO結構
STARTUPINFOsi;
::ZeroMemory(reinterpret_cast<void*>(&si),sizeof(si));
si.cb=sizeof(si);//必須是卞結構的大小
//返回的用于子進程的進程信息
PROCESS.INFORMATIONpi;
//利用同樣的可執(zhí)行文件和命令行創(chuàng)建進程,并賦于其子進程的性質
BOOLbCiualvOK=;.CivalvPr
szFilename,//產生這個EXE的應用程序的名稱
szCmdLine,//告訴其行為像一個子進程的標志
NULL,//缺省的進程安全性
NULL,//缺省的線程安全性
FALSE,//不繼承句柄
CREATE_NEWCOXSOLE,//使用新的控制臺
NULL,//新的環(huán)境
NULL,//當前目錄
&si,//啟動信息
&pi);//返回的進程信息
//對手進程釋放引用
if(bCreateOK)
::CloseHandle(pi.hFrocess);
::CloseHandle(pi.hThread):
)
intmain(intargc,char*argv[])
//確定進程在列表中的位置
intnClone(O);
if(argc>1)
(
//從第二個參數中提取克隆ID
::sscanf(argv[l],,&nClone);
}
//顯示進程位置““
std::cout?wProcessID:"?::GetCurrentProcessId()
?”,CloneID:"?nClone
?std::cndl:
//檢查是否有創(chuàng)建子進程的需要
constintc_nCloneMax=25:
if(nClone<c_nCloneMax)
(
//發(fā)送新進程的命令行和克隆號
StartClone(++nClone);
}
//在終止之前暫停一下("2秒)
::Sleep(500);
return0;
源程序2
//version項目
#include<windows.h>
#include<iostream>
//利用進程和操作系統(tǒng)的版本信息的簡單示例
voidmainO
(
//提取這個進程的ID號
DWORDdwldThis=::GetCurrentProcessldO;
//獲得這一進程和報告所需的版本,也可以發(fā)送0以便指明這一進程
DWORDdwVcrRcq=::GctProccssVcrsion(dwIdThis);
WORDwMajorReq=(WORD)(dwVerReq>16);
WORDwMinorReq=(WORD)(dwVerReq&Oxffff):
std::cout<<*ProcessID:*<<dwIdThis
?,,requiresOS:?wMajorRcq
?wMinorReq?std::endl;
//設置.版本信息的數據結構,以便保存操作系統(tǒng)的版本信息
OSVERSIONINFOEXosvix;
::ZeroMemory(&osvix,sizeof(osvix));
osvix.dwOSVersionInfoSize=sizeof(osvix);
//提取版本信息和報告
::GetVersionEx(reinterpret_cast<LPOSVERSIONINFO>(&osvix));
std::cout?”RunningonOS:*?osvix.dwMajorVersion?*.*
?osvix.dwMinorVersion<<std::end];
//如果是MTS(Windows2000)系統(tǒng),則提高其優(yōu)先權
if(osvix.dwPlatformId==VER_PLATFORM_WIN32_NT&&osvix.dwMajorVersion>=5)
(
//改變優(yōu)先級
::SetPriorityClass(
::GetCurrentProcessO,/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度旅游景區(qū)停車場車位租賃及導覽服務協(xié)議
- 2025年度專利技術許可使用合同
- 2025年度貸款居間服務合同范本(銀行版)
- 二零二五年度體育賽事贊助定金合同
- 二零二五年度影視演員聘用及影視衍生品開發(fā)合同
- 二零二五年度農業(yè)產業(yè)營銷戰(zhàn)略實施合同
- 2025年度老宅基地使用權轉讓與土地流轉合同
- 二零二五年度農業(yè)機械設備無償捐贈與推廣合同
- 陜西省寶雞市渭濱區(qū)重點達標名校2025屆中考一模生物試題含解析
- 南京大學金陵學院《影視鑒賞大學生美學素養(yǎng)》2023-2024學年第一學期期末試卷
- 高二物理競賽霍爾效應 課件
- 金融數學-(南京大學)
- 基于核心素養(yǎng)下的英語寫作能力的培養(yǎng)策略
- 現場安全文明施工考核評分表
- 亞什蘭版膠衣操作指南
- 四年級上冊數學教案 6.1口算除法 人教版
- DB32-T 3129-2016適合機械化作業(yè)的單體鋼架塑料大棚 技術規(guī)范-(高清現行)
- 6.農業(yè)產值與增加值核算統(tǒng)計報表制度(2020年)
- 人工挖孔樁施工監(jiān)測監(jiān)控措施
- 供應商物料質量問題賠償協(xié)議(終端)
- 物理人教版(2019)必修第二冊5.2運動的合成與分解(共19張ppt)
評論
0/150
提交評論