LINUX實(shí)驗(yàn)報(bào)告_第1頁
LINUX實(shí)驗(yàn)報(bào)告_第2頁
LINUX實(shí)驗(yàn)報(bào)告_第3頁
LINUX實(shí)驗(yàn)報(bào)告_第4頁
LINUX實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí) 驗(yàn) 報(bào) 告( 2014/ 2015 學(xué)年 第一學(xué)期)課程名稱操 作 系 統(tǒng)A實(shí)驗(yàn)名稱文件系統(tǒng)實(shí)驗(yàn)時間2014年 12 月 8日指導(dǎo)單位計(jì)算機(jī)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系指導(dǎo)教師 徐鶴學(xué)生姓名王生榮班級學(xué)號B12040809學(xué)院(系)計(jì)算機(jī)學(xué)院專 業(yè)軟件工程13 / 14文檔可自由編輯打印實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)名稱文件系統(tǒng)指導(dǎo)教師徐鶴實(shí)驗(yàn)類型設(shè)計(jì)實(shí)驗(yàn)學(xué)時2實(shí)驗(yàn)時間2014.12.08一、實(shí)驗(yàn)?zāi)康暮鸵?. 學(xué)習(xí)LINUX系統(tǒng)下對文件進(jìn)行操作的各種命令和圖形化界面的使用方法。2. 深入學(xué)習(xí)和掌握文件管理系統(tǒng)的基本原理和LINUX等操作系統(tǒng)下常用的系統(tǒng)調(diào)用,編寫一個使用系統(tǒng)調(diào)用的例程。3實(shí)現(xiàn)一個文本文件的

2、某信息的插入和刪除4實(shí)現(xiàn)一個記錄文件的某記錄的插入和刪除二、實(shí)驗(yàn)環(huán)境(實(shí)驗(yàn)設(shè)備)Windows XP + VMWare + RedHat Linux 8實(shí) 驗(yàn) 報(bào) 告3、 實(shí)驗(yàn)過程描述與結(jié)果分析1. 目錄/proc下與系統(tǒng)相關(guān)的文件和目錄 (1) /proc/$pid/fd:這是一個目錄,該進(jìn)程($PID號碼進(jìn)程)每個打開的文件在該目錄下有一個對應(yīng)的文件。 例如:#ls /proc/851/fd 0        1  2  255 這表示,851號進(jìn)程目前正在使用(已經(jīng)打開

3、的)文件有4個,它們的描述符分別是0、1、2、255。其中,0、1、2 依次分別是進(jìn)程的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出設(shè)備。 (2)/proc/:該文件記錄了可用的文件系統(tǒng)類型。 (3)/proc/mounts:該記錄了當(dāng)前被安裝的文件系統(tǒng)信息            例如:#cat /proc/mount (4)/proc/$pid/maps:該文件記錄了進(jìn)程的映射內(nèi)存區(qū)信息。          例如:#cat&#

4、160; /proc/851/maps 2.常用命令講解ls 命令用來查看用戶有執(zhí)行權(quán)限的任意目錄中的文件列表,該命令有許多有趣的選項(xiàng)。例如: $ ls -liah * 22684 -rw-r-r- 1 bluher users 952 Dec 28 18:43 .profile 19942 -rw-r-r- 1 scalish users 30 Jan 3 20:00 test2.out 925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh 上面的列表顯示 8 列: 第 1 列指示文件的 inode,因?yàn)槲覀兪褂昧?-i 選項(xiàng)。

5、剩下的列通過 -l 選項(xiàng)來進(jìn)行正常顯示。 第 2 列顯示文件類型和文件訪問權(quán)限。 第3 列顯示鏈接數(shù),包括目錄。 第 4 和第 5 列顯示文件的所有者和組所有者。這里,所有者 'bluher' 屬于組 'users'。 第 6 列顯示文件大?。▎挝粸樗@示的單位,而不是默認(rèn)的字節(jié)數(shù),因?yàn)槲覀兪褂昧?-h 選項(xiàng)。 第 7 列顯示日期(它看起來像是三列),包括月、日和年,以及當(dāng)天的時間。 第 8 列顯示文件名。在選項(xiàng)列表中使用 -a 將使列表中包含隱藏文件(如 .profile)的列表。 處理文件 可以移動 (mv)、復(fù)制 (cp) 或刪除 (rm) 文件和目錄。明

6、智地使用 -i 選項(xiàng),以獲得確認(rèn)通常是個不錯的主意。 $ cp -i ls.out ls2.out cp:overwrite ls2.out'? mv 命令允許使用 -b 選項(xiàng),這將在移動文件之前作一個備份拷貝。rm 和 cp 接受功能強(qiáng)大但卻危險(xiǎn)的 -r 選項(xiàng),它將在一個目錄和它的文件上遞歸執(zhí)行。 $ rm -ir Test rm:descend into directory Test'? y 可以用 mkdir 來創(chuàng)建目錄,用 rmdir 來刪除目錄。不過,因?yàn)椴荒苡?rmdir 來刪除包含文件的目錄,所以使用 rm 加 -r 選項(xiàng)通常要更方便些。 出于安全的原因,所有的文

