OS第1次实验报告:熟悉使用Linux命令和剖析ps命令
- 袁祎琦
- 201821121033
- 计算1812
1. 实验环境介绍
- 操作系统:unbuntu 18.04 LTS
- 平台:双操作系统
- 终端开始界面:用户名:yuanyiqi
2. 常用命令使用
从上到下,依次是:
1、查看linux系统的版本号( cat /etc/issue )
2、使用dir(看不见区别)查看当前目录( dir )
3、使用ls命令(看得见文件类型区别)查看当前目录( ls )
4、cd命令进入桌面( cd )
5、pwd查看当前路径( pwd )
6、在桌面使用mkdir创建文件家OS111( mkdir OS111 )
7、cd ..回到上一路径( cd .. )注意,这边cd与两个点之间是有一个空格的。
3. 剖析ps命令
运行 man ps ,并复制出现的内容,如下(未完整复制):
PS(1) User Commands PS(1) NAME ps - report a snapshot of the current processes. SYNOPSIS ps [options] DESCRIPTION ps displays information about a selection of the active processes. If you want a repetitive update of the selection and the displayed information, use top(1) instead. This version of ps accepts several kinds of options: 1 UNIX options, which may be grouped and must be preceded by a dash. 2 BSD options, which may be grouped and must not be used with a dash. 3 GNU long options, which are preceded by two dashes.
ps有很多参数,如下图(未完整截图),
介绍:linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。
下面我依次输入的是(比较常用):
- ps -a
- ps -ef
- ps -aux
ps -a是列出所有运行中/激活进程
解释: -a 的意思是列出所有进程。
- PID:进程的ID号,如果想要结束这个进程可以使用kill命令,kill -9是无条件杀死命令。
- TTY:进程运行所在的终端,若无终端则显示?。
- TIME:实际使用CPU的时间(执行时间)。
- CMD:同COMMAND,进程所执行的指令。
ps -ef是显示所有进程信息,连同命令行
解释: -e 显示所有进程,和-a的效果相同。
-f 完整输出显示进程之间的父子关系。
所以, -ef 显示所有进程信息及其命令
- UID:进程用户ID号,如图,用户root表示在根目录。
- PID:进程ID号。
- PPID:父进程ID号。
- C:CPU使用的资源百分比。
- STIME:系统的启动时间。
- TTY:进程运行所在终端,若无终端则显示?。
- TIME:实际使用CPU的时间(执行时间)。
- CMD:进程使用的命令。
ps -aux是显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER,PID,%CPU,%MEM等
解释:(因为从1开始的进程很多数据都一样,所以截取数据比较不一样的,从PID:891开始)
-a 列出所有运行中/激活进程(包括其他用户的进程)。
-u 显示进程拥有着、状态、资源占用等详细信息(注意:若单独使用u的话,有"-"和没有"-"是一样的)
-x 显示没有控制终端的进程。通常与a一起使用,可以列出比较完整的信息。
所以, -au 显示较为详细的信息, -aux 显示所有包含其他使用者的进程。
- USER:进程的所属用户。
- PID:进程的ID号。
- PPID:进程的父ID 号。
- %CPU:进程占用的CPU百分比。
- %MEM:进程占用的内存百分比。
- VSZ:进程使用的虚拟内存量(KB)。
- RSS:进程占用的固态内存量(KB)。
- TTY:进程运行所在的终端,若无终端则显示?。
- STAT:进程的状态位。
- START:进程被启动的时间。
- TIME:实际使用CPU的时间(执行时间)。
- COMMEND:进程使用的命令。
STAT的参数意义:
- D 不可中断
- R 正在运行,或在队列中的进程
- S 处于休眠状态
- T 停止或被追踪
- Z 僵尸进程
- W 进入内存交换
- X 死掉的进程
<高优先级
n低优先级
s包含子进程
+位于后台的进程组
此外还有非常多ps的命令,可以在运行man ps之后选择查看所有的ps命令
比如: ps [-A][-M][-N][-Z][-l] 等等,这些参数可以组合使用达到查看进程信息的目的要求。
4.遇到的问题
既然查看了进程,那么如何对进程进行操作呢?
1、查询进程,使用 top 指令,这边是动态变化,按照占比CPU的大小排高低。
2、杀死进程
这边我就不演示了,我怕杀掉一些进程之后系统会使用异常。
我就简单介绍一下命令的区别(kill,kill-15,kill-9):
- 执行kill(默认kill-15)命令,系统会发送一个SIGTERM信号给对应的程序,大部分程序接受到SIGTERM信号后,会释放自己的资源,然后停止。命令行输入: kill PID
- 执行kill -15 :同kill。命令行输入: kill -15 PID
- 执行kill -9:系统给对应程序发送的信号是SIGKILL,即exit,exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程,就是所谓的无条件杀死。命令行输入: kill -9 PID
3、强大的Vim编辑器
命令行编辑文本的必备之选。
首先,我在桌面上创建了一个txt文档,然后在桌面打开终端, ls 查看一下桌面有什么,然后输入 vim 文件名及后缀 ,如下图
然后回车,
按i进行插入修改文本,i表示insert,在最后一行添加 Now,it's time to say goodbye! Have a good night.
修改完成之后,按 esc 键,并输入 :wq ,w表示write,q表示quit,即写入并退出。