linux分析命令
- 一、服务器基础知识
- 二、linux文件结构
- 三、linux文件权限
- 四、linux命令
- 1、安装应用
- fedora家族: 如centos
- debain家族:如ubuntu
- 2、获取帮助
- 第一种:`command --help`
- 第二种:`man command`
- 第三种:`info`
- 3、服务器性能分析基础命令
- top
-
一、服务器基础知识
- 无图像界面的服务器,一般才会作为服务器
- 通过客户端 xshell、putty、cmd、finalshell
- 客户端工具要能连接到linux机器上,机器必须开放ssh服务,这个服务端口22
- centos系统默认是安装了ssh服务,开放了22端口
- ubuntu系统 默认没有安装ssh服务,所以,ubuntu这种图像界面系统,有时候不能通过客户端来连接。
- 你想要连接到一台服务器上:
- 1、服务器必须启动ssh服务
- 2、服务器要开放ssh服务的端口
- 3、你本地与服务器之间网络要能通
- 检查: telnet server_ip 22
-
二、linux文件结构
- linux中,一切都是文件
- 查看文件结构:
- 安装查看结构的软件(树形结构展示文件路径):
yum -y install tree
- 查看n级路径:
tree -L 1/2/3
- 查看路径下的某个文件夹下的:
tree -L 1 /opt
- 安装查看结构的软件(树形结构展示文件路径):
目录 | 存储 |
---|---|
/boot | 核相关文件(内核) |
/bin | 存放系统中可用的命令,比如说cd,mkdir之类的 |
/etc | 系统管理所需要的所有配置文件 |
/usr | unix shared resource 用户共享程序文件夹,就像windows系统的program files目录 |
/opt | optional 给主机额外安装的软件目录 相当于windows的d盘 |
/home | 用户目录,它下一级文件夹,默认是被系统当作用户名的根路径。在企业中,你们操作服务器,一般会给你们非root权限的账号,那这个账号,肯定会在/home目录下面有一个文件夹,文件夹的名称是你的用户名,你的所有操作权限,都受这个用户的权限控制,所以你默认的操作都是在这个路径下 |
/sys | 系统文件,记录内核设备数 |
/media | 自动识别的外设 |
/mnt | 给用户临时挂载外部文件系统。因为linux所有的都是文件,所以当u盘等设备连接的时候,会把u盘当做文件挂载在这边,挂载的路径一般是这边 |
/proc | process进程,虚拟文件系统,存储当前内核运行状态的特殊文件 。比如cpuinfo: 记录着系统在启动时,读取的cpu相关信息。meminfo: 记录着系统在启动时,读取的memory相关信息。里面还有很多数字: 都是进程的id和pid。 进入这个文件夹,可以查看这个进程启动时相关信息 |
/root | 超级权限者的主目录 |
/run | 临时文件,系统启动的信息 |
/srv | 服务启动后,需要提取的数据 |
/var | 不断扩充的东西,如日志。/var/log/你的程序名称 日志文件 |
/tmp | 临时文件 |
/dev | device,linux的外部设备 |
-
三、linux文件权限
-
以时间顺序显示目录及其文件列表:
ls -lth
- 第1个: 目录:
d
开头,链接:l
开头, 文件:-
开头 - 第2/3/4个:归属用户user权限: r读 (4)w写(2) x执行(1)
chmod 777
文件名 授予权限,7表示授予读写执行权限
- 第5/6/7个:归属用户组group权限
- 第8/9/10个:其他other用户权限
- 第12个:归属用户username chown
- 第13个:归属用户组 groupname chgrp
- 第14个:大小
- 第15个:日期时间
- 最后一个:文件名称
- 第1个: 目录:
-
四、linux命令
-
2、获取帮助
-
第一种:
command --help
- 这种一般都显示
-
第二种:
man command
- 显示系统手册中的内容,会展示更多程序相关信息 - man ls如下
-
第三种:
info
- 能提供比man更详细的帮助信息
- info ls
-
-
- ps:并不是所有工具都有这些帮助
-
3、服务器性能分析基础命令
-
top
- 常用的性能分析工具,能够实时显示各个系统中的各个进程的资源占用情况,也可以查看线程
- 接下来我们对每行的数据进行逐步分析:
- 第一行:top - 11:14:43 up 379 days, 19:01, 1 user, load average: 0.24, 0.23, 0.31
- top - 11:14:43 :展示当前的系统时间
- up 379 days, 19:01:表示系统启动了多长时间
- 1 user:当前系统有几个用户连接进来(可以是同一个用户,比如5个用户都用root权限登录,那这边会展示5个)
- load average: 0.24, 0.23, 0.31:系统平均负载值
- 第一个值表示系统过去1分钟的平均负载值
- 第二个值表示系统过去5分钟的平均负载值
- 第三个值表示系统过去15分钟的平均负载值。
- 系统负载值,不等于cpu使用率值,因为系统的负载值,由两部分组成:cpu使用率+io使用率
- 历史经验,系统负载高低,与cpu数量有一定关系,但并不是绝对
- io:换入和换出。不止是磁盘的读写,还包括像服务器发起请求,服务器处理完成后,通过网络向外传递,磁盘从内存进入缓存,从内存进入cpu,从cpu进入内存等,比较宽泛
- cpu使用率高,受以下参数影响:us sy ni hi si…
- us:user space,用户态使用cpu的时间占比,比如说写了一段代码,代码只做了逻辑的判断,没有做底层的运算。类比测试就相当于熟悉系统,写测试用例这种做测试准备的非核心的工作。(非内核)
- sy:systcl space,系统态,在cpu内核中进行计算消耗的时间占比。占用时间越高,这个值越大。类比测试,就相当于执行测试,找bug这种核心工作。(内核)
- ni:nice 优先级切换(进程切换)占cpu百分比
- hi:hardware interrupt,硬中断占用百分比。比如你和家人视频通话时候一个电话来了,不得不中断。中断会导致时间浪费,也会导致资源占用升高(进程/线程切换)
- si:software interrupt,软中断占用百分比。就像是你打电话的时候另一个电话来了,然后你将第一个电话保持,然后去接第二个电话(进程/线程切换)
- id:idolt 空闲cpu百分比
- wa:wait IO等待占用cpu百分比
- st:hypervisor管理程序占用百分比
- 以后,不要说系统负载值大于cpu数量,就一定负载高
- load average: 0.24, 0.23, 0.31:如何知道我们现在系统的负载情况?
- 看第一个值是上升还是下降,如果现在负载值在上升,表示还会继续上升。
- 如果第一个值小于第二个值,表示现在系统负载正在下降,再过一段时间可能会恢复正常
- 如果第三个值小于第二个值,同上
- 输入数字
1
可以看到cpu数量,核数
-
- 第二行:Tasks: 272 total, 1 running, 205 sleeping, 0 stopped, 66 zombie
- tasks进程数,Threads:可以按
H
来切换线程 - 任务列表中,S列对应
- S sleep 休眠
- R running 正在运行
- T stopped 终止
- Z zombie 僵尸进程
- tasks进程数,Threads:可以按
- KiB Mem : 32779828 total, 2448616 free, 3810724 used, 26520488 buff/cache
- KiB Swap: 0 total, 0 free, 0 used. 27860280 avail Mem
- buff/cache:缓存
- buffer:缓冲区(磁盘虚拟出来的加快读速度的空间)
- cache:缓存(cpu,内存的缓存)
- Swap:交换分区(也是磁盘虚拟出来的,进行内存数据转移的,不进行计算:内存->swap,swap->内存)
- buff/cache:缓存
-
-