Linux Top 命令指南

2023-11-15

top 命令允许用户监视 Linux 上的进程和系统资源使用情况,它是系统管理员工具箱中最有用的工具之一,并且在每个发行版中都预装了它。与 ps 等其他命令不同,它是交互式的,我们可以浏览进程列表、终止进程,等等。本文中,我们将了解如何使用 top 命令。

Getting started

top 命令非常简单,只需要在终端中输入 top 即可。top 指令将启动一个交互式命令行应用程序,如下所示,输出的上半部分包含有关进程和资源使用情况的统计信息,下半部分包含当前运行的进程的列表。可以使用箭头键和页面向上/向下键浏览列表。如果你想退出,只需按q键。

$ top
top - 21:07:28 up 21 days,  4:31,  1 user,  load average: 0.12, 0.06, 0.07
Tasks:  33 total,   1 running,  31 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0.2 us,  0.5 sy,  0.0 ni, 89.7 id,  0.0 wa,  0.0 hi,  0.0 si,  9.6 st
KiB Mem : 33554432 total, 31188884 free,   513100 used,  1852448 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used. 31188884 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 52601 root      39  19 1310268  14900   9836 S   0.3  0.0  22:59.21 logagent-collec
     1 root      20   0   45416   5244   3968 S   0.0  0.0   5:35.71 systemd
   340 root      20   0   64700  21336  17684 S   0.0  0.1   8:33.90 systemd-journal
   357 root      20   0  101836   2768   2312 S   0.0  0.0   0:01.13 gssproxy
   384 dbus      20   0   28632   2800   2464 S   0.0  0.0   0:00.04 dbus-daemon
   432 root      20   0   84760   5852   4984 S   0.0  0.0   0:00.01 sshd
   461 agent     20   0   52376   5200   3684 S   0.0  0.0   0:00.01 ilogtail
  1690 agent     20   0 2193388 246304  11264 S   0.0  0.7  23:45.88 java
  2527 admin     20   0  161744   4268   3704 R   0.0  0.0   0:00.72 top
  3245 root      20   0  559140  12412   5860 S   0.0  0.0  64:48.67 logagent
  3420 root      20   0  745052  58464  43820 S   0.0  0.2  11:16.32 metricbeat
  3447 root      20   0  957796  55548  43708 S   0.0  0.2  10:14.47 metricbeat
  5093 root      20   0 1905356 159280   9584 S   0.0  0.5  35:00.14 java
  7458 root      20   0   13700   2564   2356 S   0.0  0.0   0:00.00 bash
  7464 root      20   0   86268   4436   3740 S   0.0  0.0   0:00.00 sudo
  # ... 省略其他
复制代码

top 有许多变体,但在本文的其余部分中,我们将讨论最常见的变体 — props -ng包附带的变体,下面来运行验证体验下:

$ top -v
  procps-ng version 3.3.10
Usage:
  top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
复制代码

top 的界面中发生了相当多的事情,我们将在下一节中对其逐一进行分析。

了解 top 的界面 - the summary area

第一小节中 top 的输出界面,我们可以比较明显的看到被分成了两个部分,这个小节中我们将关注在上半部分信息,这部分一般被称之为:summary area

系统时间、正常运行时间和用户会话

  • 系统时间:当前系统的时间(21:07:28)
  • 正常运行:系统运行时长(21 days, 4:31)
  • 活动用户会话个数:1 个
top - 21:07:28 up 21 days,  4:31,  1 user,
复制代码

活动用户会话包括 TTYPTY 两种。实际上,如果您通过桌面环境登录到 Linux 系统,然后启动终端模拟器,您将发现将有两个活动会话。

TTY: 通过命令行或桌面环境在系统上物理地运行 PTY: 终端模拟器窗口或通过 SSH

如果我们期望得到更多关于活动用户会话的信息,可以通过 who 命令来得到,如下:

