一,Linux系统启动流程
# 启动过程简单说明
1:当按下电源键后,计算机中的硬件会自动去读取BIOS来加载硬件信息跟进行硬件的自我测试
2:之后系统会进行读取第一个可启动的设备
3:此时就可以读入引导装载程序,引导装装载程序可以指定那么内核文件来启动,并将该内核加载到内存中并执行
4:检测所有的硬件信息与加载适当的驱动程序
# Linux系统的引导顺序
1:加载 BIOS 的硬件信息并进行自我测试,并依据设置取得第一个可启动设备
2:读取并执行第一个启动设备MBR内的boot Loader(即是 lilo, grub, spfdisk 等等)
3:依据boot loader的设置加载kernel,kernel会开始检测硬件和加载驱动程序
4:在硬件驱动完成后,Kernel会调用init进程,而init会取得run-level信息
5:init 执行 /etc/rc.d/rc.sysinit来准备软件执行的操作环境(网络,时区等等)
6:启动核心的外挂模块 (/etc/modprobe.conf)
7:init 执行 run-level 的各个批处理文件( Scripts )
8:init 执行 /etc/rc.d/rc.local 档案
9:init执行终端机模拟程序mingetty来启动login进程,等待用户登录
10:登入之后开始以 Shell 控管主机
# Linux操作系统的启动流程
第一步:当打开计算机的电源,计算机硬件首先加载BIOS,并通过BISO加载CMOD的信息,并通过CMOS内的设置取得各个主机的硬件配置(盘,网络接口,键盘,串口...),BIOS通过CMOS获取到硬件信息后BISO还会进行开机自检,然后对硬件进行初始化,计算机会从主板的BIOS读取所存储的计算机程序,接下来就会启动设备的数据读取(MBR相关任务的开始)
第二步:当BIOS找到启动程序时(找到启动盘),计算机将从你存储设备中读取起始位置的512字节(一个扇区,硬盘最小的读写单位;其中前446中的程序代码是用来选择boot partition(分区)的引导信息,也就是由哪个分区来装入开机用的代码;中间64B为分区信息;最后的2B是标志位),这512字节称为主引导记录MBR,MBR会告诉电脑从该设备的某一个分区来装载引导加载程序(boot loader),boot loader存储有操作系统的相关信息,比如操作系统的名称,操作系统内核所在的位置。常用的loot loader有 GRUB和LILO
第三步:因为我们的系统软件大多放置在硬盘中,所以BIOS会指定启动的设备好让我们可以读取磁盘中操作系统的内核文件。因为不同的操作系统的文件系统格式不一样,所以我们必须利用一个引导装载程序来解决内核文件加载的问题(这个引导装载程序被称为 Boot Loader )而这个BootLoader就安装在MBR(主引导分区)中;boot loader会帮助我们加载kernel
MBR:MBR会在启动盘的第1个块中,大小为512B。其中前446中的程序代码是用来选择boot partition(分区)的引导信息,也就是由哪个分区来装入开机用的代码;中间64B为分区信息;最后的2B是标志位
BootLoader:BootLoader的主要功能就是认识操作系统的文件格式,并将内核文件加载到内存中去执行,因为不同的操作系统的文件格式不一样,所以每种操作系统都有自己的bootloader,用自己的loader才能载入内核文件
GRUB(多重操作系统启动器)在一操作系统中可以安装多个系统,GRUB用来控制启动哪个系统
第四步:当通过bootloader将kenerl加载到内存中后,Linux就会将内核解压缩到我们的内存中,并且利用内核的功能,测试与驱动周边的硬件设备(硬盘,CPU,网卡,声卡...)
第五步:在内核加载完成并进行硬件检测和驱动程序加载后,此时的主机硬件已经准备就绪了,此时内核会主动调用第一个进程/sbin/init
# run level:不同的运行级别
run level是什么:Linux通过设置run level来规定系统使用不同的服务来启动LInux系统,让Linux的使用环境不同
0 # 系统直接关机
1 # 单用户,用在系统出问题时的维护
2 # 多用户,但没有启动网络功能
3 # 多用户,启动了网络功能,纯文本模式
4 # 用户自定义模式
5 # 与run level 3相同,但加载图形界面
6 # 重新启动
# 因为run level 0/4/6分别为关机,用户自定义,重启,所以在设置系统默认级别时不能设置为这三个值,否则系统就会不断的重启或关机
# 补充点:
常用的可以关闭系统的命令:
shutdown -h now
halt
poweroff
init 0
常用的可以重启系统的命令:
shutdown -r now
reboot
init 6
Ctrl+Alt+Delete键
# 打开run level配置文件查看其中的内容 /etc/inittab文件
[root@localhost 桌面]# vim /etc/inittab
(前面省略)
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault: <===默认的run level(可修改默认启动级别)
# 不同的runlevel,执行不同的脚本(文件位置不相同)
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# /etc/inittab文件中的定义
在该文件中的登记项都是以冒号":"作为分隔符,将其分为4段,形如
[设置选项] : [run level] : [init的操作行为] : [命令选项]
# 设置选项:最多由4个字符组成,代表init的主要选项
# run level:执行什么样的run level级别,例如 35 表示 runlevel3/5都会执行
# init的操作行为:表示可以进行的操作
# 1 initdefault:设定默认的运行级别 # 2 sysinit:系统初始化操作选项 # 3 ctrlaltdel:当用户按下ctrl+alt+del组合键时是否可以重新启动的设置 # 4 wait:代表后面字段设置命令项目必须要执行完毕才能继续下面的其它操作 # 5 respawn:代表后面字段的命令可以无限制的重新启动, # 6 powerwait:当init接收到电源失败信号的时候执行相应的process,并且如果init有进程在运行,会等待这个进程完成之后,再执行相应的process # 7 powerfail:当init接收到电源失败信号的时候执行相应的process,并且如果init有进程在运行,不会等待这个进程完成,它会直接执行相应的process # 8 powerokwait:电源已经故障,但是在等待执行对应操作的时候突然来电了就执行对应的process # 9 powerfailnow:当电源故障并且init被通知UPS电源已经快耗尽执行相对应的process # 10 boot:只有在引导过程中,才执行该进程,但不等待该进程的结束;当该进程死亡时,也不重新启动该进程 # 11 bootwait:只有在引导过程中,才执行该进程,并等待进程的结束;当该进程死亡时,也不重新启动该进程 # 12 off:如果process正在运行,那么就发出一个警告信号,等待20秒后,再通过杀死信号强行终止该process。如果process并不存在那么就忽略该登记项 # 13 once:启动相应的进程,但不等待该进程结束便继续处理/etc/inittab文件中的下一个登记项;当该进程死亡时,init也不重新启动该进程
# 命令选项:即应该可以进行的命令
# init的处理流程(从上而下,一行一行的进行处理)
1:取得默认执行的等级 run level例如当前默认等级为5
2:使用/etc/rc.d/rc.sysinit进行系统的初始化(下面会再次提到)
3:因为默认等级为5,所以只进行5:5:wait:/etc/rc.d/rc5
4:设置好ctrl + alt + del组合键的功能
5:设计不断电系统 pf pr两种机制
6:启动mingetty的六个终端机
7:启动图形界面
# 上面的几步init已经获取到了系统的启动级别;而后开始进行初始化系统sysinit
系统初始化所完成的工作
# 启动系统服务与相关启动配置文件
当要启动系统的服务时,前面的不同的启动级别对应着不同的脚本目录,例如当前的启动级别为run level5,则当前的启动脚本为 l5:5:wait:/etc/rc.d/rc 5,即由/etc/rc.d/rc 5取得执行目录/etc/rc5.d;当打开该文件时,里面的文档都是以S或K开头的
当要启动一个服务时 /etc/rc5.d/Sxx start
当停止一个服务时 /etc/rc5.d/Kxx stop
例如执行 K01smartd 和 S25cups 两个文档为例,通过/etc/rc.d/rc5,这两个文件的执行过程为
/etc/rc5.d/K01smartdstop --> /etc/init.d/smartdstop
/etc/rc5.d/S25cupsstart --> /etc/init.d/cupsstart
二,grub加密
grub用来控制系统调用哪个内核
# 进入单用户模式修改默认启动级别
第一步:在进入读秒界面时按下任意键进入如图所示界面
第二步:按下“e”进入后选择第二个选项后按下"e"
第三步: 按下空格键,输入1按回车,再次按下b进入单用户模式
第四步:打开文件/etc/inittab进行修改默认等级
id:5:initdefault:
# 如何禁其它用户进入单用户模式修改
第一步:获取一个密文密码
[root@localhost 桌面]# grub-md5-crypt Password: Retype password: # 利润也输入123456 $1$MpG8E0$.aC2m5vBQVsjTcZNTejeZ1 # 密文密码
第二步:修改grub.conf配置文件
default=0 # 0:表示第一个title(第一个内核信息) 表示默认加载第一个内核 timeout=5 # 刚开始时的读秒时间 splashimage=(hd0,0)/grub/splash.xpm.gz # 开机界面加载的哪种图片 hiddenmenu password --md5 $1$MpG8E0$.aC2m5vBQVsjTcZNTejeZ1 # 添加改行 title CentOS 6 (2.6.32-642.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=eef6b48f-3e4d-4c7f-a874-72f233d43166 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-642.el6.x86_64.img
# 然后重启Linux系统,在读秒情况下按下任意键进入grub模式,然后按下e后会发现没有任何反应
# 按 p 来输入密码并进行解锁 待输入密码后 又能进行单用户操作
...
三,bios加密
通过bios可直接将grub加密的密码删除
# 如何删除grub加密的密码
第一步:在进入该界面时立即按下F2
第二步:在该界面下选择Boot,将CD-ROM Driver移动到最上方(可利用 '-'减号键来移动)而后按F10进行保存
第三步:选择yes
第四步:选择第三个 进入救援模式
第五步:注意该界面提示,将原先的系统挂载到了/mnt/sysimage下了
第六步:按下Enter后进入了超级用户模式(注意下方的)
第七步:打开文件删除grub加密
bash-4.1# vi /mnt/sysimage/etc/grub.conf
第八步:reboot重启
第九步:还是在启动时按下F2进入Boot选项,将+Hard Drive移动到最上面,而后可正常进入单用户模式
# 对bios进行加密
还是利用F2进入该界面,选择security选择set supervisor Passord添加bios密码,等之后进入该界面时必须得输入密码才能进入
# 但上方的也不是最安全的设置,
四,进程的查看
# 静态进程的查看 ps
[root@localhost 桌面]# ps aux # 查询系统所有进程数据
[root@localhost 桌面]# ps -lA # 也能查看所有的系统数据
[root@localhost 桌面]# ps axjf # 连同部进程树情况
## 参数
[root@localhost 桌面]# ps -A
-A # 将所有数据显示出来,与-e相同
-a # 不与terminal有关的所有进程
-u # 有效用户相关的进程
x # 通常与a一起使用,可以列出较完整的信息
-l # 详细的将PID的信息列出
j # 工作模式
-f # 做一个更完整的输出
# 动态进程查看 top
top命令:常用的性能分析工具,能够实时像是系统中各个进程的资源占用情况
# 查看系统各个资源的占用情况
[root@localhost 桌面]# top
top - 21:11:17 up 1:00, 2 users, load average: 0.74, 0.31, 0.20
Tasks: 153 total, 2 running, 151 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.7%us, 0.7%sy, 0.0%ni, 96.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1004136k total, 627468k used, 376668k free, 62680k buffers
Swap: 5098492k total, 0k used, 5098492k free, 233964k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2557 root 20 0 170m 25m 10m S 2.7 2.6 0:03.02 Xorg
3608 root 20 0 347m 16m 11m S 1.0 1.7 0:00.20 gnome-terminal
1 root 20 0 19344 1560 1240 S 0.0 0.2 0:01.41 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
7 root 20 0 0 0 0 S 0.0 0.0 0:01.99 events/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/0
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/0
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
# 各个数据的表示
## 第一行为任务队列信息
21:11:17 # 当前的时间
up 1:00 # 系统运行时间
2 users # 当前登录系统的用户数
load average: 0.74, 0.31, 0.20 # 系统的负载;三个数值分别表示为1分钟,5分钟,15分钟前到现在的平均值
## 第二,三行为进程和CPU信息
Tasks: 153 total # 进程总数
2 running # 正在运行的进程数
151 sleeping # 睡眠的进程数
0 stopped # 停止的进程数
0 zombie # 僵尸进程数
Cpu(s): 2.7%us # 用户空间占用CPU百分比
0.7%sy # 内核空间占用CPU百分比
0.0% ni # 用户进程空间内改变过优先级的进程占用CPU百分比
96.6%id # 空闲CPU百分比
0.0% wa # 等待输入输出的CPU时间百分比
0.0% hi # 硬件中断占用CPU时间的百分比
0.0% si # 软件中断占用CPU时间的百分比
## 第四,五行表示的为内存信息
Mem: 1004136k total, 627468k used, 376668k free, 62680k buffers
Swap: 5098492k total, 0k used, 5098492k free, 233964k cached
## 进程信息中各个的含义
PID # 进程id
PPID # 父进程id
RUSER # Real user name
UID # 进程所有者的用户id
USER # 进程所有者的用户名
GROUP # 进程所有者的组名
TTY # 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR # 优先级
NI # nice值,负值表示高优先级,正值表示低优先级
P # 最后使用的CPU,仅在多CPU环境下有意义
%CPU # 上次更新到现在的CPU时间占用百分比
TIME # 进程使用的CPU时间总计,单位秒
TIME+ # 进程使用的CPU时间总计,单位1/100秒
%MEM # 进程使用的物理内存百分比
VIRT # 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP # 进程使用的虚拟内存中,被换出的大小,单位kb。
RES # 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE # 可执行代码占用的物理内存大小,单位kb
DATA # 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR # 共享内存大小,单位kb
nFLT # 页面错误次数
nDRT # 最后一次写入到现在,被修改过的页面数。
S # 进程状态。
D # 不可中断的睡眠状态
R # 运行
S # 睡眠
T # 跟踪/停止
Z # 僵尸进程
COMMAND # 命令名/命令行
WCHAN # 若该进程在睡眠,则显示睡眠中的系统函数名
Flags # 任务标志,参考 sched.h
# 查阅程序树之间的关系pstree
[root@localhost 桌面]# pstree -A
-A # 各个进程树之间以AaSCII字符来进行连接
-U # 各个进程树之间以UTF-8字符来进行连接
-p # 同时列出每个进程的PID
-u # 同时列出每个进程所属账号名称
# 例如:各个进程树之间以AaSCII字符来进行连接,同时也列出PID和进程所属账号名称
[root@localhost 桌面]# pstree -A
init-+-NetworkManager
|-VGAuthService
|-abrtd
|-acpid
|-atd
|-auditd---{auditd}
|-automount---4*[{automount}]
|-bonobo-activati---{bonobo-activat}
|-certmonger
|-clock-applet
|-console-kit-dae---63*[{console-kit-da}]
|-crond
|-cupsd
|-2*[dbus-daemon]
|-2*[dbus-launch]
|-devkit-power-da
|-gconf-im-settin
|-gconfd-2
|-gdm-binary-+-gdm-simple-slav-+-Xorg
| | |-gdm-session-wor-+-gnome-session-+-abrt-ap+
| | | | |-bluetoo+
| | | | |-evoluti+
| | | | |-gdu-not+
| | | | |-gnome-p+
| | | | |-gnome-p+
| | | | |-gnome-v+
| | | | |-gpk-upd+
| | | | |-metacit+
| | | | |-nautilus
| | | | |-nm-appl+
| | | | |-polkit-+
| | | | |-python
| | | | `-{gnome-+
| | | `-{gdm-session-wo}
| | `-{gdm-simple-sla}
| `-{gdm-binary}
|-gdm-user-switch
|-gnome-keyring-d---2*[{gnome-keyring-}]
|-gnome-screensav
|-gnome-settings----{gnome-settings}
|-gnome-terminal-+-bash---pstree
| |-gnome-pty-helpe
| `-{gnome-terminal}
|-gnote
|-gvfs-afc-volume---{gvfs-afc-volum}
|-gvfs-fuse-daemo---3*[{gvfs-fuse-daem}]
|-gvfs-gdu-volume
|-gvfs-gphoto2-vo
|-gvfsd
|-gvfsd-burn
|-gvfsd-metadata
|-gvfsd-trash
|-hald-+-hald-runner-+-hald-addon-acpi
| | `-hald-addon-inpu
| `-{hald}
|-ibus-x11
|-im-settings-dae-+-ibus-daemon-+-ibus-engine-pin
| | |-ibus-gconf
| | |-python
| | `-{ibus-daemon}
| `-{im-settings-da}
|-master-+-pickup
| `-qmgr
|-5*[mingetty]
|-modem-manager
|-notification-ar
|-ntpd---ntpd
|-polkitd
|-pulseaudio-+-gconf-helper
| `-2*[{pulseaudio}]
|-rpc.statd
|-rpcbind
|-rsyslogd---3*[{rsyslogd}]
|-rtkit-daemon---2*[{rtkit-daemon}]
|-seahorse-daemon
|-sshd
|-trashapplet
|-udevd---2*[udevd]
|-udisks-daemon-+-udisks-daemon
| `-{udisks-daemon}
|-vmtoolsd---{vmtoolsd}
|-vmtoolsd
|-vmware-vmblock----2*[{vmware-vmblock}]
|-wnck-applet
`-wpa_supplicant
[root@localhost 桌面]# pstree -Aup
init(1)-+-NetworkManager(1997)
|-VGAuthService(1651)
|-abrtd(2441)
|-acpid(2093)
|-atd(2468)
|-auditd(1876)---{auditd}(1878)
|-automount(2186)-+-{automount}(2187)
| |-{automount}(2188)
| |-{automount}(2191)
| `-{automount}(2194)
|-bonobo-activati(2940)---{bonobo-activat}(2941)
|-certmonger(2485)
|-clock-applet(3216)
|-console-kit-dae(2571)-+-{console-kit-da}(2572)
| |-{console-kit-da}(2573)
| |-{console-kit-da}(2574)
| |-{console-kit-da}(2575)
| |-{console-kit-da}(2576)
| |-{console-kit-da}(2577)
| |-{console-kit-da}(2578)
| |-{console-kit-da}(2579)
| |-{console-kit-da}(2580)
| |-{console-kit-da}(2581)
| |-{console-kit-da}(2582)
| |-{console-kit-da}(2583)
| |-{console-kit-da}(2584)
| |-{console-kit-da}(2585)
| |-{console-kit-da}(2586)
| |-{console-kit-da}(2587)
| |-{console-kit-da}(2588)
| |-{console-kit-da}(2589)
| |-{console-kit-da}(2590)
| |-{console-kit-da}(2591)
| |-{console-kit-da}(2592)
| |-{console-kit-da}(2593)
| |-{console-kit-da}(2594)
| |-{console-kit-da}(2595)
| |-{console-kit-da}(2596)
| |-{console-kit-da}(2597)
| |-{console-kit-da}(2598)
| |-{console-kit-da}(2599)
| |-{console-kit-da}(2600)
| |-{console-kit-da}(2601)
| |-{console-kit-da}(2602)
| |-{console-kit-da}(2603)
| |-{console-kit-da}(2604)
| |-{console-kit-da}(2605)
| |-{console-kit-da}(2606)
| |-{console-kit-da}(2607)
| |-{console-kit-da}(2608)
| |-{console-kit-da}(2609)
| |-{console-kit-da}(2610)
| |-{console-kit-da}(2611)
| |-{console-kit-da}(2612)
| |-{console-kit-da}(2613)
| |-{console-kit-da}(2614)
| |-{console-kit-da}(2615)
| |-{console-kit-da}(2616)
| |-{console-kit-da}(2617)
| |-{console-kit-da}(2618)
| |-{console-kit-da}(2619)
| |-{console-kit-da}(2620)
| |-{console-kit-da}(2621)
| |-{console-kit-da}(2622)
| |-{console-kit-da}(2623)
| |-{console-kit-da}(2624)
| |-{console-kit-da}(2625)
| |-{console-kit-da}(2626)
| |-{console-kit-da}(2627)
| |-{console-kit-da}(2628)
| |-{console-kit-da}(2629)
| |-{console-kit-da}(2630)
| |-{console-kit-da}(2631)
| |-{console-kit-da}(2632)
| |-{console-kit-da}(2633)
| `-{console-kit-da}(2635)
|-crond(2453)
|-cupsd(2060)
|-dbus-daemon(2841)
|-dbus-daemon(1984,dbus)
|-dbus-launch(2840)
|-dbus-launch(2641,gdm)
|-devkit-power-da(2646)
|-gconf-im-settin(3213)
|-gconfd-2(2900)
|-gdm-binary(2496)-+-gdm-simple-slav(2554)-+-Xorg(2557)
| | |-gdm-session-wor(2818)-+-gn+
| | | `-{g+
| | `-{gdm-simple-sla}(2558)
| `-{gdm-binary}(2555)
|-gdm-user-switch(3223)
|-gnome-keyring-d(2822)-+-{gnome-keyring-}(2823)
| `-{gnome-keyring-}(2907)
|-gnome-screensav(3033)
|-gnome-settings-(2906)---{gnome-settings}(2911)
|-gnome-terminal(3668)-+-bash(3670)---pstree(3736)
| |-gnome-pty-helpe(3669)
| `-{gnome-terminal}(3671)
|-gnote(3215)
|-gvfs-afc-volume(3002)---{gvfs-afc-volum}(3006)
|-gvfs-fuse-daemo(2918)-+-{gvfs-fuse-daem}(2919)
| |-{gvfs-fuse-daem}(2920)
| `-{gvfs-fuse-daem}(2921)
|-gvfs-gdu-volume(2950)
|-gvfs-gphoto2-vo(3009)
|-gvfsd(2914)
|-gvfsd-burn(3250)
|-gvfsd-metadata(3258)
|-gvfsd-trash(2958)
|-hald(2105,haldaemon)-+-hald-runner(2106,root)-+-hald-addon-acpi(2162,+
| | `-hald-addon-inpu(2151)
| `-{hald}(2107)
|-ibus-x11(3229)
|-im-settings-dae(3030)-+-ibus-daemon(3210)-+-ibus-engine-pin(3230)
| | |-ibus-gconf(3224)
| | |-python(3226)
| | `-{ibus-daemon}(3225)
| `-{im-settings-da}(3211)
|-master(2412)-+-pickup(3728,postfix)
| `-qmgr(2425,postfix)
|-mingetty(2506)
|-mingetty(2509)
|-mingetty(2511)
|-mingetty(2513)
|-mingetty(2515)
|-modem-manager(2002)
|-notification-ar(3218)
|-ntpd(2325,ntp)---ntpd(2343,root)
|-polkitd(2687)
|-pulseaudio(2970)-+-gconf-helper(3012)
| |-{pulseaudio}(3010)
| `-{pulseaudio}(3011)
|-rpc.statd(2020,rpcuser)
|-rpcbind(1964,rpc)
|-rsyslogd(1913)-+-{rsyslogd}(1914)
| |-{rsyslogd}(1916)
| `-{rsyslogd}(1917)
|-rtkit-daemon(2699,rtkit)-+-{rtkit-daemon}(2700)
| `-{rtkit-daemon}(2701)
|-seahorse-daemon(2922)
|-sshd(2218)
|-trashapplet(2955)
|-udevd(515)-+-udevd(2517)
| `-udevd(3270)
|-udisks-daemon(2954)-+-udisks-daemon(2956)
| `-{udisks-daemon}(3252)
|-vmtoolsd(1586)---{vmtoolsd}(1846)
|-vmtoolsd(2965)
|-vmware-vmblock-(1548)-+-{vmware-vmblock}(1551)
| `-{vmware-vmblock}(1553)
|-wnck-applet(2952)
`-wpa_supplicant(2061)
例子
五,系统资源查看
# 查看内存的使用状态free
[root@localhost 桌面]# free
total used free shared buffers cached
Mem: 1004136 627932 376204 3000 63216 234116
-/+ buffers/cache: 330600 673536
Swap: 5098492 0 5098492
# 参数
-b # 直接输入free时,显示的单位是KB,利用-b(bytes),-m(MB),-k(kb),g(GB)来显示单位
-t # 在输出最终结果中显示物理内存与swap的总量
# 查看系统与内核的相关信息 uname
[root@localhost 桌面]# uname -a
Linux localhost.localdomain 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# 参数
-a # 所有系统相关信息
-s # 系统内核名称
-r # 内核版本
-m # 本系统的硬件名称,例如x86_64
-p # CPU类型
-i # 硬件平台,ix86
# 查看系统启动时间与工作负载uptime
[root@localhost 桌面]# uptime
22:09:25 up 1:58, 2 users, load average: 0.07, 0.05, 0.09
# 跟踪网络netstat
-a # 列出系统上所有链接,监听Socket
-t # 列出tcp网络数据包的数据
-u # 列出udp数据包的数据
-n # 不列出进程服务名称,以端口号来输出
-l # 列出当前正在监听的网络
-p # 列出该网络服务进程,PID