LINUX CORE · 81
Linux Filesystem / CLI:Path、Current Directory、File Metadata
Server debugging 常從 filesystem 開始:程式在哪、config 在哪、log 在哪、目前 shell 位於哪個 directory、這個 path 是 absolute 還是 relative。Path model 不清楚,後面 service/network debug 會一直迷路。
Learning outcomes
- 能區分 absolute / relative path。
- 能使用 pwd/ls/cd/cat/find 基本觀察。
- 能理解 home、root、current directory。
- 能用 metadata 判斷 file/dir/link。
1. Filesystem tree
/
├─ home/
├─ etc/
├─ var/
├─ usr/
└─ tmp// 是 filesystem root,不是 user home。一般 user home 常像 /home/anson。
2. Absolute vs Relative
/var/log/app.log
./config.json
../shared/data.jsonRelative path 由 current directory 解讀;同一 command 在不同 cwd 可能指向完全不同檔案。
3. 基本觀察 commands
pwd
ls -la
cd /var/log
cat app.log
find . -name "*.log"先觀察再修改。Server 上的 command 更應該避免一開始就 rm/chmod/chown。
4. Hidden file 與 metadata
ls -la開頭為 dot 的檔案通常不會在普通 ls 顯示;-l 也能看到 owner、group、permission、size、mtime 等 evidence。
5. Symlink 是另一層 path indirection
lrwxrwxrwx current
-> releases/2026-10-03你看到的 path 可能是 symbolic link。Deploy/release 常用 symlink 切換 current version。
Project checkpoint:Server Workspace v1
建立一個模擬 server tree,找到 app、config、log、current symlink,並記錄每個 path 的 absolute location。
/srv/course-api/
current -> releases/42
releases/42/
shared/config/
shared/logs/Debug evidence:程式說找不到 config
- process cwd 是哪裡?
- config path 是 absolute 還 relative?
- symlink 最後指去哪?
- 檔案真的存在且 process 可讀嗎?
Knowledge check
/與~差在哪?- relative path 依什麼 context 解讀?
- symlink 為何可能讓你「看錯版本」?
- 用 pwd/ls/find 找出一個模擬 config path。