$ who
admin    pts/0        2020-10-31 17:15 (xx.xx.xx.xx)
复制代码

内存使用情况

Memory 部分显示的是关于系统内存使用情况的信息,如下:

KiB Mem : 33554432 total, 31188208 free,   513488 used,  1852736 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used. 31188208 avail Mem
复制代码

MemSwap 分别显示的是 RAMswap 空间信息;当 RAM 使用率接近满时,RAM 中不经常使用的区域将被写入 Swap 空间,以便稍后需要时检索。但是,由于访问磁盘的速度很慢,过分依赖 Swap 可能会损害系统性能。

关于 Swap

  • 物理内存就是计算机的实际内存大小,由RAM芯片组成的。虚拟内存则是虚拟出来的、使用磁盘代替内存。虚拟内存的出现,让机器内存不够的情况得到部分解决。当程序运行起来由操作系统做具体虚拟内存到物理内存的替换和加载(相应的页与段的虚拟内存管理)。这里的虚拟内存即所谓的 swap;

  • 当用户提交程序,然后产生进程,在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有那么则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出swap扮演了一个非常重要的角色,就是暂存被换出的进程。

  • 内存与swap之间是按照内存页为单位来交换数据的,一般Linux中页的大小设置为4kb。而内存与磁盘则是按照块来交换数据的

totalfreeused 就是这些单词含义所描述的一样,分别是当前对应空间的总大小、空闲大小、已使用大小。avail mem 值指的是可以分配给进程而不会导致更多的交换的内存量。

Linux 内核层面上总是以不同的方式来尝试减少访问磁盘的次数;它在RAM中维护一个“磁盘缓存(disk cache)”,存储磁盘中经常使用的区域,另外,磁盘写被存储到一个“磁盘缓冲区(disk buffer)”,内核最终将它们写到磁盘上。它们消耗的总内存是 buff/cache 值。这看起来像是一件坏事,但实际上不是,原因是缓存使用的内存将在需要时分配给进程。

任务-Tasks

Tasks 部分显示的是有关系统上运行的进程的统计信息

Tasks:  33 total,   1 running,  31 sleeping,   0 stopped,   1 zombie
复制代码

total 比较好理解,它表示的就是当前系统正在运行的进程总数。但是对于其他几个状态相关的数字,我们需要了解一点 Linux 内核如何处理进程的背景知识。

进程执行是 I/O 限制的工作(如读取磁盘)和 cpu 限制的工作(如执行算术操作)的混合模式。当一个进程执行 I/O 时,CPU 是空闲的,所以 os 在这段时间切换到执行其他进程。此外,该操作系统允许一个给定的进程执行非常短的时间,然后它切换到另一个进程。这就是操作系统“多任务处理”的表现。做所有这些需要我们跟踪流程的“状态”。在 Linux 中,进程可能处于以下状态:

  • 1、Runnable (R): 处于这种状态的进程要么在 CPU 上执行,要么存在于运行队列中,准备执行。
  • 2、Interruptible sleep(S): 处于这种状态的进程在等待事件完成。
  • 3、Uninterruptible sleep (D): 在这种情况下,一个进程正在等待一个 I/O 操作完成。
  • 4、Stopped (T): 这些进程已经被一个作业控制信号(如按 Ctrl+Z)停止,或者因为它们正在被跟踪。
  • 5、Zombie (Z): 僵尸进程

一个进程可以创建许多子进程,当父进程仍然存在时,这些子进程是可以退出的,但是,这些数据结构必须保留下来,直到父进程获得子进程的状态。这种数据结构仍然存在的终止进程称为僵尸进程。D 和 S 状态都是在 top 信息中体现为 sleeping,T 状态体现为 stoppedZ 状态体现为 zombie

CPU 使用情况

CPU 使用情况,显示了在各种任务上花费的 CPU 时间的百分比。

