当前位置: 首页 > news >正文

Linux进程相关管理(ps、top、kill)

目录

一、概念

二、查看进程

1、ps命令查看进程

1)ps显示某个时间点的程序运行情况

2)查看指定的进程信息

2、top命令查看进程

1)信息统计区:

2)进程信息区

3)交互式命令

三、信号控制进程

四、作业控制


一、概念

程序:二进制文件,文件存储在磁盘中,例如/usr/bin/目录下

进程:当运行可执行文件后,会被装载到内存中,接着CPU会执行程序中的每一条指令,这时这个运行中的程序,就被称为进程(进程是已启动的可执行程序的运行实例)。

线程:是操作系统能够进行运算调度的最小单位。

          它被包含在进程之中,是进程中的实际运作单位。

          一条线程指的是进程中一个单一顺序的控制流(线程是进程当中的一条执行流程),一个进程中可以并发多个线程,每条线程并行执行不同的任务。


  • 进程和程序不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
  • 进程具有并发性和交往性,而程序是封闭的
  • 一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
  • 线程不能单独执行,但每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行。
  • 同一个进程内多个线程之间可以共享代码块、数据段、打开的文件等资源,但每个流程都有独立的寄存器和栈,这样可以确保线程的控制流是相对独立的
  • 进程是资源分配的单位,线程是CPU调度的单位;进程拥有一个完整的资源平台,而线程只独享必不可少的资源。

进程分类:

二、查看进程

在一个进程的活动期间至少具备三种基本状态,即运行状态、就绪状态、阻塞状态。

比较完整的进程状态变迁图:

(注:图片来自进程和线程之间有什么根本性的区别? - 知乎) 

1、ps命令查看进程

1)ps显示某个时间点的程序运行情况

        -a :显示所有用户的进程

        -u :显示用户名和启动时间

        -x :显示没有控制终端的进程

        -e :显示所有进程,包括没有控制终端的进程

        -l长格式显示

        -w宽行显示,可以使用多个 w 进行加宽显示

        -f:做一个更完整的输出

# 查看当前用户的进程

[root@localhost ~]# ps -l

F——程序标识,说明程序的权限

          4表示此程序的权限为root,1表示此子程序仅进行复制而没有实际执行

S——程序状态(STAT)

        R(Running):该程序正在运作中;

        S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒;

        D不可被唤醒的睡眠状态,通常可能是在等待I/O的情况;

        T停止状态(stop),可能是在工作控制(后台暂停)或traced状态;

        Z(Zombie):僵尸状态,程序已经终止但却无法被移除至记忆体外。

        +:位于前台的进程组

UID——代表此程序被该UID所拥有

PID——程序的PID号码

PPID——此程序的父进程PID号码。

C——CPU使用率,单位为百分比

PRI(Priority),NI(Nice)

        ——代表此程序被CPU所执行的优先顺序,数值越小代表该程序越快被CPU执行

ADDR/SZ/WCHAN:都与内存有关。

ADDR——kernel funcition,指出该程序在内存的哪个部分,如果是 running的程序,一般会显示-。

SZ——代表此程序用掉多少内存

WCHAN——表示目前程序是否运作中,若为-表示正在运行。

TTY——登入者的终端机位置,若为远程终端登入则使用动态终端界面(pts/n)。

TIME——使用掉的CPU时间,即此程序实际花费CPU运作的时间。

CMD——触发此进程的指令是什么。

[root@localhost ~]# ps -u

[root@localhost ~]# ps aux |less

USER: 运行进程的用户

PID: 进程ID

%CPU: CPU占用率

%MEM: 内存占用率

VSZ: 占用虚拟内存

RSS: 占用实际内存 驻留内存

TTY: 进程运行的终端

STAT: 进程状态 man ps (/STATE)

        R         运行

        S         可中断睡眠 Sleep

        D         不可中断睡眠

        T         停止的进程

        Z         僵尸进程

        X         死掉的进程

        s          进程的领导者,父进程 <

        <         优先级较高的进程

        N         优先级的进程

        +          表示是前台的进程组

        l           以线程的方式运行

START: 进程的启动时间

TIME: 进程占用CPU的总时间

COMMAND: 进程文件,进程名

#自定义显示字段

[root@localhost ~]#  ps axo user,pid,ppid,%mem,command

# 查看进程树

[root@localhost ~]# pstree
 

2)查看指定的进程信息

