Linux文件管理

文件系統結構元素
在這裏插入圖片描述
📮/boot 啓動
在這裏插入圖片描述
/dev 存放設備
b:block 塊設備 c:charactor 字符設備
在這裏插入圖片描述
🚿/etc 存放配置文件,等價於Windows內的註冊表
在這裏插入圖片描述
✉️/home 存放用戶數據
用戶登錄後默認進入自己的/home目錄.
🔍/run 存放運行中生成的數據
💉/bin 存放用戶可執行的二進制(binary)文件,存放普通用戶使用的工具,/sbin 存放系統管理員(即root)使用的工具
📒/tmp 存放臨時數據 /usr存放操作系統大部分文件 /var存放可變內容(如日誌/var/log,緩存數據,頁面)
文件和目錄被組織成一個單根倒置樹結構
文件系統從根目錄下開始,用"/"表示
跟文件系統(rootfs):root filesystem
文件名稱區分大小寫(需要在特定的Linux文件系統下)
以.開頭的文件爲隱藏文件
路徑分隔的 /
文件有兩類數據:
元數據:metadata
數據:data
文件系統分層結構:LSB Linux Standard Base
FHS:(Filesystem Hierarchy Standard)
虛擬機中觸發新分配的硬盤:

echo '---' > /sys/class/scsi_host/host0/scan
echo '---' > /sys/class/scsi_host/host2/scan

文件名規則

  • 文件名最長255個字節
  • 包括路徑在內文件名稱最長4095個字節
  • 藍色–> 目錄 綠色–> 可執行文件 紅色–> 壓縮文件 淺藍色–> 鏈接文件 灰色–> 其他文件
    在這裏插入圖片描述
    文件字體顏色由以下配置文件決定:
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 除了斜槓和NUL,所有字符都有效。但使用特殊字符的目錄名和文件不推薦使用,有些字符需用引號來應用它們。
  • 標準Linux文件系統(如ext4),文件名稱大小寫銘感。例如:MAIL,Mail,mail,mAil
  • 如何創建一個帶"-"的文件
touch -- -a 或者  touch ./-a #(用絕對路徑或者相對路徑來創建文件)
touch "a b"
touch '$abc'

文件系統結構

/boot 引導文件存放目錄,內核文件(vmlinuz) 、引導加載器(bootloader,grub)都存放於此目錄
/bin 所有用戶使用的基本命令;不能關聯至獨立分區,OS啓動機即會用到的程序
/sbin 管理類的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序
/lib 啓動時程序依賴的基本共享庫文件以及內核模塊文件(l/ib/modules)
/lib64 專用於x86_64系統上的輔助共享庫文件存放位置
/etc 配置文件目錄
/home/USERNAME 普通用戶家目錄
/root 管理員的家目錄
/media 便攜式移動設備掛載點
/var variable data files
cache 應用程序緩存數據目錄
lib 應用程序狀態信息數據
local 專用於爲/usr/local下的應用程序存儲可變數據
lock 鎖文件
log 日誌目錄及文件
opt 專用於爲/opt下的應用程序存儲可變數據
run 運行中的進程相關數據,通常用於存儲進程pid恩建
spool 應用程序數據池
tmp 保存系統兩次重啓之間產生的臨時數據

🎶Linux下的文件類型

- 普通文件
d 目錄文件
b 塊設備
c 字符設備
l 符號鏈接文件
p 管道文件pipe
s 套接字文件socket

在這裏插入圖片描述
CentOS 7目錄變化

/bin /usr/bin
/sbin /usr/sbin
/lib /usr/lib
/lib64 /usr/lib64

在這裏插入圖片描述


顯示當前工作目錄

  • 每個shell和系統進程都有一個當前的工作目錄
  • CWD:current work directory
  • 顯示當前shell CWD的絕對路徑
pwd #printing working directory
	-P #顯示真實物理路徑
	-L #顯示鏈接路徑(默認)

在這裏插入圖片描述


