查看进程

1.查看进程树

问题

1)以用户zhangsan登入,完成下列操作
2)使用vim打开abc.txt文件,不要编辑、不退出
3)以用户root登入另一个终端,完成下列操作
4)查看整个系统的进程树,输出PID号、完整命令行
5)查找用户zhangsan的进程树
6)查找用户zhangsan的进程树,并显示PID与完整命令

方案

PID:既标识了一个进程,也说明了这个进程启动的顺序。
程序:保存在磁盘中的可执行文件,是静态保存的代码。
进程:在CPU及内存中运行的程序指令或是动态执行的代码。
父/子进程:进程可以创建一个或多个子进程。
Linux运行的用第一个进程为init进程号为1。

步骤

实现此案例需要按照如下步骤进行。
步骤一:以用户zhangsan登入,完成下列操作
分析: 按Ctrl+Shift+t再开一个终端,利用su命令切换进行操作,如图所示。
在这里插入图片描述

使用vim打开abc.txt文件,不要编辑、不退出
命令操作如下所示:

[zhangsan@localhost ~]$ vim abc.txt     //按Enter回车即可

步骤二:以用户root登入另一个终端,完成下列操作
分析: 上题中zhangsan打开abc.txt的终端开着不用动,以供测试。
查看整个系统的进程树,输出PID号、完整命令行,命令操作如下所示:
[root@localhost ~]# pstree –aup //内容较多,简单看一下,可以结合管道给less查看
查找用户zhangsan的进程树,命令操作如下所示:

[root@localhost ~]# pstree zhangsan
bash───vim
[root@localhost ~]#

查找用户zhangsan的进程树,并显示PID与完整命令,命令操作如下所示:

[root@localhost ~]# pstree -ap zhangsan
bash,2814
  └─vim,3108 abc.txt
[root@localhost ~]#

2.查看进程快照

问题

1)以用户lisi登入,完成下列操作
2)使用vim打开nsd.txt文件,不要编辑、不退出
3)以用户root登入另一个终端,完成下列操作
4)查找用户lisi使用的bash进程的父进程名称、PID
5)根据查找结果,列出该父进程的进程树

方案

ps命令主要记住两个组合:一个是“aux”,记住前面没有“-”,另一个是“-elf”。要记住一点“-elf”,显示结果中有PPID为父ID值。

步骤

实现此案例需要按照如下步骤进行。
步骤一:以用户lisi登入,完成下列操作
分析: 按Ctrl+Shift+t再开一个终端,利用su命令切换进行操作,如图所示。

在这里插入图片描述
使用vim打开nsd.txt文件,不要编辑、不退出,命令操作如下所示:

[lisi@localhost ~]$ vim nsd.txt    //按Enter回车即可

步骤二:以用户root登入另一个终端,完成下列操作
分析: 上题中lisi打开nsd.txt的终端开着不用动,以供测试。查找的是父进程,所以选项应是-elf。
查找用户lisi使用的bash进程的父进程名称、PID,命令操作如下所示:

[root@localhost ~]# ps -elf | grep lisi
4 S root       3260   2767  0  80   0 - 40936 wait   10:49 pts/1    00:00:00 su - lisi
4 S lisi       3261   3260  0  80   0 - 27084 n_tty_ 10:49 pts/1    00:00:00 -bash
0 S root       3340   2786  0  80   0 - 25814 pipe_w 10:55 pts/2    00:00:00 grep lisi
//其中3260为父进程的PID

根据查找结果,列出该父进程的进程树,命令操作如下所示:

[root@localhost ~]# pstree  -aup 3260
su,3260 - lisi
  └─bash,3261,lisi
[root@localhost ~]#

3.进程动态排名

问题

1)安装cpuburn测试软件
2)运行cpuburn测试软件10分钟
3)再开启另一个终端,输入top动态查看
4)按CPU占用率降序排列
5)杀掉其中CPU占用最高的进程
6)查看原终端cpuburn程序是否已杀死

方案

top命令是Linux中动态查看进程的命令,可以输入“P”(大写),来进行CPU占用率降序排列,我们可以按快捷键Ctrl+Shift+t在开启一个终端,在其中运行cpuburn程序,该程序会持续占用CPU。
我们可以在原终端运行top命令,观察cpuburn进程状态。可以输入“k”,在写上该进程的PID,将其杀死。

