萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 系統檔案指令精通指南(上):從入門到實戰

前言

雖 KDE/GNOME 等圖形桌面讓用戶無需深知命令列也能使用 Linux,但實際運維仍需更強大功能與彈性。熟悉基礎指令對 Shell 腳本自動化亦屬必須。本文為「速成教程」,針對初學者或需補充知識者,結合範例實踐輕鬆掌握核心指令(註:搭配 OCFS 核心時行為可能略異,Oracle 提供 OCFS 工具集為更佳選擇)。所有範例經 SUSE Linux 8.0 Professional 測試,其他發行版大同小異,若遇問題請參閱系統文件。

核心觀念回顧

一切皆檔案

Linux/UNIX 將硬體裝置(鍵盤、終端機)、目錄、命令本身視為檔案處理,這看似奇特的慣例是系統強大彈性的基石。多數指令格式:command [option] [source file(s)] [target file]。

求助系統

  • whatis 指令:查詢指令簡述(如 whatis echo)
  • man 指令:詳細手冊頁(man echo)
  • man -k 關鍵字(同 apropos):搜尋相關指令(man -k files)
  • man man:man 本身操作說明(常被忽略但極實用)

瀏覽手冊頁:Space 翻頁、↑ 向上、q/!/Ctrl+Z 離開。

使用者階層

root(超級用戶)掌管一切。可用 su 切換身分執行管理任務(新增用戶、印表機、檔案系統等)。系統檔案歸 root 所有,一般用戶僅可讀取,編輯權保留給 root 以確保安全。

BASH Shell

Linux 預設 Shell,融合 Bourne、Korn、C、TCSH 特性。內建 history 記錄最近 500 條指令,history 查看,↑/↓ 檢索,!編號 重執行(如 !49),!-n 執行倒數第 n 筆。環境變數:HOME 家目錄、PATH 指令搜尋路徑、HISTSIZE 歷史筆數。可暫時設定 HISTSIZE=100,永久設定寫入 /etc/profile(需 root)或 .profile。用 echo $變數名 或 env 查看變數值。

萬用字元與正則表達式

Shell 萬用字元:* 比對任意字元數、? 比對單一字元、[...] 比對字元組。正則表達式用 . 比對除換行外單一字元、[...] 比對字元組。* 在 Shell 比對一或多字元,在正則表達式比對零或多實例。egrep、awk 使用更豐富特殊字元。

檔案處理指令

ls —— 剖析檔案列表

$ ls -liah *
22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile
19942 -rw-r--r-- 1 scalish users 30 Jan 3 20:00 test2.out
925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh

-l 詳細、-i 顯示 inode、-a 含隱藏檔、-h 人類可讀大小。八欄:inode、類型權限、連結數、擁有者/群組、大小、日期、檔名。

mv、cp、rm —— 檔案移動、複製、刪除

建議加 -i 互動確認。mv -b 移動前備份。rm -r、cp -r 遞歸處理目錄(危險但強大)。

$ cp -i ls.out ls2.out
cp: overwrite `ls2.out'? [y/n]

建立目錄用 mkdir,刪除空目錄用 rmdir,非空目錄用 rm -r 更方便。

檔案權限與擁有權

權限 10 字元:第 1 字元類型(- 檔案、d 目錄、l 連結),後 9 字元分三組(擁有者、群組、其他),各 rwx(讀寫執行),- 表禁止。

chmod 以符號或八進位設定。八進位轉換:rwx=111=7、r-x=101=5、r--=100=4 → 754。例:

chmod g+w test.sh
chmod 774 test.sh

umask 設定預設權限(系統用 777 減去 umask 值)。umask 022 產生預設 755。chown 改擁有者,chgrp 改群組。file * 可辨識文字/二進位檔案。

重新命名與連結

alias 為長命令設短名或路徑縮寫:

$ alias ll='ls -l'
$ alias jdev9i=/jdev9i/jdev/bin/jdev

注意單引號防止 Shell 預先解釋。unalias 移除別名。環境變數同樣可達路徑縮寫效果:

$ export JDEV_HOME=/jdev9i/jdev/bin/jdev
$ $JDEV_HOME

ln [-s] source target 建立連結:-s 為軟連結(跨檔案系統),無 -s 為硬連結(同檔案系統、同一 inode 多檔名)。兩者均不複製檔案內容。

copyright © 萬盛學電腦網 all rights reserved