什么是进程?

在Linux系统中:触发任何一个事件时,系统都会将它定义为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性,给予这个PID一组有效的全乡设置。而程序就是系统工作时,启动的二进制文件。程序一般是在磁盘中的,通过用户的执行触发,然后加载到内存中成为一个个体,即进程。而常驻在内存中的进程通常都是负责一些系统所提供的功能以服务用户的各项任务,因此这些常驻进程就会被称为服务

进程和线程的区别:

1.定义

进程是具有一定独立功能的程序,是系统进行资源分配和调度的一个独立单位.

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

2.区别

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

总结:

1) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

2) 线程的划分尺度小于进程,使得多线程程序的并发性高。

3) 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

作业管理(job control):

可以把有提示符让你操作的环境,即命令行称为前台(foreground),至于其他作业就可以让你放在后台(background)执行或暂停。

注意:放入后台的作业,它必须不能与用户交互。例:vim放在后台也是不会执行的,而cp放在后台还是会接着执行的。

将前台作业送往后台的方法:

用&或Ctrl+z:

例:[root@bogon ~]# cp -r /etc/ /tmp/etc &

[1] 2610

[root@bogon ~]# jobs

[1]+  Running                 cp -i -r /etc/ /tmp/etc &

[root@bogon ~]# jobs

[1]+  Done                    cp -i -r /etc/ /tmp/etc

例:

vim a.txt

Ctrl+z

jobs命令用法:

jobs [-lrs]

-l :除了列出jobnumber还列出PID号码

-r :只列出在后台run的作业

-s :仅列出在后台stop的作业

例:[root@bogon ~]# jobs

[1]+  Stopped                 vim a

[root@bogon ~]# jobs -l

[1]+  2625 Stopped                 vim a

[1]为job number

+用fg命令默认会第一个取回到前台的命令

-用fg命令默认会第二个取回到前台的命令

将后台作业拿到前台处理fg命令:

fg %jobnumber

例:fg %1

让作业在后台的状态变成运行中bg命令:

bg %jobnumber

例:bg %1

管理后台当中的作业kill命令:

列出kill能使用的信号有哪些:kill -l[root@bogon ~]# kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL10) SIGUSR1

11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM

16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP

21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU25) SIGXFSZ

26) SIGVTALRM27) SIGPROF28) SIGWINCH29) SIGIO30) SIGPWR

31) SIGSYS34) SIGRTMIN35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+3

38) SIGRTMIN+439) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8

43) SIGRTMIN+944) SIGRTMIN+1045) SIGRTMIN+1146) SIGRTMIN+1247) SIGRTMIN+13

48) SIGRTMIN+1449) SIGRTMIN+1550) SIGRTMAX-1451) SIGRTMAX-1352) SIGRTMAX-12

53) SIGRTMAX-1154) SIGRTMAX-1055) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-7

58) SIGRTMAX-659) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2

63) SIGRTMAX-164) SIGRTMAX

kill -信号数字%jobnumber

-1重新读取一次配置文件

-2中断,与Ctrl+c一样

-9强制删除一个工作

-15以正常方式终止一项作业

注意-9一般是在强制删除一个不正常的作业时所使用的,-15则是以正常步骤结束一项作业(15也是默认值)

例:kill -9 %1

进程管理:

1.进程查看:

pstree命令用法:

pstree命令:进程树查看;

-p:显示各进程的PID;[root@bogon ~]# pstree

init─┬─abrtd

├─acpid

├─atd

├─auditd───{auditd}

├─automount───4*[{automount}]

├─console-kit-dae───63*[{console-kit-da}]

├─crond

├─cupsd

├─dbus-daemon

├─dhclient

├─hald─┬─hald-runner─┬─hald-addon-acpi

│      │             └─hald-addon-inpu

│      └─{hald}

├─login───bash

├─master─┬─pickup

│        └─qmgr

├─5*[mingetty]

├─rpc.statd

├─rpcbind

├─rsyslogd───3*[{rsyslogd}]