步骤

实现此案例需要按照如下步骤进行。
步骤一:安装cpuburn测试软件
分析: 上传该软件可以使用VMware tools工具,该软件解压完了就可直接使用。此软件是一个测试软件,运行后会耗用CPU非常高。
命令操作如下所示:

[root@localhost ~]# ls
anaconda-ks.cfg    install.log         公共的  视频  文档  音乐
cpuburn-in.tar.gz  install.log.syslog  模板    图片  下载  桌面
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# tar -zxf /root/cpuburn-in.tar.gz -C /opt/  
[root@localhost ~]# ls /opt/
cpuburn-in  README
[root@localhost ~]#

步骤二:运行cpuburn测试软件10分钟
分析: 按Ctrl+Shift+t再开一个终端,运行cpuburn程序,如图所示。
在这里插入图片描述
命令操作如下所示:

[root@localhost ~]# ls /opt/
cpuburn-in  README
[root@localhost ~]# grep cpuburn-in /opt/README   	//在README里有使用方式的介绍
        "./cpuburn-in 10" will run the test for ten minutes.

[root@localhost ~]# /opt/cpuburn-in 10     			//以绝对路径方式执行
-bash: /opt/cpuburn-in: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录      //出现报错看报错提示,缺少 ld-linux.so.2文件,利用yum安装即可
[root@localhost /]# yum -y install ld-linux.so.2
[root@localhost ~]# /opt/cpuburn-in 10

CPU Burn-in v1.00 - Linux
-------------------------
Michal Mienik (c) 2000. cluster2k@hotmail.com

0 iterations complete.
5000 iterations complete.
10000 iterations complete
.. ..

步骤三:再开启另一个终端,输入top动态查看
命令操作如下所示:

[root@localhost /]# top
top - 12:43:18 up  1:08,  2 users,  load average: 0.91, 0.57, 0.28
Tasks: 117 total,   2 running, 115 sleeping,   0 stopped,   0 zombie
Cpu(s):100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    486284k total,   350248k used,   136036k free,    24260k buffers
Swap:  8388600k total,        0k used,  8388600k free,   203716k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                    
 23592 root      20   0  2416 1004  328 R 99.7  0.2   1:25.26 cpuburn-in                 
 23564 root      20   0 98.0m 4016 3044 S  0.3  0.8   0:00.21 sshd                       
 23595 root      20   0 15036 1220  944 R  0.3  0.3   0:00.02 top                        
     1 root      20   0 19356 1448 1140 S  0.0  0.3   0:01.10 init           
…… 
按Shift+p可以按CPU使用率排序
按k键杀死CPU使用率最高者,按两次回车
top - 12:44:45 up  1:09,  2 users,  load average: 0.98, 0.67, 0.34
Tasks: 117 total,   2 running, 115 sleeping,   0 stopped,   0 zombie
Cpu(s): 94.7%us,  2.6%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  2.6%si,  0.0%st
Mem:    486284k total,   350248k used,   136036k free,    24268k buffers
Swap:  8388600k total,        0k used,  8388600k free,   203716k cached
PID to kill: 23592
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
23592 root      20   0  2416 1004  328 R 99.7  0.2   1:25.26 cpuburn-in
.. ..

步骤四:查看原终端cpuburn程序是否已杀死
命令操作如下所示:

2755000 iterations complete.
已终止
[root@localhost ~]#

4.检索进程信息

问题

1)以用户student登入,完成下列操作
2)使用vim打开student.txt,不编辑、不退出
3)切换到tty3终端,登入后执行top命令
4)以用户root登入另一个终端,完成下列操作
5)找出用户student所运行的进程名称、PID号
6)找出tty3终端上运行的进程名称、PID号

方案

检索进程命令为pgrep,基本格式:pgrep 关键词。
常用选项:-U 用户名、-t 终端名。
加选项 -l 可同时输出进程名,否则只输出PID。

步骤

实现此案例需要按照如下步骤进行。
步骤一:以用户student登入,完成下列操作
分析: 按Ctrl+Shift+t再开一个终端,利用su命令切换进行操作,如图所示。
在这里插入图片描述
使用vim打开student.txt文件,不要编辑、不退出,命令操作如下所示:

