0%

Linux常用

[TOC]

free

用于显示系统内存的使用情况

  • 物理内存Mem
  • 交换内存Swap
  • 内核缓冲区内存(buffer/cache)
1
free -m	#以MB为单位显示输出内容

img

Mem:内存使用信息

Swap:交换空间使用信息


  • total:系统总的物理内存

  • used:系统已使用的物理内存(包含共享内存)

  • free:系统剩余的物理内存

  • shared:被共享使用的内存

  • buff / cache:缓存/缓冲使用的内存

  • available:还可为新进程分配的物理内存

    一般比未使用内存 free 大一些,因为还包括可回收的缓存,但正在被使用的缓存不可被回收,所以也小于 free + buff/cache

1
2
3
total = used + free + buff/cache
buff/cache = buffers + cache
available = free + buff/cache - 不可释放的部分

buff / cache

体系结构分层结构的设计思想 :计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决

硬件由于制作工艺上的不同,不同硬件读写速率有显著差异。

所以内存作为高速的CPU与低速磁盘间的中间缓存层,让中间层能够抹平双方的读写速率差异

1
2
3
man free
# buffers Memory used by kernel buffers (Buffers in /proc/meminfo)
# cached Memory used by the page cache and slabs (Cached and SReclaimable in /proc/meminfo)
  • buffers 是内核缓存区用到的内存,对应的是 /proc/meminfo 中的buffers 值

  • Cache 是内核页缓存和 Slab 用到的内存,对应 /proc/meminfo 中的 Cached与SRecalimable 的和

    /proc/meminfo 是Linux内核提供的一种特殊文件系统,是用户与内核交互的接口,用户可以从 /proc 中查询内核的运行状态和配置,查询进程的运行状态、统计数据等,也可以通过 /proc 修改内核配置

    free 是通过读取 /proc/meminfo 得到内存的使用情况。

1
man proc# 获取proc文件系统的文档
  • Buffers 是对磁盘块的临时存储,作为 从磁盘的数据缓存、将数据写入磁盘的缓存,通常不会特别大,内核将分散的写集中起来,统一优化磁盘的写入;将多次小的写合并成单次大的写
  • Cached 是从磁盘对文件的页缓存,作为 从文件读取数据的页缓存、将数据写入文件的页缓存 。下次访问这些文件数据时,直接从内存中获取,不需要再次访问磁盘
  • SReclaimable 是 Slab 的一部分。Slab包括两部分:SReclaimable记录可被回收的部分;SUnreclaim记录不可被回收的部分

防火墙

>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 安装 firewalld
sudo apt install firewalld

# 启动防火墙
systemctl start firewalld.service

# 禁止开机自动启动
systemctl disable firewalld.service

# 允许开机自动启动
systemctl enable firewalld.service

# 查看防火墙状态,是否正在运行
systemctl status firewalld.service
firewall-cmd --state

## 关闭防火墙
# 临时停止防火墙:
systemctl stop firewalld.service
# 永久关闭防火墙:
systemctl disable firewalld.service

# 开放固定端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
--zone 作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

# 查看所有开放的端口号
firewall-cmd --list-ports

# 查看所有端口号
netstat -ntlp #此命令如果无法运行请先安装:sudo apt-get install net-tools -y

# 查看指定端口是否被占用
lsof -i tcp:6666 #查看所有6666端口使用情况
netstat -ntulp |grep 6666 #查看所有6666端口使用情况,此命令也可以查出占用端口的进程

## 查看&关闭占用进程
# 查看进程详细信息:
ps 11111 #11111为进程的PID
# 杀掉进程:
kill -9 11111
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 安装ufw
sudo apt-get update
sudo apt install ufw

# 启动防火墙
sudo ufw enable

# 禁止开机自动启动
sudo ufw disable

# 允许开机自动启动
sudo ufw enable

# 查看防火墙状态,是否正在运行
sudo ufw status verbose

# 关闭防火墙
sudo ufw disable

# 重置防火墙配置
sudo ufw reset

#### 开放固定端口
# 放行tcp或者udp端口:
sudo ufw allow 端口号/tcp
# 放行tcp与udp端口:
sudo ufw allow 端口号
# 删除指定端口:
sudo ufw delete allow 端口号

# 查看防火墙现有规则
sudo ufw status #查看
sudo ufw show added #查看刚添加的规则

# 查看所有端口号
netstat -ntlp #此命令如果无法运行请先安装:sudo apt-get install net-tools -y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 安装iptables
apt-get install iptables-persistent

# 启动防火墙
sudo service iptables start

# 禁止开机自动启动
sudo service iptables stop

# 允许开机自动启动
sudo service iptables save

# 查看防火墙状态,是否正在运行
sudo service iptables status

# 关闭防火墙
sudo service iptables stop

# 开放固定端口
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT

# 查看防火墙现有规则
sudo iptables -L -n -v #查看

# 查看所有端口号
netstat -ntlp #此命令如果无法运行请先安装:sudo apt-get install net-tools -y
-------------本文结束-------------