├─sshd───sshd───bash───pstree

└─udevd───2*[udevd]

ps命令用法:

ps :将某个时间点的进程运行情况选取下来

根据进程启动时是否是通过终端上的用户接×××互式启动的,进程可分为两类:

与终端相关的进程:a

与终端无关的进程:x

以用户为中心组织进程状态信息显示:u

常用选项组合1:axu

例ps axu[root@bogon ~]# ps aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root          1  0.0  0.1  19356  1536 ?        Ss   11:17   0:00 /sbin/init

root          2  0.0  0.0      0     0 ?        S    11:17   0:00 [kthreadd]

root          3  0.0  0.0      0     0 ?        S    11:17   0:00 [migration/0]

root          4  0.0  0.0      0     0 ?        S    11:17   0:00 [ksoftirqd/0]

root          5  0.0  0.0      0     0 ?        S    11:17   0:00 [stopper/0]

root          6  0.0  0.0      0     0 ?        S    11:17   0:00 [watchdog/0]

root          7  0.0  0.0      0     0 ?        S    11:17   0:10 [events/0]

USER:该进程属于哪个用户的账号

PID:该进程的进程ID号

%CPU:该进程使用CPU的资源百分比

%MEM:该进程所占用的物理内存百分比

VSZ: Virtual memory Size

线性地址空间占用的空间大小,即虚拟内存占用量(KB);

RSS:常用驻内存集;指不可以被交换至swap空间的数据占据空间大小;即占用的固定内存量(KB)

TTY:该进程是在哪个终端机上面运行,若与终端机无关则显示?

STAT:进程状态

R: running,运行状态;

S:interruptible

sleeping,可中断睡眠

D:uniterruptible

sleeping,不可中断睡眠

T: stopped,停止状态

Z:

zombie,僵尸状态,进程已经终止但却无法被删除至内存外,僵尸进程的原因就是因为该进程已经执行完毕,或因故应该终止了,但该进程的父进程却无法完整的将该进程结束掉,造成该进程一直存在内存中

s:session

leader会话进程的首进程

+:前台进程,占据着某终端

l:多线程进程

<:>

N:低优先级进程

START:启动时间

TIME:占据CPU累积时长

COMMAND:启动当前进程或线程的命令行程序,[]表示为内核线程;

常用选项组合2: -ef

-e:显示所有进程;

-f:显示丰富格式信息

常用选项组合3:-eFH

-F:显示额外信息

-H:以层级形式显示进程间关系;

自定义需要显示的信息:axo

ps

axo pid,command,psr,pri,ni

psr:当前进程运行的CPU编号;

pri:当前进程的优先级;

ni:当前进程的nice值;

-20,

19

pgrep:过滤只显示指定信息

语法格式:pgrep [OPTIONS] "PATTERN"

-U UID:仅显示以指定用户身份运行的进程;

-G

GID

-l:显示PID和进程名;

pidof:获取一个正在运行的程序的ID号

例:pidof /bin/bash[root@bogon ~]# pidof /bin/bash

2476 1844

top命令用法:[root@bogon ~]# top

top - 15:10:38 up  3:53,  2 users,  load average: 0.00, 0.00, 0.00

Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.5%id,  0.2%wa,  0.0%hi,  0.1%si,  0.0%st

Mem:   1004352k total,   430648k used,   573704k free,    34504k buffers

Swap:  2097148k total,        0k used,  2097148k free,   287016k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

2985 root      20   0 15032 1092  828 R  2.0  0.1   0:00.05 top

1 root      20   0 19356 1536 1224 S  0.0  0.2   0:00.85 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

4 root      20   0     0    0    0 S  0.0  0.0   0:00.03 ksoftirqd/0

5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0

6 root      RT   0     0    0    0 S  0.0  0.0   0:00.03 watchdog/0

7 root      20   0     0    0    0 S  0.0  0.0   0:12.81 events/0

8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup

9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper

第一行(top...):这一行显示的资讯分别为:

