Update from Sync Service
This commit is contained in:
298
Lunix/Linux系统管理指南.md
Executable file
298
Lunix/Linux系统管理指南.md
Executable file
@@ -0,0 +1,298 @@
|
|||||||
|
---
|
||||||
|
title: Linux 系统管理指南
|
||||||
|
tags:
|
||||||
|
- Linux
|
||||||
|
- Shell
|
||||||
|
- Bash
|
||||||
|
- 系统管理
|
||||||
|
- Ubuntu
|
||||||
|
created: 2026-04-21
|
||||||
|
---
|
||||||
|
|
||||||
|
# Linux 系统管理指南
|
||||||
|
|
||||||
|
## 基础命令
|
||||||
|
|
||||||
|
### 文件与目录
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 目录操作
|
||||||
|
ls -la # 列出所有文件(含隐藏)
|
||||||
|
cd /path # 切换目录
|
||||||
|
pwd # 显示当前目录
|
||||||
|
mkdir -p a/b/c # 递归创建目录
|
||||||
|
rm -rf directory # 强制删除目录
|
||||||
|
|
||||||
|
# 文件操作
|
||||||
|
cp file1 file2 # 复制
|
||||||
|
mv file1 file2 # 移动/重命名
|
||||||
|
rm file # 删除
|
||||||
|
touch file # 创建空文件
|
||||||
|
|
||||||
|
# 查看文件
|
||||||
|
cat file # 全文显示
|
||||||
|
head -n 20 file # 前20行
|
||||||
|
tail -n 50 file # 后50行
|
||||||
|
tail -f log # 实时跟踪日志
|
||||||
|
less file # 分页查看
|
||||||
|
|
||||||
|
# 搜索
|
||||||
|
grep "pattern" file
|
||||||
|
find / -name "*.log"
|
||||||
|
locate filename
|
||||||
|
```
|
||||||
|
|
||||||
|
### 用户与权限
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 用户管理
|
||||||
|
sudo useradd -m -s /bin/bash username
|
||||||
|
sudo passwd username
|
||||||
|
sudo usermod -aG sudo username
|
||||||
|
sudo deluser username
|
||||||
|
|
||||||
|
# 权限
|
||||||
|
chmod 755 file # 数字形式
|
||||||
|
chmod +x script.sh # 添加执行权限
|
||||||
|
chown user:group file # 修改所有者
|
||||||
|
|
||||||
|
# 权限数字
|
||||||
|
# 4 = r, 2 = w, 1 = x
|
||||||
|
# 755 = rwxr-xr-x (所有者全部, 其他读+执行)
|
||||||
|
# 644 = rw-r--r--
|
||||||
|
# 600 = rw-------
|
||||||
|
```
|
||||||
|
|
||||||
|
### 进程管理
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 查看进程
|
||||||
|
ps aux | grep nginx
|
||||||
|
top # 实时监控(退出按 q)
|
||||||
|
htop # 更友好的 top(需安装)
|
||||||
|
|
||||||
|
# 管理进程
|
||||||
|
kill PID # 温柔终止
|
||||||
|
kill -9 PID # 强制终止
|
||||||
|
killall nginx # 按名字终止
|
||||||
|
|
||||||
|
# 后台运行
|
||||||
|
nohup command & # 忽略挂断信号后台运行
|
||||||
|
command & # 后台运行
|
||||||
|
jobs # 查看后台任务
|
||||||
|
fg %1 # 调到前台
|
||||||
|
```
|
||||||
|
|
||||||
|
## 软件安装
|
||||||
|
|
||||||
|
### APT(Debian/Ubuntu)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 更新源
|
||||||
|
sudo apt update
|
||||||
|
sudo apt upgrade
|
||||||
|
|
||||||
|
# 安装软件
|
||||||
|
sudo apt install nginx
|
||||||
|
sudo apt install docker.io
|
||||||
|
|
||||||
|
# 搜索
|
||||||
|
apt search nginx
|
||||||
|
|
||||||
|
# 卸载
|
||||||
|
sudo apt remove nginx
|
||||||
|
sudo apt autoremove
|
||||||
|
```
|
||||||
|
|
||||||
|
### YUM/DNF(CentOS/RHEL)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install nginx
|
||||||
|
sudo dnf update
|
||||||
|
sudo dnf remove nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
### 系统服务(systemd)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 管理服务
|
||||||
|
sudo systemctl start nginx
|
||||||
|
sudo systemctl stop nginx
|
||||||
|
sudo systemctl restart nginx
|
||||||
|
sudo systemctl status nginx
|
||||||
|
sudo systemctl enable nginx # 开机自启
|
||||||
|
sudo systemctl disable nginx # 禁用开机自启
|
||||||
|
|
||||||
|
# 查看服务
|
||||||
|
systemctl list-units --type=service --state=running
|
||||||
|
```
|
||||||
|
|
||||||
|
## 网络命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 查看网络
|
||||||
|
ip addr show
|
||||||
|
ip link set eth0 up/down
|
||||||
|
ss -tuln # 查看监听端口
|
||||||
|
netstat -tuln
|
||||||
|
|
||||||
|
# 网络测试
|
||||||
|
ping -c 4 google.com
|
||||||
|
curl -I https://example.com
|
||||||
|
wget https://example.com/file
|
||||||
|
|
||||||
|
# 端口转发
|
||||||
|
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
|
||||||
|
|
||||||
|
# 防火墙
|
||||||
|
sudo ufw allow 22 # 开放SSH
|
||||||
|
sudo ufw allow 80/tcp # 开放HTTP
|
||||||
|
sudo ufw allow 443/tcp # 开放HTTPS
|
||||||
|
sudo ufw enable
|
||||||
|
sudo ufw status
|
||||||
|
```
|
||||||
|
|
||||||
|
## 磁盘管理
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 查看磁盘使用
|
||||||
|
df -h
|
||||||
|
du -sh /var/log/*
|
||||||
|
|
||||||
|
# 挂载
|
||||||
|
sudo mount /dev/sdb1 /mnt/usb
|
||||||
|
sudo umount /mnt/usb
|
||||||
|
|
||||||
|
# 分区
|
||||||
|
sudo fdisk /dev/sdb
|
||||||
|
# 或使用 parted
|
||||||
|
|
||||||
|
# 创建文件系统
|
||||||
|
sudo mkfs.ext4 /dev/sdb1
|
||||||
|
sudo mkfs.xfs /dev/sdb1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Shell 脚本
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 变量
|
||||||
|
NAME="World"
|
||||||
|
echo "Hello, $NAME!"
|
||||||
|
echo "当前目录: $(pwd)"
|
||||||
|
|
||||||
|
# 条件
|
||||||
|
if [ -f "file.txt" ]; then
|
||||||
|
echo "文件存在"
|
||||||
|
elif [ $age -ge 18 ]; then
|
||||||
|
echo "成年"
|
||||||
|
else
|
||||||
|
echo "未成年"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 循环
|
||||||
|
for file in *.txt; do
|
||||||
|
echo "处理: $file"
|
||||||
|
done
|
||||||
|
|
||||||
|
# 函数
|
||||||
|
function greet() {
|
||||||
|
echo "Hello, $1!"
|
||||||
|
}
|
||||||
|
greet "张三"
|
||||||
|
|
||||||
|
# 常用判断
|
||||||
|
# -f file 文件存在
|
||||||
|
# -d dir 目录存在
|
||||||
|
# -z string 字符串为空
|
||||||
|
# -n string 字符串非空
|
||||||
|
# -eq, -ne 数字相等/不等
|
||||||
|
# -lt, -gt 数字小于/大于
|
||||||
|
|
||||||
|
# 读取输入
|
||||||
|
read -p "请输入名称: " name
|
||||||
|
echo "你输入了: $name"
|
||||||
|
|
||||||
|
# 函数返回状态
|
||||||
|
function check() {
|
||||||
|
if [ $1 -gt 10 ]; then
|
||||||
|
return 0 # 成功
|
||||||
|
else
|
||||||
|
return 1 # 失败
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 日志查看
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 系统日志
|
||||||
|
journalctl -u nginx # 查看nginx服务日志
|
||||||
|
journalctl -f # 实时跟踪
|
||||||
|
journalctl --since "1 hour ago"
|
||||||
|
|
||||||
|
# 应用日志
|
||||||
|
tail -f /var/log/nginx/access.log
|
||||||
|
tail -f /var/log/syslog
|
||||||
|
|
||||||
|
# 历史命令
|
||||||
|
history | grep apt
|
||||||
|
```
|
||||||
|
|
||||||
|
## 常用配置
|
||||||
|
|
||||||
|
### SSH
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 生成密钥
|
||||||
|
ssh-keygen -t ed25519 -C "your_email@example.com"
|
||||||
|
|
||||||
|
# 复制公钥到服务器
|
||||||
|
ssh-copy-id user@hostname
|
||||||
|
|
||||||
|
# SSH 配置 (~/.ssh/config)
|
||||||
|
Host myserver
|
||||||
|
HostName 192.168.1.100
|
||||||
|
User ubuntu
|
||||||
|
Port 22
|
||||||
|
IdentityFile ~/.ssh/id_ed25519
|
||||||
|
```
|
||||||
|
|
||||||
|
### Crontab 定时任务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 编辑 crontab
|
||||||
|
crontab -e
|
||||||
|
|
||||||
|
# 格式: 分 时 日 月 周 命令
|
||||||
|
# 示例:
|
||||||
|
# 0 9 * * 1-5 # 每周一到周五9点
|
||||||
|
# */15 * * * * # 每15分钟
|
||||||
|
# 0 2 * * * # 每天凌晨2点
|
||||||
|
# @reboot # 开机运行
|
||||||
|
```
|
||||||
|
|
||||||
|
## Docker(Linux)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 安装 Docker
|
||||||
|
curl -fsSL https://get.docker.com | sudo sh
|
||||||
|
sudo usermod -aG docker $USER
|
||||||
|
|
||||||
|
# Docker Compose
|
||||||
|
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
|
||||||
|
-o /usr/local/bin/docker-compose
|
||||||
|
sudo chmod +x /usr/local/bin/docker-compose
|
||||||
|
```
|
||||||
|
|
||||||
|
## 故障排查
|
||||||
|
|
||||||
|
| 问题 | 命令 |
|
||||||
|
|------|------|
|
||||||
|
| 端口占用 | `lsof -i :8080` 或 `ss -tulpn \| grep 8080` |
|
||||||
|
| 磁盘满 | `df -h` + `du -sh /*` |
|
||||||
|
| 内存满 | `free -h` + `top` |
|
||||||
|
| CPU 高 | `top` 或 `htop` |
|
||||||
|
| 服务起不来 | `systemctl status xxx` + `journalctl -u xxx` |
|
||||||
|
| 网络不通 | `ping 8.8.8.8` + `curl -I url` |
|
||||||
Reference in New Issue
Block a user