腾讯字节常考的linux命令

1 ps

1.1 ps -ef 有哪些字段

ps -ef 命令在Unix/Linux系统中用于显示当前运行的进程。输出的字段通常包括:

  • UID:启动进程的用户ID。
  • PID:进程ID。
  • PPID:父进程ID。
  • C:CPU利用率。
  • STIME:进程启动时间。
  • TTY:进程终端类型。
  • TIME:进程占用CPU的时间。
  • CMD:启动进程的命令。

1.2 psps -ef 的区别

  • ps:这个命令不带任何参数时,默认显示与当前终端会话相关联的进程。
  • ps -ef:这个命令显示系统中所有运行的进程,其中:
    • -e 选项表示显示所有进程。
    • -f 选项提供完整的详细输出,包括进程的UID、PID、PPID、启动时间等。

2 top命令

top 命令是一个非常流行的 Linux 工具,用于实时显示系统中进程的动态运行信息。它提供了一个实时更新的视图,显示哪些进程正在占用最多的系统资源,包括 CPU 和内存。这里是 top 命令的一些关键特性和输出字段的详细解释:

2.1 主要特性

  1. 实时监控top 命令提供了一个实时更新的视图,显示系统的当前状态,包括正在运行的进程和它们的资源占用。

  2. 排序和查找:可以根据CPU、内存等不同的资源消耗对进程进行排序,也可以搜索特定的进程。

  3. 交互式控制:用户可以在 top 运行时交互式地执行命令,例如更改排序顺序、杀死进程等。

2.2 输出字段解释

top 命令的输出通常分为两部分:系统概览和进程列表。

2.2.1 系统概览

  • load average:显示了过去1分钟、5分钟和15分钟的平均负载。
  • Tasks:当前的进程总数,以及它们的状态(运行、休眠、停止、僵尸)。
  • %Cpu(s):CPU的使用情况,包括用户空间占比、系统空间占比、空闲比例等。
  • KiB Mem 和 KiB Swap:内存和交换空间的使用情况。

2.2.2 进程列表

  • PID:进程ID。
  • USER:运行进程的用户。
  • PR:进程的优先级。
  • NI:进程的nice值,影响进程的优先级。
  • VIRT:进程占用的虚拟内存总量。
  • RES:进程占用的物理内存量。
  • SHR:进程共享的内存量。
  • S:进程状态(如睡眠(S)、运行(R)、停止(T)等)。
  • %CPU:进程占用的CPU百分比。
  • %MEM:进程占用的物理内存百分比。
  • TIME+:进程占用CPU的总时间。
  • COMMAND:启动进程的命令。

2.2.3 交互命令

top 运行时,用户可以使用不同的键盘命令进行交互:

  • h?:显示帮助。
  • k:杀死一个进程。
  • f:选择要显示的字段。
  • r:重新设定一个进程的nice值。
  • P:按CPU使用率排序。
  • M:按内存使用量排序。

2.3 top命令和ps -ef命令的区别

top 命令和 ps -ef 命令都用于查看运行在Linux系统上的进程,但它们之间有一些关键的区别:

2.3.1 top命令

  1. 动态实时更新

    • top 提供一个动态的实时视图,它会定期刷新(默认情况下每几秒刷新一次),显示当前的进程和它们对系统资源(如CPU和内存)的实时使用情况。
  2. 交互性

    • top 是交互式的;用户可以在其运行时执行不同的命令,比如改变排序顺序、杀死进程等。
  3. 系统资源使用概览

    • top 显示系统概览信息,如CPU使用率、内存使用量、负载平均值等。

2.3.2 ps -ef命令

  1. 静态快照

    • ps -ef 提供的是在命令执行时刻的进程快照。它不会实时更新;要查看最新信息,需要重新运行命令。
  2. 非交互性

    • ps -ef 是非交互式的,它只打印出执行时刻的进程信息,并且无法在命令运行时进行操作。
  3. 详细进程信息

    • ps -ef 提供了每个进程的详细信息,包括PID、所属用户、父进程ID、启动时间、命令等。

2.3.3 使用场景

  • 使用 top 时,通常是为了监控系统的实时性能和查看哪些进程正在使用最多资源。它适用于系统监控和动态问题诊断

  • 使用 ps -ef 时,适用于需要获取系统在某一时刻的进程快照,或者当需要了解特定进程的信息时。

总之,top 更适合于实时监控和交互操作,而 ps -ef 更适合于获取一次性的详细进程信息。两者都是系统管理员和用户诊断系统状态和性能问题时的重要工具。

3 vmstat

3.1 vmstat 字段详解

vmstat(虚拟内存统计)命令提供了关于系统的虚拟内存、物理内存、系统调用、I/O、CPU活动等方面的信息。常见字段包括:

  • procs(进程)

    • r:等待运行的进程数。
    • b:处于不可中断睡眠状态的进程数。
  • memory(内存)

    • swpd:使用虚拟内存的大小。
    • free:空闲的物理内存大小。
    • buff:用作缓冲区的内存大小。
    • cache:用作缓存的内存大小。
  • swap(交换)

    • si:每秒从磁盘交换到内存的大小。
    • so:每秒从内存交换到磁盘的大小。
  • io(输入/输出)

    • bi:每秒从块设备读取的块数。
    • bo:每秒向块设备写入的块数。
  • system(系统)

    • in:每秒中断数,包括时钟中断。
    • cs:每秒上下文切换数。
  • cpu(CPU)

    • us:用户空间占用CPU的百分比。
    • sy:内核空间占用CPU的百分比。
    • id:空闲CPU百分比。
    • wa:等待I/O的CPU时间百分比。
    • st:被虚拟机偷取的CPU时间百分比(在虚拟化环境中)。

你可能感兴趣的:(面经,linux,服务器,运维)