目前的时间,亦即是14:34:29 那个项目;

开机到目前为止所经过的时间,亦即是up 3:17 那个项目;

已经登入系统的使用者人数,亦即是2 user项目;

系统在1, 5, 15

分钟的平均工作负载。

batch 工作方式为负载小于0.7,代表的是 1, 5, 15 分钟,系统平均要负责运作几个程序(工作)的意思。 越小代表系统越闲置,若高于 1

得要注意你的系统程序是否太过繁复了。一般队列长度的合理区间:CPU颗数*0.7。uptime命令:显示当前系统时间,运行时长,登录用户数及系统平均负载;

第二行(Tasks...):

显示的是目前程序的总量与个别程序在什么状态(running, sleeping,

stopped, zombie)。 比较需要注意的是最后的 zombie 那个数值。

第三行(Cpus...):

显示的是 CPU 的整体负载,每个项目可使用 ?

查阅。需要特别注意的是 %wa ,那个项目代表的是 I/O wait, 通常你的系统会变慢都是 I/O 产生的问题比较大!因此这里得要注意这个项目耗用 CPU

的资源喔! 另外,如果是多核心的设备,可以按下数字键‘1’来切换成不同 CPU 的负载率。

第四行与第五行:

表示目前的物理内存与虚拟内存(Mem/Swap) 的使用情况。要注意的是 swap 的使用量要尽量的少!如果

swap 被用的很大量,表示系统的物理记内存实在不足!

第六行:这个是当在top 程式当中输入指令时,显示状态的地方。

至于top 下半部分的画面,则是每个 process 使用的资源情况。比较需要注意的是:

PID :每个process 的 ID 6

USER:该process 所属的使用者;

PR :Priority 的简写,程序的优先执行顺序,越小越早被执行;

NI :Nice 的简写,与 Priority 有关,也是越小越早被执行;

VIRT:虚拟内存;

RES:常驻内存;

SHR:共享内存;

S:状态;

%CPU:CPU 的使用率;

%MEM:内存的使用率;

TIME+:累计使用CPU 时间;

COMMAND:命令行程序

P:以占据的CPU百分比大小排序;

M:以占据Memory空间大小排序;

T:CPU累积占用时间排序;

l:是否显示系统负载行;

队列长度的合理区间:CPU颗数*0.7

uptime命令:显示当前系统时间,运行时长,登录用户数及系统平均负载;[root@bogon ~]# uptime

15:11:33 up  3:54,  2 users,  load average: 0.00, 0.00, 0.00

t:是否显示进程摘要信息及CPU负载状态;

Cpu(s):  0.0%us,

0.0%sy,  0.0%ni,100.0%id,  0.0%wa,

0.0%hi,  0.0%si,  0.0%stus: user space运行用户程序所占据的CPU百分比

sy: system (kernel space)运行内核程序所占据的CPU百分比

ni: nice调整nice值之后影响到的CPU百分比

id: idle空闲CPU百分比

wa: wait io等待I/O完成占据CPU的百分比

hi: hardware interrupt处理硬件中断占据的CPU百分比

si: software interrupt处理软件中断占据的CPU百分比

st: stolen被虚拟化技术“偷走”CPU的百分比

一般us:sy为7:3最佳

1:平均或单独显示CPU的负载状态;

m:是否显示内存相关的状态信息;

q:退出命令

s:修改延迟时长

k:终止指定进程

top命令的选项:

-b: batch,批次显示

-n #:显示的批次数量

-d #:指明延迟时长

htop命令用法:

F1帮助信息

F2设置

F3搜索

F4过滤

F5以树状结构显示

F6按什么排序

F7/F8设置NICE值

F9终止进程

F10退出

u:过滤仅显示选定用户的进程;[左侧会出现选项栏]

s:跟踪选定的进程所发起的系统调用;[选定一个进程按s键]

l:显示选定进程所打开的文件;[选定一个进程按l键]

t:显示进程的层次结构,与F5一样;[选定一个进程按t键]

