一、查看文件大小、文件夾子目錄
1、查看文件系統磁盤大小、掛載點
- df : 可以查看一級文件夾大小(默認單位為:k)、使用比例、檔案系統及其掛入點(但對文件卻無能為力)。
- df -T : 顯示分區的文件系統(不帶單位,默認為k;結果中包含分區文件類型Type)
- df -h : 顯示文件系統的可用空間及使用情形(采用用戶易讀的方式)
概念解析:掛載點 Linux是樹型目錄結構,Linux只有一個根目錄'/',其余各個目錄都是基於這個根目錄發散,就是樹形結構。Linux分區是將某個分區掛到一個對應的目錄上。例如/home對應一塊分區,home目錄就是這塊分區的掛載點;/boot對應一塊分區,boot目錄就是這塊分區的掛載點;/usr對應一塊分區,usr目錄就是這塊分區的掛載點。你可以形象的理解:一棵大樹(根目錄/)有很多樹枝(目錄,掛載點),每個樹枝上都掛着一個箱子(分區,存儲空間)。
雖然硬盤分區表中最多能存儲四個分區,但我們實際使用時一般只分為兩個分區,一個是主分區(Primary Partion)一個是擴展分區(extended partition)兩種,主分區可以馬上被使用但不能再分區,擴展分區必須再進行分區后才能使用,也就是說它必須還要進行二次分區。那么由擴充分區再分下去的是什么呢?它就是邏輯分區(Logical Partion),況且邏輯分區沒有數量上限制。
Linux無論有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構。每個分區都是用來組成整個文件系統的一部分,因為它采用了一種叫“掛載點”的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯系起來。這時要載入的一個分區將使它的存儲空間在一個目錄下獲得。
Linux的分區是不同於其它操作系統的分區,它的分區格式常用的有Ext3和Swap兩種,Ext3用於存放系統文件,Swap則作為交換分區(相當於windows中的虛擬內存文件)。
推薦閱讀: Linux系統分區及掛載點概念解析
概念解析:tmpfs
tmpfs是一種虛擬內存文件系統,而不是塊設備。是基於內存的文件系統,創建時不需要使用mkfs等初始化。它最大的特點就是它的存儲空間在VM(virtual memory虛擬內存),VM 是由linux內核里面的vm子系統管理的。
linux下面VM的大小由RM(Real Memory真實內存)和swap組成,RM的大小就是物理內存的大小,而Swap的大小是由自己決定的。Swap是通過硬盤虛擬出來的內存空間,因此它的讀寫速度相對 RM 要慢許多,當一個進程申請一定數量的內存時,如內核的 vm 子系統發現沒有足夠的 RM 時,就會把 RM 里面的一些不常用的數據交換到Swap里面,如果需要重新使用這些數據再把它們從Swap交換到 RM 里面。如果有足夠大的物理內存,可以不划分Swap分區。
推薦閱讀: tmpfs介紹及使用
2、查看文件(文件夾)大小
- du :可以查看文件及文件夾的大小。
- du -sh 文件夾路徑 : 查看當前目錄下各個文件及目錄占用空間大小
- du -h --max-depth=1 文件夾路徑 : max-depth指定深入子目錄的
3、查看文件夾包含的內容(子目錄)
- ls 文件夾路徑 : 查看文件夾下的子目錄(結果中不包含隱藏的文件)
- ls -a 文件夾路徑 : 查看文件夾下的子目錄,結果中包含隱藏的文件(-a)
- ls -l 文件夾路徑 : (此命令可簡寫為:ll) 查看文件的詳細信息,包括修改權限、所屬用戶、字節大小、更新時間等
二、chmod 命令:修改文件/文件夾權限
chmod命令是非常重要的,用於改變文件或目錄的訪問權限。用戶用它控制文件或目錄的訪問權限。
該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
1、文字設定法
chmod [who] [+ | - | =] [mode] 文件名稱/文件夾名稱
注:chmod命令可加入其它額外的參數,如:chmod -R ,將文件夾的子目錄的權限也一起修改
命令中各選項的含義為:
(1)操作對象who可是下述字母中的任一個或者它們的組合:
- u 表示“用戶(user)”,即文件或目錄的所有者。
- g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。
- o 表示“其他(others)用戶”。
- a 表示“所有(all)用戶”。它是系統默認值。
(2)操作符號可以是:
- + 添加某個權限。
- - 取消某個權限。
- = 賦予給定權限並取消其他所有權限(如果有的話)。
(3)設置mode所表示的權限可用下述字母的任意組合:
- r 可讀。
- w 可寫。
- x 可執行。x只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
2、數字設定法
我們必須首先了解用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然后將其相加。所以數字屬性的格式應為3個從0到7的八進制數,其順序分別代表用戶(u)、用戶組(g)、其它用戶(o)的所擁有的操作權限。