%Cpu(s):  0.3 us,  0.4 sy,  0.0 ni, 90.3 id,  0.0 wa,  0.0 hi,  0.0 si,  9.0 st
复制代码

us指的是 CPU 在用户空间中执行进程所花费的时间。类似地,sy指的就是运行内核空间进程所花费的时间。Linux 中使用 nice 值来表示进程的优先级,值越高,优先级越低,后面我们会了解到,默认的 nice 值是可以被修改的。在手动设置 nice 的情况下,执行进程所花费的时间显示为 ni 值。ni 后面是 id,它是CPU 保持空闲的时间,大多数操作系统在 CPU 空闲时将其设置为“省电模式”。接下来是 wa值,它是 CPU 等待 I/O 完成所花费的时间。

中断(Interrupt)是向处理器发出的有关需要立即关注的事件的信号;外设通常使用硬件中断来告知系统有关事件的信息,例如键盘上的按键。另一方面,软件中断是由于处理器上执行的特定指令而产生的。在这两种情况下,操作系统都将处理它们,处理硬件中断和软件中断所花费的时间分别由hisi给出。

在虚拟化环境中,会将一部分 CPU 资源分配给每个虚拟机(VM)。操作系统会检测到何时有工作要做,如果检测到他需要执行但是由于 CPU 在其他 VM 上繁忙而无法执行时,以这种方式浪费的时间就是“窃取”时间,显示为st

平均负载-Load average

load average 部分表示的是在最近 1、5 和 15 分钟内的系统平均“负载”。

load average: 0.11, 0.07, 0.07
复制代码

负载是对系统执行的计算工作量的度量。在Linux上,负载是在任何给定时刻处于 RD 状态的进程数。load average值为您提供了必须等待多长时间才能完成任务的相对度量。这里有几个小例子,我们来直观的理解下这两个概念。

  • 1、在单核心系统上,load average 为 0.4 意味着系统只完成了它能完成的 40% 的工作。load average为 1 意味着系统正好处于满负荷状态——即使添加一点点额外的工作,系统也会过载。一个 load average 为 2.12 的系统意味着它超载了 112% 的工作,超出了它的处理能力。
  • 2、在多核系统上,应该首先用 load average 除以 CPU 核数,以得到类似的度量。

此外,load average 实际上并不是我们大多数人所知道的典型的平均负载。它是一个“指数移动平均”,这意味着以前的 load average 的一小部分被考虑到当前的值(关于这个点,可以通过这篇文章来了解更多技术细节)。

了解 top 的界面 - the task area

summury area 相对简单,通过它我们可以快速了解到当前系统运行的一些摘要统计信息。但是一个细节性的信息,我们只能通过 task area 中来得到。

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 52601 root      39  19 1310268  14900   9836 S   0.3  0.0  22:59.21 logagent-collec
     1 root      20   0   45416   5244   3968 S   0.0  0.0   5:35.71 systemd
   340 root      20   0   64700  21336  17684 S   0.0  0.1   8:33.90 systemd-journal
   357 root      20   0  101836   2768   2312 S   0.0  0.0   0:01.13 gssproxy
   384 dbus      20   0   28632   2800   2464 S   0.0  0.0   0:00.04 dbus-daemon
   432 root      20   0   84760   5852   4984 S   0.0  0.0   0:00.01 sshd
   461 agent     20   0   52376   5200   3684 S   0.0  0.0   0:00.01 ilogtail
  1690 agent     20   0 2193388 246304  11264 S   0.0  0.7  23:45.88 java
  2527 admin     20   0  161744   4268   3704 R   0.0  0.0   0:00.72 top
  3245 root      20   0  559140  12412   5860 S   0.0  0.0  64:48.67 logagent
  3420 root      20   0  745052  58464  43820 S   0.0  0.2  11:16.32 metricbeat
  3447 root      20   0  957796  55548  43708 S   0.0  0.2  10:14.47 metricbeat
  5093 root      20   0 1905356 159280   9584 S   0.0  0.5  35:00.14 java
  7458 root      20   0   13700   2564   2356 S   0.0  0.0   0:00.00 bash
  7464 root      20   0   86268   4436   3740 S   0.0  0.0   0:00.00 sudo