[root@localhost ~]# ps aux |grep sshd
[root@localhost ~]# cat /run/sshd.pid
1210

# 查看远程连接sshd的所有进程
[root@localhost ~]# pgrep -l sshd# 如果把sshd服务全都关掉(killall sshd)之后需在虚拟机上重启sshd服务,才能进行远程连接
[root@localhost ~]# systemctl start sshd

2、top命令查看进程

格式:top [-d 数字] | [-bnp]

选项:

        -d:后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒

        -b:以批次的方式执行top;通常会搭配数据流重定向来将批处理的结果输出为文件。

        -n:与-b搭配,进行几次top的输出结果

        -i: 不显示闲置或者僵死的进程信息

        -c:显示进程的整个命令路径,而不是只显示命令名称

        -s:使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险

        -p:指定某些个PID来进行查看检测

[root@localhost ~]# top -d 1
[root@localhost ~]# top -d 1 -p 3598    #查看指定进程的动态信息
[root@localhost ~]# top -d 1 -p 10126,1
[root@localhost ~]# top -d 1 -u root    #查看指定用户的进程#将2次top信息写入到文件
[root@localhost ~]# top -d 1 -b -n 2 > top.txt 

top的输出可分为统计信息区(前五行)和进程信息区

1)信息统计区:

第一行为任务队列信息

top - 14:12:56 up  2:15,  5 users,  load average: 0.01, 0.08, 0.11

14:12:56 表示当前系统时间        up 2:15 表示系统已启动4小时32分钟

5 users 表示当前登录系统的用户数

load average: 0.01, 0.08, 0.11 表示系统1分钟、5分钟、15分钟前到现在的平均负载(如果 是1表示满负载)

第二行

Tasks: 315 total,   2 running, 313 sleeping,   0 stopped,   0 zombie

315 total 进程的总数        2 running 正在运行的进程数        313 sleeping 处于休眠的进程数

0 stopped 停止的进程数        0 zombie 僵死的进程数

第三行

%Cpu(s):  0.5 us,  0.5 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

0.5 us 表示进程占用CPU的百分比        0.5 sy 系统进程占用CPU的百分比

0.0 ni 用户进程空间内改变过优先级的进程占用CPU的百分比

99.0 id 空闲CPU占用的百分比

0.0 wa 代表I/Owait表示等待输入、输出的进程占用CPU的百分比

0.0 hi 表示cpu服务于硬件中断所耗费的时间总额

0.0 si 表示cpu服务于软件中断所耗费的时间总额     0.0 st表示虚拟机被hypervisor偷去的cpu时间。(另外,如果是多内核设备,可按下数字键“1” 来切换成不同cpu的负载率)

第四五行

MiB Mem :   1750.8 total,    100.4 free,   1241.1 used,    576.3 buff/cache
MiB Swap:   2048.0 total,   2026.2 free,     21.8 used.    509.7 avail Mem 

total系统的内存大小;free目前空余内存大小;used已经使用的内存大小

2)进程信息区

PID  USER      PR   NI VIRT     RES     SHR S  %CPU  %MEM    TIME+ COMMAND 
3108 root      20   0  226012   4232   3348 R   1.9   0.2   0:00.07 top                                             

VIRT:进程使用的虚拟内存总量,单位为KB

RES:进程使用的、未被换出的物理内存大小,单位KB

SHR:共享内存大小,单位KB

S:进程状态,D表示不可中断的睡眠状态,R表示运行状态,S表示睡眠状态,T表示跟踪/停 止,Z表示僵死进程

%CPU:上次更新到现在的CPU时间占用百分比

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

TIME+:进程总计使用的CPU时间,单位为1/100秒

COMMAND:正在运行进程的命令名或者命令路径

3)交互式命令(重要)

在top执行过程中可以使用的按键命令:

h或?        显示帮助信息,给出交互式命令的一些说明

k              终止一个进程

i               忽略闲置进程和僵死进程(开关式命令)

s              改变top输出信息两次刷新的时间,单位为秒

o或O        改变top输出信息中显示项的顺序,按小写的a-z键可以将相应的列向右移动,而按大写的 A-Z键可以将相应的列向左移动。最后按enter确定

m               切换显示内存信息

t                 切换显示进程和CPU状态信息

r                 重新设置一个进程的优先级(输入正值将使优先级降低,默认值10)

l                 切换平均负载和启动时间信息

q                退出top显示

c                切换显示完整命令行和命令名称信息