[student@localhost ~]$ vim student.txt   //按Enter回车即可

切换到tty3终端,登入后执行top命令
分析: 要先给student设置一个密码,命令操作如下所示:

    [root@localhost /]# passwd student
   更改用户 student 的密码 。
    新的 密码:
    无效的密码: WAY 过短
    无效的密码: 是回文
    重新输入新的 密码:
    passwd: 所有的身份验证令牌已经成功更新。
    [root@localhost /]#

按Ctrl+Alt+F3进入第三个终端,如图所示登录。
在这里插入图片描述
命令操作如下所示:

[student@localhost ~]$ top

步骤二:以用户root登入另一个终端,完成下列操作
找出用户student所运行的进程名称、PID号。
命令操作如下所示:

[root@localhost /]# pgrep -l -U student
24312 bash
24355 bash
24379 vim
24423 bash
24467 top
[root@localhost /]#

找出tty3终端上运行的进程名称、PID号。
命令操作如下所示:

[root@localhost /]# pgrep  -t tty3 -l
24423 bash
24467 top
[root@localhost /]#

5.进程的前后台调度

问题

1)测试xsnow软件的安装运行
2)调整PATH设置,直接执行xsnow即可运行此软件
3)在桌面环境启动xsnow程序,查看效果
4)进程前后台调度
5)将xsnow转入后台运行
6)列出后台运行了哪些程序,并显示PID
7)将后台的xsnow恢复到前台运行
8)挂起当前的xsnow程序
9)让后台的xsnow程序继续运行

方案

Ctrl+z 组合键,挂起当前进程(暂停并转入后台),要注意与“&”符号的区别,加“&”是不会暂停的。
jobs 命令:查看后台任务列表。
fg 命令:将后台任务恢复到前台运行。
bg 命令:激活后台被挂起的任务。

步骤

实现此案例需要按照如下步骤进行。
步骤一:测试xsnow软件的安装运行
分析: 利用VMware tools上传软件,搭建yum安装xsnow图形工具。
命令操作如下所示:

[root@localhost ~]# yum -y localinstall /root/xsnow-1.42-10.i386.rpm

调整PATH设置,直接执行xsnow即可运行此软件。
命令操作如下所示:

[root@localhost ~]# rpm -ql xsnow     //查看xsnow软件安装清单
/usr/X11R6/bin/xsnow
/usr/X11R6/man/man1/xsnow.1x.gz
/usr/share/doc/xsnow-1.42
/usr/share/doc/xsnow-1.42/README
/usr/share/pixmaps/xsnow.png
[root@localhost ~]#/usr/X11R6/bin/xsnow //以绝对路径执行,图形终端会飘起雪花
[root@localhost ~]# echo $PATH           //输出PATH变量的值
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# cp /usr/X11R6/bin/xsnow /bin/  //将可执行文件复制到PATH路径里
[root@localhost ~]# xsnow  //不加路径直接运行测试

步骤二:进程前后台调度
将xsnow转入后台运行。
命令操作如下所示:

[root@localhost ~]# xsnow &

列出后台运行了哪些程序,并显示PID。
命令操作如下所示:

[root@localhost 桌面]# jobs -l
[1]+  2389 Running                 xsnow &
[root@localhost 桌面]#

将后台的xsnow恢复到前台运行。
命令操作如下所示:

[root@localhost 桌面]# jobs 
[1]+  Running                 xsnow &
[root@localhost 桌面]# 
[root@localhost 桌面]# jobs 
[1]+  Running                 xsnow &
[root@localhost 桌面]# fg 1
xsnow

挂起当前的xsnow程序。
命令操作如下所示:

[root@localhost 桌面]# fg 1
Xsnow

按ctrl+z暂停挂入后台

[root@localhost 桌面]# fg 1
xsnow
^Z
[1]+  Stopped                 xsnow
[root@localhost 桌面]#

让后台的xsnow程序继续运行。
命令操作如下所示:

[root@localhost 桌面]# jobs
[1]+  Stopped                 xsnow
[root@localhost 桌面]# bg 1
[1]+ xsnow &
[root@localhost 桌面]# jobs
[1]+  Running                 xsnow &
[root@localhost 桌面]#