复制代码

先来说明下各个列的含义:

PID

这是进程ID,一个惟一的正整数,用于标识进程。

USER

这是启动进程的用户的“有效”用户名(映射到用户ID)。Linux 为进程分配一个真实的用户 ID 和一个有效的用户ID;后者允许进程代表另一个用户进行操作。(例如,非 root 用户可以提升到 root 用户来安装软件)

PR NI “NI” 字段显示进程的 “nice” 值,“PR” 字段是从内核的角度显示了进程的调度优先级,“nice” 值影响的是进程的优先级。

VIRT, RES, SHR and %MEM

VIRTRESSHR 这三个字段都与进程的内存消耗有关。VIRT是一个进程所消耗的内存总量。这包括程序代码、进程在内存中存储的数据,以及已经 swap 到磁盘的任何内存区域。RES是进程在 RAM 中消耗的内存,%MEM 表示这个值占总可用 RAM 的百分比。最后,SHR 是与其他进程共享的内存量。

S 表示进程状态

TIME+

TIME+ 列表示的是进程自启动以来所使用的总 CPU 时间,精确到百分之一秒。

COMMAND

COMMAND 列表示的是当前进程的名称。

top 命令的使用示例

到目前为止,我们已经讨论了 top 的界面信息所描述的含义。但是,top 除了显示这个信息之外,它还可以管理进程,并且我们可以控制 top 输出的各个方面。在本节中,我们将举几个例子。(在下面的大多数例子中,你必须在 top 运行时按下一个键。这些按键是区分大小写的,所以如果你在大写锁定状态下按了k,你实际上已经按了一个k,但是这个命令并不会工作)

kill 进程

如果你想杀死一个进程,只要在top运行时按k。这将出现一个提示,它将询问进程的进程ID并按enter

PID to signal/kill [default pid = 384]
复制代码

当然上面的这段输出的后面是可以手动输入进程 ID,下面的 34444444444444 就是手动输入的进程ID

PID to signal/kill [default pid = 384] 34444444444444
复制代码

如果保留此空白,top 将使用一个SIGTERM,它允许进程优雅地终止。如果您想强制终止进程,您可以在这里输入SIGKILL。你也可以在这里输入信号号,例如,SIGTERM 的数字是 384,而 SIGKILL 的数字是。如果你将进程ID留空并直接按enter`,它将终止列表中最顶端的进程。正如前面提到的,我们也可以使用箭头键滚动,并通过这种方式更改想要终止的进程。

排序进程列表

使用像 top 这样的工具的一个最常见的原因是找出哪个进程消耗的资源最多。我们可以按以下键排序列表:

  • M:用于按内存使用情况排序
  • P:来按CPU使用率排序
  • N:按进程ID排序
  • T:来按运行时间排序

默认情况下,top 按降序显示所有结果,但是我们可以通过按R键切换到升序。还可以使用 -o 开关对列表进行排序。例如,如果想排序进程的CPU使用量,可以这样做:

top -o %CPU
复制代码

显示线程列表而不是进程列表

前面已经介绍过 Linux 如何在进程之间切换。我们知道,进程是不共享内存或其他资源的,这使得这种切换相当慢。和其他操作系统一样,Linux 支持一种“轻量级”的替代方案,称为“线程”。“线程”是进程的一部分,“线程”可以共享内存和其他资源的某些区域,同时它们也可以像进程一样并发运行。默认情况下,top在其输出中显示一个进程列表。如果想列出线程代替进程,按 H 即可,此时 “Tasks” 行将显示的是 “Threads”,显示的是线程的数量,而不是进程的数量。

Threads: 351 total,   2 running, 349 sleeping,   0 stopped,   0 zombie
复制代码

细心的读者可能会发现, summury area 中的 “Tasks” 行已经改变成 “Threads” 的了,但是在 task area 中,对应的列表中的属性却没有任何更改,那既然进程和线程不同,这怎么可能呢? 原因是在 Linux 内核内部,线程和进程使用相同的数据结构进行处理,因此,每个线程都有自己的ID、状态等等。如果我们要切换回进程视图,则再次按 H 即可。此外,也可以使用 top -H 在默认情况下显示线程。

显示进程完整路径

默认情况下,COMMAND 列下的所有进程名显示的都是摘要名,如果我们期望显示当前进程的完成路径,可以通过按 c 来切换视角,或者直接使用 top -c 来启动交互界面。

以树形结构显示父子进程

可以通过在 top 交互中按 V 来切到 forest view 视角,即以以树形结构显示父子进程。

   432 root      20   0   84760   5852   4984 S   0.0  0.0   0:00.01  `- /usr/sbin/sshd -D
 98518 root      20   0  118432   6884   5792 S   0.0  0.0   0:00.00      `- sshd: admin [priv]
 98520 admin     20   0  118432   3648   2556 S   0.0  0.0   0:01.32          `- sshd: admin@pts/0
 98521 admin     20   0  120656   4936   3768 S   0.0  0.0   0:00.34              `- -bash
130138 admin     20   0  161748   4208   3624 R   0.0  0.0   0:00.27                  `- top -c
复制代码