M               根据驻留内存大小进行排序输出

N                以PID来排序

P                根据CPU使用百分比大小进行排序输出

T                根据时间/累计时间进行排序输出

S                切换到累计模式

W               将当前top设置写入~/.toprc文件中

三、信号控制进程

# 列出所有支持的信号
[root@localhost ~]# kill -l

常用的信号

编号 信号名

1    SIGHUP 重新加载配置

2    SIGINT 键盘中断^C

3    SIGQUIT 键盘退出

9    SIGKILL 强制终止

15  SIGTERM 终止(正常结束),缺省信号

18  SIGCONT 继续

19  SIGSTOP 停止

20  SIGTSTP 暂停^Z(放在后台)

给进程发送信号

[root@localhost ~]# ps -ef |grep python
root        1070       1  0 09:07 ?        00:00:00 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
root        2996       1  0 09:08 ?        00:00:02 /usr/bin/python3 /usr/libexec/rhsm-service
root        3931    3884  0 10:39 pts/4    00:00:00 python test.py
root        3933    3466  0 10:40 pts/1    00:00:00 grep --color=auto python
[root@localhost ~]# 
[root@localhost ~]# kill -20  3931    # 暂停3931这个进程
[root@localhost ~]# kill -18  3931    # 恢复3931这个进程
[root@localhost ~]# kill -19  3931    # 停止3931这个进程# 关掉所有有关python的进程
[root@localhost ~]# killall python

四、作业控制

        一个命令行功能,允许一个shell实例来运行和管理多个命令。如果没有作业控制,父进程 fork()一个子进程后,将sleeping,直到子进程退出。使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让 shell 可以在子进程运行期间返回接受其他命令。

foreground: 前台进程是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输 入和信号,并允许从终端读取或写入到终端。

background: 后台进程没有控制终端,它不需要与终端交互。

# 运行程序时,让其在后台执行,返回一个作业id号
# &表示在后台工作
[root@localhost ~]# sleep 3000 &
[1] 7652# 快捷键CTRL+Z可以将前台的任务放在后台中暂停
[root@localhost ~]# sleep 4000^Z
[2]+  Stopped                 sleep 4000# 查看有关sleep的进程信息
[root@localhost ~]# ps aux | grep sleep
root        7652  0.0  0.0 220952  1024 pts/0    S    18:25   0:00 sleep 3000
root        7655  0.0  0.0 220952  1020 pts/0    T    18:25   0:00 sleep 4000
root        7657  0.0  0.1 221664  2244 pts/0    S+   18:26   0:00 grep --color=auto sleep# 查看当前终端放在后台的进程(jobs)
# +表示最近被放到后台的工作,-表示最近第二个被放到后台中的工作,超过第三个就不会有+/-符号存在了
[root@localhost ~]# jobs
[1]-  Running                 sleep 3000 &       
[2]+  Stopped                 sleep 4000# 让作业2在后台继续运行
[root@localhost ~]# bg %2
[2]+ sleep 4000 &# 将作业1调回到前台
[root@localhost ~]# fg %1
sleep 3000# kill 1,终止作业工作号为1的进程
[root@localhost ~]# kill %1
[root@localhost ~]# jobs
[2]+  Running                 sleep 4000 &

相关文章:

Linux进程相关管理(ps、top、kill)

目录 一、概念 二、查看进程 1、ps命令查看进程 1&#xff09;ps显示某个时间点的程序运行情况 2&#xff09;查看指定的进程信息 2、top命令查看进程 1&#xff09;信息统计区&#xff1a; 2&#xff09;进程信息区 3&#xff09;交互式命令 三、信号控制进程 四、…...

微服务技术栈-Ribbon负载均衡和Nacos注册中心

文章目录 前言一、Ribbon负载均衡1.LoadBalancerInterceptor&#xff08;负载均衡拦截器&#xff09;2.负载均衡策略IRule 二、Nacos注册中心1.Nacos简介2.搭建Nacos注册中心3.服务分级存储模型4.环境隔离5.Nacos与Eureka的区别 总结 前言 在上面那个文章中介绍了微服务架构的…...

知识图谱和大语言模型的共存之道

源自&#xff1a;开放知识图谱 “人工智能技术与咨询” 发布 导 读 01 知识图谱和大语言模型的历史 图1 图2 图3 图4 图5 02 知识图谱和大语言模型作为知识库的优缺点 图6 图7 表1 表2 图8 图9 03 知识图谱和大语言模型双知识平台融合 图10 图11 04 总结与展望 声明:公众号转…...

