Linux常用命令
主要包括几大板块:1. 用户以及用户组 2. 文件系统 3. 权限管理 4.路径
用户以及用户组
管理员:UID为0。
注:不是名字叫做root的就一定是管理员,只有uid是0的才算是管理员。
用户组依靠GID区分
一个用户只能有一个基本用户组,但可以有多个扩展用户组
0.显示用户信息
**id 用户名** #可以显示用户的详细信息,包括uid gid等等
1.创建/删除/修改用户
```
useradd 用户名 默认家目录存放在/home,默认的shell解释器是/bin/bash,并且创建一个与用户同名的用户组
# 参数 -d 指定用户主目录
# -u 指定用户的uid
# -g 指定用户的基本用户组
# -G 指定用户的扩展用户组
# -s 指定用户的默认shell解释器
# -e 指定账户的到期时间 格式:hh:mm:ss
eg:创建一个用户并指定家目录路径,用户uid和shell解释器
useradd -d home/linux -u 8888 -s sbin/nologin linuxdown
```
useradd和adduser的区别
1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。
应用场景:不需要登陆的,仅提供应用软件的可执行权限。
#使用useradd创建一个有家目录和密码的用户,并能够切进去
mkdir /home/用户名
useradd -d /home/用户名 用户名
passwd 密码
切到root用户
vim /etc/passwd
#将新用户的shell解释器改为bash
2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。
应用场景:需要远程登录的用户。
Q1:解释什么是用户的主目录?
工作目录与用户主目录
从逻辑上讲,用户在登录到Linux系统中之后,每时每刻都处在某个目录之中,此目录被称做工作目录或当前目录(Working Directory)。工作目录是可以随时改变的。用户初始登录到系统中时,其主目录(HomeDirectory)就成为其工作目录。工作目录用“.”表示,其父目录用“…”表示。
用户主目录是系统管理员增加用户时创建起来的(以后也可以改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。
用户刚登录到系统中时,其工作目录便是该用户主目录,通常与用户的登录名相同。
用户可以通过一个**~**字符来引用自己的主目录。
Q2:什么是shell?
它是用户使用Linux的桥梁,提供了用户与内核进行交互操作的一种接口。指定shell解释器相当于选择一种语言供用户使用,每种语言对应的命令有些区别。
常见的shell解释器:bash、sh、csh、ksh等
可以在/etc/shells中查看
userdel 用户名
#参数 -r 同时删除用户的主目录
# -f 强制删除用户
usermod 用户名
#用于修改用户的属性
-c 修改用户账户的备注信息
*-d -m 参数-m与-d连用 重新指定用户主目录并自动转移旧数据*
*-e 修改账户的到期时间
-g 修改基础用户组
-G 修改扩展用户组*
-L 锁定用户禁止登陆系统
-U 解锁用户允许登陆系统
*-s 变更默认终端*
*-u 修改uid*
(斜体是和useradd命令一致的参数 可对照记忆)
eg:将用户linuxprob的扩展用户组修改为root
usermod -G root linuxprob
2.添加/删除用户组,查看用户组信息
groupadd 用户组名
参数:-f 如果指定的组已经存在,显示成功并退出。如果存在gid同时使用-g时,-g失效。
-g 指定gid,gid必须唯一,除非与-o选项一起使用
-o 允许添加一个非唯一的gid
-p 设置新密码
groupdel 用户组名
参数:-h 显示用户帮助信息
-r CHROOT_DIR chroot到的目录
groupmod [选项] 组名
参数;-g 修改gid
-n NEW_GROUP 改名为NEW_GROUP
-o 允许使用重复的gid
-p PASSWORD 将密码修改为加密过的PASSWORD
-r CHROOT_DIR chroot到的目录??
#查看用户组信息
grep 用户组名 /etc/group
3. 查看用户
#查看当前用户
whoa**加粗样式**mi
#查看登陆用户
**who**
属性:-q 显示用户登陆账号和登陆用户的数量
**w**
显示**当前登陆系统的用户**信息,全面且强大,可以显示当前有哪些用户登录到系统,还可以显示这些用户正在进行的操作,并给出更加详细和科学的统计数据。
**w 用户名** 显示**指定用户**的信息
属性:-h 只显示运行who命令的用户名/登陆终端和登陆时间
-s 短列表 ,不显示用户登录时间、JCPU 和 PCPU 时间
-u:忽略执行程序的名称,以及该程序的PCPU时间
4. 密码操作
passwd 用户名
#几种情况
1.root用户为普通用户设置密码,命令后需要加上指定的用户名
2.root用户为自己设置密码,不需要指定用户名
3.普通用户为root用户设置密码,需要切换到root用户才可以或者使用sudo
4.普通用户为自己设置密码,后面不需要指定用户名
注意:通过超级用户(root)为普通用户设置密码的时候,设置 1 位密码都可以;
但是普通用户为自己设置密码的时候,应该是有密码长度限制的。
5. 用户切换和退出登陆
#普通用户执行某个命令时使用root权限;sudo 是 ubuntu 平台下允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具,减少了 root 用户的登陆和管理时间,提高了安全性。
**sudo *****
#切换用户
**su 用户名**
**su root**
**su -root** 切换到root用户,同时当前工作目录也切换到root的主目录
**exit** 退出终端/退出当前登陆用户,返回到上一个登陆账户/退出远程登陆账户
文件系统
0.目录结构
/usr unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/home 用户主目录的基点
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
1. 查看文件
#cat tac nl
#more less
#head tail
**cat [-AbEnTv] 文件** 一般用于查看纯文本文件,字数较少的
A 可以列出特殊字符
b 列出行号,空白行不标行号
E 结尾的断行字节显示
n 显示行号 空白行也显示
v 列出一些看不出来的特殊字符
**tac 文件** 文件内容从最后一行开始显示
**nl [-bnw] 文件** 显示行号
b行号指定方式ba空行也要显示行号;bt空行不显示行号;
n 行号展示方式 ln最左方显示 rn最右方显示且加0 rz右方显示且不加0
w 行号栏占的位数
**more 文件** 一页一页的翻动 空格表示翻下一页 一般用于查看纯文本文件,字数较多的
**less**
**head -n number 文件**
**tail -n number 文件** number表示取出最后几行 默认number=10
2. 创建文件
# cat touch
**cat>>filename** #使用cat创建文件系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件内容,结束时以ctrl+d退出并保存
**cat file1 file2 >> file3** 将多个文件合并到一个新文件
**touch filename** #可以同时创建多个文件,也可以批量创建 用的不多,主要用于修改指定文件的访问和修改时间属性。
touch -r existFilename filename #根据existFilename的访问和修改时间属性 确定filename的访问和修改时间属性
3. 删除文件
rm 文件名
参数:-f 强制删除
-r 删除目录
4. 修改文件
5.复制文件/剪切
**cp 源文件 目的文件**
参数:-p 保留原始文件的属性
-d 若文件为链接文件,则保留链接文件的属性
-r 递归持续复制 用于目录
-i 若目标文件存在询问是否覆盖
-a 相当于-pdr
**dd [参数]**
按照指定大小和个数的数据块来复制文件或转换文件
-if 输入文件名称
of 输出文件名称
bs 设置每个块的大小
count 设置要复制块的个数
**mv 源文件 目的文件** #用于将文件重命名或者剪切
eg:mv x.log linux.log #在同一目录下对某个文件进行剪切相当于将某个文件重命名
6.其他小命令
- 替换文本中的字符串
**tr [原始字符] [目标字符]**
eg: cat anaconda-ke.cfg | tr [a-z] [A-Z]
先使用cat命令读取待处理文本,使用管道 将文本内容传递给tr命令进行替换
- 统计命令
**wc [参数] 文本** #用于统计指定文本的行数l,字数w,字节数c
参数:-l 只显示行数
-w 只显示单词数
-c 只显示字节数
eg:wc -l /etc/passwd 可用于统计当前系统的用户数
- 查看文件具体信息
**stat 文件名** #用于查看文件的具体存储信息和时间
命令stat anaconda-ks.cfg会显示出文件的三种时间状态(已加粗):Access、Modify、Change
- 按列提取文本
**cut [参数] 文本**
参数:-f 设置需要看的列数
-d 设置间隔符号
eg:提取全部用户名 passwd在保存用户数据信息时,用户信息的每一项值之间是采用冒号来间隔的。
尝试提取出passwd文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容:
head -n 2 /etc/passwd
cut -d: -f1 /etc/passwd
-d设置分割符为:
-f设置只看一列
- 比较多个文本差异
**diff [参数] 文件**
参数:--brief 确认两个文件是否不同
-c 详细比较出多个文件的差异之处
eg:diff --brief diff_A.txt diff_B.txt #判断两个文件diff_A.txt 和 diff_B.txt 是否相同
diff -c diff_A.txt diff_B.txt #描述两个文件具体哪里不同
- 关键词搜索
**grep [选项] [文件]**
参数:-b 将可执行文件当作文本文件搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择,仅列出没有关键词出现的行
eg:在Linux系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用grep命令来查找出当前系统中不允许登录系统的所有用户信息:
grep /sbin/nologin /etc/passwd
- 按照指定条件查找文件
find [查找路径] 寻找条件 操作
参数:-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
--type b/d/c/p/l/f 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)
7. 压缩解压
.tar.gz的文件 tar -zcvf 压缩包名.tar.gz 文件/目录
tar -zxvf 压缩包名.tar.gz
zip文件 zip -q -r 压缩包名.zip 文件/路径
unzip 压缩包名
8. 软连接/硬连接
Linux的文件系统中,保存在磁盘分区中的文件会被分配一个编号,称为索引节点号inode。
**硬链接:**多个文件名指向同一索引节点是存在的,这种连接就被称为是硬连接。通俗的说,就是有着相同inode号但是文件名并不相同。
作用是允许一个文件拥有多个有效路径名,避免误删除。
具有的特性:1)文件具有相同的inode号和data block,不占用实际空间。
2)只能对已存在的文件进行创建
3)不能对目录创建,只能对文件创建
4)删除一个硬连接文件不影响其他有相同inode号的文件
5)不可以交叉文件系统进行硬链接的创建
注:当删除文件时,只有当指向某个文件的所有硬连接全部删除,才能够真正的删除。
**link 旧文件 新文件
ln 旧文件 新文件**
**软连接/符号链接:**类似于快捷方式,是一个含有特殊数据块内容的普通文件,文件用户数据块中存放的内容是另一文件的路径名的指向。
作用:方便管理 / 解决文件系统磁盘管理空间不足的问题
特性:1)可以对不存在的文件名进行创建
2)可对目录和文件创建
3)可以跨文件系统
注:删除软链接并不影响所指向的文件,但若被指向的原文件被删除,相关软链接就变成了死链接。
**ln -s 旧文件 软链接
ln -s 旧文件 软链接目录**
可以由ls命令查看,第一列就是inode号
查看某一文件的信息
stat 文件名
ll -ih
ll -i
Q:inode是什么呢?
inode,它是文件或者目录在一个文件系统中的唯一标识,文件的实际数据放置在数据区域(data block),它存储着文件重要参数信息,也就是元数据 (metadata),比如创建时间、修改时间、文件大小、属主、归属的用户组、读写权限、数据所在block号等
8. 创建/删除文件夹
mkdir 文件夹名
rmdir 文件夹名
权限管理
1.文件权限
文件权限和归属
对于文件而言:
可读:可以读取文件的实际内容
可写:能够编辑/新增/修改/删除文件的实际内容
可执行:能够运行一个脚本程序
对于目录而言:
可读:能读取目录中的文件列表
可写:能够在目录中新增/删除/重命名文件
可执行:能够进入该目录
文件夹只有读权限 cd切不进去 必须具有可执行权限才行
1)查看文件信息
ls -l
其中排在权限前面的减号(-)是文件类型,新手经常会把它跟无权限混淆。
常见的文件类型包括有:普通文件(-)、目录文件(d)、软链接文件(l)、管道文件(p)、块设备文件(b)以及字符设备文件(c)。
2)文件权限的表示
文件权限有两种表示方式:数字表示和字符表示
如:751 表示文件属主可读/可写/可执行,文件属组可读/可执行,其他用户只能执行
对应的字符表示为:rwxr-x–x
3)修改文件权限/属主/属组
a:修改文件权限:可以使用数字法和字符法两种格式修改
1. 字母法 **chmod [-ugoa] [+-=] rwx** 文件名
u:user表示该文件的
g:group表示该文件的所有者属于同一组者,即用户组
o:other 其他人
a:all表示三者皆是
+:增加权限
-:撤销权限
=:设定权限 注:为文件设定权限的时候,文件的权限就只会保留设定的权限,其他权限全部消失
- 数字法 **chmod 三位数字 文件名**
eg:chmod 751 test.zip 修改test.zip文件的权限为751
b:修改文件属主
**chown 用户名 文件或者目录名**
eg:chown abc test.zip 将test.zip的属主修改为用户abc
c:修改文件属组
**chgrp 用户组名 文件或者目录名**
eg: chgrp chen test #将文件test的属组修改为用户组chen
4)文件的特殊权限
1 : SUID
可以让二进制程序的执行者临时拥有属主的权限。
例如:临时给普通用户修改/etc/shadow文件的权限 可以修改自己的密码
是一种有条件的临时的特殊授权方法
2 : SGID
二进制程序时:可以让执行者临时获取文件所有组的权限;
目录时:让目录内新创建的文件自动继承该目录原有的用户组的名词
3 : SBIT
2. 管道符/重定向
1)输入输出重定向 / 重定向到文件
- 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2
- 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1 或 命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
-
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。
-
重定向到文件
tee命令用于读取标准输入的数据,并将其内容输出成文件。
tee file1 file2
参数: -a或--append 附加到既有文件的后面,而非覆盖它.
-i或--ignore-interrupts 忽略中断信号。
--help 在线帮助。
--version 显示版本信息
2)管道命令符
作用:前一个命令原本要输出到屏幕的信息当作是后一个命令的标准输入
eg:用一条命令来完成密码重置操作
**echo "linuxprob" | passwd --stdin root**
搜索与bash有关的进程信息 同时重定向到文件result.txt中
**ps aux | grep bash | tee result.txt**
注:管道命令符只能在一个命令组合中使用多次
3)通配符
通配符 | 含义 |
---|---|
* | 任意字符 |
– | – |
? | 单个任意字符 |
– | – |
[a-z] | 单个小写字符 |
– | – |
[A-Z] | 单个大写字符 |
– | – |
[a-Z] | 单个字母 |
– | – |
[0-9] | 单个数字 |
– | – |
[:alpha:] | 任意字母 |
– | – |
[:upper:] | 任意大写字母 |
– | – |
[:lower:] | 任意小写字母 |
– | – |
[:digit:] | 所有数字 |
– | – |
[:punct:] | 标点符号 |
eg:匹配所有在/dev目录中且以sda开头的文件
ls -l /dev/sda*
4)转义字符
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符。
单引号(’’):转义其中所有的变量为单纯的字符串。
双引号(""):保留其中的变量属性,不进行转义处理。
反引号(``):把其中的命令执行后返回结果。
5)环境变量
变量名称 | 作用 |
---|---|
HOME | 用户主目录 |
磁盘管理
网络管理以及配置
1.网络命令
1)hostname命令
hostname #没有选项,显示主机名
hostname -d #显示所在域名
hostname -f #显示完整的主机名+域名
hostname -i #显示当前机器的ip地址
hostname 新的主机名 #临时设置主机名
#通过/etc/sysconfig/network文件修改主机名需要重启才能够生效 HOSTNAME的值
2)ping ip地址
ping 命令用来向指定的ip地址发送数据包,主要有两点作用:测试网络是否畅通,查看连接的速度
可以使用ctrl+c停止命令
ping ip地址
参数:-c number #可以定义ping的次数
3)ifconfig
查看用户网络配置,显示当前网络设备配置。
iwconfig
查看无线网卡的信息,设置基本的wifi网络信息
4)nslookup
给定ip地址时可以显示主机名,找到给定域名的所有IP地址
eg:nslookup marsge.cn
5)traceroute
用来查看数据包在提交到远程系统或者网站时所经过的路由器的IP地址、跳数和响应时间。
6)telnet
通过telnet协议连接目标主机
telnet hostname port ** 使用指定的端口telnet 主机名,用于测试主机是否在线或者网络是否正常。
7)netstat
最常用的命令,
netstat -g #显示该主机订阅的所有多播组
netstat -nap | grep port #显示使用该端口的应用进程的进程id
netstat -a #显示tcp和udp的所有连接
netstat -t/-tcp 显示tcp的
netstat -u/udp 显示udp的
2.网络理论知识
1)三种模型结构
1、OSI七层参考模型:在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型。一台计算机操作系统中的网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部) ,OSI参考模型把功能分成七个分立的层次。
2、另一种是TCP/IP四层模型,主要包括:应用层、运输层、网际层和网络接口层。
3、五层体系结构:应用层、运输层、网络层、数据链路层、物理层。
五层说法只是OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层。
应用层 :
应用层是最接近终端用户的OSI层,这就意味着OSI应用层与用户之间是通过应用软件直接相互作用的。【应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API组成的】主要有一些针对特定应用的协议。
协议:HTTP/FTP/SMTP/DNS
HTTP:超文本传输协议,工作原理:Client端创建一个套接字(IP,端口号),同时向Server端发送TCP连接请求,并通过确认信息确认建立好TCP连接了。Client端利用TCP连接向Server端发送相应的请求命令。Server端接收到请求后进行相应的处理,然后将处理结果以响应response的形式返回给Client端。完成请求、应答之后,Client端和Server端通过关闭套接字结束本次的TCP连接。
可以了解一下*请求报文格式、响应报文格式,cookie,web缓存(代理服务器)*这些概念。爬虫最开始要做的一件事就是模仿浏览器向目的网站发送请求,获取到返回的响应结果,再对结果进行处理,获取需要的信息。
FTP:文件传输协议,工作过程:客户机程序根据需求发送命令,服务器程序响应命令的一个过程。建立控制连接和数据连接,分别用于传送客户机程序发出命令、接收服务器返回响应信息和传输文件内容。
DNS:域名系统,分布式网络目录服务系统,它通过一个遍布全球的分布式数据库,提供主机名称和IP地址之间的映射。
SMTP:邮件传输协议,由发送者邮件代理、发送者邮件服务器、接收者邮件服务器,接收者代理4个程序的参与。
传输层:
管理两个节点之间的数据传输。传输单位:数据段。
协议:TCP/UDP
报文格式,字段含义
三次握手、四次挥手原理
提供服务:拥塞控制、重传
网络层:
地址管理和路由选择。传输单位:数据包。
协议:IP/RIP/OSPF
ipv4格式
数据链路层:
通过物理网络链路提供可靠的数据传输。 传输单位:帧。
作用:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等,ARP协议/RARP协议,帧。
协议:ARP/RARP/PPP
物理层 :
负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。所有比物理层高的层都通过事先定义好的接口而与它通话。
负责0、1 比特流(0/1序列)与电压的高低、光的闪灭之间的转换,bit。
协议:IEEE 802.1A,IEEE 802.2 到IEEE 802.11
补充:
表示层 :主要负责数据格式的转换。
会话层 :通信管理,负责建立和断开通信连接。
ARP攻击
ARP是地址解析协议,目的是实现IP地址到MAC地址(电脑唯一的标识符)的转换。通过广播+维护ARP映射表来实现。
pc1想要通过广播方式找到pc2的mac地址,当pc3听到时,接收广播包并发送含有自己mac地址的回应包,pc1接收到多个回应包时会根据到达时间判断到底哪个是真(后到达)哪个是假的,pc3就会一直连续不断的这样的回应包。
2)IPV4
ipv4长度32位,常采用点分十进制表示法,x.x.x.x.的格式。
IP地址的分类:A类B类C类D类E类
A类:地址范围1.0.0.0 - 127.255.255.255,用于给政府机构/大型规模公司等,中国只有一个A类地址;第一块和第二块网络号要保留。
B类:地址范围128.0.0.0 - 191.255.255.255,用于给中等规模的公司。
C类:地址范围192.0.0.0 - 223.255.255.255,用于给任何有需要的人。
D类:地址范围224.0.0.0 - 239.255.255.255,用于保留做各种实验。
注:ABC三类地址的主机号全0和全1均须要保留,主机号全为0是子网网络地址,全为1是子网广播地址。
其他特殊IP地址:待更新。。。
子网划分
借用主机号的一部分作为子网的子网号,划分出更多的子网ip地址,结构:网络号-子网号-主机号。
子网掩码:网络号和子网号全改为1,主机号全改为0.
主机号不能够全为1或0.
子网数由每个子网中主机与路由器数量确定。
可变长度的子网掩码:待更新。。。
CDIR:待更新。。。
路径
…/和./表示上级目录和当前目录
绝对路径:从根目录开始写起的文件名或者目录名 /home/a/test.txt
相对路径:相对于目前路径的文件名写法 ./home/a
1.工作目录切换命令
pwd #用于显示用户当前 所处的目录
cd 目录名称 #用于切换工作路径
cd ~ 切换到当前用户的主目录
cd ~username 切换到其他用户的主目录
cd - 切换到上一次所处的目录
ls [-ald] [文件]
参数:-a 可以看到全部文件,包括隐藏文件
-l 可以查看文件的属性/大小等详细信息
-d 可以查看目录属性
并发问题
高并发
通过设计保证系统能够同时并行处理很多请求。
高并法的相关指标:响应时间/吞吐量/每秒响应请求数QPS/并发用户数
提升系统并发能力
互联网分布式架构设计,提高系统并发能力。
1. 垂直扩展
提升单机处理能力 (1)增强硬件性能 ,CPU/内存/硬盘(2)提升单机架构能力,Cache/异步等
2. 水平扩展
增加服务器的数量,线性扩充系统性能。