文件相關的屬性與命令
一、文件的屬性
文件大小、時間、類型、權限、屬主

1列 2列 3列 4列 5列 6列 7列 8列 9列 10列
(1)inode索引節點編號:文件的唯一標識
(2)文件類型及權限。該列一共11個字符,其中第一個字符為文件類型,隨后9個字符為文件對應的權限,最后一個字符“.”和selinux有關的一個標識
(3)硬連接數
(4)屬主,文件的擁有者,用戶
(5)屬組,文件屬于的組,用戶組
(6)文件的大小
(7)月
(8)日
(9)時間
(10)文件名
二、文件類型
1、“-”代表普通文件
普通文件又分:a、純文本文件:字符、數字等內容
b、數據文件:存放命令收集的信息
c、二進制文件:可執行的命令
2、“d”代表目錄
3、“l”代表符號鏈接(軟鏈接)文件。本質是一個快捷方式
創建軟鏈接的方法:ln -s 源文件 軟連接;(如:ln -s a.txt a_softlink)
刪除軟鏈接:rm
4、字符(character)/塊(block)設備文件
以“c”開頭的是字符設備,以“b”開頭的是塊設備(硬盤、光驅)
5、以“s”開頭的,套接口(socket)文件
三、與文件相關的命令
1、file 文件:查看文件類型
2、which:查命令的全路徑
注意:變量:$PATH
問題:為什么我們不管在什么路徑下面輸入命令都可以找到呢?用which命令一找,發現命令的路徑在其他路徑下面,就是因為$PTATH變量
當我們輸入命令的時候,系統就會自動到$PATH變量的路徑下面去找這個命令
$PATH的路徑:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
3、whereis:顯示命令、源碼、及其相關文件全路徑
whereis命令是定位可執行文件、源代碼文件、幫助文件在文件系統中的位置。這些文件的屬性應屬于原始代碼,二進制文件
參數:-b:查二級制命令
例如:whereis -b cp
4、locate:快速定位文件路徑
該命令查找文件路徑,是從數據庫(/var/lib/mlocate/mlocate.db)里面來查找,使用之前需要用命令updatedb更新該數據庫
例如:locate cp
5、find:查找目錄下的文件
查找原理:磁盤遍歷,速度慢
格式:find 查找路徑 查找條件 處理動作
find 哪個路徑 -name 文件全名;(find ~ -name "a.txt":從當前用戶的家目錄開始查找)
名字的模糊查找:find / -name "*txt"
(1)-name,按文件名稱查找:find ~ -name "a.txt";(注意:-iname:是區分文件名的大小寫)
(2)-type,按文件名稱和類型查找:find / -type f -name "a.txt"
(3)-o,按文件名稱或者文件類型查找:find / -type f -o -name "a.txt"
(4)-mtime,按修改時間查找:find / -type f -mtime +3 -name "a.txt";+3:天之前,-3:最近3天,3:3天
(5)-size:按文件大小來查找:-size "3k"
(6)-exec,對查找的結果在處理:find / -type f -name "a.txt" -exec ls -l {} \;
6、xargs:分組或者從標準輸入執行命令,以空格來分組的(只能從標準輸入那里取數據)
默認是對空格來分組,如果沒有空格也需要分組可以用參數-d
格式:xargs -n 3<a.txt
參數:-n:幾個東西一個組
-d:指定分隔符,不指定默認是空格。如:xargs -d "." -n 2 <a.txt
-i:把前面查找的結果放到大括號里面
例子:find / -type f -name "a.txt"|xargs -i{} cp {} /opt;把前面找到的文件批量復制到/opt目錄下
find / -type f -name "a.txt" -exec cp {} /opt;
7、打包壓縮命令
(1)tar
格式:tar -zcvf 包名 文件;(參數:zcvf壓縮)
z:打包,c:創建,v:輸出打包過程,f:文件
查看打包過程:tar -tf 包名
8、解壓命令
(1)tar
參數:-h:打包軟鏈接文件指向真實源文件。即就是打包軟鏈接文件時把對應的源文件也一塊打包
格式:tar -zxvf 包名;解壓到當前目錄下
tar -zxvf 包名 -C 指定目錄;解壓到指定的目錄下
9、stat 查看文件屬性:stat a.txt
參數:-c:獲取文件屬性的一部分。如果:stat -c %A a.txt;讀取文件權限
10、df 查看文件系統
參數:-i 查看inode信息
-h 以人類可讀的形式查看block信息
四、文件屬性?
1、用戶
Linux是多用戶多任務的操作系統
Linux里面所有的文件和進程都要有用戶對應
(1)用戶的分類:
a、超級管理員root。它的UID為0,換句話說UID為0的都有超級管理員的權限
命令:id 用戶;查詢用戶的信息
whoami;查看當前用戶是誰
b、虛擬用戶:實際存在的用戶,但是又不允許登陸。(UID的范圍是1-499)
作用:能夠滿足文件或進程運行屬主的要求,但是又不會帶來管理的風險
c、普通用戶:實際存在,又允許登陸。由管理創建,管理系統的
權限僅限于家目錄,在一些系統級目錄里可以讀不可寫,不能進入/root目錄
(2)和用戶有關的命令
1)id 用戶;查詢用戶信息
2)whoami;查詢當前用戶是誰
3)創建用戶:useradd 用戶名;
2、用戶組
Linux里面每一個用戶都必須有一個用戶組
默認情況下創建用戶,它會自動創建一個和用戶名相同的用戶組以及相同的GID
(1)用戶和用戶組的對應關系
用戶和用戶組之間對應關系可以是1對1 ,1對多,多對1,多對多
(2)和用戶組有關的命令
1)創建用戶組:groupadd 組名;
3、文件權限
例子:rwx r-x r-x (9個字符組成的字符串,3個一組)
用戶權限 用戶組權限 其他權限(其他用戶和其他用戶組)
r:read 可讀取(可用4代表)
w:write 可寫(可用2代表)
x:execute 可執行(可用1代表)
-:沒有權限(可用0代表)
4、文件時間
分類:a、修改時間:modify(文件內容被修改的時間)
b、訪問時間:access(文件被讀取過的時間)
c、變化時間:change(文件屬性發生變化的時間)
ls 查看的時間是文件的修改時間,如果要查看文件的這三種時間可以用:stat a.txt
命令:查看文件屬性 stat a.txt
參數:-c:獲取文件屬性的一部分。如果:stat -c %A a.txt;讀取文件權限
5、文件的索引節點(Index Node)
索引節點是文件在系統中的唯一標識,我們找文件都是通過文件索引節點來找到的。
索引節點是硬盤上的一塊存儲空間,大小為:256B或512B
索引節點存放的是數據是文件的屬性(大小、時間、用戶、用戶組、權限等)都在索引節點里面,但唯獨不包括文件名。文件名在上級目錄的block里
索引節點怎么來的?一個硬盤要想使用必須先分區,然后格式化(創建文件系統),格式化創建文件系統的時候就會生成inode和block
inode作用是用來存儲文件的屬性信息,同時存放指向文件實體(block)的指針(類似軟鏈接)。block作用是用來存放文件內容的
讀取文件的過程:先看到的是文件名(上一級目錄的block中)——>inode(存放文件屬性和指向文件實體的指針)——>block(存放文件實體內容)
例如:cat /etc/a.txt :先找"/"—>然后找根目錄的inode—>然后找根目錄的block(etc文件名存放于此)—>etc的inode—>etc的block(a.txt存放于此)—>a.txt的inode—>a.txt的block
(1)inode的特點:
1)ext3/ext4文件系統(CentOS5和6默認的文件系統)下,一個非空文件至少要占用一個inode(有且只有一個)和一個block(可以有多個)
2)inode節點號相同的文件,互為硬鏈接文件。可以認為是一個文件的不同入口
3)inode在某一個文件系統(分區)中是唯一的
(2)block(磁盤塊)特點
1)磁盤讀取數據是按block為單位讀取的
2)每讀取一個block就會消耗一次磁盤I/O
3)若文件比較大,一個文件可能占用多個block
4)若文件比較小,一個block剩余空間會被浪費,無論內容有多小
6、第二列文件權限后面的點“.”是標識selinux的符號
selinux是安全規則,目的是讓linux系統更加安全。該規則太嚴格一般企業都是關閉的,要達到安全目的可以用防火墻等其他手段
命令:getenforce:查看
setenforce 1/0:臨時關閉
永久關閉:在配置文件:/etc/selinux/config中修改SELENIUX的值
防火墻的知識:linux里面防火墻C6:iptables,C7:firewalld
C7:
查看防火墻的狀態:systemctl status firewalld.service
啟動防火墻: systemctl start firewalld.service
防火墻開機自啟動:systemctl enable firewalld.service
不是開機自啟動:systemctl disable firewalld.service
C6:
查看防火墻狀態:service iptables status
啟動防火墻:service iptables start/restart;或者 /etc/init.d/iptables start
關閉防火墻:service iptables stop;
開機自啟動防火墻:chkconfig iptables on
開機不自啟動防火墻:chkconfig iptables off
7、硬鏈接
(1)什么是硬鏈接?
具有相同inode節點號的文件互為硬鏈接。
其實我們可以這樣理解一個文件在系統中的存儲分為3個部分:文件名、inode、文件內容。如何找到一個文件先找到文件名
然后根據文件名找到文件的索引節點,其中inode中存儲了文件的屬性信息,然后根據inode中的信息找到存儲在block中的
文件內容。所以硬鏈接就是指向同一個文件的inode的不同的文件名
注意:在linux系統中不支持人工創建目錄的硬鏈接
(2)新建硬鏈接
格式:ln 要硬鏈接的文件 硬鏈接名;
例子: ln ./a.txt /home/a_hard_link ;
(3)硬鏈接的作用:1)備份數據
(4)靜態文件刪除原理:
1)靜態文件:沒有進程或程序正在訪問的文件
2)刪除原理:該文件的所有的硬鏈接數為0,即所有的硬鏈接都被刪除,包括自身。即文件就被刪除
動態文件:有進程或程序訪問的文件
刪除條件:1)硬鏈接數為0
2)所有進程調用都要停止或者取消
8、軟鏈接
本質是一個快捷方式,指向源文件實體,本身和源文件是不同的文件。
其實可以理解為:軟鏈接,就是創建一個快捷方式,指向上面的文件名,然后通過文件名找文件的inode然后找文件內容,
所以刪除源文件的文件名軟鏈接也無法訪問該文件。軟鏈接也是一個沒有內容block的文件
1)創建軟連接
ln -s a.txt a_soft_link;
特點:a、刪除源文件,那么軟鏈接也無法訪問改文件
b、目錄也可以創建軟鏈接
c、想從一個目錄去訪問另一個目錄的時候可以用軟鏈接
浙公網安備 33010602011771號