7、件都有所有權(quán)和保護(hù)。文件訪問權(quán)限(或文件模式)包含之前提到的相同的 10 個字符: 第一個字符指示文件類型。最常見的是 - 代表文件,d 代表目錄,而 l 代表鏈接。 接下來的 9 個字符是三種用戶類別的訪問權(quán)限:文件所有者(字符 2-4),用戶組 (5-7) 和其它 (8-10),其中 r 表示讀權(quán)限,w 表示寫權(quán)限,x 指示一個文件上的執(zhí)行權(quán)限。破折號 - 如果出現(xiàn)在這九個位置的任意一個,則指示這個操作對該類別的用戶禁止。 可以使用 chmod 命令通過字符符號或二進(jìn)制掩碼來設(shè)置訪問權(quán)限。要使用二進(jìn)制掩碼,必須將三個權(quán)限組的字符表示轉(zhuǎn)換成二進(jìn)制格式,然后轉(zhuǎn)換成八進(jìn)制格式: 用戶類別: 所有

8、者 用戶組 其它 字符表示: rwx r-x r- 二進(jìn)制表示: 111 101 100 八進(jìn)制表示: 7 5 4 將寫權(quán)限賦予用戶組,可以使用: chmod g+w test.sh or chmod 774 test.sh 用 umask 命令,在 /etc/init.dev 文件中進(jìn)行系統(tǒng)范圍內(nèi)的、或在 .profile 文件中進(jìn)行的本地的文件權(quán)限默認(rèn)設(shè)置。這個命令指示用 777 減去這個數(shù)字來獲取默認(rèn)的權(quán)限: $ umask 022 這將為用戶創(chuàng)建的所有新文件生成一個默認(rèn)的文件權(quán)限 755。 可以用 chown 來修改文件的所有權(quán): $ chown bluher ls.out 這里,bl

9、uher 是新的文件所有者。類似地,組成員資格將按以下方式修改: $ chgrp devgrp ls.out 這里,devgrp 是新的用戶組。 ls 不提供哪些文件是文本的,哪些文件是二進(jìn)制的的信息。要了解這個信息,可以使用 file * 命令。 重命名文件 賦予一個文件多個名字的兩種流行的方法是利用鏈接和 alias 命令。Alias 可以用來為一個更長的命令重新起一個更方便的名字: $ alias ll='ls -l' $ ll 注意單引號的使用,這使得 BASH 將該項(xiàng)目傳遞給別名,而不是自己估計(jì)它。別名還可用作較長的路徑名的縮寫: $ alias jdev9i=/jd

10、ev9i/jdev/bin/jdev cat、 more 和 less命令讓能夠從命令行查看一個文本文件的內(nèi)容,而無需調(diào)用編輯器。Cat 是 'concatenate' 的縮寫,它將默認(rèn)地在標(biāo)準(zhǔn)輸出(顯示屏)上顯示文件內(nèi)容。和 cat 一起提供的最有趣的選項(xiàng)之一是 -n 選項(xiàng),它用編號的輸出行來顯示文件內(nèi)容。 $ cat -n test.out 1 This is a test. 因?yàn)?cat 一次性輸出文件中的所有行,所以可能更喜歡用 more 和 less,因?yàn)樗鼈兌家淮屋敵鲆黄恋奈募?nèi)容。Less 是 more 的一個增強(qiáng)的版本,它允許用來自 vi 文本編輯器的關(guān)鍵命令來

11、增強(qiáng)文件查看。例如,d 向前翻滾、b 向后翻滾 N 行(如果 N 是在 d 或 b 之前指定的)。為 N 輸入的值成為隨后的 d 命令的默認(rèn)值。man 頁面實(shí)用工具使用 less 來顯示使用說明的內(nèi)容。 重定向和管道 重定向允許將命令輸出重定向到文件中,而不是標(biāo)準(zhǔn)輸出,或者類似地,也可重定向輸入。重定向的標(biāo)準(zhǔn)符號 創(chuàng)建一個新的文件。 符號將輸出添加到一個現(xiàn)有的文件中: $ more test2.out Another test. $ cat test.out test2.out $ cat test2.out Another test. This is a test. 到文件的標(biāo)準(zhǔn)輸入可以用

12、符號來重定向: $ cat test2.out 錯誤消息用 2 和 2 來重定向和添加,格式如下: $ command 2 name_of_error_file 重定向在一個命令和文件之間、或文件和文件之間工作。重定向語句的一項(xiàng)必須是一個文件。 管道使用 |符號,并且在命令之間工作。例如,可以用以下方式將一個命令的輸出直接發(fā)送到打印機(jī)上: $ ls -l * | lpr 可以用以下方式快速地找到歷史列表中的一個命令: $ history | grep cat 查找文件 find 命令的 GNU 版本非常強(qiáng)大、靈活并且比 UNIX 系統(tǒng)上存在的經(jīng)典版本更具包容性。它對于涉及到目錄結(jié)構(gòu)的任務(wù)非常有