a:设定进程的cpu亲缘性;(将选定的进程绑定在指定的CPU上)

选项:

-d #:延迟时长

-u USERNAME:仅显示指定用户的进程;

-s COLUMN:根据指定的字段进行排序;

mvstat命令用法:

查看虚拟内存的使用

vmstat -s显示内存的状态统计信息

例vmstat 1 3表示1秒刷新一次,共3次[root@bogon tmp]# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

0  0      0 421292  45176 427532    0    0    19    19   13   14  0  0 99  0  0

[root@bogon tmp]# vmstat 1 3

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

0  0      0 421300  45184 427560    0    0    19    19   13   14  0  0 99  0  0

0  0      0 421260  45184 427560    0    0     0     0   15   13  0  0 100  0  0

0  0      0 421260  45184 427560    0    0     0     0   12   14  0  0 100  0  0

进程相关(procs)的项目分别为:

r:等待运作中的程序数量即等待运行的进程的个数;(队列长度)

b:不可被唤醒的程序数量即处理不可中断睡眠状态的进程的个数;(即IO阻塞队列长度)

这两个项目越多,代表系统越忙碌 (因为系统太忙,所以很多程序就无法被执行或一直在等待而无法被唤醒之故)。

内存(memory)项目分别为:

swpd:交换内存使用量;

free:空间的物理内存量;

buffer:用于缓冲的内存总量;

cache:用于缓存的内存总量;

内存交换空间(swap)的项目分别为:

si:数据进入swap中的速率(kb/s)

so:数据离开swap的速率(kb/s)

如果si/so的数值太大,意味着物理内存不够用了,表示内存中的资料常常得在磁盘和内存之间传来传去,系统效率会很差。

磁盘读写(io)的项目分别为:

bi:从块设备读入数据到系统的速率(kb/s)

bo:保存数据至块设备的速率(kb/s)

如果这部份的值越高,代表系统中有进程的I/O非常忙碌。

系统(system)的项目分别为:

in:每秒被中断的程序次数;

cs:每秒钟进行的事件切换次数;

这两个数值越大,代表系统与周边设备的沟通非常频繁! 这些周边设备当然包括磁盘、网卡、时钟等。

CPU的项目分别为[top中有详细介绍]:

us:非核心层的CPU 使用状态;

sy:核心层所使用的CPU 状态;

id:闲置的状态;

wa:等待 I/O所耗费的 CPU 状态;

st:被虚拟机器(virtual machine) 所盗用的 CPU 使用状态。

glances命令用法[epel]:

进程查看工具

常用选项:

-b:以Byte/s为单位显示网卡设备数据交换速率;

-d:关闭磁盘I/O功能模块;

-f /PATH/TO/SOMEFILE:设置输出文件的位置及格式;把

-o HTML|CSV:使用HTML/CSV格式

例[root@bogon tmp]# glances -f test.txt -o CSV

[root@bogon tmp]# cat test.txt

load,0.08,0.03,0.0

mem,1028456448,131133440,897323008

swap,2147479552,0,2147479552

cpu,1.30718954248,2.61437908497,0.0,96.0784313726,0.0,0.0

load,0.08,0.03,0.0

mem,1028456448,131624960,896831488

swap,2147479552,0,2147479552

-m:关闭mount功能模块

-n:关闭网络功能模块

-r:关闭进程列表功能模块

-t #:指定延迟时长,默认为3秒;

-1:单独显示每颗CPU相关负载数据信息;

glances支持远程模式:

即可以以C/S模式工作:

Server:以监听模式启动glances;

Client:以远程模式启动glances,远程连入指定服务器,并显示Server上的相关性能数据;

服务模式:

glances -s -B本地IP地址

-B:用于指明监听的本地地址;

客户端模式:

glances -c服务器IP地址

-c:用于连入的服务器的地址;

例:在192.168.1.108上执行glances -s -B 192.168.1.108

在192.168.1.106上执行glances -c 192.168.1.108

注意:可能由于防火墙的原因无法连接

