



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、首先我講一下寫這篇東西的目的。我覺得對于很多l(xiāng)inux新手。尤其是在自學(xué)的同學(xué)。最好的學(xué)習(xí)的方法就是通過具體的例子。通過一個實踐的例子,在學(xué)習(xí)相關(guān)的知識點的同時,就把它們應(yīng)用到這例子中。這樣不僅知道了原理。也知道了怎么去應(yīng)用。下面就開始用一個常用的命令”ls”開始。所有的東西都是從最基本的原理開始。一步步來教你怎么實踐出一個命令 (一)ls命令簡單介紹 第一步當然是要明白ls究竟是做什么的。如果你要做一個東西卻不知道要用來干嘛。會不會很搞笑?所以下面就簡單的介紹ls命令的作用和怎么使用
2、1.Ls可以列出文件名和文件的屬性 在命令行輸入ls: ls 命令.jpgLs的默認動作是找出當前所有文件的文件名。按字典排序后輸出。Ls還能顯示其他的信息。如果加上-l就會列出每個文件的詳細信息。也叫l(wèi)s的長格式:2. 列出指定目錄或文件的信息 Linux系統(tǒng)中會有很多目錄。每個目錄中又會有很多文件。如果要列出一個非當前目錄的內(nèi)容或者是一個特定文件的信息,則需要在參數(shù)中給出目錄名或文件名。如: ls /
3、tmp /列出/tmp目錄中各文件的文件名 ls docs /列出docs目錄中各文件的屬性 ls *.c /列出當前目錄下與*.c匹配的文件,即當前目錄下所有以.c為后綴的文件 3. 經(jīng)常用到的命令行選項 ls -l 在前面已經(jīng)提到過,-l就是輸出文件詳細的信息。也叫長格式; ls -a 列出的內(nèi)容包含以“.“開頭的讓文件,即所謂有
4、隱藏文件 ls lu 顯示最后訪問時間 ls t 輸出時按時間排序 ls F 顯示文件類型 ls 命令的參數(shù)選項非常多,大多也可以組合使用。所以還是比較復(fù)雜的。但是我們第一步要實現(xiàn)的就是它最基本的功能:列出當前目錄下的所有文件或子目錄。 (二)學(xué)習(xí)必備的知識 既然是列出文件和目錄,那么肯定是和linux文件系統(tǒng)有關(guān)系的,所以要寫ls命令,至少要對文件系統(tǒng)的基本原理有一定的了解。為了
5、不至于使這個帖子內(nèi)容過于復(fù)雜,我把這方面的知識介紹單獨開了一個帖子: linux 文件系統(tǒng)詳解 如果你對這些已經(jīng)有所了解。就會知道linux下的文件都是以/為根目錄的樹型結(jié)構(gòu),雖然linux下有普通文件、目錄文件、鏈接文件、設(shè)備文件、管道文件這幾種類型。但鏈接文件、設(shè)備文件、管道文件都可以當做普通文件看待,那實際也就只要區(qū)分普通文件和目錄文件這兩種了。而目錄文件的內(nèi)容就是它所包含所有文件和子目錄的一個列表,所以只要打開目錄文件并讀取對應(yīng)目錄塊里的那個列表數(shù)據(jù),就可以得到些目錄下所有文件和子目錄的名稱了。其實這個流程簡單,就
6、是:打開目錄->讀取內(nèi)容->顯示文件名稱->關(guān)閉打開的目錄。用偽代碼流程表示如下: Mani() Opendir While(readdir) Print d_name Closedir; 那么現(xiàn)在的問題是用什么函數(shù)去打開并讀目錄呢?又是怎么樣來讀出數(shù)據(jù)呢?這里介紹是的opendir 和readdir,但是可能對于一些新手來說,就算知道了函數(shù)名稱也不一定知道怎么用
7、。別急,下一步就是教你怎么去查相應(yīng)函數(shù)的幫助資料。 linux下查看幫助手冊的命令是man,關(guān)于man的詳細介紹在這個帖子里我有詳細介紹:linux 幫助手冊頁命令 man詳解 如果對這方面還不是很清楚的可以先去學(xué)習(xí)一下。 好了,如果你已經(jīng)明白man的用法,我們就開始查看opendir和readdir的用法 我們在命令行輸入: # man 3 opendir解釋: #include
8、 #include 這是必須包含的頭文件 DIR *opendir(const char *name); 是函數(shù)原型;其中DIR * 表示是返回一個 DIR類型的指針,const char *name 是傳入的參數(shù) RETURN VALUE 是對返回值的說明。這里說明了如果有錯誤就返回NULL DESCRIPTION: opendir()用來打開參數(shù)name指定的目錄,并返回DIR * 形態(tài)的目錄流,DIR 并指向目錄流的第一位解釋:
9、60; 頭文件和opendir一樣 函數(shù)原型:struct dirent * readdir(DIR * dir); 函數(shù)說明 readdir()返回參數(shù)dir目錄流的下個目錄進入點。 Struct dirent這一段是結(jié)構(gòu)說明,基中解釋分別下: d_ino 此目錄進入點的inode d_off 目錄文件開頭至此目錄進入點的位移 d_reclen _name
10、的長度,不包含NULL字符 d_type d_name 所指的文件類型 d_name 文件名 (三)學(xué)完成代碼 在當前目錄創(chuàng)建新文件ls1.c;前輸入以下內(nèi)容 代碼: #include #include #include void do_ls(char );main(int
11、ac, char *av) if ( ac = 1 ) do_ls( '.' ); else while ( -ac ) printf('%s:n', *+av );
12、60; do_ls( *av ); void do_ls( char dirname )/* * list files in directory called dirname */ DIR *dir_ptr; /* the directory */
13、160; struct dirent *direntp; /* each entry */ if ( ( dir_ptr = opendir( dirname ) ) = NULL ) fprintf(stderr,'ls1: cannot open %sn', dirname); &
14、#160; else while ( ( direntp = readdir( dir_ptr ) ) != NULL ) printf('%sn', direntp->d_name ); closedir(dir_ptr); 保存并退出; (四)怎么編譯和運行 編寫好代碼好就要編譯了; linux的常用編譯工具就
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 平安普惠宣導(dǎo)課件
- 陜西省漢中市南鄭中學(xué)2026屆化學(xué)高三第一學(xué)期期中調(diào)研模擬試題含解析
- 2026屆山東省德州市樂陵市第一中學(xué)化學(xué)高二第一學(xué)期期中監(jiān)測試題含解析
- 福建焊工考試題庫及答案
- 并條工考試題庫及答案
- 幕墻門窗驗收課件
- 幕墻基礎(chǔ)知識培訓(xùn)課件講義
- 常用測量儀器培訓(xùn)課件
- 常州車燈基本知識培訓(xùn)課件店
- 帝宇HSF基礎(chǔ)知識培訓(xùn)課件
- 2025年度智能金融服務(wù)平臺保險業(yè)務(wù)居間服務(wù)合同
- KCA數(shù)據(jù)庫試題庫
- 《上肢靜脈血栓》課件
- 主要負責(zé)人全面安全檢查表
- 《采購部相關(guān)培訓(xùn)》課件
- 圍手術(shù)期的ERAS營養(yǎng)護理管理
- 高處作業(yè)非標吊籃專項施工方案
- 2024至2030年中國品牌戰(zhàn)略咨詢服務(wù)市場現(xiàn)狀研究分析與發(fā)展前景預(yù)測報告
- 2022版新《物理》義務(wù)教育課程標準教師培訓(xùn)測試題附答案
- 遼寧省丹東市2023-2024學(xué)年八年級下學(xué)期期末數(shù)學(xué)試卷(含答案)
- TSG+11-2020鍋爐安全技術(shù)規(guī)程
評論
0/150
提交評論