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"
|