dstat命令用法:

统计系统资源数据的多用途工具,整合了vmstat, iostat, netstat and ifstat四款工具的功能;

dstat

-c:显示cpu性能指标相关的统计数据;[root@bogon nginx-1.6.2]# dstat -c

----total-cpu-usage----

usr sys idl wai hiq siq

0   0  99   0   0   0

0   0 100   0   0   0

0   0 100   0   0   0

-d:显示disk相关的速率数据;[root@bogon nginx-1.6.2]# dstat -d

-dsk/total-

read  writ

16k   16k

0     0

0     0

0     0

-g:显示page相关的速率数据;[root@bogon nginx-1.6.2]# dstat -g

---paging--

in   out

0     0

0     0

0     0

-i:显示interrupt相关的速率数据;[root@bogon nginx-1.6.2]# dstat -i

----interrupts---

17    18    19

1     0     1

0     0     3

0     0     2

0     0     3

-l:显示loadaverage相关的统计数据;[root@bogon nginx-1.6.2]# dstat -l

---load-avg---

1m   5m  15m

0    0    0

0    0    0

0    0    0

-m:显示memory相关的统计数据;

-n:显示网络收发数据的速率;

-p:显示进程相关的统计数据;

-r: io请求的速率;

-s:显示swap的相关数据;

-y:显示系统相关的数据,包括中断和进程切换;

--top-cpu:显示最占用CPU的进程;

--top-bio:显示最消耗blockio的进程;

--top-io:最占用io的进程;

--top-mem:显示最占用内存的进程;

--ipc:显示进程间通信相关的速率数据;

--raw:显示raw套接的相关的数据;

--tcp:显示tcp套接字的相关数据;

--udp:显示udp套接字的相关数据;

--unix:显示unixsock接口相关的统计数据;

--socket:显示套接字,相当于--raw --tcp --udp一起使用

-a:显示CPU,磁盘,网络,页面,系统相关信息,相当于-cdngy

kill命令用法:

IPC:进程间通信

常见形式:

message queue

semerphore

shared memory

signal

signal:传递给进程的短小信息

Linux主机支持的进程间可用到的信息:

(1)kill -l   [上面jobs有描述]

(2)man 7 signal

向进程发信号:

kill[-SIGNAL] PID

默认的信号为SIGTERM;

信号表示方式:

(1)完整名称,例如SIGINT

(2)简写名称,例如INT

(3)数据代称,例如2

常用信号:SIGHUP1通知进程重读其配置文件以让新的配置生效,但不用重新启动进程

SIGINT2打断正在运行中的进程,相当于键盘组合键Ctrl+c

SIGKILL9强行中止正在运行中的进程

SIGTERM15安全中止正在运行中的进程

SIGSTOP19暂停进程

SIGCONT18继续运行指定进程

例kill -15 1521

kill -SIGTERM 1521

kill -TERM 1521

kill相似的一组进程:

killall[-SIGNAL] PROGRAM

例:killall -15 http

进程优先级调整:

静态优先级:

通过指定进程的nice值来调整其优先级;用户空间运行的进程一般都有其nice值;

nice值:-20,19

优先级:100, 139

注意:值越低优先级越高

默认启动进程时,其nice值为0,其优先级为120;

(1)对于尚未启动的进程,调整nice值:

nice -nNICE值COMMAND

例nice -n 3 vim test.txt

(2)对于已经启动并处于运行中的进程,调整nice值:

renice -nNICE值PID

例renice -n 4 1521

注意:普通用户仅能够调大nice,调低优先级;只有root可以提高优先级

