实验2.1 命令进程的创建与并发执行 ①启动Linux,进入黑屏界面; ②在tty1上用root账号登录,在tty2和tty3上则分别以普通用户账号登录; ③在tty1上输入命令“ps --help”,即在tty1上创建命令进程ps,以查看ps命令的help信息; ④在tty2上输入命令“man man”,即在tty2上创建命令进程man,以查看man命令的help信息,不要终止该man命令; ⑤在tty3上执行命令“man pstree”,即在tty3上创建命令进程man,查看pstree命令的help信息,同样也不要终止该man命令; ⑥在tty1上执行ps命令,查看本控制台上所有程的基本信息; ⑦在tty1上执行pstree命令,查看进程的分层结构。 ⑧再在tty1上执行ps命令,查看本系统的所有进程的详细信息,并从中找到并记下tty2上的man命令进程的PID;你能看到ps命令输出的全部信息吗? 如果不能,可以利用Linux的“重定向”或“管道”功能,例如,可输入如下管道命令行:ps –aux | more 该命令行的语义是:将ps命令的输出结果作为输入传递给more命令(分页显示),并执行more命令。) ⑨撤消tty2上的man命令进程; ⑩再执行ps命令,查看被撤消的进程是否还存在; ⑾切换到tty2,观察man命令是否还在执行或已终止;再切换到tty3,观察man命令是否还在执行或已终止; ⑿注销 (不要关机)。
时间: 2025-04-07 13:09:22 浏览: 25
<think>嗯,用户的问题是关于在Linux的tty多终端环境下,如何使用ps、man、pstree命令进行进程管理和查看信息,以及如何实现进程的并发执行和终止操作。首先,我需要理清楚每个命令的具体用法和它们在进程管理中的作用。
首先,ps命令是用来查看进程信息的。用户可能需要知道不同的选项,比如ps -e显示所有进程,ps -f显示完整格式,还有如何结合选项如ps aux来查看更详细的信息。需要解释这些参数的意义,例如USER、PID、%CPU等字段的含义。这部分需要确保用户能够理解输出内容,并根据需要筛选进程。
然后是man命令,它用于查看命令的手册页。用户可能不太清楚如何快速查找特定选项或使用关键字搜索,比如使用man -k来查找相关命令。这部分需要简单说明man的基本用法和常用技巧,帮助用户自主查询命令的帮助文档。
接下来是pstree命令,这个命令以树状结构展示进程之间的关系。用户可能想了解如何查看特定用户的进程树,或者如何显示进程的PID。需要举例说明pstree的常用选项,比如-p显示PID,-u显示用户切换,这样用户能更直观地理解进程的层级结构。
关于进程的并发执行,用户可能想知道如何通过命令在后台运行进程,比如使用&符号或者nohup命令。需要解释前台和后台进程的区别,以及如何将任务放入后台运行,如何用jobs查看后台任务,fg和bg命令的作用。这里可能还要提到使用screen或tmux进行多终端会话管理,以支持更复杂的并发需求。
进程终止操作涉及kill、pkill和killall命令。需要说明不同信号的作用,尤其是SIGTERM和SIGKILL的区别,强调先尝试优雅终止再强制结束。同时,根据用户的引用资料,pkill可以根据用户名或终端终止进程,比如pkill -u tom,这部分需要结合引用内容给出例子。
在多终端环境下,用户可能需要跨终端管理进程。例如,在一个终端启动进程,在另一个终端用ps查找并终止。这里需要说明如何通过指定终端编号(tty)来过滤进程,比如ps -t pts/1,以及使用pkill -t来终止特定终端的进程。
此外,引用资料中提到了top命令的动态视图和排序功能,比如按P、M、N键排序,以及使用k终止进程。这部分可以作为补充内容,帮助用户更全面地监控和管理进程。
最后,用户可能需要示例来具体操作,比如如何启动多个后台进程,如何查看并终止它们。需要确保示例命令正确无误,并且符合实际使用场景。同时,强调命令权限的问题,比如普通用户只能终止自己的进程,而root用户可以终止所有进程,避免权限不足的问题。
总结下来,回答需要分步骤详细说明每个命令的用法,结合引用资料中的信息,给出实际例子,并注意用户可能的操作场景和常见问题,比如并发执行的管理和跨终端操作。同时,要确保语言简洁明了,符合中文表达习惯,避免技术术语过于晦涩。</think>### Linux tty多终端环境下进程管理与并发执行详解
#### 一、基础命令使用
1. **`ps`命令查看进程信息**
- `ps -e`:显示所有进程(包括系统进程)
- `ps -f`:显示完整格式(含PID、PPID、启动时间等)
- `ps aux`:查看详细进程信息(含CPU/内存占用)
示例输出字段说明:
$$ \begin{array}{|c|c|} \hline USER & 进程所有者 \\ PID & 进程ID \\ \%CPU & CPU占用率 \\ COMMAND & 启动命令 \\ \hline \end{array} $$
2. **`man`命令查询帮助文档**
- `man ps`:查看ps命令完整手册
- `/keyword`:在手册页内搜索关键词(按`n`跳转下一个匹配项)
- `man -k process`:查找所有与"process"相关的命令[^3]
3. **`pstree`可视化进程树**
- `pstree -p`:显示进程PID
- `pstree -u`:标记用户切换关系
- `pstree tom`:仅显示用户tom的进程树[^1]
#### 二、多终端进程操作
1. **终端标识与进程过滤**
- 通过`tty`命令查看当前终端标识(如`/dev/pts/1`)
- `ps -t pts/1`:过滤指定终端的进程[^2]
2. **进程并发执行**
- 后台运行:`sleep 60 &`(&符号使命令后台执行)
- 多任务管理:
```bash
nohup ./server.sh & # 脱离终端持久运行
jobs -l # 查看后台任务列表
fg %1 # 将任务1调至前台
```
#### 三、进程终止操作
1. **精准终止方法**
- `kill -9 1234`:强制终止PID为1234的进程[^4]
- `pkill -t pts/2`:终止指定终端的所有进程
- `killall -u tom`:终止用户tom的所有进程[^5]
2. **终止策略建议**
- 先尝试`kill -15`(SIGTERM)允许进程清理资源
- 无响应时再使用`kill -9`(SIGKILL)强制终止[^4]
#### 四、综合应用示例
```bash
# 终端1:启动并发进程
for i in {1..3}; do sleep 300 & done
# 终端2:查看进程树
pstree -p | grep sleep
# 终端3:批量终止
pkill -f "sleep 300"
```
#### 五、扩展工具推荐
- 使用`top`动态监控(按P/M/N键排序资源占用)
- 通过`screen`或`tmux`实现终端会话持久化
阅读全文
相关推荐


