三、修改所屬用戶和用戶組
1、chown命令:用來修改文件或文件夾的所屬用戶和用戶組。
chown 所屬用戶:所屬用戶組 -R 文件名
以下列舉了三個chown命令的修改例子:
- chown sinosoft ./test/ 修改test文件夾的所屬用戶為:sinosoft
- chown sinosoft:sinosoft ./test/ 修改test文件夾的所屬用戶為:sinosoft,所屬用戶組為:sinosoft
- chown :sinosoft ./test/ 修改test文件夾的所屬用戶組為:sinosoft
2、chgrp命令:修改所屬用戶組
使用chgrp命令可以修改文件或目錄所屬的組:
chgrp 用戶組名稱 目錄或文件名
四、文件壓縮 與 文件解壓縮
打包,即文件壓縮,是指將一大堆文件或目錄什么的變成一個總的文件;
壓縮,則是將一個大的文件通過一些壓縮算法變成一個小文件。
1、tar 命令
tar 可以為文件和目錄創建檔案。利用tar,用戶可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案,如軟盤。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文件或將 幾個文件組合成為一個文件以便於網絡傳輸是非常有用的。Linux上的tar是GNU版本的。
1)操作".tar"文件:
打包 : tar -cvf 新文件名稱.tar 源文件1 源文件2 源文件3
解壓 : tar -xvf 源文件名稱.tar
2)操作".tar.gz"文件
打包 : tar -cvf 新文件名稱.tar 源文件1 源文件2 源文件3
解壓 : tar -xvf 源文件名稱.tar
tar命令語法:
tar [主選項+輔選項] 文件或者目錄 主選項: c 創建新的檔案文件。 r 把要存檔的文件追加到檔案文件的未尾。 t 列出檔案文件的內容,查看已經備份了哪些文件。 u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最后。 x 從檔案文件中釋放文件。 輔助選項: b 該選項是為磁帶機設定的。其后跟一數字,用來說明區塊的大小,系統預設值為20(20*512 bytes)。 f 使用檔案文件或設備,這個選項通常是必選的。 k 保存已經存在的文件。例如我們把某個文件還原,在還原的過程中,遇到相同的文件,不會進行覆蓋。 m 在還原文件時,把所有文件的修改時間設定為現在。 M 創建多卷的檔案文件,以便在幾個磁盤中存放。 v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。 w 每一步都要求確認。 z 用gzip來壓縮/解壓縮文件,加上該選項后可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。
例子: # tar -cf all.tar *.jpg 這條命令是將所有.jpg的文件打成一個名為all.tar的包。-c是表示產生新的包,-f指定包的文件名。 # tar -rf all.tar *.gif 這條命令是將所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif 這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 # tar -tf all.tar 這條命令是列出all.tar包中所有文件,-t是列出文件的意思 # tar -xf all.tar 這條命令是解出all.tar包中所有文件,-x是解開的意思 以上就是tar的最基本的用法。
為了方便用戶在打包解包的同時可以壓縮或解壓文件,tar提供了一種特殊的功能。這就是tar可以在打包或解包的同時調用其它的壓縮程序,比如調用gzip、bzip2等。 1) tar調用gzip gzip是GNU組織開發的一個壓縮程序,.gz結尾的文件就是gzip壓縮的結果。與gzip相對的解壓程序是gunzip。tar中使用-z這個參數來調用gzip。下面來舉例說明一下: # tar -czf all.tar.gz *.jpg //將所有.jpg的文件打成一個tar包,並且將其用gzip壓縮,生成一個gzip壓縮過的包 # tar -xzf all.tar.gz //這條命令是將上面產生的包解開。 對於.gz結尾的文件,gunzip解壓命令如下: gzip -d all.gz gunzip all.gz 2) tar調用bzip2 bzip2是一個壓縮能力更強的壓縮程序,.bz2結尾的文件就是bzip2壓縮的結果。與bzip2相對的解壓程序是bunzip2。tar中使用-j這個參數來調用bzip2。下面來舉例說明一下: # tar -cjf all.tar.bz2 *.jpg //將所有.jpg的文件打成一個tar包,並且將其用bzip2壓縮,生成一個bzip2壓縮包 # tar -xjf all.tar.bz2 //這條命令是將上面產生的包解開。 對於.bz2結尾的文件 ,bunzip2解壓命令如下: bzip2 -d all.bz2 bunzip2 all.bz2 3)tar調用compress compress也是一個壓縮程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z結尾的文件就是compress壓縮的結果。與 compress相對的解壓程序是uncompress。tar中使用-Z這個參數來調用gzip。下面來舉例說明一下: # tar -cZf all.tar.Z *.jpg //將所有.jpg的文件打成一個tar包,並將其用compress壓縮,生成一個compress壓縮包 # tar -xZf all.tar.Z //這條命令是將上面產生的包解開 對於.Z結尾的文件,uncompress解壓命令如下: uncompress all.Z
2、zip命令
對於Window下的常見壓縮文件.zip,Linux也有相應的方法來解壓它們:
linux下提供了zip和unzip程序,zip是壓縮程序,unzip是解壓程序。
(1)安裝zip命令
安裝zip/unzip服務
$ sudo yum install zip unzip
(2)文件打包
# zip all.zip *.jpg //將所有.jpg的文件壓縮成一個zip包 # zip -r all.zip ./* //將當前目錄下的所有文件和文件夾全部壓縮成all.zip文件,-r表示遞歸壓縮子目錄下所有文件
(3)解壓文件
# unzip all.zip //把all.zip文件解壓到當前目錄下 # unzip -o -d /home/sunny all.zip //把all.zip文件解壓到 /home/sunny/ // -o:不提示的情況下覆蓋文件; // -d:指明將文件解壓縮到/home/sunny目錄下;
3、jar命令
JAR包是Java中所特有一種壓縮文檔,其實大家就可以把它理解為.zip包。當然也是有區別的,JAR包中有一個META-INF\MANIFEST.MF文件,當你找成JAR包時,它會自動生成。
JAR包是由JDK安裝目錄\bin\jar.exe命令生成的,當我們安裝好JDK,設置好path路徑,就可以正常使用jar.exe命令,它會用lib\tool.jar工具包中的類。
JAR包是由JDK安裝目錄\bin\jar.exe命令生成的,當我們安裝好JDK,設置好path路徑,就可以正常使用jar.exe命令,它會用lib\tool.jar工具包中的類。
(1)創建打包文件,並顯示打包過程
$ jar -cvf 新文件名稱.jar 源文件或源文件夾
(2)顯示jar包
$ jar -tvf 文件名稱.jar
(3)解壓jar包
$ jar -xvf 文件名稱.jar