絕對和相對路徑
絕對路徑
以正斜槓開始;完整的文件的位置路徑;可用於任何想指定一個文件名的時候
相對路徑名
不以斜線開始
指定相對於當前工作目錄或某目錄的位置
可以作爲一個簡短的形式指定一個文件名
在這裏插入圖片描述
基名:basename
目錄名:dirname
在這裏插入圖片描述

. 當前目錄
上一級目錄

在這裏插入圖片描述
更改目錄

  • cd 改變目錄
    使用絕對或相對路徑:
cd /home/MingQi/
cd home/MingQi
cd .. #切換至父目錄
cd #切換至當前用戶主目錄
cd - #切換至以前的工作目錄
  • 選項: -P
  • 相關的環境變量
PWD #當前目錄路徑
OLDPWD #上一次目錄路徑

在這裏插入圖片描述
列出目錄內容

  • 列出當前目錄的內容或指定目錄
  • 用法:ls [options] [files_or_dirs]
  • 示例:
ls -a #包含隱藏文件
ls -l #顯示額外的信息
ls -R #目錄遞歸通過
ls -ld #目錄和符號鏈接信息
ls -1 #文件分行顯示
ls -S #從大到小排序
ls -t #按mtime排序
ls -u #配合-t選項,顯示並按atime從新到舊排序 
ls -U #按目錄存放順序顯示
ls -X #按文件後綴排序

在這裏插入圖片描述
查看文件狀態
stat
文件:metadata,data
三個時間戳

access time 訪問時間 atime 讀取文件內容
modify time 修改時間 mtime 改變文件內容(數據)
change time 改變時間 ctime 元數據發生改變

在這裏插入圖片描述
文件通配符

* 匹配另個或多個字符
? 匹配任何單個字符
~ 當前用戶家目錄
~Ming 用戶Ming家目錄
~+ 當前工作目錄
~- 前一個工作目錄
[0-9] 匹配數字範圍
[a-z] 字母
[A-Z] 字母
[ming] 匹配列表中的任何一個字符
[^ming] 匹配列表中的所有字符以外的字符

預定義的字符類: man 7 glob

[:digit:] #任意數字,相當於0-9
[:lower:] #任意小寫字母
[:upper:] #任意大寫字母
[:alpha:] #任意大小寫字母
[:alnum:] #任意數字或字母
[:blank:] #水平空白字符
[:space:] #水平或垂直空白字符
[:punct:] #標點符號
[:print:] #可打印字符
[:cntrl:] #控制(非打印)字符
[:graph:] #圖形字符
[:xdigit:] #十六進制字符

練習:

#顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄
ls /var/l*[[:digit:]]*[[:lower:]] -d
#顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄
ls /etc/[0-9]*[^0-9] -d
#顯示/etc目錄下以非字母開頭,後面跟了一個字母及其它任意長度任意字符的文件或目錄
ls /etc/[^[:alpha:]][[:alpha:]]* -d
#顯示/etc目錄下所有以rc開頭,並後面是0-6之間的數字,其它爲任意字符的文件或目錄
ls /etc/rc[0-6]* -d
#顯示/etc目錄下所有以.d結尾的文件或目錄
ls /etc/*.d -d
#顯示/etc目錄下所有所有以.conf結尾,且以m,n,r,p開頭的文件或目錄
ls /etc/[mnrp]*.conf -d
#只顯示/root下的隱藏文件和目錄
ls /root/.* -d
ls -aI "[^.]*"
#只顯示/etc下的非隱藏目錄
ls -d /etc/*/

創建空文件和刷新時間

  • touch 命令
格式:touch [OPTION]...FILE...
	-a #僅改變atime和ctime
	-m #僅改變mtime和ctime
	-t #[[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的時間戳
	-c #如果文件不存在,則不予創建

在這裏插入圖片描述

複製、轉移和刪除文件
使用Nautilus來管理文件
軟鏈接和硬鏈接

發佈了75 篇原創文章 · 獲贊 16 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章