Red Hat系列的Linux(RHEL, CentOS, Fedora)都支持"setup"工具對系統進行設定,設定內容包括認證方式,防火牆,鍵盤格式,網絡,系統默認啓動的服務,時區,分辨率與硬件配置等
打印的行爲被分爲多個部分:
1. 打印作業:打印軟件產生打印動作的工作,這個打印作業會進入隊列等待打印服務輸出
2. 打印隊列:放置打印作業的項目,通常以打印機的名字來命名
3. 打印服務:實際溝通隊列內的打印作業與打印機的服務
一般說的打印機驅動程序其實就是將打印作業的數據轉成打印機格式,目前常見的打印機格式爲Postscript,Linux預設的CUPS本身就支持這種打印格式。很多打印機的的驅動程序就是postscript打印機描述檔案(Postscript Printer Description,PPD),PPD通常放在/usr/share/cups/model/下
如果打印機具有網卡則可以通過網絡連接到打印機,常見的打印機分享方式有:
1. socket:數據通過socket來傳送,一般port爲9100或35
2. LPD(Line Printer Daemon):是較早的打印服務,主要利用串行端口來進行打印服務
3. IPP(Internet Printing Protocol):目前比較流行的打印協議,CUPS預設支持這種協議。當啓動IPP打印時,打印機會啓動port 631,打印數據通過這個端口傳送
如果打印機是通過有線端口連接主機,則需要考慮以下接口:
1. parallel:平行串行端口(25針),連接到/dev/lp[0-2],在CUPS中裝置的使用格式爲:parallel:/dev/lp0
2. USB:CUPS使用格式爲:usb:/dev/usb/lp0
開啓CUPS服務後,可以用瀏覽器接口管理打印機。這樣需要:
1. 啓動CUPS服務(/etc/init.d/cups)
2. 具有root權限
3. 預設僅能在本地管理,無法使用遠程聯機到主機進行管理
如果想在局域網內將打印機的控制權交給其他用戶,要修改CUPS的設定
設定好打印機的IP後,先ping打印機看是否能夠成功連接,然後用nmap指令掃描打印機相關的服務端口。當主機也啓動了CUPS服務後,可以打開瀏覽器輸入"http://localhost:631"進行管理。USB打印機也可以使用這種方式進行管理
如果要將Linux本機的打印機開放爲網絡打印機,通過CUPS瀏覽器接口進行如下設置即可,原本的打印機就會變成【ipp://Linux主機IP:631/printers/打印機隊列名】:
通過瀏覽器管理打印機其實就是修改了CUPS的配置文件,比較重要的有:
/etc/cups/printers.conf:打印機的設定值都寫在這個文件中
/etc/cups/cupsd.conf:CUPS的主要配置文件,包括用作服務器的設定
/etc/cups/ppd/*.ppd:各個打印機的驅動程序(PPD配置文件)
手動設置打印機的步驟:
(1)下載合適的PPD驅動檔案:如果檔案是自己下載的,要放到/usr/share/cups/model/目錄下,因爲後續操作的指令會到該目錄下尋找驅動檔案
(2)啓動CUPS和打印機
(3)使用lpadmin進行打印機的建立與刪除。其實lpadmin只是在更新/etc/cups/printer.conf(規定了打印機的規範),並將這個打印機相關的PPD檔案以打印機的隊列名鏈接到/etc/cups/ppd/下
lpadmin [-p 自定義隊列名] [-v URI] [-m PPD] [-E]: 建立打印機
lpadmin [-d 已存在隊列名]:設定爲默認打印機
lpadmin [-x 已存在隊列名]:刪除該打印機隊列
-v:後接裝置的位置,常見的有:
串行端口 parallel:/dev/lp0
USB usb:/dev/usb/lp9
網絡打印機 ipp://192.168.201.253
特殊端口 socket://192.168.201.253:9100
-m:後接PPD的定義檔,要放在/usr/share/cups/model/下
-E:表示可接受此打印作業
(4)觀察打印機狀態
lpstat [-adprt]
-a:列出當前可接受打印作業的打印機隊列名
-d:列出當前的默認打印機
-p:列出每部打印機當前的工作狀態,包括工作ID
-r:顯示目前CUPS是否有服務正在運轉
-t:列出當前打印系統的詳細信息
(5)利用lpr和lp來產生打印作業
lpr [-P 打印機隊列] [-#打印份數] [-U username] 要打印的文件名
lp [-d 打印機隊列] [-n 打印份數] 要打印的文件明
(6)觀察與刪除打印作業
lpq [-al] [-P 打印隊列]
-a:列出所有打印機上打印隊列的工作情況
-l:詳細輸出打印信息
-P:後接特定的打印機
lprm [-P 打印機隊列] job_id
job_id是使用lpq查詢到的job id
Linux幾個簡單查詢核心偵測硬件信息的指令:
fdisk:可列出磁盤分割表
hdparm:觀察硬盤信息,測試讀寫速度
dmesg:觀察覈心運作過程中的各項信息
vmstat:分析CPU/RAM/IO的當前狀態
lspci:列出PCI接口裝置
lsusb:列出USB端口的狀態與連接的USB設備
iostat:與vmstat類似,可以實時列出CPU與接口設備的I/O狀態
lspci [-s 編號] [-vvn]
-v:顯示詳細的PCI接口裝置信息
-vv:顯示比-v更詳細的信息
-n:直接觀察PCI的ID而非廠商名稱
-s:後接lspci列出的第一欄編號,表示只觀察某個PCI設備的信息
/usr/share/hwdata/pci.ids檔案中存放着PCI的標準與廠牌名稱的對應關係。另外使用lspci指令時所有的數據都是從/proc/bus/pci/目錄下取出的
lsusb [-t]
-t:使用類似樹狀目錄的格式顯示USB端口的相關性
iostat [-c/-d] [-k/-m] [-t] [間隔秒數] [偵測次數]
-c:僅顯示CPU的狀態
-d:僅顯示存儲設備的狀態,不可與-c合用
-k:默認顯示單位是block,可以改成KB
-m:以MB爲單位
-t:顯示日期
列出的結果中,tps是平均每秒傳遞次數。多次偵測時,第一個結果是開機到現在的結果,後面的就是從上一次偵測到這一次偵測之間的結果
由於U盤並不是傳統硬盤,不使用磁盤讀取頭與磁盤來記錄數據,因此只能掛載而無法進行分割
lm-sensors主要是依據主板芯片組的型號,代入相關模塊後再偵測其溫度、電壓,使用指令"sensors"即可。它提供了一個主板芯片組偵測程序"sensors-detect"
Linux很多情況下可以使硬件即插即用(Plug and Play,PnP),而不必通過mknod來建立裝置檔案等,硬件的偵測和裝置檔案的建立都是靠udev和HAL。
事實上系統所有的硬件都是靠核心進行管理的,但操作系統在內存中是受保護的,用戶無權使用操作系統核心,所以要靠udev這個用戶層級軟件讓用戶自行處理/dev下的裝置
硬件抽象層(Hardware Abstraction Layer,HAL)可以將系統當前所有的硬件進行快照,並持續檢查快照內容;當有新的PnP硬件插入時,HAL就會發現當前狀態與記錄快照的不同,然後通知udev進行新裝置的建立
可以通過更改udev的規則使用mknod爲某個裝置建立新的名稱。udev建立裝置檔案的規則放在/etc/udev/rules.d/下,該目錄中的檔案被依次進行處理。可以在該目錄中創建一個檔案,最簡單的語法是:KERNEL=="核心能分析到的檔名", NAME="新的裝置文件名"
例:KERNEL=="sda1", NAME="myusb"