列出用户的进程

要列出某个用户的进程,请在top运行时按 u。然后,输入用户名,或者留空以显示所有用户的进程;或者直接通过 top -u xxx 来指定 xxx 用户的所有进程信息。

KiB Swap:  2097148 total,  2097148 free,        0 used. 31179088 avail Mem
Which user (blank for all) root   # waiting for input
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
     1 root      20   0   45416   5244   3968 S   0.0  0.0   5:37.57 /usr/lib/systemd/systemd --system --deserialize 18
   340 root      20   0   72892  30836  27184 S   0.0  0.1   8:36.56 /usr/lib/systemd/systemd-journald
   357 root      20   0  101836   2768   2312 S   0.0  0.0   0:01.14 /usr/sbin/gssproxy -D
   432 root      20   0   84760   5852   4984 S   0.0  0.0   0:00.01 /usr/sbin/sshd -D
复制代码

过滤进程

如果我们需要处理许多进程,那么简单的排序实际上对我们的帮助并不是很大。那么在这种情况下,我们可以按 o 来激活 top 的过滤模式,然后通过输入一个过滤器表达式来过滤到我们的目前进程。过滤器表达式是指定属性和值之间关系的语句,例如:

  • COMMAND=java: 进程名=java 的
  • !COMMAND=java: 进程名 !=java 的
  • %CPU>3.0: CPU > 3.0 的

如果要清除所有过滤条件的话,按 = 即可。

总结

本文主要是对A Guide to the Linux “Top” Command 这篇文章的一些内容翻译,感谢原作者提供的分享

top 命令对于监视和管理 Linux 系统上的进程非常有帮助,本文只是从表面做了一些简单的介绍,还有很多我们没有涉及到的内容;例如,如何在 top 中添加更多的列。更多信息,可以通过运行 man top 查看 man 页面,来进行更深层面的学习。