enum, sizeof, typedef

枚举类型enum enum 是 C 语言中的一种自定义类型enum 值是可以根据需要自定义的整型值第一个定义的 enum 值默认为 0默认情况下的 enum 值在前一个定义值得基础上加 1enum 类型的变量只能取定义时得离散值 void code() {enum Color{GREEN, // 0RED 2, // 2BLUE, …...

(二)激光线扫描-相机标定

1. 何为相机标定? 当相机拍摄照片时,我们看到的图像通常与我们实际看到的不完全相同。这是由相机镜头引起的,而且发生的频率比我们想象的要高。 这种图像的改变就是我们所说的畸变。一般来说,畸变是指直线在图像中出现弯曲或弯曲。 这种畸变我们可以通过相机标定来进行解…...

pytorch 数据载入

在PyTorch中&#xff0c;数据载入是训练深度学习模型的重要一环。 本文将介绍三种常用的数据载入方式&#xff1a;Dataset、DataLoader、以及自定义的数据加载器。 使用 Dataset 载入数据 方法&#xff1a; from torch.utils.data import Datasetclass CustomDataset(Dataset…...

angular 在vscode 下的hello world

Angulai 是google 公司开发的前端开发框架。Angular 使用 typescript 作为编程语言。typescript 是Javascript 的一个超集&#xff0c;提升了某些功能。本文介绍运行我的第一个angular 程序。 前面部分参考&#xff1a; Angular TypeScript Tutorial in Visual Studio Code 一…...

Django、Nginx、uWSGI详解及配置示例

一、Django、Nginx、uWSGI的概念、联系与区别 Django、Nginx 和 uWSGI 都是用于构建和运行 Web 应用程序的软件&#xff0c;这三个软件的概念如下&#xff1a; Django&#xff1a;Django 是一个基于 Python 的开源 Web 框架&#xff0c;它提供了一套完整的工具和组件&#xf…...

王道考研计算机组成原理——计算机硬件的基础知识

计算机组成原理的基本概念 计算机硬件的针脚都是用来传递信息&#xff0c;传递数据用的&#xff1a; 服务程序包含一些调试程序&#xff1a; 计算机硬件的基本组成 控制器通过电信号来协调其他部件的工作&#xff0c;同时负责解析存储器里存放的程序指令&#xff0c;然后指挥…...

[晕事]今天做了件晕事21;设置代理访问网站的时候需注意的问题

今天在家上班&#xff0c;设置好VPN&#xff0c;通过代理来访问公司内部的一个系统浏览器的反应如下&#xff1a; Hmmm… can’t reach this page ***.com refused to connect. 这个返回的错误&#xff0c;非常的具有迷惑性&#xff0c;提示的意思&#xff1a;拒绝链接&#xf…...

Go通过reflect.Value修改值

到目前为止&#xff0c;反射还只是程序中变量的另一种读取方式。然而&#xff0c;在本节中我们将重点讨论如何通过反射机制来修改变量。 回想一下&#xff0c;Go语言中类似x、x.f[1]和*p形式的表达式都可以表示变量&#xff0c;但是其它如x 1和f(2)则不是变量。一个变量就是一…...

【MySql】4- 实践篇(二)

文章目录 1. SQL 语句为什么变“慢”了1.1 什么情况会引发数据库的 flush 过程呢&#xff1f;1.2 四种情况性能分析1.3 InnoDB 刷脏页的控制策略 2. 数据库表的空间回收2.1 innodb_file_per_table参数2.2 数据删除流程2.3 重建表2.4 Online 和 inplace 3. count(*) 语句怎样实现…...

获取多个接口的数据并进行处理,使用Promise.all来等待所有接口请求完成

Promise.all (等待机制) 方法 它调用了多个函数&#xff0c;这些函数返回了Promise对象&#xff0c;每个Promise对象代表了一个异步操作。 然后&#xff0c;使用Promise.all将这多个Promise对象包装成一个新的Promise对象&#xff0c;它会等待所有的Promise都完成&#xff08;或…...

利用C++开发一个迷你的英文单词录入和测试小程序-升级版本

我们现在有了一个本地sqlite3的迷你英文单词小测试工具&#xff0c;需求就跟工作当中一样是不断变更的。这里虚构两个场景&#xff0c;并且一步一步的完成最终升级后的小demo。 场景&#xff1a;数据不依赖本地sqlite3&#xff0c;需要支持远程访问&#xff0c;用目前的restfu…...

用c动态数组(实现权重矩阵可视化)实现手撸神经网络230902

变量即内存、指针使用的架构原理: 1、用结构struct记录 网络架构,如 float*** ws 为权重矩阵的指针(指针地址); 2、用 = (float*)malloc (Num * sizeof(float)) 给 具体变量分配内存; 3、用 = (float**)malloc( Num* sizeof(float*) ) 给 指向 具体变量(一维数组)的…...

Android.mk和Android.bp

公司承接Android、iOS等APP开发、前后端网站开发、小程序开发、安全服务等项目&#xff01; 公司官网:www.bincodesec.com 项目案例 一、编译不同类型的模块 1.编译成Java库 Android.mk include $(BUILD_JAVA_LIBRARY)Android.bp java_library {} 2.编译成Java静态库 And…...

CSS 常用样式-文本属性

一、水平对齐 text-align CSS中的text-align属性用于水平对齐文本。它可以应用于块级元素和表格单元格。 常见的属性值包括&#xff1a; left&#xff1a;左对齐&#xff0c;文本在容器的左侧。right&#xff1a;右对齐&#xff0c;文本在容器的右侧。center&#xff1a;居中…...

BootstrapBlazor企业级组件库:前端开发的革新之路

作为一名Web开发人员&#xff0c;开发前端我们一般都是使用JavaScript&#xff0c;而Blazor就是微软推出的基于.Net平台交互式客户Web UI 框架&#xff0c;可以使用C#替代JavaScript&#xff0c;减少我们的技术栈、降低学习前端的成本。 而采用Blazor开发&#xff0c;少不了需…...

力扣 -- 1745. 分割回文串 IV

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:bool checkPartitioning(string s) {int ns.size();vector<vector<bool>> dp(n,vector<bool>(n));for(int in-1;i>0;i--){for(int ji;j<n;j){if(s[i]s[j]){dp[i][j]i1<j?dp[i…...

C# 给某个方法设定执行超时时间

C# 给某个方法设定执行超时时间在某些情况下(例如通过网络访问数据)&#xff0c;常常不希望程序卡住而占用太多时间以至于造成界面假死。 在这时、我们可以通过Thread、Thread Invoke&#xff08;UI&#xff09;或者是 delegate.BeginInvoke 来避免界面假死&#xff0c; 但是…...

安装NodeJS并使用yarn下载前端依赖

文章目录 1、安装NodeJS1.1 下载NodeJS安装包1.2 解压并配置NodeJS1.3 验证是否安装成功2、使用yarn下载前端依赖2.1 安装yarn2.2 使用yarn下载前端依赖参考目标:在Windows下安装新版NodeJS,并使用yarn下载前端依赖,实现运行前端项目。 1、安装NodeJS 1.1 下载NodeJS安装包…...

(Java高级教程)第三章Java网络编程-第八节:博客系统搭建(前后端分离)

文章目录 一&#xff1a;前端页面回顾二&#xff1a;博客功能展示三&#xff1a;数据库表设计&#xff08;1&#xff09;表设计&#xff08;2&#xff09;封装DataSource 四&#xff1a;实体类和数据访问对象&#xff08;1&#xff09;实体类&#xff08;2&#xff09;数据访问…...

901. 股票价格跨度

设计一个算法收集某些股票的每日报价&#xff0c;并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数&#xff08;从今天开始往回数&#xff0c;包括今天&#xff09;。 例如&#xff0c;如果未来 7 天股票的价格是 [100,…...

JavaScript中的模块化编程,包括CommonJS和ES6模块的区别。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 模块化编程概述⭐ CommonJS 模块⭐ ES6 模块⭐ 区别⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、…...

从零开始 Spring Cloud 13:分布式事务

从零开始 Spring Cloud 13&#xff1a;分布式事务 1.分布式事务问题 用一个示例项目演示在分布式系统中使用事务会产生的问题。 示例项目的 SQL&#xff1a;seata_demo.sql 示例项目代码&#xff1a;seata-demo.zip 这个示例项目中的微服务的互相调用依赖于 Nacos&#xf…...

2023Node.js零基础教程(小白友好型),nodejs新手到高手,(二)NodeJS入门——buffer模块、计算机基础、fs模块、path模块

就算步子乱了又如何&#xff0c;接着跳下去就好了。——《闻香识女人》 开始 011_Buffer_介绍与创建 hello&#xff0c;大家好&#xff0c;我们来学习一下buffer。首先来看看 buffer 是一个什么东东。buffer&#xff0c;中文译为缓冲区&#xff0c;是一个类似于数组的对象&am…...

lua如何调用C/C++

1 lua vs C/C lua是脚本语言&#xff0c;优点是门槛低&#xff0c;可以热更新&#xff0c;缺点当然就是性能。C/C是编译型语言&#xff0c;有点是性能高&#xff0c;但是相对的&#xff0c;门槛高&#xff0c;技术不好的人写的代码可能还没有lua的性能高&#xff0c;容易出现c…...

简单聊一聊公平锁和非公平锁,parallel并行流

目录 一、降低锁的粒度&#xff0c;将synchronized关键字不放在方法上了&#xff0c;改为synchronized代码块。二、先区分一下公平锁和非公平锁1、公平锁2、非公平锁3、公平锁的优缺点&#xff1a;4、非公平锁的优缺点&#xff1a; 三、是否对症下药四、IntStream.rangeClosed是…...

【SpringCloud】微服务技术栈入门4 - RabbitMQ初探

目录 RabbitMQ安装 rabbitmqSpringAMQP 基础队列WorkQueue路由发布订阅 FanoutExchangeDirectExchangeTopicExchange RabbitMQ 安装 rabbitmq 首先确保自己已经安装好了 docker 是 docker 拉取镜像文件&#xff1a;docker pull rabbitmq:3-management 拉取完毕&#xff0c;打…...

cefsharp(117.2.20)cef117.2.2最新体验版

一、下载nupkg https://www.nuget.org/packages/CefSharp.WinForms/ https://www.nuget.org/packages/CefSharp.Common/ https://www.nuget.org/packages/cef.redist.x64/ https://www.nuget.org/packages/cef.redist.x86/ 此版本暂时不支持H264。上一版本支持H264 cefsharp…...

长治电商平台网站/深圳全网营销系统

正则表达式&#xff1a; 定义&#xff1a; 是一些字符或是特殊字符串模式的集合。 功能&#xff1a;根据模式搜索文本&#xff0c;并将符合模式的文本行显示出来。 Pattern(模式): 文本字符和正则表达式的元字符组合而成匹配条件 grep&…...

第一次做网站选多大空间/友情链接的作用

MongoDB使用小结&#xff1a;一些常用操作分享 本文整理了一年多以来我常用的MongoDB操作&#xff0c;涉及mongo-shell、pymongo&#xff0c;既有运维层面也有应用层面&#xff0c;内容有浅有深&#xff0c;这也就是我从零到熟练的历程。 MongoDB的使用之前也分享过一篇&#x…...

襄阳网站建设哪家好/seo页面优化技术

Socket编程对TCP/IP、UDP、Socket编程这些词你不会很陌生吧&#xff1f;随着网络技术的发展&#xff0c;这些词充斥着我们的耳朵。那么我想问&#xff1a;1. 什么是TCP/IP、UDP&#xff1f;2. Socket在哪里呢&#xff1f;3. Socket是什么呢&#xff1f;4. 你会使用它们吗&#…...

做标签网站是什么样的/市场营销网络

二者的区别就是程序空间和数据空间是否是一体的&#xff0c;冯诺依曼结构数据空间和地址空间是不分开的&#xff0c;而哈佛结构数据空间和地址空间是分开的。 早起的微处理器大多采用冯诺依曼结构&#xff0c;最典型的就是intel的x86微处理器&#xff0c;取指令和取操作数都是在…...

做网站是哪个专业/百度首页排名优化服务

Hash 索引结构的特殊性&#xff0c;其检索效率非常高&#xff0c;索引的检索可以一次定位&#xff0c;不像BTree 索引需要从根节点到枝节点&#xff0c;最后才能访问到页节点这样多次的IO访问&#xff0c;所以 Hash 索引的查询效率要远高于 BTree 索引。 可能很多人又有疑问了…...

如何在别人网站挂黑链/十大免费软文推广平台

本文转载地址&#xff1a;http://hi.baidu.com/cuttinger/blog/item/e9a93901934755147bec2cb0.html 1。老话题&#xff0c;mysql_real_escape_string单引号&#xff0c;大多数情况下&#xff0c;防止sql注入攻击足够了。$mysql mysql_connect("host","user&qu…...