1.硬件管理守护进程apmd
apmd(Advanced Power Management)是高级电源管理。传统的电源管理标准,对于笔记本电脑比较有用,可以了解系统的电池电量信
息。并将相关信息通过 syslogd 写入日志。也可以用来在电源不足时关机。
acpid
acpid(Advanced Configuration and Power Interface)是为替代传统的 APM 电源管理标准而推出的新型电源管理标准。通常笔记本电
脑需要启动电源进行管理。
alsasound Alsa 声卡驱动守护程序。 Alsa和 OSS/Free 及 OSS/Linux 兼容,但是有自己的接口,甚至比OSS优秀。
cups cups(Common UNIX Printing System)是通用UNIX打印守护进程,为Linux提供第三代打印功能。
cups-configdaemons
cups 打印系统切换守护进程。
cups-lpd cups 行打印守护进程。
lpd lpd 是老式打印守护程序,负责将 lpr 等程序提交给打印作业。
gpm
gpm(General Purpose Mouse Daemon )守护进程为文本模式下的 Linux 程序如 mc(Midnight Commander)提供了鼠标的支持。它
也支持控制台下鼠标的拷贝,粘贴操作以及弹出式菜单。
irqbalance 对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。如果你只安装了一个CPU,就不需要加载这个守护程序。
kudzu
硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。当系统启动时,kudzu会对当前的硬件进行检测,并
且和存储在 /etc/sysconfig/hwconf中的硬件信息进行对照,如果某个硬件从系统中被添加或者删除时,那么 kudzu 就会察觉到,并且通知
用户是否进行相关配置,然后修改 /etc/sysconfig/hwconf,使硬件资料与系统保持同步。如果 /etc/sysconfig/hwconf 这个文件不存在,
那么kudzu将会从 /etc/modprobe.conf、/etc/sysconfig/network-scripts/ 和 /etc/X11/XF86Config 中探测已经存在的硬件。如果你
不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。
lm_seroems 检测主板工作情况守护进程。
mdmonitor RAID 相关设备的守护程序。
microcode_ctl 可编码以及发送新的微代码到内核以更新 Intel IA32 系列处理器守护进程。
pcmcia 主要用于支持笔记本电脑接口守护进程。
rawdevices 在使用集群文件系统时用于加载 raw 设备的守护进程。
smartd Self Monitor Analysis and Reporting Technology System,监控你的硬盘是否出现故障。
系统管理守护进程
atd at和batch命令守护进程,用户用at命令调度的任务。batch用于在系统负荷比较低时 运行批处理任务。
anacron
一个自动化运行任务守护进程。CentOS 随带四个自动化任务的工具:cron、 anacron、at、和 batch。 当你的Linux服务器并不是全天运
行,这个 anacron 就可以帮你执行在”crontab”设定的时间内没有执行的工作。
crond cron 周期地运行用户 调度任务。
cpuspeed 监测系统空闲百分比,降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小,而在系统繁忙时最大化加快系统执行速度。
iiim 中文输入法服务器守护进程。
psacct 该守护进程包括几个工具用来监控进程活动的工具,包括ac,lastcomm, accton 和sa。
random 保存和恢复系统的高质量随机数生成器,这些随机数是系统一些随机行为提供的。
syslog 一个让系统引导时启动 syslog 和 klogd 系统日志守候进程的脚本。
xfs X Window 字型服务器守护进程,为本地和远程 X 服务器提供字型集。
yum-updatesd RPM 操作系统自动升级和软件包管理守护进程。
文件服务守护进程
amd 自动安装NFS守护进程。
atalk AppleTalk网络守护进程。注意不要在后台运行该程序,该程序的数据结构必须在运行其他进程前先花一定时间初始化。
autofs 自动安装管理进程automount,与NFS相关,依赖于NIS服务器。
netdump 远程网络备份服务器守护进程。
diskdump 服务器磁盘备份守护进程。
portmap 该守护进程用来支持RPC连接,RPC 被用于 NFS 以及 NIS 等服务。
netfs Network Filesystem Mounter,该进程安装和卸载NFS、SAMBA和NCP网络文件系统。
nfs 网络文件系统守护进程。
nfslock NFS是一个流行的通过TCP/IP网络共享文件的协议,此守护进程提供了NFS文件锁定功能。
rsync remote sync 远程数据备份守护进程。
数据库管理守护进程
arptables_jf 为 arptables 网络的用户控制过滤的守护进程。
arpwatch 记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库。
bootparamd 引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信息。
ldap ldap(Lightweight Directory Access Protocol)目录访问协议服务器守护进程。
mysqld 一个快速高效可靠的轻型 SQL 数据库引擎守护进程。
postgresql PostgreSQL 关系数据库引擎。
ypbind 为NIS(网络信息系统)客户机激活 ypbind 服务进程。
yppasswdd NIS口令服务器守护进程。
ypserv NIS 主服务器守护进程。
网络设备守护进程
bluetooch 蓝牙服务器守护进程。
netplugd
netplugd(network cable hotplug management daemon)守护程序,用于监控一个或多个网络接口的状态,当某些事件触发时运行一个
外部脚本程序。
messagebus
D-BUS 是一个库,为两个或两个以上的应用程序提供一对一的通讯。 dbus-daemon-1 是一个应用程序,它使用这个库来实现 messagebus守
护程序。多个应用程序通过连接 messagebus 守护程序可以实现与其他程序交换信息。
pppoe ADSL连接守护进程。
irda 红外端口守护进程。
isdn isdn启动和中止服务守护进程。
snmpd 本地简单网络管理守护进程。
network 激活/关闭启动时的各个网络接口守护进程。
iptables iptables 防火墙守护进程。
网络服务守护进程
chargen
使用 tcp 协议的 chargen server,chargen(Character Generator Protocol)是一种网络服务,主要功能是提供类似远程打字
的功能。
chargen-udp 使用UDP协议的chargen server。
dhcpd 动态主机控制协议(Dynamic Host Control Protocol)的服务守护进程。
第3页 共4页2008-10-18 7:55
daytime 使用TCP 协议的 Daytime守护进程,该协议为客户机实现从远程服务器获取日期 和时间的功能。预设端口:13。
daytime-udp 使用 UDP 协议的 Daytime守护进程。
time 该守护进程从远程主机获取时间和日期,采用TCP协议。
time-udp 该守护进程从远程主机获取时间和日期,采用UDP协议。
dc_server 使用SSL安全套接字的代理服务器守护进程。
dc_client 使用SSL安全套接字的客户端守护进程。
echo 服务器回显客户数据服务守护进程。
echo-udp 使用UDP协议的服务器回显客户数据服务守护进程。
named DNS(BIND)服务器守护进程。
gated 网关路由守护进程。它支持各种路由协议,包括RIP版本1和2、DCN HELLO协议、 OSPF版本2以及EGP版本2到4。
httpd Web服务器Apache守护进程,可用来提供HTML文件以 及CGI动态内容服务。
innd Usenet新闻服务器守护进程。
ntpd Network time Protocol daemon(网络时间校正协议)。ntpd是用来使系统和一个精确的时间源保持时间同步的协议守护进程。
proftpd proftpd 是Unix下的一个配置灵活的 ftp 服务器的守护程序。
readahead、
readahead_early
readahead和readahead_early是在Fedora core 2中最新推出的两个后台运行的守护程序。其作用是在启动系统期间,将启动系
统所要用到的文件首先读取到内存中,然后在内存中进行执行,以加快系统的启动速度。
routed 该守护程序支持RIP协议的自动IP路由表维护。RIP主要 使用在小型网络上,大一点的网络就需要复杂一点的协议。
rsh 远程主机上启动一个shell,并执行用户命令。
rwhod 允许远程用户获得运行rwho守护程序的机器上所有已登录用户的列表。
rstatd 一个为LAN上的其它机器收集和提供系统信息的守候进程。
ruserd 远程用户定位服务。 这是一个基于RPC的服务,它提供关于当前记录到 LAN 上一个机器日志中的用户信息
rwalld 远程用户消息发送服务。这是一项基于RPC的服务,允许用户给每个注册到 LAN 机器上的其他终端写消息。
rwhod rwhod 服务进程,它支持 LAN 的 rwho 和 ruptime 服务。
saslauthd 使用 SASL 的认证守护进程。
sendmail sendmail MTA 守护进程。
postfix postfix MTA 守护进程。
smb Samba 文件共享/打印服务守护进程。
squid 代理服务器squid守护进程。
sshd OpenSSH 服务器守护进程。Secure Shell Protocol可以实现安全地远程管理主机。
tux 在Linux内核中运行apache服务器的守护进程。
vsftpd vsftpd 服务器的守护进程。
vncserver VNC (Virtual Network Computing,虚拟网络计算),它提供了一种在本地系统上显示远程计算机整个”桌面”的轻量型协议。
inetd
因特网操作守护程序。监控网络对各种它管理的服务的需求,并在必要的时候启动相应的服务程序。在 Redhat 和 Mandrake 中被
xinetd 代替。Debian, Slackware, SuSE仍然使用。
xinetd 支持多种网络服务的超级服务器守护进程。
eklogin 使用 kerberos 5 加密的一种rlogin 会话鉴证守护进程。
gssftp 使用 kerberos 5 认证的 ftp 守护进程
krb5-telnet 使用 kerberos 5认证的 telnet 守护进程。
klogin 使用 kerberos 5 认证远程登录守护进程。
kshell 使用 kerberos 5 认证的远程 Shell 守护进程。
firstboot(可关闭) (系统)还记得系统第一次进入图形介面还需要进行一些额外的设定吗? 就是这个服务的帮忙啦!既然已经安装妥当,现在你可以将这个服务关闭啰。
acpid (系统)进阶电源管理的介面,这是一个新的电源管理模组, 可以监听来自核心层的电源相关事件而予以回应。 CentOS 的设定档在 /etc/acpi/events/power.conf 中,预设仅有当你按下 power 按钮时,系统会自动关机喔!
apmd(可关闭) (系统)设定档在 /etc/sysconfig/apmd ,也是电源管理模组啦! 可侦测电池电量,当电池电力不足时,可以自动关机以保护电脑主机。
atd (系统)单一的例行性工作排程,详细说明请参考第十六章。 抵挡机制的设定档在 /etc/at.{allow,deny} 喔!
auditd (系统)还记得前一章的 SELinux 所需服务吧? 这就是其中一项,可以让系统需 SELinux 稽核的讯息写入 /var/log/audit/audit.log 中。若此服务没有启动,则讯息会传给 syslog 管理。
avahi-daemon(可关闭) (系统)也是一个用户端的服务,可以透过 Zeroconf 自动的分析与管理网路。 Zeroconf 较常用在笔记型电脑与行动装置上,所以我们可以先关闭他啦!
haldaemon(可关闭) (系统)通常用在桌上型电脑的环境中,可侦测类似 usb 的装置呢! 不过,如果是伺服器环境,这个服务倒是可以关闭啦!如果是桌上型电脑,那最好可以启动
kudzu(可关闭) (系统)如果你有增加新的硬体时,这个服务可以在开机时自动的侦测硬体, 并且会自动的呼叫相关的设定软体,方便你在开机时就处理好你的硬体啊
lm_sensors(可关闭) (系统)这个服务可以帮你侦测主机板的相关侦测晶片,举例来说, 某些主机板会主动的侦测 CPU 温度、频率、电压等,这个 lm_sensors 能够将这些温度、频率等数据显示出来喔! 我们会在第二十一章谈这玩意儿。
mcstrans (系统)与 SELinux 有关的服务,最好也启动啊!
mcstrans (系统)与 SELinux 有关的服务,最好也启动啊!
mdmonitor(可关闭) (系统)可以侦测所有软体的状态,暂时似乎也不需要启动这个服务哩!
messagebus(可关闭) (系统)可用来沟通各个软体之间的讯息,有点类似剪贴簿的感觉。 不过在伺服器环境则没有强烈需求就是了。
microcode_ctl(可关闭) (系统)Intel 的 CPU 会提供一个外挂的微指令集提供系统运作, 不过,如果你没有下载 Intel 相关的指令集档案,那么这个服务不需要启动的,也不会影响系统运作。
netfs(可关闭) (网路)可以进行网路磁碟机 (NFS, SMB/CIFS) 的挂载与卸载功能。 目前我们尚未使用网路,因此这个服务可以先关闭。
network (网路)提供网路设定的功能,所以一定要启动的啦!
nfslock(可关闭) (网路)NFS 为一种 Unix like 的网路磁碟机,但在进行档案的分享时, 为了担心同一档案多重编辑的问题,所以会有这个锁住 (lock) 的服务!可以避免同一个档案被两个不同的人编辑时所造成的档案错误问题。
portmap (网路)用在远端程序呼叫的服务,很多服务都使用这个玩意儿来辅助连线的, 因此建议不要取消他,除非你确定你的系统没有使用到任何的 RPC 服务喔!
readahead_early
readahead_later
(可关闭) (系统)在系统开机的时候可以先将某些程式载入到记忆体中,以方便快速的载入, 可加快一些启动的速度。
restorecond (系统)利用 /etc/selinux/restorecond.conf 的设定来判断当新建档案时,该档案的 SELinux 类型应该如何还原。需要注意的是,如果你的系统有很多非正规的 SELinux 档案类型设定时,这个 daemon 最好关闭,否则他会将你设定的 type 修改回预设值。
rpcgssd
rpcidmapd
(可关闭) (网路)与 NFS 有关的用户端功能,在你还没有玩到网路阶段时, 这两个咚咚也能够先取消啦!
setroubleshoot (系统)一定要启动啊!因为这玩意儿可以将你的 SELinux 相关讯息记录在 /var/log/messages 里面,非常有帮助喔!
xfs(可关闭) (系统)这个是 X Font Server,主要提供图形介面的字型的一个服务, 如果你不启动 X 视窗的话,那么这个服务可以启动。但是如果你有需要用到 X 时,一定要启动这玩意儿,否则图形介面是无法启动的喔。
2. 为什么要使用ACL?
ACL简介
在ACL 机制出现以前,人们都是通过 user/group/other 模式来实现文件的访问控制权限的设置。 Linux 和 Unix 使用 9 个比特来表示这种文件的访问模式,如 rwxr-xr-- 就表示文件的属主拥有对文件的读写执行权限,文件属组中的成员对文件拥有读和执行权限,其他人只有读的权限。这种访问模式简单高效,对于早期简单的应用十分有效。但是随着人们对安全特性的要求提高,这种方式已经不能够满足现代的安全需求。
一个很简单的例子就是如何指定同组用户对文件的不同权限,如文件属于security 组,该组的成员对文件都有 r-x 权限,但是我们需要为其中的某个用户 tux 添加 w 权限。在上述模式中, Linux 管理员不得不为 tux 再添加一个组,并设置相应的权限,这样做存在许多的不便和安全隐患。如果使用 ACL 机制则可以很好的解决上述问题,用户只需要使用命令 setfacl -m user:tux:rwx file 就能够为 tux 设置对 file 的读写执行的权限。另外也可以使用 ACL 机制对文件进行负授权(或者说权限的撤销),例如使用命令 setfacl -m user:tux:--- file 就可以使 tux 对 file 没有任何权限。
使用命令getfacl file, 可以看到如下输出 :
user::rwx
user:tux:rwx
group::r-w
other::r--
mask::rwx
其中每一行都是一个ACL 实体,对应于某一条具体的访问控制规则,而所有的 ACL 实体就构成了文件的 ACL 属性。每一个 ACL 实体由三部分组成: e_tag 、 e_id 、 e_perm 。 e_tag 表示 ACL 实体的标志,如 user:tux:rwx 中 user 就是一个 e_tag 。 e_id 是 ACL 实体限制的用户或组 id, 如 user:tux:rwx 中的 tux, 在某些实体中这个项可以为空。 e_perm 说明的是具体的访问权限,主要有 rwx 三种,这和传统的 u/g/o 模式是一致的。在 Posix 标准中规定一共有 6 种 e_tag ,分别是 ACL_USER_OBJ, ACL_USER, ACL_GROUP_OBJ, ACL_GROUP, ACL_MASK, ACL_OTHER 。 ACL_USER_OBJ 是文件属主的 ACL 实体, ACL_GROUP_OBJ 是文件属组的 ACL 实体, ACL_MASK 是掩码 ACL 实体, ACL_OTHER 是其他用户的 ACL 实体。这四种 ( 个 )ACL 实体的 id 都为空,其他类型的 ACL 实体的 e_id 都不能为空。
3.虚线是伺服器端的正常状态变化:
从CLOSED->LISTIN->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED->LISTIN
粗实线是用户端的正常状态变化:
从CLOSED->SEND_SENT->ESTABLISHED->FIN_WAIT_1-> FIN_WAIT_2->TIME_WAIT->CLOSED
其中CLOSED状态是个开始状态,在实际观察中是看不到的(本人观点)
细实线是资料传输过程中可能出现的一些情况的状态。
4.mysql slow log 是用来记录执行时间较长(超过long_query_time秒)的sql的一种日志工具.
启用 slow log
有两种启用方式:
1, 在my.cnf 里 通过 log-slow-queries[=file_name]
2, 在mysqld进程启动时,指定–log-slow-queries[=file_name]选项
比较的五款常用工具
mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter
mysqldumpslow, mysql官方提供的慢查询日志分析工具
5.linux at命令
用户使用linux at命令在指定时刻执行指定的命令序列。也就是说,该命令至少需要指定一个命令、一个执行时间才能够正常运行。linux at命令能够只指定时间,也能够时间和日期一起指定。需要注意的是,指定时间有个系统判别问题。比如说:用户现在指定了一个执行时间:凌晨3:20,而发出linux at命令的时间是头天晚上的20:00,那么究竟是在哪一天执行该命令呢?假如用户在3:20以前仍然在工作,那么该命令将在这个时候完成;假如用户3:20以前就退出了工作状态,那么该命令将在第二天凌晨才得到执行。下面是linux at命令的语法格式:
at [-V] [-q 队列] [-f 文档名] [-mldbv] 时间
at -c 作业 [作业...]
at允许使用一套相当复杂的指定时间的方法,实际上是将POSIX.2标准扩展了。他能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的
词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。
也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。
上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等等。
更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。下面通过一些例子来说明具体用法。
6.sed 实用工具是一个“编辑器”,但它与其它大多数编辑器不同。
除了不面向屏幕之外,它还是非交互式的。这意味着您必须将要对数据执行的命令插入到命令行或要处理的脚本中。当显示它时,请忘记您在使用 Microsoft Word 或其它大多数编辑器时拥有的交互式编辑文件功能。sed 在一个文件(或文件集)中非交互式、并且不加询问地接收一系列的命令并执行它们。因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器。它可以用来将所有出现的 "Mr. Smyth" 修改为 "Mr. Smith",或将 "tiger cub" 修改为 "wolf cub"。流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间。其参数可能和一次性使用一个简单的操作所需的参数一样有限,或者和一个具有成千上万行要进行编辑修改的脚本文件一样复杂。sed 是 Linux 和 UNIX 工具箱中最有用的工具之一,且使用的参数非常少。
sed 命令的格式
格式1: sed [OPTION] [-e] command1 [[-e command2] ... [-e commandn]] [input-file]...
格式2: sed [OPTION] -f script-file [input-file]...
说明:
格式1:执行命令行上的se d编辑命令。可以指定多个编辑命令,每个编辑命令前都要使用 -e 参数,se d 将对这些编辑命令依次进行处理。若只有一个编辑命令
时,-e 可以省略。
格式2:执行脚本文件中的se d编辑命令。当编辑命令很多时,可将所有的编辑命令存成se d脚本文件,然后在命令行上使用 -f 参数指定这个文件。
常用参数:
-n : se d 在将下一行读入patte rn space之前,自动输出patte rn space中的内容。此选项可以关闭自动输出,此时是否输出由编辑命令控制。
-r : 使用扩展正则表达式进行模式匹配。
input-file:se d 编辑的文件列表,若省略,se d 将从标准输入中读取输入,也可以从输入重定向或管道获得输入
se d 的编辑命令包括地址和操作两部分。地址用于指定se d要操作的行;操作指定要进行的处理。
通常使用单引号将整个操作命令括起来
若操作命令中包含she ll变量替换,应该使用双引号将整个操作命令括起来
地址的表示方法列表如下:
分类表示法说明
0 省略地址部分,将对输入的每一行进行操作
1 n 表示第 n 行,特殊地: $ 表示最后一行
1 f~s 表示从 f 开始的,步长为 s 的所有行
1 /regexp/ 表示与正则表达式匹配的行
2 m,n 表示从第 m 行到第 n 行, 特殊地: m,$ 表示从m行到最后一行
2 m,+n 表示第 m 行以及其后的 n 行
2 /regexp1/,/regexp2/ 表示从匹配 regexp1 的行开始到匹配 regexp2 的行
2 /regexp/,n 表示从匹配 regexp 的行开始到第 n 行
2 n,/regexp/ 表示从第n行开始到匹配 regexp 的行
另外,在地址部分还可以使用 ! 表示反向选择,如 m ,n! 表示除了m 到n之外的所有行。
se d 支持 25 个操作,下面列出常用的几个,更多的操作的使用方法请参考 se d 手册。
sed 实用工具按顺序逐行将文件读入到内存中。然后,它执行为该行指定的所有操作,并在完成请求的修改之后将该行放回到内存中,以将其转储至终端。完成了这一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。如同前面所提到的,默认输出是将每一行的内容输出到屏幕上。在这里,开始涉及到两个重要的因素—首先,输出可以被重定向到另一文件中,以保存变化;第二,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。不过,可以按需要将操作限制在指定的行上。
该实用工具的语法为:
sed [options] '{command}' [filename]
sed 实用工具以及其它任何类似的编辑器的最常用的命令之一是用一个值替换另一个值。用来实现这一目的的操作的命令部分语法是:
's/{old value}/{new value}/'
删除行
用一个值替换另一个值远非流编辑器可以执行的唯一功能。它还具有许多的潜在功能,在我看来第二种最常用的功能是删除。删除与替换的工作方式相同,只是它删除指定的行(如果您想要删除一个单词而不是一行,不要考虑删除,而应考虑用空的内容来替换它—s/cat//)。
该命令的语法是:
'{what to find} d'
上三角号 (^) 表示一行的开始,因此,如果 "two" 是该行的头三个字符,则
sed '/^two/ d' sample_one
将只删除该行。
美元符号 ($) 代表文件的结尾,或一行的结尾,因此,如果 "two" 是该行的最后三个字符,则
sed '/two$/ d' sample_one
将只删除该行。
将这两者结合在一起的结果:
sed '/^$/ d' {filename}
删除文件中的所有空白行。例如,以下命令将 "1" 替换为 "2",以及将 "1" 替换为 "3",并删除文件中所有尾随的空行:
7.diff比较命令
diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。
格式
diff [options] 源文件 目标文件
[options]主要参数
-a:将所有文件当作文本文件来处理。
-b:忽略空格造成的不同。
-B:忽略空行造成的不同。
-c:使用纲要输出格式。
-H:利用试探法加速对大文件的搜索。
-I:忽略大小写的变化。
-n --rcs:输出RCS格式。
cmp
作用
cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。
格式
cmp[options] 文件名
[options]主要参数
-l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。
8.限制su命令的滥用
我们知道,超级用户在Linux中有最大的权利,几乎所有***都想得到这个目标。Linux可以增加对切换到超级用户的限制。使用PAM
(Pluggable Authentication
Modules)可以禁止除在wheel组以外的任何人su成root,修改/etc/pam.d/su文件,除去屏蔽标识#。使用
/usr/sbin/usermod G10 bjecadm将bjecadm这个账号加入gid为10的组,就是wheel组。命令如下:
/etc/pam.d/su # 使用密码验证#
auth sufficient /lib/security/pam_wheel.so debug
# 限制只有wheel组用户才可以切换到root#
auth required /lib/security/pam_wheel.so use_uid
chmod -G10 bjecadm
另外,每当用户试图使用su命令进入系统用户时,命令将在/usr/adm/sulog文件中写一条信息,若该文件记录了大量试图用su进入root的无效操作信息,则表明了可能有人企图破译root口令。
Linux命令有着强大的功能。对于Linux系统管理员来说,往往只需要通过各种安全命令技巧,组合构成安全防线。从计算机安全的角度看,世界上没有绝对安全的计算机系统,Linux系统也不例外。
Linux必学的60个命令(6)-其他命令
Linux必学的60个命令:其它命令
在前面几讲中,我们把Linux命令按照在系统中的作用分成几个部分分别予以介绍。但是,还有一些命令不好划分,然而学习它们同样是比较重要的。
9.unarj
1.作用
unarj解压缩格式为.arj格式的文件,使用权限是所有用户。
2.格式
unarj [eltx][.arj压缩文件]
3.主要参数
e:解压缩.arj文件。
l:显示压缩文件内所包含的文件。
t:检查压缩文件是否正确。
x:解压缩时保留原有的路径。
4.说明
带有.arj扩展名的文件是由用于MS DOS和Windows的ARJ实用程序创建的。因为ARJ是一种不能免费获得源代码的共享件程序,所以在
mtools
作用
mtools
实际上是一个命令集合,是DOS文件系统的工具程序,它可以模拟许多DOS命令,使用起来非常方便。使用权限是所有用户。Linux系统提供了一组称为
mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。mtools的
使用非常简单,如果想把软盘里所有的文件都拷贝到硬盘上,那么就可以执行以下命令:
mcopy a:*.*
也就是说,只需要在相应的DOS命令之前加上一个字母“m”,就可以完成对应的功能了。一般Linux发行版本中都有这个软件,可以使用下面命令检查一下。
rpm -qa|grep mtools
如果没有安装,也没有关系,可以从网上下载(
http://mtools.linux.lu/)一个最新版本来安装。目前可供下载的最新mtools版本是
包括的命令
mcd 目录名:改变MS DOS下的目录。
mcopy 源文件 目标文件:在MS DOS和Unix之间复制文件。
mdel 文件名:删除MS DOS下的文件。
mdir 目录名:显示MS DOS下的目录。
mformat 驱动器号:在低级格式化的软盘上创建MS DOS文件系统。
rnlabel 驱动器号:产生MS DOS下的卷标。
mmd 目录名:建立MS DOS下的目录。
mrd 目录名:删除MS DOS下的目录。
mren 源文件 目标文件:重新命名已存在的MS DOS文件。
mtype 文件名:显示MS DOS文件的内容。
请注意,这些命令和对应的MS DOS命令非常相似。在mtools命令中,“/”和“\”是可以混用的。因为文件列表的是DOS系统下的文档,对大小写并不敏感,所以“CDE”和“cde”在这里是一样的。
10.unencode
1.作用
unencode命令可以把一个二进制文件表编码为一个文本文件,使用权限是所有用户。
2.格式
uuencode [-hv] [源文件] 目标文件
3.主要参数
-h:列出指令使用格式(help) 。
-v:列出版本信息。
4.应用说明
uuencode指令可以将二进制文件转化成可使用电子邮件发送的ASCII编码形式。uuencode编码后的资料都以 begin开始,以end作为结束,且通常其中的每一行的开始均为“M”,中间部分是编码过的文件,编码后的文件比源文件要大一些。
uudecode
1.作用
uudecode命令用来将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记以外的资料。它的使用权限为所有用户。
2.格式
uuencode [-hv] [file1 ...]
3.主要参数
-h:列出指令使用格式(help)。
-v:列出版本信息。
4.应用实例
使用下面命令一次还原几个文件:
uuencode file1.uud file2.uud file3.uud
11.解读grub.conf文件
我们将来看看grub.conf文件内语句,(注:...)内的东西是我们的解读内容.
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda (注:以上以符号井"#"开头的行表示被注释掉,没有任何意义)
default=0 (注:默认的操作系统就是由default控制的。default后加一个数字n,表明是第 n+1个。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一 个软驱是fd0,等等。所以,default 0 表示默认的操作系统在这儿是 Red Hat Linux (2.4.18-14)如果你修改成1就是WinXP了)
timeout=3 (注:timeout表示默认等待的时间,这儿是3秒钟。超过3秒,用户还没有作出选 择的话,系统将自动选择默认的操作系统;当然你可以改成任何你乐意的时间)
splashp_w_picpath=(hd0,0)/boot/grub/splash.xpm.gz (注:指定开机画面文件splash.xpm.gz的位置)
title Red Hat Linux (2.4.18-14) (注:表示Red Hat Linux的菜单项)
root (hd0,0) (注:表示第一个硬盘第一个分区,这里的root和系 统内的root不是一码事!详细如下说明)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/ (注:指定内核的位置,详细说明如下 文)
initrd /boot/initrd-2.4.18-14.img (注:初始化)
title Microsoft Windows XP (注:表示Microsoft Windows XP的菜单项)
map (hd0) (hd1) (注:map是命令,详细如下)
map (hd1) (hd0)
root (hd1,0) (注:这是指第二个硬盘(从硬盘)上第一个分区)
chainloader (hd1,0)+1 (注:链式装入器,装入一个扇区的数据然后把引导 权交给它。详细说明如下)
makeactive
boot
(注:在 Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB 的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很“酷”的功能是它可以读取本机的 FAT、FFS、minix、ext2 和 ReiserFS 分区.到目前为止,您可能会感到一点疑惑,因为 GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。在Linux 中,第一个硬盘的第五个分区称作 "hda5"。而 GRUB 把这个分区称作 "(hd0,4)"。GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导 Linux 硬盘 hda5,应输入 "root (hd0,4)"。
知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/说明/boot/vmlinuz-2.4.18-14就是要载入的内核。后面的都是传递给内核的参数。root=LABEL=/就是linux的硬盘分区表示法,ro是readonly的意思。initrd用来初始的linux p_w_picpath,并设置相应的参数。
命令map:当你有两块硬盘,一个无法从第二块硬盘启动的操作系统,例如Windowsxp,就可以使用map命令.你能唤玥d0映射为hd1,将hd1映射为hd0。换句话说,你可以虚拟的交换两个硬盘而启动所需要的操作系统 。命令形式如下:
grub> map (hd0) (hd1)
grub> map (hd1) (hd0)
GRUB 使用了“链式装入器”(chainloader)。链式装入器从分区 (hd1,0) 的引导记录中装入winxp自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 -- 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS 或 Windows。
GRUB的配置文件要简单就这么简单,如果你要更个性化一点,试一试把“color light-gray/blue ”加在default语句的下面,下一次启动GRUB时,看看有什么变化,再试一试“color light-blue/red",惊喜吗? 有趣吧! )
12.iptables 中的指令,均需区分大小写。
ipchains 和 iptables 在语法上的主要的差异,注意如下∶
在 ipchains 中,诸如 input 链,是使用小写的 chains 名,在 iptables 中,要改用大写 INPUT。
在 iptables 中,要指定规则是欲作用在那一个规则表上(使用 -t 来指定,如 -t nat),若不指定,则预设是作用在 filter 这个表。 在 ipchains 中, -i 是指介面(interface),但在 iptables 中,-i 则是指进入的方向,且多了 -o,代表出去的方向。
在 iptables 中,来源 port 要使用关键字 --sport 或 --source-port
在 iptables 中,目的 port 要使用关键字 --dport 或 --destination-port
在 iptables 中,"丢弃" 的处置动作,不再使用 DENY 这个 target,改用 DROP。
在 ipchains 的记录档功能 -l,已改为目标 -j LOG,并可指定记录档的标题。
在 ipchains 中的旗标 -y,在 iptables 中可用 --syn 或 --tcp-flag SYN,ACK,FIN SYN
在 iptables 中,imcp messages 型态,要加上关键字 --icmp-type,如∶
iptables -A OUTPUT -o eth0 -p icmp -s $FW_IP --icmp-type 8 -d any/0 -j ACCEPT
13.ls -l显示出来的第一个字符表示文件类型!
- 常规文件
l 符号链接
c 字符设备文件
b 块设备文件
p 命名管道
d 目录文件
14.Linux是一个多任务的操作系统,系统上同时运行着多个进程,正在执行的一个或多个相关进程称为一个作业。使用作业控制,用户可以同时运行多个作业,并在需要时在作业之间进行切换。本章详细介绍进程管理及作业控制的命令,包括启动进程、查看进程、调度作业的命令。
进程及作业的概念
Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务?br />
操作系统管理多个用户的请求和多个任务。大多数系统都只有一个CPU和一个主存,但一个系统可能有多个二级存储磁盘和多个输入/输出设备。操作系统管理这些资源并在多个用户间共享资源,当您提出一个请求时,给您造成一种假象,好象系统只被您独自占用。而实际上操作系统监控着一个等待执行的任务队列,这些任务包括用户作业、操作系统任务、邮件和打印作业等。操作系统根据每个任务的优先级为每个任务分配合适的时间片,每个时间片大约都有零点几秒,虽然看起来很短,但实际上已经足够计算机完成成千上万的指令集。每个任务都会被系统运行一段时间,然后挂起,系统转而处理其他任务;过一段时间以后再回来处理这个任务,直到某个任务完成,从任务队列中去除。
Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。我们讨论进程的时候,不会去关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务。
进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。
Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。 交互进程——由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程——这种进程和终端没有联系,是一个进程序列。 监控进程(也称守护进程)——Linux系统启动时启动的进程,并在后台运行。
15.在系统管理中常常用到 lsof 工具,是系统监测工具之一。lsof(list ope n file s)可以用来查看正在运行中的进程打开了哪些文件、目录和套接
字。
lsof [http://www.proxys erve.net/index.php? q=aH R0 c D ovL 2 1 hbi5 jeC 9 s c 2 9 m] 的命令格式如下:
lsof [OPTIONS] [names]
lsof 的选项丰富,下面仅列出一些基本的,更多的选项请查阅其手册。
选项说明
-h 显示使用帮助信息
-a 表示所列出的选项是“与”逻辑,都必须满足时才显示结果
-R 显示进程的 PPID 列
-l 不将 UID 转化为用户登录名
-n 不将 IP 转换为主机名
-P 不将服务端口号转化为服务名称
-u Username/UID 显示由属于指定用户的进程打开的文件
-g gid 显示属于指定组的进程打开的文件
-d FD 显示指定文件描述符(file descriptors)的进程
-c string 显示命令列中包含指定字符串 string 的进程打开的文件
-c /string/ 与上面的功能相同,/ / 中可以使用正则表达式
+d Dirname 显示指定目录下被进程打开的文件
+D Dirname 与上面的功能相同,但是会搜索目录下的所有子目录
-i 显示所有网络进程打开的文件
16.watch
系统还提供了一个 watch 命令。它以固定的时间周期来执行所指定的指令。预设的执行间隔是2秒,当然这是可以用参
数来调整的。 watch 命令以全屏幕方式显示输出,持续执行到使用者自行将其使用Ctrl+C中断为止。 watch 命令常
用来观察一个连续不断更新的文件。
watch 命令的格式为:
watch [-dn] <command>
常用参数:
-d : 高亮显示更新时差异的内容。
-n : 设定间格时间,以”秒”为单位(预设值为2秒)。
command : 要持续执行的命令,可以是一般的外部指令或she ll的内建指令,但不能是alias。
下面给出几个使用举例:
# watch tail /var/log/messages
# watch -d -n 10 tail /var/log/messages
# watch -d "tail /etc/httpd/logs/access_log ; tail /etc/httpd/logs/error_log"
# watch "ps axu |grep top|grep -v 'grep'"
17.为了更好地维护系统,管理员经常要收集一些系统信息,诸如进程、内存、文件系统、硬件等使用信息。然后通过这些
信息对系统的正常与否做出判断,并通过这些信息对系统故障做出正确判断。
在 信息显示命令 一节中介绍了一些常用的信息显示命令的使用,下面再列出一些系统监视的常用工具,这些工具涉及的
软件包也一并列出,若您的系统中没有这些工具可以使用 yum install 命令进行安装。
coreutils 系统核心工具包
/bin/df 报告系统的磁盘空间用量。
/bin/uname 显示系统信息。
procps 系统进程工具包
/bin/ps 显示系统进程。
/usr/bin/pgrep 过滤显示系统进程。
/usr/bin/free 显示系统内存的使用。
/usr/bin/vmstat 报告虚拟内存的统计信息。
/usr/bin/tload 在终端上显示系统平均负载。
/usr/bin/uptime 显示系统的运行时间。
/usr/bin/top 动态显示系统进程任务。
/usr/bin/slabtop 动态显示内核 slab 缓存信息。
/usr/bin/watch 以全屏幕方式周期性地执行指定的命令。
lsof 显示进程打开文件的工具包
/usr/sbin/lsof 查看正在运行中的进程打开了哪些文件、目录和套接字。
psacct 用户与进程的统计工具包
/usr/bin/ac 登录帐号的简要信息。
/usr/bin/lastcomm 显示已执行过的命令。
/usr/sbin/accton 打开或关闭进程帐号记录功能。
/usr/sbin/dump-acct 输出 pacct 文件的内容。
/usr/sbin/dump-utmp 输出 utmp 文件的内容。
/usr/sbin/sa 进程帐号记录信息的摘要。
sysstat 系统状态工具包
/usr/bin/iostat 用于输出CPU、I/O系统和磁盘分区的统计信息。可以用来分析磁盘I/O,带宽等信息。
/usr/bin/mpstat 用于输出CPU的各种统计信息。可以用来分析程序运行时在内核态和用户态的工作情况。
/usr/bin/sar 用于定时搜集系统的各种状态信息,然后对系统各个时间点的状态进行监控。
/usr/bin/sadf 显示被 sar 通过多种格式收集的二进制数据。
pciutils 系统 PCI 设备的工具包
/sbin/lspci 显示 PCI 设备。
/sbin/setpci 配置 PCI 设备。
/sbin/update-pciids 下载新版本的 PCI ID 列表。
usbutils 系统 USB 设备的工具包
/sbin/lsusb 显示 USB 设备。
收集基本的系统信息
18.查看系统中使用的日志文件,常用的日志文件所示。
日志文件说明
audit/ 存储 auditd 审计守护进程的日志目录
conman/ 存储 ConMan 串行终端管理守护进程的日志目录
cups/ 存储 CUPS 打印系统的日志目录
httpd/ 记录 apache 的访问日志和错误日志目录
mail/ 存储 mail 日志的目录
news/ 存储 INN 新闻系统的日志目录
pm/ 存储电源管理的日志目录
ppp/ 存储 pppd 的日志目录
prelink/ prelink 的日志目录
samba/ 记录 Samba 的每个用户的日志目录
squid/ 记录 Squid 的日志目录
vbox/ ISDN 子系统的日志目录
acpid 存储 acpid 高级电源管理守护进程的日志
anaconda.*
Red Hat/CentOS 安装程序 anaconda 的日志
boot.log 记录系统启动日志
btmp 记录登陆未成功的信息日志
cron 记录守护进程 crond 的日志
dmesg 记录系统启动时的消息日志
lastlog 记录最近几次成功登录的事件和最后一次不成功的登录
maillog 记录邮件系统的日志
messages 由 syslogd 记录的 info 或更高级别的消息日志
rpmpkgs 记录了当前安装的所有 rpm 包
secure 由 syslogd 记录的认证日志
spooler 由 syslogd 记录的 uucp 和 news 的日志
vsftpd.log 记录 vsftpd 的日志
wtmp 一个用户每次登录进入和退出时间的永久记录
yum.log 记录 yum 的日志
查看文本日志文件
绝大多数日志文件是纯文本文件,
19.设备字段用来指定需要监视的事件。它可取的值如下:
设备字段说明
authpriv 报告认证活动。通常,口令等私有信息不会被记录
cron 报告与cron和at有关的信息
daemon 报告与xinetd有关的信息
kern 报告与内核有关的信息。通常这些信息首先通过klogd传送
lpr 报告与打印服务有关的信息
mail 报告与邮件服务有关的信息
mark
在默认情况下每隔20分钟就会生成一次表示系统还在正常运行的消息。Mark消息很像经常用来确认远程主机是否还在运行的“心跳信号
”(Heartbeat)。Mark消息另外的一个用途是用于事后分析,能够帮助系统管理员确定系统死机发生的时间。
news 报告与网络新闻服务有关的信息
syslog 由syslog生成的信息
user 报告由用户程序生成的任何信息,是可编程缺省值
uucp 由UUCP生成的信息
local0-
local7
与自定义程序一起使用
* *代表除了mark之外的所有功能
2、级别字段用于指明与每一种功能有关的级别和优先级。它可取的值如下:
级别字段说明
emerg 出现紧急情况使得该系统不可用,有些需广播给所有用户
alert 需要立即引起注意的情况
crit 危险情况的警告
err 除了emerg、alert、crit的其他错误
warning 警告信息
notice 需要引起注意的情况,但不如err、warning重要
info 值得报告的消息
debug 由运行于debug模式的程序所产生的消息
none 用于禁止任何消息
* 所有级别,除了none
3、动作字段用于描述对应功能的动作。它可取的值如下:
动作字段说明
file 指定一个绝对路径的日志文件名记录日志信息
username 发送信息到指定用户,*表示所有用户
device 将信息发送到指定的设备中,如/dev/console
@hostname 将信息发送到可解析的远程主机hostname,且该主机必须正在运行syslogd并可以识别syslog的配置文件
syslog 可以为某一事件指定多个动作,也可以同时指定多个功能和级别,它们之间用分号间隔。
20./etc 文件系统
目录说明
/etc/X11 X Windows 的设置目录
/etc/alternatives 存储具有相同功能程序的二/多选一链接的目录
/etc/apm 高级电源管理的配置目录
/etc/init.d 守护进程启动脚本目录
/etc/logrotate.d 日志滚动脚本的配置目录
/etc/lvm LVM2 的配置目录
/etc/opt /opt 应用程序的配置目录
/etc/pam.d PAM 配置目录
/etc/pcmcia pcmcia 设备配置目录
/etc/ppp ppp 设备配置目录
/etc/rc?.d 启动、或改变运行级时运行的 scripts 目录
/etc/skel 普通用户初始环境目录
/etc/ssh ssh 的配置目录
/etc/vim vim 的配置目录
/etc/w3m w3m 的配置目录
/etc/yum yum 的配置目录
/etc/yum.repos.d yum 源的配置目录
/usr 文件系统
目录说明
/usr/X11R6 存放 X Window 的目录
/usr/bin 存放了许多用户命令
/usr/games 存放游戏和教育类软件
/usr/include 存放Linux下开发和编译应用程序所需要的头文件
/usr/lib 放一些常用的动态链接共享库和静态档案库
/usr/local 供给本地用户的/usr目录,在这里安装本地的应用软件
/usr/sbin 存放root超级用户使用的管理程序
/usr/share 系统共用的东西存放地,如:手册、文档、字体等
/var 文件系统
目录说明
/var/cache 应用程序缓存的数据目录
/var/lib 存储系统或各个应用程序运行时的状态信息数据
/var/lock
存储程序运行时的锁定文件的目录。许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件,将不试图使用这个
设备或文件
/var/log 系统日志存放,分析日志要看这个目录的东西
/var/mail 用户 mailbox 文件存储目录
/var/opt 存储 /opt 目录下应用程序的经常变化的数据
/var/run 存储到下次引导前有效的关于系统的信息文件
/var/spool 打印机、邮件、代理服务器等假脱机目录
/var/tmp 存放临时文件
文件系统挂装点说明
root / Linux 系统运行的基点,根文件系统不能被卸载
proc /proc 以文件系统的方式为访问系统内核数据的操作提供接口,适用于2.4和2.6内核
sysfs /sys 以文件系统的方式为访问系统内核数据的操作提供接口,2.6内核使用
tmpfs /dev /var/run /var/lock 程序访问共享内存资源时使用的文件系统
usbfs /proc/bus/usb 访问 USB 设备时使用的文件系统
devpts /dev/pts 内核用来与伪终端进行交互的文件系统
swap 内核使用的特殊文件系统, 无挂装点用来创建虚拟内存
/proc
下面说明 /proc 的一些最重要的文件和目录。
文件说明
/proc/n n为PID,每个进程在 /proc 下有一个名为其进程号的目录。
/proc/cpuinfo 处理器信息,如类型、制造商、型号和性能。
/proc/devices 当前运行的核心配置的设备驱动的列表。
/proc/dma 显示当前使用的DMA通道。
/proc/filesystems 核心配置的文件系统。
/proc/interrupts 显示使用的中断。
/proc/ioports 当前使用的I/O端口。
/proc/kcore 系统物理内存映象。与物理内存大小完全一样,但不实际占用内存。
/proc/kmsg 核心输出的消息。也被送到syslog 。
/proc/ksyms 核心符号表。
/proc/loadavg 系统“平均负载”;3个指示器指出系统当前的工作量。
/proc/meminfo 存储器使用信息,包括物理内存和虚拟内存。
/proc/modules 当前加载了哪些核心模块。
/proc/net 网络协议状态信息。
/proc/self 到查看/proc 的程序的进程目录的符号连接。当多个进程查看 /proc 时,是不同的连接。
/proc/stat 系统状态。
/proc/uptime 系统启动的时间长度。
/proc/version 内核版本信息。
21.yum 命令工具简介
命令功能
yum check-update 检查可更新的所有软件包
yum update 下载更新系统已安装的所有软件包
yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum install <packages> 安装新软件包
yum update <packages> 更新指定的软件包
yum remove <packages> 卸载指定的软件包
yum groupinstall <groupnames> 安装指定软件组中的软件包
yum groupupdate <groupnames> 更新指定软件组中的软件包
yum groupremove <groupnames> 卸载指定软件组中的软件包
yum grouplist 查看系统中已经安装的和可用的软件组
yum list 列出资源库中所有可以安装或更新以及已经安装的rpm包
yum list <regex> 列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包
yum list available 列出资源库中所有可以安装的rpm包
yum list available <regex> 列出资源库中与正则表达式匹配的所有可以安装的rpm包
yum list updates 列出资源库中所有可以更新的rpm包
yum list updates <regex> 列出资源库中与正则表达式匹配的所有可以更新的rpm包
yum list installed 列出资源库中所有已经安装的rpm包
yum list installed <regex> 列出资源库中与正则表达式匹配的所有已经安装的rpm包
yum list extras 列出已经安装的但是不包含在资源库中的rpm包
yum list extras <regex> 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包
yum list recent 列出最近被添加到资源库中的软件包
yum search <regex> 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值
yum provides <regex> 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值
yum clean headers 清除缓存中的rpm头文件
yum clean packages 清除缓存中rpm包文件
yum clean all 清除缓存中的rpm头文件和包文件
yum deplist <packages> 显示软件包的依赖信息
当第一次使用yum 或yum 资源库有更新时,yum 会自动下载所有所需的he ade rs放置于 /var/cache /yum 目录下,所需时间可能较长。
还可以使用 yum info 命令列出包信息,yum info 可用的参数与 yum list 的相同。
yum 命令还可以使用 -y 参数用于用 ye s 回答命令运行时所提出的问题。
yum 命令工具使用举例
22.LVM 有一整套的命令集,下表列出了常用的命令。
任务PV VG LV
创建pvcreate vgcreate lvcreate
删除pvremove vgremove lvremove
扫描列表pvscan vgscan lvscan
显示属性pvdisplay vgdisplay lvdisplay
显示信息pvs vgs lvs
改变属性pvchange vgchange lvchange
扩展vgextend lvextend
缩减vgreduce lvreduce
重命名vgrename lvrename
改变容量pvresize lvresize
检查一致性pvck vgck
用户可以使用如下命令显示上述命令的功能:
23.Linux下的账户系统文件主要有 /etc/passwd、/etc/shadow、/etc/group 和 /etc/gshadow 四个文件。
/etc/passwd
/etc/passwd 文件中每行定义一个用户账号,一行中又划分为多个字段定义用户账号的不同属性,各字段间用“:”分
隔。例如:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
distcache:x:94:94:Distcache:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
squid:x:23:23::/var/spool/squid:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
osmond:x:500:500::/home/osmond:/bin/bash
crq:x:501:501::/home/crq:/bin/bash
jason:x:502:502::/home/jason:/bin/bash
qu10m:x:503:503::/home/qu10m:/bin/bash
下表描述了这些字段的意义。
字段说明
用户名这是用户登录系统时使用的用户名,它在系统中是唯一的。
口令
此字段存放加密的口令。在此文件中的口令是X,这表示用户的口令是被/etc/shadow文件保护的,所有加密的口令以及和口令有关的设
置都保存在/etc/shadow中。
用户标识
号
是一个整数,系统内部用它来标识用户。每个用户的UID都是唯一的。root用户的UID是0,从1到999是系统的标准账户。普通用户的
UID从1000开始。
组标识号是一个整数,系统内部用它来标识用户所属的组。每个用户账户在建立好后都会有一个主组。主组相同的账户其GID相同。
注释性描
述
例如存放用户全名等信息。
自家目录用户登录系统后所进入的目录。
命令解释
器
指示该用户使用的Shell,Linux默认为bash。
/etc/shadow
/e tc/passwd文件对任何用户均可读,为了增加系统的安全性,用户的口令通常用shadow passwords保护。/e tc
/shadow只对root用户可读。在安装系统时,会询问用户是否启用shadow passwords功能。在安装好系统后也可
以用pwconv命令和pwunconv命令来启动或取消shadow passwords的保护。
C e ntO S 默认使用shadow passwords保护。经过shadow passwords保护的账户口令和相关设置信息保存在
/e tc/shadow文件里。shadow文件的内容形式如下:
root:$1$UMHcnkVs$WbsUEcstZXKtYvixx34Qi0:13855:0:99999:7:::
bin:*:13855:0:99999:7:::
daemon:*:13855:0:99999:7:::
adm:*:13855:0:99999:7:::
lp:*:13855:0:99999:7:::
sync:*:13855:0:99999:7:::
shutdown:*:13855:0:99999:7:::
halt:*:13855:0:99999:7:::
mail:*:13855:0:99999:7:::
news:*:13855:0:99999:7:::
uucp:*:13855:0:99999:7:::
operator:*:13855:0:99999:7:::
games:*:13855:0:99999:7:::
gopher:*:13855:0:99999:7:::
ftp:*:13855:0:99999:7:::
nobody:*:13855:0:99999:7:::
rpm:!!:13855:0:99999:7:::
dbus:!!:13855:0:99999:7:::
apache:!!:13855:0:99999:7:::
avahi:!!:13855:0:99999:7:::
mailnull:!!:13855:0:99999:7:::
smmsp:!!:13855:0:99999:7:::
distcache:!!:13855:0:99999:7:::
nscd:!!:13855:0:99999:7:::
vcsa:!!:13855:0:99999:7:::
rpc:!!:13855:0:99999:7:::
rpcuser:!!:13855:0:99999:7:::
nfsnobody:!!:13855:0:99999:7:::
named:!!:13855:0:99999:7:::
sshd:!!:13855:0:99999:7:::
dovecot:!!:13855:0:99999:7:::
webalizer:!!:13855:0:99999:7:::
squid:!!:13855:0:99999:7:::
pcap:!!:13855:0:99999:7:::
haldaemon:!!:13855:0:99999:7:::
osmond:$1$DEXUnuYT$LDqcRsYSKu5Pd5CYxbU.v/:13855:0:99999:7:::
crq::13857:0:99999:7:::
jason:!!:13861:0:99999:7:::
qu10m:!!:13862:0:99999:7:::
其中各字段的意义如表所示。
字段说明
用户名用户的账户名
口令用户的口令,是加密过的
最后一次修改的时间从1970年1月1日起,到用户最后一次更改口令的天数
最小时间间隔从1970年1月1日起,到用户可以更改口令的天数
最大时间间隔从1970年1月1日起,到用户必须更改口令的天数
警告时间在用户口令过期之前多少天提醒用户更新
不活动时间在用户口令过期之后到禁用账户的天数
失效时间从1970年1月1日起,到账户被禁用的天数
标志保留位
/etc/group
将用户分组是Linux中对用户进行管理及控制访问权限的一种手段。每个用户都属于某一个组;一个组中可以有多个用
户,一个用户也可以属于不同的组。当一个用户同时是多个组的成员时,在/e tc/passwd文件中记录的是用户所属的主
组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问附加组的文件时,必须首先使用ne wgrp命令使自
己成为所要访问的组的成员。组的所有属性都存放在/e tc/group文件中。/e tc/group文件对任何用户均可读。下面是
一个/e tc/group文件的例子:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:
dip:x:40:
ftp:x:50:
lock:x:54:
nobody:x:99:
users:x:100:
rpm:x:37:
dbus:x:81:
utmp:x:22:
apache:x:48:
avahi:x:70:
mailnull:x:47:
smmsp:x:51:
distcache:x:94:
nscd:x:28:
utempter:x:35:
floppy:x:19:
vcsa:x:69:
rpc:x:32:
rpcuser:x:29:
nfsnobody:x:65534:
named:x:25:
sshd:x:74:
dovecot:x:97:
webalizer:x:67:
squid:x:23:
pcap:x:77:
slocate:x:21:
haldaemon:x:68:
osmond:x:500:
crq:x:501:
jason:x:502:
fuse:x:101:
qu10m:x:503:
和/e tc/passwd文件类似,其中每一行记录了一个组的信息。每行包括四个字段,不同字段之间用冒号隔开。其中各字
段的内容说明见下表。
字段说明
组名该组的名称
组口令用户组口令,由于安全性原因,已不使用该字段保存口令,用“x”占位
GID 组的识别号,和UID类似,每个组都有自己独有的识别号,不同组的GID不会相同
组成员属于这个组的成员
/etc/gshadow
/e tc/gshadow文件用于定义用户组口令、组管理员等信息,该文件只有root用户可以读取。下面是一个/e tc
/gshadow文件的例子:
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
adm:::root,adm,daemon
tty:::
disk:::root
lp:::daemon,lp
mem:::
kmem:::
wheel:::root
mail:::mail
news:::news
uucp:::uucp
man:::
games:::
gopher:::
dip:::
ftp:::
lock:::
nobody:::
users:::
rpm:x::
dbus:x::
utmp:x::
apache:x::
avahi:x::
mailnull:x::
smmsp:x::
distcache:x::
nscd:x::
utempter:x::
floppy:x::
vcsa:x::
rpc:x::
rpcuser:x::
nfsnobody:x::
named:x::
sshd:x::
dovecot:x::
webalizer:x::
squid:x::
pcap:x::
slocate:x::
haldaemon:x::
osmond:!::
crq:!::
jason:!::
fuse:!::
qu10m:!::
和/e tc/group文件类似,其中每一行记录了一个组的信息。每行包括四个字段,不同字段之间用冒号隔开。其中各字段
的内容说明见下表。
字段说明
组名用户组名称,该字段与group文件中的组名称对应
组口令用户组口令,该字段用于保存已加密的口令
组的管理员账号组的管理员账号,管理员有权对该组添加删除账号
组成员属于该组的用户成员列表,列表中多个用户间用“,”分隔
显示源文件
24.route 命令
route 命令的输出项说明
输出项说明
Destination 目标网段或者主机
Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码
Flags 标记。一些可能的标记如下:
U — 路由是活动的
H — 目标是一个主机
G — 路由指向网关
R — 恢复动态路由产生的表项
D — 由路由的后台程序动态地安装
M — 由路由的后台程序修改
! — 拒绝路由
Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由项引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
add : 添加一条路由规则
de l : 删除一条路由规则
-ne t : 目的地址是一个网络
-host : 目的地址是一个主机
targe t : 目的网络或主机
ne tm ask : 目的地址的网络掩码
gw : 路由数据包通过的网关
de v : 为路由指定的网络接口
route 命令使用举例
25.通常将由ls –l命令输出的第一列称为文件或目录的权限字符串。下面列出了几个权限字符串的说明。
字符串八进制数值说明
-rw——- 600 只有属主才有读取和写入的权限。
-rw-r––r–– 644 只有属主才有读取和写入的权限;同组人和其他人只有读取的权限。
-rwx—— 700 只有属主才有读取、写入、和执行的权限。
-rwxr-xr-x 755 属主有读取、写入、和执行的权限;同组人和其他人只有读取和执行的权限。
-rwx––x––x 711 属主有读取、写入、和执行权限;同组人和其他人只有执行权限。
-rw-rw-rw- 666 每个人都能够读取和写入文件。
-rwxrwxrwx 777 每个人都能够读取、写入、和执行。
drwx—— 700 只有属主能在目录中读取、写入。
drwxr-xr-x 755 每个人都能够读取目录,但是其中的内容却只能被属主改变。
把权限设为 666 会允许每个人对文件或目录都有读取和写入的权限。把权限设为 777 允许每个人都有读取、写入和执
行的权利。这些权限可能会允许对机密文件的篡改,因此,一般来说,使用这类设置是不明智的。
特殊权限位
三个特殊权限位是在可执行程序运行时影响操作权限的。他们分别是SUID位、SGID位和stick y-bit位。
特殊权限说明
SUID
当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特
权。任意存取该文件拥有者能使用的全部系统资源。如果所有者是 root 的话,那么执行人就有超级用户的特权了。
SGID
当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源;若一个目录设置了
SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p(preserve,保留文件
属性)的参数,才能保留原来所属的群组设置。
sticky-bit
对一个文件设置了sticky-bit之后,尽管其他用户有写权限,也必须由属主执行删除、移动等操作;对一个目录设置了sticky-bit之后,
存放在该目录的文件仅准许其属主执行删除、移动等操作。
由于特殊权限会拥有一些“特权”,因而用户若无特殊需要,不应该去打开这些权限,避免安全方面出现严重漏洞、甚至
摧毁系统。
一个设置了SUID的典型例子是passwd程序,它允许普通用户改变自己的口令,这是通过改变/e tc/shadow文件的口
令字段实现的。然而系统管理员决不允许普通用户拥有直接改变/e tc/shadow文件的权利,因为这绝对不是个好主意。
解决方法是将passwd程序设置SUID,当passwd程序被执行的时将拥有超级用户的权限,而passwd程序运行结束又
回到普通用户的权限。下面显示passwd程序的权限。