13、用,包括在文件上查找和執(zhí)行命令。find 命令的基本格式是: $ find startdirectory options matchcriteria actionoptions 如果知道文件的名稱、或者甚至名稱的一部分,但不知道它所處的目錄,可以這么做: $ find .-name 'test*' ./test ./jdevhome/mywork/EmpWS/EmpBC4J/test 與經(jīng)典的 UNIX 系統(tǒng)不同,在 Linux 中不需要在末尾添加 -print 操作,因?yàn)槿绻麤]有指定其它的操作選項(xiàng),就將假定執(zhí)行這個操作。在目錄起始位置上的一個點(diǎn) ( . ) 將使 find 在

14、的工作目錄中開始搜索。兩個點(diǎn), .,在父目錄中開始搜索??梢栽谌我饽夸浵麻_始搜索。 注意,可以使用通配符作為搜索準(zhǔn)則的一部分(只要用單引號將整個項(xiàng)目括起來)。 $ find .-name 'test*' -print ./test.out ./test2.out 顯示擁有 .out 擴(kuò)展名的一系列文件: $ find /home -name '*.out' 不過記住,除非是作為超級用戶運(yùn)行這個命令,否則將可能得到許多的 'Permission denied' 錯誤消息。 3.Linux常用文件系統(tǒng)調(diào)用 (1)open系統(tǒng)調(diào)用 格式: #inclu

15、de <sys/types.h>        #inckude <sys/stat.h>        #include <fcntl.h>        int open(char *path,int flags,mode_t mode); 其中:參數(shù)path 是指向所要打開的文件的路徑名指針。 參數(shù)falgs 規(guī)定如何打開該文件它必須包含以下三個值之一 O_RDONLY

16、60;   只讀打開 O_WRONLY    只寫打開 O_RDWR      讀/寫打開              參數(shù)mode 規(guī)定對該文件的訪問權(quán)限,定義在<sys/stst.h>中 (2)read系統(tǒng)調(diào)用 格式: #include <sys/types.h>      

17、;  #include <unistd.h> int read(int fd,void *buf,size_t nbytes)        該系統(tǒng)調(diào)用從文件描述符fd所代表的文件中讀取nbytes 個字節(jié),buf指定的緩沖區(qū)內(nèi)。所讀取的內(nèi)容從當(dāng)前的讀/寫指針?biāo)甘镜奈恢瞄_始,這個位置由相應(yīng)的打開文件描述中的偏移值(off_set)給出,調(diào)用成功后文件讀寫指針增加實(shí)際讀取的字節(jié)數(shù)。 使用read 系統(tǒng)調(diào)用時,應(yīng)注意設(shè)置的數(shù)據(jù)緩沖區(qū)充分大,能夠存放所要求的數(shù)據(jù)字節(jié),因?yàn)閮?nèi)核只復(fù)制數(shù)據(jù),不進(jìn)行檢查。 返回: 

18、; -1:     錯誤 0 :     文件偏移值是在文件結(jié)束處 整數(shù):    從該文件復(fù)制到規(guī)定的緩沖區(qū)中的字節(jié)數(shù)。通常這個字節(jié)數(shù)與所請求的字節(jié)數(shù)相同。除非請求的字節(jié)數(shù)超過剩余的字節(jié)數(shù),這時將返回一個小于請求的字節(jié)數(shù)的數(shù)字。 (3)write系統(tǒng)調(diào)用 格式:  #include <sys/types.h>         #include <un

19、istd.h>         int write(int fd,void *buf,size_t nbytes) 該調(diào)用從buf所指的緩沖區(qū)中將nbytes 個字節(jié)寫到描述符fd所指的文件中。     (4)close系統(tǒng)調(diào)用 格式:#include <unistd.h>            int close(int fd) 每打開一個文件,系統(tǒng)就給文件

20、分配一個文件描述符,同時為打開文件描述符的引用計(jì)數(shù)加。Linux文件系統(tǒng)最多可以分配個文件描述符。當(dāng)調(diào)用close()時,打開文件描述符的引用計(jì)數(shù)值減,最后一次對close()的調(diào)用將使應(yīng)用計(jì)數(shù)值為零。 雖然當(dāng)一個進(jìn)程結(jié)束時,任何打開的文件將自動關(guān)閉,明顯地關(guān)閉任何打開的文件是良好的程序設(shè)計(jì)習(xí)慣。 源代碼:#include <stdio.h>#include <stdlib.h>#include <stddef.h>#include <string.h>#include <math.h>#include <sys/types.h>#include <sys/stat.h>#include &l

溫馨提示

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

最新文檔

評論

0/150

提交評論