Linux笔记
# Linux笔记
# 常用命令
# 防火墙
centos
# 启动防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld
# 查看防火墙状态
systemctl status firewalld
# 开启关闭
systemctl disable firewalld
# 开启启动
systemctl enable firewalld
### 配置防火墙端口
# 查看防火墙所有已开放端口
firewall-cmd --zone=public --list-ports
# 查看指定端口开放状态
firewall-cmd --zone=public --query-port=<端口>/tcp
# 开放一个端口
firewall-cmd --zone=public --add-port=<端口>/tcp --permanent
#--permanent永久生效,没有此参数重启后失效
# 移除一个已开放的防火墙端口
firewall-cmd --zone= public --remove-port=<端口>/tcp --permanent
# 重新载入
firewall-cmd --reload
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
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
ubuntu
# 安装防火墙
sudo apt install ufw
# 启动防火墙
sudo ufw enable
# 系统启动时自动开启
sudo ufw default deny
# 防火墙开放端口
sudo ufw allow | deny [service]
# 重启防火墙(刷新配置)
sudo ufw reload
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# Screen
使程序可以后台运行
screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。
通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
# 常用语法
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
- -A 将所有的视窗都调整为目前终端机的大小。
- -d<作业名称> 将指定的screen作业离线。
- -h<行数> 指定视窗的缓冲区行数。
- -m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
- -r<作业名称> 恢复离线的screen作业。
- -R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
- -s<shell> 指定建立新视窗时,所要执行的shell。
- -S<作业名称> 指定screen作业的名称。
- -v 显示版本信息。
- -x 恢复之前离线的screen作业。
- -ls(或--list) 显示目前所有的screen作业。
- -wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
# 创建一个后台实例
screen //创建 screen 终端
# 创建 screen 终端 并执行任务
screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令
# 重新进入离开的实例
screen -r <screen_id>
# 跳出当前会话(不关闭)
screen -d <screen_id>
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
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
# 压缩解压
*.tar
# 将指定多个文件压缩
tar -cf archive.tar file1.txt file2.txt file3.txt
# 将指定文件压缩
tar -cf archive.tar file.txt
# 将指定文件夹压缩
tar -cf archive.tar /path/to/folder
# 解压指定压缩包到指定目录
tar -xf archive.tar -C /path/to/extract
# 解压指定压缩包到当前目录
tar -xf archive.tar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
*.tar.gz
# 将指定多个文件压缩
tar -czf archive.tar.gz file1.txt file2.txt file3.txt
# 将指定文件压缩
tar -czf archive.tar.gz file.txt
# 将指定文件夹压缩
tar -czf archive.tar.gz /path/to/folder
# 解压指定压缩包到指定目录
tar -xzf archive.tar.gz -C /path/to/extract
# 解压指定压缩包到当前目录
tar -xzf archive.tar.gz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
*.zip
安装 zip 工具:
# CentOS / RHEL / Fedora
sudo yum install zip unzip
# Debian / Ubuntu
sudo apt install zip unzip
1
2
3
4
5
2
3
4
5
使用示例:
# 将指定多个文件压缩
zip archive.zip file1.txt file2.txt file3.txt
# 将指定文件压缩
zip archive.zip file.txt
# 将指定文件夹压缩(递归压缩)
zip -r archive.zip /path/to/folder
# 解压指定压缩包到指定目录
unzip archive.zip -d /path/to/extract
# 解压指定压缩包到当前目录
unzip archive.zip
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 疑难杂症
# Docker 容器无法访问
# 查看当前防火墙信息
systemctl status firewalld
# 提示如下
# COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker0 -j DROP' failed: iptables: Bad rule (does a matching rule exist in that chain?).
1
2
3
4
5
6
2
3
4
5
6
问题分析: docker默认会自动添加iptables rule
处理:
sudo vim /lib/systemd/system/docker.service
# 2。 添加 --iptables=false
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# 修改为 ExecStart=/usr/bin/dockerd -H fd:// --iptables=false --containerd=/run/containerd/containerd.sock
# 3.
sudo systemctl daemon-reload
# 4.
sudo systemctl restart docker
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 重置网络
# 1. 将虚拟机 /etc/sysconfig/network-scripts/[对应网卡] 的ONBOOT设置为yes,
# e.g: vi /etc/sysconfig/network-scripts/ifcfg-ens33 ,
# 2. network systemctl restart network
1
2
3
4
2
3
4
配置静态IP 弃用DHCP
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
IPADDR="192.168.128.129"
NETMASK="255.255.255.0"
GATEWAY="192.168.128.1"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="487402d3-3abc-4c76-bc76-736f1ea72a37"
DEVICE="ens33"
ONBOOT="yes"
DNS1="8.8.8.8"
DNS2="114.114.114.114"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Ubuntu Docker环境安装
1. 卸载老版docker(可忽略)
sudo apt-get remove docker docker-engine docker.io containerd runc
2.更新软件库
sudo apt update
sudo apt upgrade -y
3.安装docker所需依赖
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
4.添加docker GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
5.添加阿里云的docker仓库
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
6.安装docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
7.配置用户组
sudo usermod -aG docker $USER
8.设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
9.配置镜像依赖
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
9. 重启服务
sudo reboot
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
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
帮助我改善此页面 (opens new window)
上次更新: 2026/01/20, 13:53:16