1.linux ls -lhi 命令詳解
1.1 ls -ilh每一行含義
ls -ilh /etc/
執行結果如下(截取部分)
33926932 drwxr-xr-x. 3 root root 101 Mar 28 16:35 abrt
17192799 -rw-r--r--. 1 root root 16 Mar 28 16:39 adjtime
第一列:代表inote號碼,就像人的身份證號碼一樣,在同一磁盤分區
下,是唯一的,系統識別的就是inote號碼第二列:文件類型
- 代表普通文件
d 代表目錄
l 代表軟鏈接,符號鏈接
c 字符設備 提供用戶的輸入輸出
本地連接會被系統分配到 /dev/tty
遠程網絡連接會被系統分配到 /dev/pts/xxx
b 和塊設備 U盤,磁盤分區,都被系統認為是塊設備
- 第三列:執行權限,按照三個一組分
r 只讀
w 寫入
x 執行
(權限當中‘-’表示沒有此位的權限) - 第四列 硬鏈接數量
- 第五列 所有者
- 第六列 所屬組
- 第七列 文件大小
- 第八列 文件創建日期
- 第九列 文件名(
文件名不是文件屬性
)
- 注:權限后邊的點,與selinux相關
2.linux文件屬性
2.1 inode與block
在linux系統設備或者存儲設備的分區被格式化為文件系統后,主要分為兩部分,第一個部分是inode 第二部分是block
inode (index node) 索引節點,linux 系統中文件的身份證號,同一個磁盤分區內inode號是唯一的
block block 用來存儲實際數據,inode用來存儲文件的屬性信息(ex: 文件類型,權限,所屬用戶,所屬組,修改時間...)
inode特點:inode 在文件系統是唯一的,一個文件至少要占用一個inode以一個block,多個文件可以占用一個block ???? inode (硬鏈接)
block特點 一個block只能被一個文件使用,如果文件很小,但block很大,會造成剩余空間浪費,無法繼續唄其他文件使用。注:block 余量不足會報警磁盤空間不足,同樣inode余量不足時也會報警磁盤空間剩余不足
2.2 軟鏈接與硬鏈接
硬鏈接
指通過索引節點(Inode) 來進行連接,在linux文件系統中 ,保存在磁盤空間中的文件都會分配一個Inode,在linux 中,多個文件,用有一個索引節點成文硬鏈接
軟鏈接
軟鏈接也叫符號鏈接(symbolick link)是一個包含指向另一個文件的inode的信息的文本文件,然后通過inode訪問數據block 原文件刪除則軟鏈接失效,查看文件時軟鏈接會閃爍(當原文件被刪除)就像是windows中的快捷方式。
軟鏈接創建命令
ln 【原文件】【目標文件(創建位置)】 創建硬鏈接
ln -s 【原文件】【目標文件(創建位置)】 創建軟鏈接
注意:軟鏈接可以跨分區創建,但是硬鏈接無法跨分區創建,因為inote不同磁盤不是唯一
- 操作實例
為'/oldboy/test.txt' 創建硬鏈接
命令:'ln /oldboy/test.txt /tmp/test.hard'
為'/oldboy/test.txt' 創建軟鏈接
命令:'ln -s /oldboy/test.txt /tmp/test.soft'
軟鏈接的快捷指定方便于以后業務的升級與回推,升級更新出現問題,很快就可以將版本返回到舊的版本,非常方便,效率高效
硬鏈接小結
1. 硬鏈接,具有與原文件相同inode的不同文件名
2. 刪除硬鏈接或者原文件之一,文件實體(block)不會被刪除
3. 刪除硬鏈接,數據會被在磁盤檢查或者新數據寫入時候刪除回收,誤刪除,可通過另一個硬鏈接創建回來
4. 可以給文件創建硬鏈接防止誤刪除,最好還是備份
5. rm -f 刪除硬鏈接
6. 文件目錄不可以創建硬鏈接
7.創建硬鏈接' ln 【原文件】【目標文件(創建位置)】 '
軟鏈接小結
1. 軟鏈接類似快捷方式,存放原文件路徑,執行原文件
2. 刪除原文件,軟鏈接依然存在嗎,但是失效
3. 創建軟鏈接' ln -s 【原文件】【目標文件(創建位置)】'
4. 軟鏈接和原文件是不同類型文件,inode不同
5. 可以創建目錄和文件的軟鏈接,可以跨區
-
軟鏈接失效實例
軟鏈接失效
實踐:描述linux中軟鏈接與硬鏈接的區別
1.刪除文件軟鏈接對硬鏈接無影響
2.刪除文件硬鏈接對文件及軟鏈接文件無影響
3.刪除原文件對硬鏈接讀取數據,文件軟鏈接失效
4.同時刪除原文件和硬鏈接,軟鏈接則失效
5.很多硬件設備中的快照,類似于硬鏈接原理
6.從定義上,鏈接有兩種,一種為軟鏈接,類似于快捷方式,存放指向原文就得inode信息,于原文件inode不同,硬鏈接,與原文件有相同的inode,可以指向數據block
7.從創建方式上 硬鏈接創建 ln 【原文件】【目標文件】硬鏈接 ln -s 【原文件】【目標文件】
8.從創建對象上,文件目錄不能創建硬鏈接,但是目錄可以創建軟鏈接,因為軟鏈接可以跨文件系統,硬鏈接則不能,同一個文件,不同分區inode節點號相同,但是不是同一個文件
3. 文件屬性命令
3.1 which
which [文件] 顯示命令的全路徑 包括幫助信息路徑
-
操作實例
which命令
3.2 whereis
whereis [命令] 查看命令及相關內容
-
操作實例
whereis命令
3.3 tar
tar 打包壓縮命令
常用選項:
'z' 通過gzip這個軟件壓縮文件
'c' create 創建, 打包文件,與z一起使用,否則還是占用空間
'v' verbose顯示壓縮過程
'f' file 指定壓縮文件位置
't' 查看壓縮文件
'x' 解壓縮
- 操作實例
將/etc/的文件打包壓縮到/tmp/etcback
tar zcf /tmp/etcback etc/
-
操作實例
tar備份etc目錄
查看壓縮包
tar -tf /tmp/etcback
-
操作實例
查看壓縮包
解壓縮
tar xf /tmp/etcback 不指定路徑默認解壓到當前目錄
-
操作實例
解壓縮
解壓到指定位置選項 ' -C' 注意大寫
- 操作實例
3.4 date
查看修改系統時間
常用選項
%Y 年
%m month 月
%d 日
%F= %Y-%m-%d 顯示年月日 2019-4-16
%H hour 小時
%M minute 分鐘
%S sec 秒
%T=%H:%M:%S 顯示日期 21:24:42
- 操作實例
同步網絡時間 'ntpdate ntp1.aliyun.com' (需要安裝ntpdate包, yum install -y ntpdate)
- 操作實例
3.5 find
find 查找目錄下文件
格式 find 【搜索的目錄】【選項】【參數】
find /etc/ -type f -name "*.txt"
查找/etc/文件名以.txt結尾的普通文件
常見選項:
-name 名字
-type 類型 f 普通文件 d 目錄 l 軟鏈接
-size 大小 size +1M 大于1M size -100k 小于 100k
-iname 搜索文件名不區分大小寫
-maxdepth 最大查找多少層,'注意:一定要放在最前面(否則會報錯)' maxdepth1 是該目錄下一層進行搜索
-
操作實例
-name
4 特殊符號與通配符
4.1 特殊符號
"$" 普通用戶提示符,放在變量前面,'代表變量內容 輸出變量要在變量前加入 $'
"#" 注釋,給人看的。機器忽略,root提示符
"| " 管道符 把一個命令的標準輸出作為標準輸入傳給另一個命令!
"\ " 逃脫符,即將有特殊含義的字符還原成字符本意,例如 echo \$ 僅代表$符號
" ; " 表示命令的結束,也是命令間的分隔
4.2 表示位置的特殊符號
. cd . 回到當前目錄
.. cd .. 回到上一級目錄
~ cd ~ 回到當前用家目錄
- cd - 回到上一次操作的目錄下
'注:直接輸入 cd 命令回到當前用戶家目錄'
4.3 重定向符號
'>' 或 '1>' 標準輸出重定向 覆蓋原文件內容
'>>' 或 '1>>' 標準追加輸入重定向 不覆蓋文件內容,追加
'2>' 標準追加錯誤重定向,把錯誤信息追加到文件結尾
'2>>' 標準錯誤輸出重定向, 先清空文件,然后把錯誤信息寫入文件中
4.4 引號系列
單引號 ' 單引號 引號里面是啥,就一直是啥不會改變,輸出和處理,都是所見即所得
雙引號 "" 雙引號 與單引號相似,但是雙引號里面的特殊符號會被解析,執行,然后輸出
不加引號 與雙引號一樣,支持花括號,比如生成序列,創建有規律的文件或者目錄
反引號 `` 反引號 引命令的 等價$() 優先處理符號內的命令,符號內必須是命令,否則會報錯
4.5 通配符
"*" 匹配任何字符串或文本,包括空字符串 常用于操作文件,可于很多命令搭配使用
"{}" 1. 生成序列,用于創建多個有規律的文件或者目錄
2.引用變量作為變量與普通字分隔
"?" 匹配一個字符,* 可以匹配任意字符,沒有個數限制,但是? 輸入幾個就匹配幾個字符或者文本