程序与进程
- 程序
保存在磁盘中的可执行文件
是静态保存的代码
- 进程
在CPU及内存中运行的程序指令
是动态执行的代码
父/子进程:进程可以创建一个或多个子程序
- 查看进程树
pstree (process tree)
格式:pstree [选项] [PID或者用户名]
常用的命令选项:
- -a :显示完整的命令行
- -u :列出各进程所属的用户名
- -p :列出对应的PID号
#pstree -pua root #列出root用户开启的进程,进程号以及命令行
- 查看进程快照
ps (processes snapshot)
格式:ps [选项]
常用命令选项
- aux:显示当前终端所有进程(a),当前用户在所有终端下的进程(x),以用户格式输出(u)
- -elf:显示系统内所有进程(-e),以长格式输出信息(-l),包括最完整的进程信息(-f)
- 进程动态排名
top交互式工具
格式:top [-d 刷新描秒数] [-U 用户名]
#top -d 5 -U root #查看root用户的所有进程,每5秒刷新一次
- 检索进程信息
pgrep (process grep)
用途:pgrep [选项]... 查询条件
常用命令:
-l :输出进程名,而不仅仅是PID
- 进程的前后台调度
1. 前台启动:
---输入正常的命令行
---运行期间占用当前终端
2. 后台启动:
---在命令行末尾添加&符号
---运行期间不占用当前终端
3. 常用命令和快捷键
---Ctrl+z组合键:挂起当前进程(暂停并转入后台)
---jobs命令:查看后台任务列表
---fg命令:将后台任务恢复到前台运行
---bg命令:激活后台被挂起的任务
#jobs -l #显示后台进程的序号
#bg 1 #开启后台的进程需要指定序号
#fg 2#将后台序号为2的任务调度到前台运行
- 杀死进程
---Ctrl + c组合键,中断当前命令程序
---kill [-9] PID ...
---kill [-9] 进程名...
---pkill -9 -U 用户 #强制踢出某个用户
日志管理
- 日志的功能
系统和程序的“日记本”
---记录系统,程序运行中发生的各种事件
---通过查看日志,了解及排除故障
---信息安全控制的依据
- 内核及系统日志
由系统服务rsyslog统一记录/管理
---日志消息采用文本格式
---主要记录事件发生的时间,主机,进程和内容
- 常见的日志文件
日志文件 | 主要途径 |
/var/log/messages | 记录内核消息,各种服务的公共消息 |
/var/log/dmesg | 记录系统启动过程的各种消息 |
/var/log/cron | 记录与cron计划任务相关的消息 |
/var/log/maillog | 记录邮件收发相关的消息 |
/var/log/secure | 记录与访问限制相关的安全消息 |
- 查看文本日志消息
通用分析工具
---tail,tailf,less,grep等文本浏览/检索命令
---awk,sed等格式化过滤工具
专用分析工具
---Webmin系统管理套件
---Webalizer,AWStats等日志统计套件
- 用户登陆分析
---users,who,w命令:查看已登录的用户信息,详细度不同
---last,lastb命令:查看最近登录成功/失败的用户信息
#last -3 #最近两条登入事件
#lastb -3 #最近三条登录失败事件
- 日志消息的优先级
Linux内核定义的事件紧急程度
---分为0~7共种优先级
---其数值越小,表示对应事件越紧急
服务管理
- init程序的作用(/sbin/init--->/lib/systemd/system/)
Linux系统和服务管理器
---是内核引导之后加载的第一个初始化进程(PID=1)
---负责掌控整个Linux的运行/服务资源整合
- 传统的init程序风格
---system v:顺序加载,RHEL5系列采用
---upstart:事件触发,RHEL6采用
- systemd:一个更高效的系统&服务管理器
---开机服务并行启动,各系统服务间的精准依赖
---配置目录:/etc/systemd/system/
---服务目录:/lib/systemd/system/
---主要管理工具:systemctl
- 管理服务
---systemctl start 服务名 # 开启服务
---systemctl stop 服务名 # 关闭服务
--- systemctl restart 服务名 #重启服务
---systemctl enable 服务名 #设置服务开机自启动
---systemctl disable 服务名 #设置服务开机不自启动
---systemctl is-enabled 服务名 #查看服务是否开机自启动
- 管理运行级别
---systemctl -t target #列出可用运行级别
---systemctl isolate multi-user.target #切换到文本(多用户)模式
---systemctl isolate graphcal.target #切换到图形模式
---runlevel #确认当前的运行级别3/5
---systemctl get-default #查看默认级别
---systemctl set-default multi-user.target #设置默认级别为文本(多用户)模式
---systemctl set-default graphcal.target #设置默认级别为图形模式