一、Linux目錄結構
Linux目錄結構和Windows目錄結構從實現(xiàn)機制來看是完全不同的:一種不同體現(xiàn)在目錄與存儲介質(磁盤,內存周循,DVD等)的關系上,Windows一直是以存儲介質為主的嚎研,主要以盤符(C盤临扮,D盤...)及分區(qū)來實現(xiàn)文件管理杆勇,然后下一層才是目錄饱亿,所以目錄就顯得不是那么重要了蚜退,除系統(tǒng)文件意外的用戶文件放在任何地方任何目錄都是沒有多大關系的。UNIX/Linux恰好相反,UNIX是以目錄為主的杰扫,Linux也繼承了這一優(yōu)良特性队寇。Linux是以樹形目錄結構的形式來構建整個系統(tǒng)的章姓,可以理解為一個用戶可操作系統(tǒng)的骨架佳遣。無論是目錄結構還是操作系統(tǒng)內核都是存儲在磁盤上的凡伊,但從邏輯上來說Linux的磁盤是“掛在”目錄上的零渐,每一個目錄不僅能使用本地磁盤分區(qū)的文件系統(tǒng)诵盼,也可以使用網(wǎng)絡上的文件系統(tǒng)蛹疯,比如利用網(wǎng)絡文件系統(tǒng)(NFS)載入某個特定目錄等。
1.FHS標準
Linux的目錄結構雖然復雜,但是它其中大部分目錄結構是規(guī)定好了的列吼,是符合FHS標準的幽崩,當你掌握好后,你的一切操作都會變得盡然有序寞钥。
FHS(英文:Filesystem Hierarchy Standard 中文:文件系統(tǒng)層次結構標準)歉铝,多數(shù)Linux版本采用這種文件組織形式。FHS定義了系統(tǒng)中每個區(qū)域的用途凑耻、所需要的最小構成的文件和目錄太示,同時還給出了例外處理與矛盾處理。
FHS定義了兩層規(guī)范:
第一層是規(guī)范了“/”下面的各個目錄應該要放什么文件數(shù)據(jù)香浩。例如/etc放置設置文件类缤,/bin與/sbin則應該要放置可執(zhí)行文件等等。
第二層是針對/usr及/var兩個目錄的子目錄來定義邻吭。例如/var/log放置系統(tǒng)登錄文件餐弱,/usr/share放置共享數(shù)據(jù)等等。
FHS詳細規(guī)范可參考:FHS_2.3 標準文檔
最直觀的查看系統(tǒng)目錄機構的方法是通過tree命令:
FHS是根據(jù)以往無數(shù)Linux用戶和開發(fā)者的經(jīng)驗總結出來的,并且會持續(xù)更新膏蚓,F(xiàn)HS依據(jù)文件系統(tǒng)使用的平凡與否以及是否允許用戶隨意改動(注意瓢谢,不是不能,是能否隨意)驮瞧,將目錄定義為四種交互作用的形態(tài)氓扛,如下表所示:
可分享的(shareable) | 不可分享的(unshareable) | |
---|---|---|
不可變的(static) | /usr(軟件文件) | /etc(配置文件) |
/opt(第三方軟件文件) | /boot(開機及內核文件) | |
可變動的(variable) | /var/mail(用戶郵件) | /var/run(程序相關) |
/var/news(新聞組) | /var/lock(文件鎖相關) |
2.目錄路徑
使用cd
命令可以切換目錄,在Linux里面使用.
表示當前目錄论笔,..
表示上一級目錄(以.
開頭的文件都是隱藏文件采郎,所以這兩個目錄都是隱藏的,可以通過ls -a
命令查看隱藏文件)狂魔,-
表示上一次所在目錄蒜埋,~
通常表示當前用戶的“home”目錄,使用pwd
可以獲取當前所在絕對路徑最楷。
絕對路徑:以根“/”目錄為起點的完整路徑整份;
相對路徑:以當前目錄“.”為起點,以要到的目錄為終點籽孙,如:
usr/local/bin
皂林;
相對路徑實際山并沒有加上當前目錄的那個“.”,而是直接以目錄名開頭蚯撩,因為usr目錄是當前目錄的子目錄础倍,;如果是當前目錄的上一級目錄胎挎,則需要使用“..”沟启。
提示:在進行目錄切換過程中,請多次使用Tab
鍵自動補全犹菇,可避免輸入錯誤德迹,連續(xù)按兩次Tab
可以顯示出全部候選結果
二、Linux文件的基本操作
1.新建
-
新建文件:
touch
揭芍,touch命令主要是來更改已有文件的時間戳的胳搞,但在不加任何參數(shù)的情況下,可以創(chuàng)建一個指定文件名的空白文件(不會覆蓋已有同名文件):
-
新建目錄
mkdir
称杨,mkdir命令可以創(chuàng)建一個空目錄肌毅,也可同時指定創(chuàng)建目錄的權限屬性:
2.復制
復制文件
cp
,cp命令復制一個文件或目錄到指定目錄姑原。-
復制目錄
cp -r
悬而,直接使用cp
命令復制一個目錄會報錯,要成功復制需要加上-r
或-R
:
3.刪除
-
刪除文件
rm
锭汛,rm命令刪除一個文件或目錄笨奠。刪除只讀文件需要使用-f
參數(shù)進行強制刪除:
-
刪除目錄
rm -r
袭蝗,跟復制目錄一樣,如果要刪除一個目錄般婆,也需要加上-r
或-R
參數(shù):
4.移動和重命名
-
移動文件
mv
到腥,mv命令用來移動文件,用法mv <filename> <dest-dir>
:
-
重命名文件
mv
蔚袍,mv命令也可以用來重命名文件乡范,用法mv <filename> <new-filename>
:
-
批量重命名
rename
,rename命令可以用來實現(xiàn)批量重命名页响。
rename
是先使用第二個參數(shù)的通配符匹配所有后綴為.txt
的文件篓足,然后使用第一個參數(shù)提供的正則表達式將匹配的這些文件的.txt
后綴替換成.c
段誊,這一點可以參考sed
命令闰蚕。
5.查看
標準輸入輸出:當我們執(zhí)行一個shell命令行時通常會自動打開三個標準文件:標準輸入文件(stdin),默認對應終端的鍵盤连舍;標準輸出文件(stdout)和標準錯誤輸出文件(stderr)没陡,這兩個文件都對應被重定向到終端的屏幕。進程從標準輸入文件中得到的輸入數(shù)據(jù)索赏,將正常輸出數(shù)據(jù)輸出到標準輸出文件盼玄,而將錯誤信息送到標準錯誤文件中。
-
使用cat潜腻,tac和nl命令查看文件
cat
:正序打印文件內容到標準輸出埃儿,cat -n
可以顯示行號。tac
:倒序打印文件內容到標準輸出融涣。-
nl
:添加行號并打印童番,這是比cat -n
更專業(yè)的行號打印命令。
-
使用more和less命令分頁查看文件
more
:默認只打開一屏內容威鹿,終端底部顯示當前閱讀的進度剃斧,使用Enter
向下滾動一行,使用Space
鍵向下滾動一屏忽你,按下h
顯示幫助幼东,q
退出。less
:集成了vi和more的功能科雳。
-
使用head和cat命令查看文件
head
:查看文件頭幾行(默認10行根蟹,不足10行顯示全部),結合-n
參數(shù)設置查看的行數(shù)糟秘。tail
:查看文件尾幾行娜亿,結合-n
參數(shù)設置查看的行數(shù),-f
參數(shù)實現(xiàn)不停地讀取某個文件尾部的內容并顯示蚌堵。
-
使用file查看文件類型
6.編輯
在Linux下編輯文件通常會直接使用專門的命令行編輯器(比如:emacs买决,vim沛婴,nano)。