6.终止进程的运行

问题

1)运行“sleep 600”命令
2)再开一个终端,查出sleep程序的PID并杀死
3)运行多个xsnow程序并都放入后台
4)杀死所有xsnow进程
5)su切换为zhangsan用户
6)再开一个终端,强制踢出zhangsan用户

方案

杀死进程的命令一般有kill、killall、pkill。
kill:只能针对PID来进行查杀。
killall:可以针对进程名来进行查杀,但进程名字必须是完整的,可以杀死多个。
pkill:可以进行模糊查杀,进程名字可以不写完整。

步骤

实现此案例需要按照如下步骤进行。
步骤一:运行“sleep 600”命令
分析: 按Ctrl+Shift+t再开一个终端,运行sleep命令,如图所示。

在这里插入图片描述

再另起一个终端操作,查出sleep程序的PID并杀死,命令操作如下所示:

[root@localhost 桌面]# ps aux | grep sleep
root       2738  0.0  0.0 100904   560 pts/1    S+   14:16   0:00 sleep 600
root       2743  0.0  0.0 103256   848 pts/0    S+   14:18   0:00 grep sleep
[root@localhost 桌面]# kill 2738
[root@localhost 桌面]# 

返回运行sleep命令的终端查看,命令操作如下所示:

[root@localhost 桌面]# sleep 600
已终止
[root@localhost 桌面]#

步骤二:运行多个xsnow程序并都放入后台
命令操作如下所示:

[root@localhost 桌面]# xsnow &        //加“&”放入后台运行
[1] 2771
[root@localhost 桌面]# Xsnow-1.42, December 14th 2001 by Rick Jansen (rja@euronet.nl)
WWW: http://www.euronet.nl/~rja/Xsnow/


[root@localhost 桌面]# xsnow &
[2] 2772
[root@localhost 桌面]# Xsnow-1.42, December 14th 2001 by Rick Jansen (rja@euronet.nl)
WWW: http://www.euronet.nl/~rja/Xsnow/


[root@localhost 桌面]# xsnow &
[3] 2773
[root@localhost 桌面]# Xsnow-1.42, December 14th 2001 by Rick Jansen (rja@euronet.nl)
WWW: http://www.euronet.nl/~rja/Xsnow/


[root@localhost 桌面]# jobs     //查询后台进程
[1]   Running                 xsnow &
[2]-  Running                 xsnow &
[3]+  Running                 xsnow &
[root@localhost 桌面]#

杀死所有xsnow进程。
命令操作如下所示:

[root@localhost 桌面]# jobs     //查询后台进程
[1]   Running                 xsnow &
[2]-  Running                 xsnow &
[3]+  Running                 xsnow &
[root@localhost 桌面]# killall  xsnow   //杀死进程名为xsnow

步骤三:su切换为zhangsan用户。
分析: 按ctrl+shift+t再开一个终端,通过su命令进行操作,如图所示。

在这里插入图片描述
再开一个终端,强制踢出zhangsan用户。
命令操作如下所示:

[root@localhost 桌面]# pkill -9 -U zhangsan

返回zhangsan登录终端查看:

[root@localhost 桌面]# su - zhangsan
[zhangsan@localhost ~]$ 已杀死 (core dumped)
[root@localhost 桌面]#

7.破解密码练习

问题

1)关闭计算机
2)启动计算机,在出现grub菜单时,按键盘上下键停在grub菜单
3)通过操作进入单用户模式,修改root密码为tarena

方案

启动Linux–>在grub菜单选择上下键按e–>选择kernel这行,在选择e -->在最后空格加上1,回车–>按b键启动。
进入单用户模式,修改密码。

步骤

实现此案例需要按照如下步骤进行。
步骤一:启动Linux在grub菜单选择上下键
如图所示,在此处按上下键停止在此界面(如果虚拟机总是很卡跳过此界面,可选择“开机到BIOS”再按F10保存退出即可看见),按e进入编辑。

在这里插入图片描述
如图所示,选择kernel这行,在选择e。

在这里插入图片描述

如图所示,在最后空格加上1,回车。

在这里插入图片描述
如图所示,按b键启动。
在这里插入图片描述
如图所示,执行passwd修改密码即可。切换运行级别5。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值