檔案屬性相關
檔案的屬性
擴展名
windows 通過擴展名區分不同的型別的檔案
linux 擴展名是給人類看的 方便我們區分不同型別檔案
.conf 組態檔
.sh 腳本
.tar.gz 壓縮包
.py python腳本
[root@nfsnobody /tmp]# ll etc.tar.gz 查看壓縮包資訊
-rw-r--r-- 1 root root 9734648 Jul 20 01:41 etc.tar.gz
[root@nfsnobody /tmp]# mv etc.tar.gz etc.txt 給壓縮包改名
[root@nfsnobody /tmp]# ll et
etc/ etc-pai.tar.gz etc.txt ethers
[root@nfsnobody /tmp]# ll etc.txt 查看資訊
-rw-r--r-- 1 root root 9734648 Jul 20 01:41 etc.txt
[root@nfsnobody /tmp]# tar tf etc.txt 一樣可以打開
##證明Linux系統下 改擴展名不影響使用
檔案的型別
f file 檔案
d dir 目錄
l softlink 軟連接
b block 塊設備
c character 字符設備
p pipe 管道
s socket 套接字
[root@nfsnobody /tmp]# file /bin/ls /etc/hosts /tmp/etc-pai.tar.gz
##file可以查看檔案的詳細型別
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
/etc/hosts: ASCII text
/tmp/etc-pai.tar.gz: gzip compressed data, from Unix, last modified: Fri Jul 20 02:39:55 2018
####### file 檔案
1.二進制檔案(命令)
2.文本檔案(text)
3.資料檔案(data)需要單獨命令查看
檔案系統
1、磁盤(房子)
2、磁區(劃分隔斷)
3、格式化創建檔案系統(裝修)
4、掛載(安裝門窗)
5、存放檔案(住人)
Linux下的權限
對于一個檔案來說 系統中的用戶分為:主人 家人 陌生人
所有者 用戶組 其他人
r----read 可讀 4
w----write 可寫 2
x----execute 可執行 1
- 0
與用戶相關的檔案
/etc/passwd 用戶的資訊
/etc/shadow 用戶的密碼資訊
/etc/group 用戶組的資訊
/etc/gshadow 用戶組的密碼
/etc/passwd 下每一列的含義
root :x :0 :0 :root :/root :/bin/bash
nobody :x :99 :99 :Nobody :/ :/sbin/nologin
clsn :x :500 :500 : :/home/clsn :/bin/bash
用戶名 原來密碼的位置 UID GID 用戶的說明資訊 用戶的家目錄 命令解釋器
命令解釋器
默認的命令解釋器
/bin/bash 默認
/sbin/nologin 無法登陸系統--虛擬用戶
其他的命令解釋器
[root@nfsnobody ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
軟連接與硬鏈接
鏈接:軟連接(softlink 或 符號鏈接 symlink) 硬鏈接 (hard link)
硬鏈接
含義
在同一磁區中,檔案的inode號相同 則互為硬鏈接
硬鏈接即檔案的入口(超市的前后門)
作用
防止誤刪檔案
如何創建硬鏈接
ln 命令,前面是源檔案 后面是創建的鏈接檔案
[root@nfsnobody ~]# mkdir /nfsnobody 創建環境
[root@nfsnobody ~]# cd /nfsnobody/
[root@nfsnobody nfsnobody]# echo nfsnobody.com >>/nfsnobody/nfsnobody.txt
[root@nfsnobody nfsnobody]# cat nfsnobody.txt
nfsnobody.com
[root@nfsnobody nfsnobody]# ln nfsnobody.txt nfsnobody.txt.hard 創建硬鏈接
[root@nfsnobody nfsnobody]# ll -lhi 檢查 創建成功 兩個檔案inode號碼相同
total 8.0K
523268 -rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt
523268 -rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt.hard
[root@nfsnobody nfsnobody]# cat nfsnobody.txt 所查看內容一樣
nfsnobody.com
[root@nfsnobody nfsnobody]# cat nfsnobody.txt.hard 所查看內容一樣
nfsnobody.com
查看兩檔案的inode號相同,
[root@nfsnobody clsn]# ls -lhi clsn.txt clsn.txt-hard
151273 -rw-r--r-- 2 root root 607 Aug 30 09:13 clsn.txt
151273 -rw-r--r-- 2 root root 607 Aug 30 09:13 clsn.txt-hard
軟連接
含義
最常用
為了快捷,省事,方便使用
相當于windows 的快捷方式 存放的源檔案的位置
如何創建軟鏈接
不能對目錄創建硬鏈接 軟連接可以
[root@nfsnobody nfsnobody]# ln -s nfsnobody.txt nfsnobody.txt-soft 創建軟連接
[root@nfsnobody nfsnobody]# ls -l 檢查是否創建成功
total 8
-rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt
-rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt.hard
lrwxrwxrwx. 1 root root 10 Jul 10 21:13 nfsnobody.txt-soft -> nfsnobody.txt 創建成功
使用絕對路徑創建 顯示的資訊也是絕對路徑 相對路徑創建 顯示的就是相對路徑
[root@nfsnobody ~]# ln -s /nfsnobody/nfsnobody.txt /nfsnobody/nfsnobody.txt.1
[root@nfsnobody ~]# ls -l /nfsnobody/
total 8
-rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt
lrwxrwxrwx. 1 root root 18 Jul 10 21:16 nfsnobody.txt.1 -> /nfsnobody/nfsnobody.txt
源檔案消失(移動改名洗掉等) 查看資訊 軟連接對應的源檔案就會變紅(紅底白字)
檔案洗掉原理
硬連接數為0
行程呼叫數為0 是否有人使用
如何查看被占用的檔案
lsof (list open files ) 顯示所有被占用的檔案
模擬環境
xshell開啟兩個視窗 先運行視窗二 在運行視窗一
視窗1
lsof |grep nfsnobody.txt
視窗2
tail -f /nfsnobody/nfsnobody.txt
查看行程
[root@nfsnobody /nfsnobody]# lsof |grep nfsnobody.txt
tail 3755 root 3r REG 8,3 14 1046996 /nfsnobody/nfsnobody.txt
命令或服務名稱 檔案大小 inode號碼 檔案名
軟連接與硬鏈接之間的區別
創建的區別
ln命令創建硬鏈接,ln -s 創建軟鏈接
含義
在同一磁區硬鏈接檔案與源檔案的inode節點號相同,而軟鏈接檔案相當于windows的快捷方式(inode節點號與源檔案不同)
特點
不能對目錄創建硬鏈接,但可以創建軟鏈接,對目錄的軟鏈接會經常被用到
軟連接可以跨檔案系統,硬鏈接不可以跨檔案系統
源檔案 軟連接 硬鏈接與洗掉
洗掉軟連接檔案,對源檔案及硬鏈接檔案無任何影響
洗掉檔案的硬鏈接檔案,對源檔案及軟連接檔案無任何影響
洗掉連接檔案的源檔案,對硬鏈接檔案無影響,會導致其軟連接失效(紅底白字)
同時洗掉源檔案及硬鏈接檔案,整個檔案才會被“真正”洗掉
檔案洗掉但空間未被釋放案例
模擬:檔案沒有被徹底洗掉(i_link)為0 行程呼叫數(i_count)不為0
沒有被徹底洗掉-硬鏈接數為0,行程呼叫數不為零
/var/log/messages
查看磁盤使用
[root@nfsnobody nfsnobody]# df -h df -h查看磁盤的使用情況
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 6.1G 12G 35% / / 使用最多
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
[root@nfsnobody nfsnobody]# du -sh /* |sort -h 使用du -sh /*一層層排查
[root@nfsnobody nfsnobody]# du -sh /var/* |sort -h 排查程序
[root@nfsnobody nfsnobody]# du -sh /var/log/* |sort -h 找到占用空間最多的
[root@nfsnobody nfsnobody]# \rm -f /var/log/messages 確認無用處之后 再洗掉
[root@nfsnobody nfsnobody]# df -h 洗掉后檢查發現空間并沒有被釋放
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 6.1G 12G 35% / 并沒有被釋放
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
[root@nfsnobody nfsnobody]# lsof |grep messages 使用lsof 查看檔案是否被呼叫
rsyslogd 1247 root 1w REG 8,3 4888993470 135456 /var/log/messages (deleted)
deleted lsof的標記 表示檔案硬連接數為0 行程呼叫不為0
[root@nfsnobody nfsnobody]# /etc/init.d/rsyslog restart 重啟行程
[root@nfsnobody nfsnobody]# df -h 查看磁盤的使用情況
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.5G 17G 9% / 磁盤空間被釋放
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
重啟行程后/var/log/messages也會重新被創建 但是空間已被釋放
如何找通過inode號找硬鏈接
使用find命令 -inum引數找inode號碼,找到相同的inode 互為硬鏈接,
[root@nfsnobody ~]# ls -lhi test.txt
260141 -rw-r--r--. 2 root root 265 Aug 29 19:16 test.txt
[root@nfsnobody ~]# find /* -type f -inum 260141
/root/test.txt
/root/test.txt-hard
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/149735.html
標籤:Linux
上一篇:第二周第一次
下一篇:檔案的權限
