5.1系统硬件内核
uname -a # 显示系统全部信息
-a | all 全部信息 |
-m | machine 处理器架构 如x86_64 |
-r | release 系统内核版本 如4.4.0-87-generic |
-n | hostname 主机名 在/etc/hosts可以查看 |
-s | sysname 操作系统版本名称 |
-v | version 操作系统版本号 |
显示内核版本有两种方式:uname -r 或者 cat /proc/version
5.2 cpu与进程信息
逻辑cpu数量 = 物理cpu数量 X cpu核数 如果开启了HT超线程技术,则 x2
cat /proc/cpuinfo 查看cpu信息
processor : 逻辑CPU编号,编号从0开始计算,总数就是逻辑cpu的个数
physical id : 物理CPU编号,总数就是物理cpu的个数
cpu cores : 物理CPU的核数 ,编号从0开始计算
ps 查看进程信息 是process status的简写
-a 列出所有进程
-u 以用户主的进程状态
x 与a参数一起使用,列出完整信息
-e 列出所有进程等同于-a
-f 列出更为完整的输出
ps -ef # 显示所有进程信息,连带命令行
ps -ef |grep mysql # 查找特定进程,ps与grep常用组合用法
ps -aux # 列出目前所有的正在内存当中的程序
ps -ef | grep mysql # 模糊匹配
ps -C mysql # 精确匹配
进程五种状态
- D :不可中断 uninterruptible sleep (usually IO)
- R :该程序目前正在运作,或者是可被运作
- S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
- T :该程序目前正在侦测或者是停止了
- Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
5.3 内存
free # 查看系统内存使用情况,包括物理内存、交换内存
free 查看内存信息
free -h -s 3 # 每隔3秒输出一次内存信息
-m # 以MB为单位换算 1024KB = 1MB
-h # 以GB为单位换算 1024MB = 1GB
buffer和cache区别:
buffer:缓冲区 一个磁盘块对应一个缓冲区,buffer是磁盘块调入到内存中的表示
cache :页高速缓存 磁盘块通过缓冲区buffer把文件存入页高速缓存
区别:都是为了提高磁盘读写效率,页高速缓存包含缓冲区,缓冲区是动作,页高速缓存是结果
缓存命中:当内核要读一个文件(比如 /etc/hosts)时,它会先检查这个文件的数据是不是已经在页高速缓存中了。
如果在,就放弃访问磁盘,直接从内存中读取。这个行为称为缓存命中。如果数据不在缓存中,就是未命中缓存,此时内核就要调度块I/O操作从磁盘去读取数据。然后内核将读来的数据放入页高速缓存中。这种缓存的目标是文件系统可以识别的文件(比如 /etc/hosts)。
5.4 查看网络
(1)查看linux网络接口的流量
我们平时经常用的很多查看网卡实时流量的命令,都是通过读取该目录下的实时流量,并通过简单计算得到的。proc文件系统是动态从系统内核读出所需信息并提交的。/proc文件系统中包含了很多目录,其中/proc/net/dev 保存了网络适配器及统计信息
网卡流量信息
cat /proc/net/dev # 查看网卡流量信息
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo:137052296 108029 0 0 0 0 0 0 137052296 108029 0 0 0 0 0 0
eth0:13661574714188 31346790620 0 0 0 0 0 0 5097461049535 27671144304 0 0 0 0 0 0
最左边的表示接口的名字,Receive表示收包,Transmit表示发送包;
bytes表示收发的字节数;
packets表示收发正确的包量;
errs表示收发错误的包量;
drop表示收发丢弃的包量;
网卡信息
ipconfig -a
etho 是网卡接口
lo 是网卡回环接口
查看linux网络流量的几种方式https://www.jb51.net/article/112965.htm
配置或显示linux网络接口信息
(2)ifconfig命令
用于配置网卡IP地址等网络参数或显示当前网络的接口状态,其类似于Windows下的ipconfig命令,这两个命令很容易混淆,读者需要区分一下。此外,ifconfig命令在配置网卡信息时必须以root用户的身份来执行。如果系统中没有ifconfig命令,那就需要安装一下,安装命令为yum-y install net-tools。
ifconfig [interface] [option]
使用ifconfig命令配置网卡信息仅会临时生效,重启网络或服务器配置就会失效。
- -a 显示所有的网络接口信息,包括活动的和非活动的
- up 激活指定的网络接口施
- down 关闭指定的网络接口
- hw 设置网络接口的物理地址(MAC地址)
[root@cs6 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:8C:6A:04
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8c:6a04/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15448 errors:0 dropped:0 overruns:0 frame:0
TX packets:7338 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20840158 (19.8 MiB) TX bytes:569624 (556.2 KiB)
eth1 Link encap:Ethernet HWaddr 00:0C:29:8C:6A:0E
inet addr:172.16.1.100 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8c:6a0e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:828 (828.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
下面以eth0的结果作进一步说明。
- 第1行:显示连接类型为Ethernet(以太网),HWaddr表示硬件的MAC地址。
- 第2行:依次显示网卡的IP地址(inet addr)、广播地址(Bcast)和子网掩码(Mask)。
- 第3行:IPv6地址的配置信息,由于没有使用IPv6地址,因此这里没有P地址显示。
- 第4行:“UP”代表网卡的开启状态,“RUNNING”代表网卡上的网线处于连接状态,“MULTICAST”代表支持组播,“MTU:1500”表示最大传输单元为1500字节。
- 第5、6行:显示了网卡接收、发送数据包的统计信息。
- 第8行:显示了网卡接收、发送数据字节数的统计信息。
显示指定网卡的信息
[root@cs6 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:8C:6A:04
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8c:6a04/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:125 errors:0 dropped:0 overruns:0 frame:0
TX packets:109 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13325 (13.0 KiB) TX bytes:11435 (11.1 KiB)
启动/关闭指定网卡
ifup eth0 启动eth0网口
ifdown eth0 关闭eth0网口
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 配置网卡的ip地址
ifconfig eth0 192.168.120.6 配置网卡的IP地址
ifconfig eth0:0 10.0.0.101 netmask 255.255.255.0 up 为网卡配置别名
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE 修改网卡MAC地址的例子
[root@cs6 ~]# ifconfig eth1 down
[root@cs6 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:8C:6A:04
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8c:6a04/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15562 errors:0 dropped:0 overruns:0 frame:0
TX packets:7407 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20850219 (19.8 MiB) TX bytes:579268 (565.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:504 (504.0 b) TX bytes:504 (504.0 b)
在网卡重启或机器重启之后,用ifconfig命令配置的网卡信息就不存在了。要想将上述配置信息永远地存储在服务器里,需要修改网卡的配置文件。
网卡类型 网卡标识 对应的配置地址路径
第一个物理网卡 eth0 /etc/sysconfig/network-scripts/ifcfg-etho
第二个物理网卡 ethl /etc/sysconfig/network-scripts/ifcfg-eth1
第一个物理网卡上的别名IP eth0:0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
(3)route 显示网络路由信息
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 配置路由
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface(网络接口)
0.0.0.0 192.168.233.2 0.0.0.0 UG 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
网络路由:
- 网络路由是计算机网络的重要组成部分,主要服务于网络间的连接,进行路由的选择等活动
- 网络路由通过对信息进行过滤、转发等,把两个或更多的网络连接起来,从而在计算机间连接起有效的网络
- 通过选择合适的路由路线,以最快的速度,将信息从一个网络层输送到另外一个网络层
- 分类:有线网络路由、无线网络路由
路由器:就是个分线器。把一根单独的网线分成几个网线让更多的人同时使用网络。没有路由器你只能让一个人上网
(4)netstat查看端口信息
- netstat -tan 显示了网络连接信息(tcp链路)
- netstat -uan 显示网络连接信息(udp链路)
- netstat -s 显示网络数据包统计信息(按照协议划分 ip协议、tcp协议、udp协议、icmp协议)
netstat -a # 列出所有端口包括监听和未监听的
netstat -at # 列出所有 tcp 端口
netstat -au # 列出所有 udp 端口
netstat -l # 列出所有处于监听状态的端口
netstat -lt # 列出所有处于监听状态的tcp端口
netstat -lu # 列出所有处于监听状态的udp端口
netstat -s # 显示每个协议的统计信息
netstat -p # 显示PID和进程名称
netstat -tpln | grep ssh # 查找处于监听状况的 ssh的端口信息
lsof -i:22 # 列出谁在使用某个端口(查看网络端口连接情况,以22号端口为例)
5.5 查看磁盘信息
df -h #查看磁盘整体使用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
df -h /data #查看指定磁盘目录的使用情况
du -sh 文件名 #查看文件或目录大小
intellif@intellif:~$ df -h # -h:以人类可读的方式显示
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 5.0M 3.2G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 117G 86G 25G 78% /
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda2 976M 148M 761M 17% /boot
/dev/sda1 511M 6.7M 505M 2% /boot/efi
tmpfs 3.2G 0 3.2G 0% /run/user/1000
intellif@intellif:~$ du -sh update2.6.5_2.7.1.tgz # du -sh 文件名 用于查看文件大小
3.7G update2.6.5_2.7.1.tgz
磁盘瓶颈分析
iostat 报告显示2个信息:cpu统计信息、磁盘统计信息
intellif@intellif:~$ iostat
Linux 4.15.0-142-generic (intellif) 06/02/2021 _x86_64_ (12 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
5.18 0.00 2.87 0.14 0.00 91.81
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
loop0 0.00 0.00 0.00 8 0
sda 64.13 29.79 542.78 59133233 1077285725
dm-0 94.69 29.79 582.49 59115877 1156094896
第一行cpu资源信息
CPU指标:对于多处理器系统,CPU值是所有处理器之间的全局平均值。且以下指标加起来和为1
%user: 用户级别(应用程序)执行时,CPU利用率。
%nice: 有用户优先级的在用户,CPU利用率。
%system: 系统内核执行时,CPU利用率。
%iowait: 系统有未完成的磁盘I/O请求期间,CPU空闲(等待IO,不干正活)的时间百分比。
%steal: 超卖 管理程序为另一个虚拟处机提供服务所花费的时间百分比。
%idle: 显示CPU空闲时间百分比。
第二行磁盘资源信息
date #查看服务器时间
cal #查看日历信息
cal 2014 #显示2014年的日历表
date 081512422014.30 #设置日期和时间8月15日12时42分2014年30秒 设置时间是临时的
clock -w #永久保存当前时间 将时间修改保存到BIOS
5.6 软件包安装
rpm软件包
把源码封装在一个rpm包中,方便安装 。 rpm是redhat系列的常用的安装包
rpm fedora redhat及类似系统
rpm -ivh package_name.rpm # 安装一个rpm包
rpm -e package_name.rpm # 删除一个rpm包 就是卸载一个包
rpm -qa # 显示所有已经安装的rpm包
rpm -qa |grep httpd # 显示所有名称中包含httpd的rmp包
rpm --checking package.rpm # 确认一个rpm包的完整性
yum安装工具
把常用的rpm软件包上传到网站集中管理,只需要通过软件名称,便会根据软件名称自动匹配对应的软件包,一并下载和安装
有转门的人员维护,并会存在多个版本,通过yum安装非常方便,只要有包名就可以安装
yum install package_name # 安装一个rpm包
yum update package_name # 更新一个rpm包
yum remove packsage_name # 删除一个rpm包
yum list # 列出当前系统中所有安装的包
yum search package_name # 在rpm仓库中搜索软件包
deb软件包
deb包是debian、ubuntu以及类似系统常用的安装包
dpkg -i package.deb # 安装或更新一个deb包
dpkg -r package.deb # 从系统删除或卸载一个deb包
dpkg -l # 显示系统中所有已经安装的deb包
dpkg -l |grep httpd # 显示所有名称中包含httpd的deb包
apt安装工具
与yun工具相对应,包常用的deb包上传到包仓库集中管理,通过报名即可安装,主要用于刀边debian和ubuntu操作系统
apt-get install package_name # 安装或更新一个deb包
apt-get upgrade # 升级所有已经安装的deb包
apt-get remove package_name # 从系统删除一个deb包