linux序列比对程序,Linux程序管理:top.htop.glances,dstat等命令使用方法相关推荐

  1. Linux学习笔记之   pstree,htop,glances,dstat 命令使用

    本文将简单介绍pstree,top,htop,dstat的用法: pstree pstree - display a tree of processes pstree:显示进程状态树,pstree命令 ...

  2. Linux——vi/vim文本编辑器、用户管理、关机重启的相关命令

    目录 1.vi/vim简介 1.1 常见的三种模式 1.2 常用快捷键 2.用户管理 2.1 添加用户 2.2 删除用户 2.3 切换用户 2.4 查看用户信息 3.关机.重启 1.vi/vim简介 ...

  3. python是在linux系统下运行的吗_Linux系统下python代码运行shell命令的方法

    方法一:os.popen #!/usr/bin/python#-*- coding: UTF-8 -*- importos, sys#使用 mkdir 命令 a = 'ls'b= os.popen(a ...

  4. linux进程及网络报告,linux网络和进程管理简述

    OSI七层模型和TCP/IP模型简述 OSI模型 OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织( ...

  5. linux ps内存占用率,linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定...

    背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况. 一. linux ps命令,查看某进程cpu和内存占用率情况 [root@test vhost]# ps aux US ...

  6. linux应用程序安装与管理

    一.Linux应用程序与命令的关系 1.基本命令是Linux系统中不可缺少的组成部分 <?xml:namespace prefix = o ns = "urn:schemas-micr ...

  7. 程序linux培训,马哥-51CTO-Linux培训-0910-程序包管理

    (注:此博文源于夜归人的博客) 程序包管理,rpm.yum的使用 程序包管理的相关概念: <<=============================================== ...

  8. 查画图linux进程,分享|6 款面向 Linux 用户的开源绘图应用程序

    小时候,当我开始使用计算机(在 Windows XP 中)时,我最喜欢的应用程序是微软的"画图".我能在它上面涂鸦数个小时.出乎意料,孩子们仍然喜欢这个"画图" ...

  9. linux系统在硬盘上安装程序,在硬盘中安装Linux操作系统最简单的方法

    通过Grub(多系统引导管理器)来安装 本人最近摸索Linux系统,想在本机上安装双系统,但我这老爷机上没有软驱,没有刻录机,下载的ISO文件只能存在硬盘上,也只能通过硬盘来安装,在各大Linux的B ...

最新文章

  1. python uiautomation选择list内容_使用python UIAutomation从QQ2017(v8.9)群界面获取所有群成员详细资料,...
  2. 手写bind_深入理解 JavaScript 之手写 call, apply, bind 方法
  3. git bash学习3 -简单杂乱知识点记录
  4. reduce_sum()中的reduction_indices
  5. 在OpenPower720上安装SLES9(I)
  6. go 列出已经安装的包_Go 安装教程
  7. liunx php apache2,linux apache2部署php
  8. [深度学习-优化]欠拟合与过拟合以及解决方法
  9. Redis事务及持久化
  10. VS2010+OpenMP的简单使用
  11. 快速幂或者矩阵快速幂
  12. Mac|技巧:Mac电脑如何使用ping命令呢?
  13. 梯度边缘检测 matlab,梯度边缘检测matlab
  14. 【风电功率预测】基于matlab灰狼算法优化LSTM风电功率预测【含Matlab源码 1392期】
  15. [Spring实战系列](2)Maven创建Spring-HelloWorld项目
  16. Debian11更换阿里源
  17. 数字孪生赛博朋克风格智慧城市
  18. 当当网张亮:深度解读分布式作业调度框架elastic-job
  19. 海海软件发布动态网站加密(DRM版权保护)Beta版
  20. 影响蜂糖李苗花芽分化的因素

热门文章

  1. Appfuse:扩展自己的GenericManager
  2. 找出Java进程中大量消耗CPU
  3. ubuntu 怎么格式化U盘?(转载)
  4. SQlite Android数据库的应用 Android SQLite 简易的学生成绩管理系统
  5. linux pclint配置_静态分析工具PC-lint Plus使用教程:安装与配置
  6. opencv +opencv_contrib+CMake+VS2015
  7. markdown语法笔记(二)
  8. Ubuntu18.04设置DNS服务器(可用)
  9. Ubuntu18.04安装npm失败解决
  10. C++多态虚函数/纯虚函数demo