Linux文件系統(tǒng)基礎(chǔ)操作與路徑管理指南
一、目錄與文件查看:探索文件系統(tǒng)
1. ls命令:查看文件列表(重要)
ls
(list的縮寫)是Linux中最常用的命令之一,用于顯示目錄或文件的信息。其靈活的參數(shù)組合能滿足各種查看需求:
# 顯示當(dāng)前目錄下的文件和目錄 ls # 以列表形式顯示詳細(xì)信息(包含權(quán)限、所有者、時(shí)間等) ls -l # 顯示所有文件,包括隱藏文件(以.開頭的文件) ls -a # 同時(shí)顯示詳細(xì)信息和隱藏文件 ls -la # 查看目錄屬性而非內(nèi)容 ls -d 目錄名
參數(shù)詳解:
-l
:long list format,顯示詳細(xì)信息,包括:- 權(quán)限(如
-rwxr-xr--
) - 硬鏈接數(shù)
- 所有者
- 所屬組
- 大?。J(rèn)字節(jié),可加
-h
轉(zhuǎn)為人類可讀格式) - 修改時(shí)間
- 文件名
- 權(quán)限(如
-a
:all,顯示所有文件,包括.
(當(dāng)前目錄)和..
(上級(jí)目錄)-h
:human-readable,文件大小以K/M/G為單位顯示-t
:按修改時(shí)間排序,最新的在前-R
:recursive,遞歸顯示子目錄內(nèi)容
實(shí)戰(zhàn)示例:
# 查看/etc目錄下的所有文件,按大小排序 ls -lSh /etc # 查看當(dāng)前目錄下所有以.sh結(jié)尾的文件 ls *.sh # 查看/usr/bin目錄的屬性 ls -ld /usr/bin
ls -l可以簡(jiǎn)寫為ll,關(guān)于詳細(xì)的原因會(huì)在剖析指令的本質(zhì)處詳談
重要概念:
- 文件類型標(biāo)識(shí):
ls -l
輸出的第一個(gè)字符表示文件類型:-
:普通文件d
:目錄l
:符號(hào)鏈接(軟鏈接)b
:塊設(shè)備文件(如硬盤)c
:字符設(shè)備文件(如鍵盤、串口)
- 隱藏文件:Linux中以
.
開頭的文件為隱藏文件,常用于存儲(chǔ)配置文件(如.bashrc
)
2. pwd:顯示當(dāng)前所在位置
pwd
(print working directory)命令用于顯示當(dāng)前工作目錄的絕對(duì)路徑,是路徑操作的基礎(chǔ):
# 顯示當(dāng)前路徑 pwd # 示例輸出:/home/user/docs/project
路徑格式特點(diǎn):
- Linux使用
/
作為路徑分隔符,與Windows的\
不同 - 路徑中每個(gè)
/
分隔的部分必須是一個(gè)目錄,除了最后的文件名 - 根目錄用單個(gè)
/
表示,是文件系統(tǒng)的頂級(jí)目錄
應(yīng)用場(chǎng)景:
- 不確定當(dāng)前位置時(shí)快速定位
- 構(gòu)建絕對(duì)路徑時(shí)獲取當(dāng)前目錄前綴
- 與其他命令結(jié)合使用,如
cd $(pwd)/subdir
3. cd:進(jìn)入指定路徑
cd
(change directory)命令用于切換工作目錄,是文件系統(tǒng)操作中使用最頻繁的命令之一:
# 切換到指定目錄 cd 目錄路徑 # 切換到根目錄 cd / # 切換到用戶家目錄 cd ~ # 切換到上一次所在目錄 cd - # 切換到上級(jí)目錄 cd ..
路徑切換技巧:
- 絕對(duì)路徑:從根目錄
/
開始的完整路徑,如/usr/local/bin
- 相對(duì)路徑:以當(dāng)前目錄為參照的路徑,如
../data/logs
(上級(jí)目錄的data/logs) - 特殊符號(hào):
.
:當(dāng)前目錄,如cd .
等價(jià)于cd
..
:上級(jí)目錄,如cd ../
~
:用戶家目錄,root
用戶為/root
,普通用戶為/home/用戶名
-
:上一次目錄,如cd -
可在兩個(gè)目錄間來回切換
實(shí)戰(zhàn)示例:
# 從/home/user切換到/usr/share/doc,使用絕對(duì)路徑 cd /usr/share/doc # 從當(dāng)前目錄切換到上級(jí)目錄的src目錄,使用相對(duì)路徑 cd ../src # 快速回到家目錄 cd ~
路徑選擇原則:
- 系統(tǒng)腳本或配置文件中使用絕對(duì)路徑,確保路徑穩(wěn)定性
- 日常交互操作使用相對(duì)路徑,提高輸入效率
- 不確定路徑時(shí)先用
ls
查看,再用cd
切換
二、文件與目錄操作:創(chuàng)建、修改與刪除的基本技能
1. touch:創(chuàng)建空文件與更新時(shí)間戳
touch
命令主要用于創(chuàng)建空文件,也可更新文件的時(shí)間戳:
# 創(chuàng)建空文件 touch 文件名 # 同時(shí)創(chuàng)建多個(gè)文件 touch 文件1 文件2 文件3 # 更新文件的訪問和修改時(shí)間 touch 已存在的文件
時(shí)間戳概念:
touch
會(huì)影響文件的三個(gè)時(shí)間屬性(可通過stat
命令查看):
- 訪問時(shí)間(atime):最后一次讀取文件的時(shí)間
- 修改時(shí)間(mtime):最后一次修改文件內(nèi)容的時(shí)間
- 狀態(tài)時(shí)間(ctime):最后一次修改文件屬性(如權(quán)限、所有者)的時(shí)間
執(zhí)行touch 文件名
時(shí),會(huì)將atime和mtime更新為當(dāng)前時(shí)間,ctime在文件屬性不變時(shí)不更新
應(yīng)用場(chǎng)景:
- 創(chuàng)建配置文件的空模板:
touch config.ini
- 刷新文件時(shí)間戳,避免被自動(dòng)清理腳本刪除
- 與其他命令結(jié)合生成指定時(shí)間的文件(通過
-t
參數(shù)指定時(shí)間)
2. mkdir:目錄創(chuàng)建
mkdir
(make directory)命令用于創(chuàng)建新目錄,支持單目錄和多級(jí)目錄創(chuàng)建:
# 創(chuàng)建單個(gè)目錄 mkdir 目錄名 # 在指定路徑創(chuàng)建目錄 mkdir /路徑/目錄名 # 同時(shí)創(chuàng)建多個(gè)目錄 mkdir 目錄1 目錄2 目錄3 # 遞歸創(chuàng)建多級(jí)目錄 mkdir -p 目錄1/子目錄1/孫目錄1
參數(shù)說明:
-p
:parents,當(dāng)父目錄不存在時(shí)自動(dòng)創(chuàng)建,避免多級(jí)目錄創(chuàng)建時(shí)的錯(cuò)誤-m
:mode,創(chuàng)建目錄時(shí)指定權(quán)限,如mkdir -m 755 目錄名
-v
:verbose,顯示創(chuàng)建過程
實(shí)戰(zhàn)示例:
# 在當(dāng)前目錄創(chuàng)建項(xiàng)目結(jié)構(gòu) mkdir -p src/{main,test}/java/com/example # 等價(jià)于創(chuàng)建 src/main/java/com/example 和 src/test/java/com/example # 創(chuàng)建權(quán)限為700的私有目錄 mkdir -m 700 private_dir
3. rmdir與rm:謹(jǐn)慎使用的刪除工具
(1)rmdir:僅刪除空目錄
# 刪除空目錄 rmdir 目錄名 # 刪除指定路徑的空目錄 rmdir /路徑/目錄名 # 遞歸刪除空目錄(需目錄為空) rmdir -p 目錄1/子目錄1
限制條件:
- 只能刪除空目錄,非空目錄會(huì)報(bào)錯(cuò)
- 一次只能刪除一個(gè)目錄(除非用
-p
遞歸) - 不支持通配符批量刪除
rmdir實(shí)際使用比較少,因?yàn)槭艿街T多限制,實(shí)際中還是以rm為主
(2)rm:強(qiáng)大的刪除命令
# 刪除文件 rm 文件名 # 刪除目錄(需加-r參數(shù)) rm -r 目錄名 # 強(qiáng)制刪除,不詢問 rm -f 文件名 # 遞歸強(qiáng)制刪除(危險(xiǎn)?。? rm -rf 目錄名
危險(xiǎn)參數(shù)組合:
rm -rf /
:刪除根目錄下的所有文件,會(huì)導(dǎo)致系統(tǒng)崩潰,絕對(duì)禁止執(zhí)行!絕對(duì)禁止執(zhí)行!絕對(duì)禁止執(zhí)行!
rm *
:刪除當(dāng)前目錄下的所有文件,使用前務(wù)必用ls
確認(rèn)rm -i
:交互式刪除,每次刪除前詢問,建議日常使用
安全刪除建議:
- 先使用
ls -la
確認(rèn)要?jiǎng)h除的內(nèi)容 - 對(duì)重要文件先備份,再刪除
- 避免在根目錄或系統(tǒng)目錄下使用
rm
命令 - 可安裝
trash-cli
工具,實(shí)現(xiàn)類似回收站的功能
4. stat與file:查看文件屬性與類型
(1)stat:查看文件詳細(xì)狀態(tài)
# 查看文件或目錄的詳細(xì)狀態(tài) stat 文件名/目錄名
輸出示例:
File: 'test.txt' Size: 1024 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 1234567 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group) Access: 2025-05-29 10:00:00 Modify: 2025-05-29 10:01:00 Change: 2025-05-29 10:02:00 Birth: -
關(guān)鍵字段:
Size
:文件大小Inode
:索引節(jié)點(diǎn)號(hào),Linux通過inode識(shí)別文件Access
:權(quán)限模式Access/Modify/Change
:三種時(shí)間戳regular file
:文件類型
(2)file:檢測(cè)文件類型
# 檢測(cè)文件類型 file 文件名
示例輸出:
# 文本文件 file README.txt # 輸出:README.txt: ASCII text # 二進(jìn)制文件 file /bin/ls # 輸出:/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=abc123, stripped # 壓縮文件 file archive.tar.gz # 輸出:archive.tar.gz: gzip compressed data, was "archive.tar", last modified: Thu May 29 10:00:00 2025, max compression
重要特性:
- Linux文件類型由內(nèi)容決定,而非后綴名
- 可識(shí)別各種格式的文件,包括二進(jìn)制、文本、壓縮包、圖像等
- 后綴名主要用于用戶識(shí)別和軟件關(guān)聯(lián),如
.txt
表示文本文件
三、路徑管理基礎(chǔ):絕對(duì)路徑與相對(duì)路徑的選擇
1. 絕對(duì)路徑:從根出發(fā)的精確導(dǎo)航
定義: 從根目錄/
開始的完整路徑,包含從根到目標(biāo)文件的所有目錄層級(jí)。
格式:
/目錄1/目錄2/.../文件名
示例:
/usr/bin/ls
:系統(tǒng)命令ls的絕對(duì)路徑/home/user/docs/project/README.md
:項(xiàng)目README文件的路徑
適用場(chǎng)景:
- 系統(tǒng)腳本和配置文件中,確保路徑不隨當(dāng)前目錄變化
- 跨目錄引用文件,如
ln -s /usr/share/doc/file.txt /tmp/link.txt
- 編寫需要明確路徑的文檔或教程
2. 相對(duì)路徑:以當(dāng)前為中心的路徑表示法
定義: 以當(dāng)前工作目錄為參照的路徑,使用.
(當(dāng)前目錄)和..
(上級(jí)目錄)表示相對(duì)位置。
格式:
[./][../]目錄1/目錄2/.../文件名
示例:
當(dāng)前目錄為/home/user,要訪問/home/user/docs:
- 絕對(duì)路徑:/home/user/docs
- 相對(duì)路徑:./docs(.可省略,即docs)
當(dāng)前目錄為/home/user/project,要訪問/home/user/docs:
- 相對(duì)路徑:../docs(上級(jí)目錄的docs)
適用場(chǎng)景:
- 日常交互操作,減少輸入量
- 在項(xiàng)目目錄中導(dǎo)航,如
cd src/main/java
- 與其他命令結(jié)合使用,如
ls ../../data
3. 特殊符號(hào):路徑導(dǎo)航的快捷方式
(1).
:當(dāng)前目錄
- 顯式表示當(dāng)前目錄,如
cd .
等價(jià)于cd
- 用于明確路徑關(guān)系,如
cp ./file.txt /tmp
(2)..
:上級(jí)目錄
- 切換到當(dāng)前目錄的父目錄,如
cd ..
- 多級(jí)回退,如
cd ../../
(回退兩級(jí))
(3)~
:用戶家目錄
- 快速回到家目錄,如
cd ~
- 訪問家目錄下的文件,如
touch ~/documents/report.txt
(4)-
:上一次目錄
在兩個(gè)目錄間來回切換,如:
cd /usr/local cd /var/log cd - # 回到/usr/local cd - # 回到/var/log
4. 路徑規(guī)劃最佳實(shí)踐
(1)路徑書寫原則
- 系統(tǒng)文件使用絕對(duì)路徑,確保穩(wěn)定性
- 腳本中使用
$(dirname $0)
獲取腳本所在目錄,避免硬編碼路徑 - 目錄名命名規(guī)范:使用小寫字母、下劃線或短橫線,避免空格和特殊字符
(2)避免路徑錯(cuò)誤的技巧
- 使用
tab
鍵補(bǔ)全路徑,減少輸入錯(cuò)誤 - 不確定路徑時(shí)先用
ls
查看,再操作 - 復(fù)雜路徑可分步驟切換,如:
cd /usr cd local cd bin
(3)路徑相關(guān)命令組合
cd
+pwd
:確認(rèn)當(dāng)前位置ls
+ 路徑:查看指定路徑的內(nèi)容find
+ 路徑:在指定路徑下搜索文件
四、擴(kuò)展知識(shí):文件系統(tǒng)的底層邏輯與實(shí)用工具
1. Linux文件類型與后綴名的真相
(1)文件類型的本質(zhì)
- Linux通過inode節(jié)點(diǎn)中的文件類型標(biāo)識(shí)確定文件類型,而非后綴名
- 常見文件類型:
- 普通文件(-):文本、二進(jìn)制、圖片等
- 目錄(d):包含其他文件和目錄
- 符號(hào)鏈接(l):指向其他文件或目錄的快捷方式
- 塊設(shè)備(b)和字符設(shè)備(c):硬件設(shè)備的抽象
(2)后綴名的作用
- 方便用戶識(shí)別文件內(nèi)容(如
.txt
表示文本,.jpg
表示圖片) - 軟件通過后綴名關(guān)聯(lián)默認(rèn)打開方式(如
.sh
文件默認(rèn)用bash執(zhí)行) - 部分命令會(huì)根據(jù)后綴名做特殊處理(如
grep
對(duì)二進(jìn)制文件的處理)
(3)打破后綴名迷信
可將文本文件重命名為.exe
,內(nèi)容不變:
echo "Hello Linux" > text.txt mv text.txt text.exe cat text.exe # 仍顯示文本內(nèi)容
可執(zhí)行權(quán)限由x
權(quán)限位決定,與后綴名無關(guān):
chmod +x text.exe ./text.exe # 若文件內(nèi)容非可執(zhí)行程序,會(huì)報(bào)錯(cuò)
2. tree:樹形結(jié)構(gòu)可視化工具
tree
命令以樹形結(jié)構(gòu)展示文件和目錄,直觀呈現(xiàn)文件系統(tǒng)層級(jí):
# 安裝tree(CentOS/RHEL系統(tǒng)) yum install -y tree # 顯示當(dāng)前目錄的樹形結(jié)構(gòu) tree # 只顯示目錄 tree -d # 顯示指定深度的目錄(-L 2表示兩層) tree -L 2 # 排除指定文件或目錄 tree --exclude "*.log"
輸出示例:
. ├── docs │ ├── design │ │ └── architecture.md │ └── user_guide │ ├── chapter1.md │ └── chapter2.md ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ ├── App.java │ │ │ └── Util.java │ │ └── resources │ │ └── config.properties │ └── test │ └── java │ └── com │ └── example │ └── AppTest.java └── README.md
實(shí)用場(chǎng)景:
- 快速了解項(xiàng)目目錄結(jié)構(gòu)
- 展示文件系統(tǒng)層級(jí)關(guān)系
- 與
grep
結(jié)合查找特定類型文件:tree | grep ".java"
注意:使用tree查看目錄,如果包含文件較多時(shí),可能會(huì)刷屏,按住CTRL+C即可退出
??????????3. 路徑操作中的常見錯(cuò)誤與解決方案
(1)路徑分隔符錯(cuò)誤
- 問題: 在Linux中使用Windows的
\
作為分隔符 - 解決方案: 統(tǒng)一使用
/
,或用轉(zhuǎn)義符\
轉(zhuǎn)義(如cd c:\program files
在Linux中無效)
(2)權(quán)限不足
- 問題: 嘗試訪問沒有權(quán)限的目錄,提示
Permission denied
- 解決方案:
- 用
su
或sudo
獲取管理員權(quán)限 - 請(qǐng)文件所有者修改權(quán)限(
chmod
或chown
)
- 用
(3)路徑過長(zhǎng)
- 問題: 路徑長(zhǎng)度超過系統(tǒng)限制(Linux默認(rèn)最大路徑長(zhǎng)度為4096字節(jié))
- 解決方案:
- 使用短文件名和目錄名
- 創(chuàng)建符號(hào)鏈接縮短路徑:
ln -s /long/path/ to /short/link
結(jié)語
通過掌握文件系統(tǒng)的基礎(chǔ)操作和路徑管理技巧,你將能夠自如地在Linux文件系統(tǒng)中導(dǎo)航、創(chuàng)建和管理文件,為后續(xù)學(xué)習(xí)更高級(jí)的命令和系統(tǒng)管理技能打下堅(jiān)實(shí)基礎(chǔ)。記住,謹(jǐn)慎使用刪除命令,養(yǎng)成良好的路徑操作習(xí)慣,是成為L(zhǎng)inux高手的必備素養(yǎng)。
以上就是Linux文件系統(tǒng)基礎(chǔ)操作與路徑管理指南的詳細(xì)內(nèi)容,更多關(guān)于Linux文件操作與路徑管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
centos7 esxi6.7模板實(shí)際應(yīng)用詳解
這篇文章主要介紹了centos7 esxi6.7模板實(shí)際應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01CentOS 7.2安裝Nginx 1.10.2的詳細(xì)教程
最近公司要切換VPS,所以打算使用最新的系統(tǒng)進(jìn)行搭建LNMP,這篇文章是為CentOS 7.2安裝Nginx 1.10.2的安裝記錄,記錄下以便下次或者有需要的朋友們參考使用。下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11分享Linux 系統(tǒng)生成隨機(jī)密碼的10種方法
利用Linux系統(tǒng)生成隨機(jī)密碼的10種方法 Linux操作系統(tǒng)的一大優(yōu)點(diǎn)是對(duì)于同樣一件事情,你可以使用高達(dá)數(shù)百種方法來實(shí)現(xiàn)它。例如,你可以通過數(shù)十種方法來生成隨機(jī)密碼。本文將介紹生成隨機(jī)密碼的十種方法,感興趣的朋友一起學(xué)習(xí)吧2015-12-12Ubuntu 16.04設(shè)置PostgreSQL開機(jī)啟動(dòng)的方法
由于PostgreSQL是編譯安裝的,需要設(shè)置開機(jī)啟動(dòng)。這篇文章主要介紹了Ubuntu 16.04設(shè)置PostgreSQL開機(jī)啟動(dòng)的方法,需要的朋友可以參考下2018-09-09Linux下的定時(shí)任務(wù)和延時(shí)任務(wù)的詳解
這篇文章主要介紹了Linux下的定時(shí)任務(wù)和延時(shí)任務(wù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04如何通過其他主機(jī)查看Apahce服務(wù)器的運(yùn)行狀態(tài)
這篇文章主要介紹了如何通過其他主機(jī)查看Apahce服務(wù)器的運(yùn)行狀態(tài),需要的朋友可以參考下2016-04-04