一 、free -h
free -h
`free` 是一个在 Linux 和其他类 Unix 系统中常用的命令行工具,用于显示当前系统内存的使用情况。`-h` 是 `free` 命令的一个选项,用于以“易读”的格式(human-readable)显示信息,即以 KB、MB、GB 等单位显示内存和交换空间的使用情况,而不是以字节为单位。
当你运行 `free -h` 命令时,你会得到如下输出:
这个输出包含了以下几列:
- **total**:表示系统内存和交换空间的总大小。
- **used**:表示已使用的内存和交换空间大小。
- **free**:表示未使用的内存和交换空间大小。
- **shared**:表示多个进程共享的内存大小,通常用于临时文件。
- **buff/cache**:表示被系统用作缓冲区和缓存的内存大小。
- **available**:表示对于一个新启动的应用程序来说,可用的内存大小,这个值会考虑到缓冲区和缓存的大小,因为这些内存可以被重新分配给应用程序。
`free -h` 命令提供了一个快速、易于理解的方式来查看系统的内存使用情况。
二、top
top
在使用 `top` 命令时,可以通过以下方法退出:
1. **按 `q` 键**:这是退出 `top` 的最常用方法。在 `top` 命令运行时,直接按 `q` 键即可退出。
2. **按 `Ctrl + C`**:在某些情况下,按 `Ctrl + C` 也可以退出 `top`。
3. **使用交互命令 `?`**:在 `top` 界面中,按下 `?` 键可以显示帮助信息,其中包含了退出命令的说明。
4. **使用交互命令 `Q` 或 `q`**:在 `top` 界面中,按下 `Q` 或 `q` 也可以退出。
通常情况下,直接按 `q` 键是最快捷的退出方法。
`top` 是一个在 Unix 和类 Unix 操作系统(如 Linux)中常用的命令行工具,用于实时动态地显示系统中的进程和资源使用情况。它提供了一个持续更新的视图,展示系统的整体性能和各个运行中的进程的状态。以下是 `top` 命令的一些主要功能和显示内容:
1. **进程信息**:
- 显示系统中当前运行的所有进程。
- 显示进程的 PID(进程ID)、用户、优先级、虚拟内存使用、物理内存使用、CPU 使用率等。
2. **资源使用情况**:
- CPU 使用率:显示所有 CPU 的总使用率,以及用户空间、系统空间和空闲时间的百分比。
- 内存使用:显示总内存、已用内存、空闲内存、缓冲区和缓存的使用情况。
- 交换空间(Swap)使用:如果系统配置了交换空间,`top` 也会显示交换空间的使用情况。
3. **实时更新**:
- `top` 命令会持续运行,并每隔一定时间(默认是3秒)自动刷新显示的信息,提供动态的系统状态视图。
4. **交互操作**:
- 用户可以在 `top` 运行时使用键盘命令来改变显示的内容和排序方式。例如,可以按 `1` 显示各个 CPU 的详细使用情况,按 `P` 按 CPU 使用率排序,按 `M` 按内存使用率排序等。
5. **自定义显示**:
- 用户可以自定义 `top` 的显示,比如选择显示哪些字段,以及字段的显示顺序。
`top` 命令是系统管理员和用户用来监控系统性能和排查问题的重要工具之一。通过 `top`,用户可以快速识别哪些进程占用了过多的资源,以及系统的总体负载情况。
三、ps
ps
pstree
:以树状图的形式显示进程。
pstree
`ps`(Process Status)是一个在 Unix 和类 Unix 操作系统(如 Linux)中用于显示当前运行的进程状态的命令行工具。它提供了关于系统中进程的详细信息,包括进程ID、运行用户、CPU和内存使用情况等。`ps`命令非常灵活,可以通过不同的选项和参数来定制输出内容。
以下是一些常用的 `ps` 命令选项和它们的用途:
1. **`ps aux`**:
- `a`:显示所有终端的进程。
- `u`:以用户易读的格式显示。
- `x`:显示没有控制终端的进程。
- 这个组合是最常用的,用于显示系统中所有进程的详细信息。
2. **`ps -ef`**:
- `-e`:显示所有进程。
- `f`:全格式显示。
- 这个组合也常用于显示所有进程的详细信息,但格式与 `aux` 略有不同。
3. **`ps -u username`**:
- `-u`:以用户易读的格式显示。
- `username`:指定用户,只显示该用户的进程。
- 用于查看特定用户的进程。
4. **`ps -p PID`**:
- `-p`:指定进程ID。
- `PID`:进程ID。
- 用于查看特定进程的详细信息。
5. **`ps -ef | grep process_name`**:
- `grep process_name`:搜索包含特定进程名的行。
- 用于搜索特定进程。
`ps`命令的输出通常包括以下字段:
- **USER**:进程所有者的用户名称。
- **PID**:进程ID。
- **%CPU**:进程占用的CPU百分比。
- **%MEM**:进程占用的内存百分比。
- **VSZ**:虚拟内存使用量,单位通常是KB。
- **RSS**:实际内存使用量,单位通常是KB。
- **TTY**:进程所在的终端。
- **STAT**:进程状态。
- **START**:进程开始时间。
- **TIME**:进程占用CPU的总时间。
- **COMMAND**:启动进程的命令行。
`ps`命令是系统管理员和用户用来监控和管理系统进程的重要工具之一。通过 `ps`,用户可以快速查看系统中的进程状态,帮助识别资源占用高或异常的进程。
四、kill
kill -9 PID
`kill -9 PID` 命令确实是用来向指定的进程发送 SIGKILL 信号,从而强制终止该进程。这里的 `-9` 是 SIGKILL 信号的数字表示,它是 Linux 系统中用于杀死进程的最强烈的信号,不允许进程捕获或忽略这个信号,确保进程会被立即终止。
以下是一些关于 `kill` 命令和 SIGKILL 信号的详细信息:
1. **`kill` 命令**:
- `kill` 是一个用于发送信号到进程的命令。
- 信号可以用于通知进程执行特定的操作,比如正常终止(SIGTERM)或立即终止(SIGKILL)。
2. **SIGKILL 信号**:
- SIGKILL(信号编号9)是一个强制杀死进程的信号。
- 进程无法捕获或忽略 SIGKILL 信号,因此它总是能够杀死进程。
3. **使用场景**:
- 当一个进程无法正常响应 SIGTERM 信号(默认的终止信号,信号编号15)时,可以使用 SIGKILL 来强制终止进程。
- 用于杀死那些“僵死”的进程,即那些已经死亡但仍然占用系统资源的进程。
4. **示例**:
- 如果你想要杀死进程ID为1234的进程,你可以使用以下命令:
```
kill -9 1234
```
5. **注意事项**:
- SIGKILL 信号会立即终止进程,不给进程任何清理或保存状态的机会。因此,在使用 SIGKILL 之前,最好先尝试使用 SIGTERM,让进程有机会优雅地关闭。
- 过度使用 SIGKILL 可能会导致数据丢失或文件损坏,因为它不给予进程保存其状态的机会。
6. **其他信号**:
- 除了 SIGKILL 和 SIGTERM,还有其他信号,如 SIGINT(中断信号,通常由 Ctrl+C 产生),SIGSTOP(停止进程),SIGCONT(继续被停止的进程)等。
在使用 `kill` 命令时,确保你了解发送的信号的含义和后果,以避免不必要的系统或数据问题。