作者:磊叔_GLMapper
链接:https://juejin.cn/post/6889817932633735181
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux Top 命令指南 的相关文章

  • Linux修改密码

    Linux修改密码用 passwd 命令 用root用户运行passwd passwd user name可以设置或修改任何用户的密码 普通用户运行passwd只能修改它自己的密码 root localhost passwd 修改root用
  • Putty基础教程之(一).入门命令学习及编写HTML

    这篇文章主要介绍Putty的基础用法 同时通过Putty来编辑HTML文件 一方面是自己最近学习的在线笔记 另一方面希望文章对你有所帮助 Putty是Windows下操作Linux命令的小工具 也是一个跨平台的远程登陆工具 非常好用 常见命
  • 9个Linux 查看系统硬件信息命令(实例详解)

    在Linux下 我们精要遇到需要查看系统的硬件信息 这里我罗列了查看系统硬件信息的实用命令 并做了分类 实例解说 执行环境 ubuntu 16 04 1 cpu lscpu命令 查看的是cpu的统计信息 root ubuntu home p
  • 常用adb命令整理

    一 adb介绍 adb Android Debug Bridge Android 调试桥的缩写 adb 是一个 C S 架构的命令行工具 主要由 3 部分组成 运行在 PC 端的 Client 可以通过它对 Android 应用进行安装 卸
  • 手把手教你ubuntu下移植MJPG-streamer

    一 嵌入式视频图像开源库 在嵌入式系统中 常用的视频图像处理开源系统有 luvcview cheese motion mjpg streamer或者ffmpeg 其中 luvcview 基于V4L2 SDL的程序 支持拍照录像 参数调节 代
  • Linux Tensorflow2.0安装

    安装Tensorflow2 0 conda update conda pip install tf nightly gpu 2 0 preview conda install https mirrors tuna tsinghua edu
  • Linux命令——统计文件数量

    统计文件夹下文件的总个数 不包括文件夹 ls l grep wc l 统计文件夹下所有文件 包括子文件 的总个数 ls lR grep wc l 统计文件夹下所有文件夹的个数 包括子文件夹 ls LR grep d wc l 具体解释 ls
  • 一款运行于windows上的linux命令神器-Cmder(用过后爱不释手)

    一 前言 很多工程师都习惯了使用linux下一些命令 再去用Windows的 cmd 简直难以忍受 要在windows上运行linux命令 目前比较流行的方式由 GunWin32 Cygwin WSL Bash on Windows Git
  • linux搭建ftp

    ftp一些概念了解 Linux安装vsftpd及配置详解 1 安装 yum y install vsftpd 2 FTP主动模式与FTP被动模式 3 防火墙开启21端口 文中是使用iptables开启的 现在centos7 2版本默认是防火
  • Let's Encrypt 泛域名证书申请

    github https github com Neilpang acme sh 通过acme申请Let s Encrypt证书支持的域名DNS服务商有以下这些 国内用户较多的 cloudxns dnspod aliyun 阿里云 clou
  • 用命令修改宝塔面板修改默认端口

    大家好 我是胸怀像 欢迎关注微信公众号 雄雄的小课堂 前言 下面我们来让incode ai来介绍一下宝塔面板 如下所示 宝塔面板是一款运行在 Linux 操作系统上的免费管理面板 它可以提供给用户如网站部署 数据库管理 文件管理 SSL 证
  • Linux内存占用分析的几个方法,你知道几个?

    0 引言 系统内存是硬件系统中必不可少的部分 定时查看系统内存资源运行情况 可以帮助我们及时发现内存资源是否存在异常占用 确保业务的稳定运行 例如 定期查看公司的网站服务器内存使用情况 可以确保服务器的资源是否够用 或者发现服务器内存被占用
  • systemctl 命令详解及使用教程

    在本教程中 我们将向您介绍在运行systemd的linux系统上如何使用systemctl命令工具有效的控制系统和服务 Systemctl 介绍 Systemctl是一个systemd工具 主要负责控制systemd系统和服务管理器 Sys
  • [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.(入职小灰)

    mariadb剧本安装后自动重启不了 飞要一次手动重启 这对于重要业务来说是致命的 今天遇到的错误 ERROR Can t open the mysql plugin table Please run mysql upgrade to cr
  • 在Ubuntu 16.04 LTS服务器上安装FreeRADIUS和Daloradius的方法

    FreeRADIUS 为AAA Radius Linux下开源解决方案 DaloRadius为图形化web管理工具 freeradius一般用来进行账户认证管理 记账管理 常见的电信运营商的宽带账户 上网账户管理 记账 都是使用的radiu
  • Linux进程管理

    一 Linux下的进程 每个用户均可同时运行多个程序 为了区分每一个运行的程序 Linux给每个进程都做了标识 称为进程号 process ID 每个进程的进程号是唯一的 Linux 给每个进程都打上了运行者的标志 用户可以控制自己的进程
  • Linux Top 命令指南

    top 命令允许用户监视 Linux 上的进程和系统资源使用情况 它是系统管理员工具箱中最有用的工具之一 并且在每个发行版中都预装了它 与 ps 等其他命令不同 它是交互式的 我们可以浏览进程列表 终止进程 等等 本文中 我们将了解如何使用
  • nginx重启命令

    nginx s reload 修改配置后重新加载生效 nginx s reopen 重新打开日志文件 nginx t c path to nginx conf 测试nginx配置文件是否正确 关闭nginx nginx s stop 快速停
  • Notepad++作死,国产文本编辑器Notepad--发布

    作死的Notepad Notepad 和 Notepad 都是基于 Windows 的文本编辑器 通常用于编写和编辑纯文本文件 这两个应用程序都是简单的轻量级程序 提供基本的文本编辑功能 Notepad 是一口君经常使用的一款文本编辑软件
  • Linux 基础知识

    一 从认识操作系统开始 1 1 操作系统简介 我通过以下四点介绍什么操作系统 操作系统 Operation System 简称OS 是管理计算机硬件与软件资源的程序 是计算机系统的内核与基石 操作系统本质上是运行在计算机上的软件程序 为用户

随机推荐

  • 微信JSAPI支付v3流程(uniapp和node版)

    一 微信JSAPI支付 请提前准备好接入前的准备文档获取相关的配置数据 否则下面需要的数据你可能会比较懵 并且需要提前了解微信JSAPI支付文档 二 获取用户openid 获取openid方法例子 三 h5调起支付 1 第一种通过Weixi
  • springboot yml 配置文件注入Map,List

    文章转自 https blog csdn net sdzhangshulong article details 80124900 person lastName hello age 18 boss false birth 2017 12 1
  • C语言学习之extern关键字

    1 了解extern 1 extern是C语言的一个关键字 可以用来修饰函数与变量 2 当extern修饰一个变量或函数时时 就是在声明这个变量 函数 告诉编译器在外部文件中已经这个变量 函数 要通过编译 2 extern的用法 1 在一个
  • 使用java实现word转pdf,亲测有效,完美保留样式

    网上了很多方法 要么转换速度慢 要么转换出来的格式不一样 遇到了各种问题 无法完美完成转换 在stackoverflow发现完美答案 依赖
  • 网易严选滑块

    疫情分控在家 哎 难搞哦 大表哥们 虽然是网易一家的滑块 就当无聊分享一下 说明一下 有些id用官方的那套可能过不去 文章末尾分享一个ast解混淆的js 大家可以拿去用过用 之前的文章有写过网易的 也是简单介绍了一下 严选滑块 先看看b d
  • webpack系列 —— 性能优化篇

    一 压缩图片和css 压缩图片 image webpack loader 来压缩图片文件 image webpack loader 使用 imagemin 来进行压缩 use file loader 需要在file loader之后添加 i
  • Linux 下wifi 驱动开发(三)—— SDIO接口WiFi驱动浅析

    SDIO Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块 内置无线网络协议IEEE802 11协议栈以及TCP IP协议栈 能够实现用户主平台数据通过SDIO口到无线网络之间的转换 SDIO具有传输数据快 兼容SD M
  • Jupyter Notebook 更改默认存储路径、更改默认浏览器、添加虚拟环境的kernel

    文章目录 1 更改默认存储路径 1 1 修改配置文件 1 2 修改快捷方式 2 更改默认浏览器 3 添加虚拟环境的kernel 1 更改默认存储路径 1 1 修改配置文件 Jupyter Notebook 的默认存储路径是 C Users
  • 计算机二级12月报名时间广东,18年广东省全国计算机等级考试报名:12月15日起...

    全国计算机等级考试 National Computer Rank Examination 简称NCRE 是由教育部考试中心主办 面向社会 用于考查应试人员计算机应用知识和能力的全国性计算机水平考试体系 一 考试时间及考试体系 一 考试时间
  • 【C语言】自动售货机

    题目 假设一种自动售货机可以为顾客提供 3 种价格档次的不同饮料 投入2元钱 可选择康师傅矿泉水 怡宝矿泉水和农夫山泉之一 投入 3 元钱 可选择可乐 雪碧和果汁之一 投入 5 元钱 可选择奶茶 咖啡和酸奶之一 编写程序 模拟用户向自动售货
  • hcl在服务器上保存文件,HCL File Extension - What is .hcl and how to open? - ReviverSoft

    You re here because you have a file that has a file extension ending in hcl Files with the file extension hcl can only b
  • @Mapper注解中如何使用Mybatis的<if>标签

    以 Update为例子
  • 图像分类、目标检测、图像分割区别

    1 图像分类 图像分类主要是基于图像的内容对图像进行标记 通常会有一组固定的标签 而你的模型必须预测出最适合图像的标签 这个问题对于机器来说相当困难的 因为它看到的只是图像中的一组数字流 上图片来自于Google Images 而且 世界各
  • jquery的$().each,$.each的区别

    在jquery中 遍历对象和数组 经常会用到 each和 each 两个方法 两个方法是有区别的 从而这两个方法在针对不同的操作上 显示了各自的特点 each 对于这个方法 在dom处理上面用的较多 如果页面有多个input标签类型为che
  • 图机器学习课程笔记6

    维生素C吃多了会上火 个人CSDN博文目录 cs224w 图机器学习 2021冬季课程学习笔记集合 目录 1 思维大纲 2 中文笔记 1 思维大纲 2 中文笔记
  • 面试经典(19)--求二叉树中节点的最大距离

    题目描述 写一个程序求二叉树中相距最远的两个节点之间的距离 图3 11 A和B即为所求距离最远的两个节点 我们先作图 看能否找到规律 我们可以看到 所求的两个节点可能经过二叉树的根结点 也可能不经过二叉树的根结点 每个节点维护左右子树最大距
  • 【笔记】C++库函数——bitset

    笔记 C 库函数 bitset 看到有大佬掏出这个库函数 一愣 这绝对是未曾想象过的道路 长见识 有时候做题总能碰见稀奇古怪的库函数 每个都令我大开眼界 以后看到感兴趣的都会记录一下 感觉是个好东西 算是学习道路上的小小积累吧 抓紧记录一下
  • VSCode相对路径问题

    习惯了anaconda等环境写程序的同学 在使用VSCode时 遇到的一个问题就是相对路径问题 在anaconda中 相对路径是针对当前的文件的相对路径 在VSCode中 相对路径是针对当前项目文件夹的 如果需要将VSCode内的相对路径设
  • 对不起,其实我是.......

    大家好 最近在后台收到有同学问我 你是哪个学校的 又或者问我你今年大几了 其实 我想这些答案在大家心里面应该早已经有了答案 不过 今天说的不是这些 而是 没错 今天我来给大家推荐一款 马克思原理复习必背的小程序 由我们学校 校级组织 清泽心
  • Linux Top 命令指南

    top 命令允许用户监视 Linux 上的进程和系统资源使用情况 它是系统管理员工具箱中最有用的工具之一 并且在每个发行版中都预装了它 与 ps 等其他命令不同 它是交互式的 我们可以浏览进程列表 终止进程 等等 本文中 我们将了解如何使用