常用Linux命令
# 1. 常用系统管理命令
# 进程与系统监控
# 查询进程(以查询 nginx 为例)
ps -ef | grep nginx
# 杀死指定进程
kill -9 <PID>
# 查看系统整体负载、CPU、内存使用情况(加强版 top)
# 若未安装:sudo apt install htop 或 yum install htop
htop
# 查看内存占用情况 (以 MB 为单位)
free -m
# 查看磁盘剩余空间
df -h
# 查看当前目录下各文件/目录占用空间大小
du -sh *
# 实时查看日志文件末尾(调试最常用)
tail -f /var/log/syslog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 文本处理
# grep: 过滤包含 ERROR 的行,并显示匹配行前后的各 2 行
grep -C 2 "ERROR" app.log
# awk: 提取特定列(例如提取 ps 结果中的 PID 列)
ps -ef | grep java | awk '{print $2}'
# sed: 直接在文件中替换文本(将 config.conf 里的 old 换成 new)
sed -i 's/old/new/g' config.conf
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 文件权限管理
# 修改权限:755 代表 拥有者(rwx) 组(rx) 其他人(rx)
chmod 755 filename
# 递归给文件夹下所有文件加执行权限
chmod -R +x /path/to/script/
# 修改文件所属用户和组
chown user:group filename
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 用户管理
# 创建新用户
sudo adduser newuser
# 将用户添加到 sudo 组 (Ubuntu)
sudo usermod -aG sudo newuser
# 删除用户及其家目录
sudo userdel -r olduser
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 网络诊断/防火墙
# 网络诊断
# 查看端口占用情况 (找出哪个程序占用了 8080)
netstat -tunlp | grep 8080
# 或者使用更现代的 ss
ss -tunlp | grep 8080
# 测试远程端口是否开放
telnet 192.168.1.1 80
# 或者使用 nc (Netcat)
nc -zv 192.168.1.1 80
# 追踪网络路由
traceroute google.com
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 防火墙 CentOS - firewalld
# 基础操作
systemctl start|stop|status|enable|disable firewalld
# 查看所有已开放端口
firewall-cmd --zone=public --list-ports
# 开放指定端口(--permanent 永久生效,需 reload)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
# 移除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 防火墙 Ubuntu - ufw
# 安装与启动
sudo apt install ufw
sudo ufw enable
sudo ufw default deny # 默认拒绝所有外部访问
# 开放/拒绝端口或服务
sudo ufw allow 80/tcp
sudo ufw deny 22
# 重启防火墙
sudo ufw reload
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 压缩解压
# *.tar / *.tar.gz
# 打包并压缩 tar.gz
tar -zcvf archive.tar.gz /path/to/folder
# 解压 tar.gz 到当前目录
tar -zxvf archive.tar.gz
# 解压到指定目录
tar -zxvf archive.tar.gz -C /path/to/extract
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# *.zip
# 安装 zip CentOS / RHEL / Fedora
sudo yum install zip unzip
# 安装 zip Debian / Ubuntu
sudo apt install zip unzip
# 递归压缩文件夹
zip -r archive.zip /path/to/folder
# 解压到指定目录
unzip archive.zip -d /path/to/extract
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 终端多路复用器
# Tmux
# 安装
sudo apt install tmux # Ubuntu
sudo yum install tmux # CentOS
# 常用操作
tmux new -s <名称> # 创建新会话
tmux ls # 列出所有会话
tmux a -t <名称> # 接入(Attach)会话
# 会话内快捷键 (先按 Ctrl+b)
Ctrl+b, d # 暂时跳出 (Detach)
Ctrl+b, " # 横向分屏
Ctrl+b, % # 纵向分屏
Ctrl+b, 方向键 # 切换分屏窗格
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 [-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
# 常见问题
# Docker 容器无法访问
问题分析:Docker 默认会自动添加 iptables 规则,可能与系统防火墙冲突。
# 1. 修改配置
sudo vim /lib/systemd/system/docker.service
# 2. 在 ExecStart 中添加 --iptables=false
# ExecStart=/usr/bin/dockerd --iptables=false ...
# 3. 重载并重启
sudo systemctl daemon-reload
sudo systemctl restart docker
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# Ubuntu Docker 环境快速安装
# 1. 卸载旧版并更新
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt update && sudo apt upgrade -y
# 2. 安装依赖与密钥
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
curl -fsSL [http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg](http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg) | sudo apt-key add -
# 3. 添加阿里仓库并安装
sudo add-apt-repository "deb [arch=amd64] [http://mirrors.aliyun.com/docker-ce/linux/ubuntu](http://mirrors.aliyun.com/docker-ce/linux/ubuntu) $(lsb_release -cs) stable"
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 4. 用户组与镜像加速
sudo usermod -aG docker $USER
sudo vim /etc/docker/daemon.json
# 内容: { "registry-mirrors": ["[https://docker.m.daocloud.io](https://docker.m.daocloud.io)"] }
# 5. 重启服务
sudo systemctl restart docker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# CentOS 7 停止维护后的 Yum 源失效
# 备份并替换源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理缓存并重新生成
yum clean all
yum makecache
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 重置网络
Centos7
- 修改网卡配置文件
找到对应的网卡文件(通常以 ifcfg- 开头),确保 ONBOOT 设置为 yes。
# 编辑网卡配置文件,例如 ens33
vi /etc/sysconfig/network-scripts/ifcfg-ens33
1
2
2
- 配置静态 IP(弃用 DHCP)
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 改为 static
IPADDR="192.168.128.129" # 自定义 IP 地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.128.1" # 默认网关
DNS1="8.8.8.8" # 主 DNS
DNS2="114.114.114.114" # 备 DNS
DEFROUTE="yes"
NAME="ens33" # 确保与文件名中的后缀一致
DEVICE="ens33" # 对应物理网卡名
ONBOOT="yes" # 必须为 yes,确保开机自启
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
- 重启网络服务
# 彻底重置:禁用 NetworkManager 并重启 network
systemctl stop NetworkManager # 停止网络管理器
systemctl disable NetworkManager # 禁止开机自启
systemctl restart network # 重启传统网络服务
1
2
3
4
2
3
4
ubuntu
- 配置静态 IP 地址
# 1. 查看网卡名称 (例如 eth0 或 enp0s3)
ip addr
# 2. 编辑配置文件
sudo vi /etc/netplan/01-netcfg.yaml
1
2
3
4
5
2
3
4
5
YAML 配置示例:
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # 网卡名称
dhcp4: no # 关闭 DHCP
addresses:
- 192.168.1.100/24 # 设置静态 IP 及掩码
routes:
- to: default
via: 192.168.1.1 # 设置网关
nameservers:
addresses: [8.8.8.8, 114.114.114.114] # DNS
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- 应用配置与重置
# 测试配置是否有语法错误(会有 120 秒确认时间,防止把自己锁在外面)
sudo netplan try
# 直接应用配置
sudo netplan apply
1
2
3
4
5
2
3
4
5
常用网络重置技巧
# 针对使用 DHCP 的环境
sudo dhclient -r # 释放当前 IP
sudo dhclient # 重新获取 IP
# 强制重启网卡 (以 enp0s3 为例)
sudo ip link set enp0s3 down
sudo ip link set enp0s3 up
1
2
3
4
5
6
7
2
3
4
5
6
7
帮助我改善此页面 (opens new window)
上次更新: 2026/03/02, 03:48:23