系統管理的預備知識


處理非文字檔

strings 查看一個非文字檔 (binary file) 當中含有那些文字.

od 或 hexdump 查看非文字檔的內容.

dd 截取/修改非文字檔的內容.

beav 用手修改非文字檔.

非交談式作業方式

例如 lynx -source ... 與 mail -s ...

為什麼要學會「非交談式」 (non-interactive) 的作業方式? 因為這樣才可以寫 scrip 做批次處理.

檔案系統

在 UNIX 下, 一般使用者要存取光碟/軟碟/網路磁碟機, 並不需要用特殊的語法. 對於一般使用者而言, 系統內的所有儲存空間資源都長在 system directory tree 上, 所有的檔案或目錄都在根目錄 / 之下的某處. (所以不需要分辨什麼 a: c: d: ...) [檔案系統]

那麼每個儲存設備 (例如一部 CDROM, 一部軟碟機. 或是硬碟上的一個 partition (分割)) 究竟掛在 / 下的什麼地方呢? 用 df 命令可以看出來. 顯示出來的 Filesystem 欄位指的就是每個正在使用的儲存設備, 例如 hda hdb 分別代表第一條 IDE 排線上的兩部 ide 硬碟或 CDROM 而 hdc hdd 分別代表第二條 IDE 排線上的兩部 ide 硬碟或 CDROM. 後面如果還有數字則代表該硬碟的一個分割. 詳見 MAKEDEV (8) 及 Partition mini HOWTO. 最後面的 "Mounted on" 欄位就是這個儲存設備所掛的位置, 設備上所有的目錄與檔案都在這個目錄底下. 手冊上把這個位置叫做 mount point.

動態聯結

目的: 節省執行時程式佔用的記憶體空間. (順便也節省硬碟空間.)

查看一個程式使用了那些動態聯結程式庫: ldd

(root 才可以) 設定: 修改 /etc/ld.so.conf 之後, 執行 ldconfig

一般使用者如何自力救濟? 設定 LD_LIBRARY_PATH 環境變數

查看一個程式庫使用/提供了那些函數: nm

自動作業

at 在指定時間執行命令

crontab 周期性地執行命令

vacation 與 .forward 機制

perl

Perl: UNIX 下的瑞士電鋸

其他命令

  1. free 查看記憶體使用狀況
  2. uname -a 查看核心版本
  3. md5sum 檔案的簽章