Linux 新手到日常运维操作指南

1. 文档目标

这份文档面向零基础,目标是让你可以:

  1. 理解 Linux 基本概念和目录结构。
  2. 熟练使用常见命令完成日常操作。
  3. 独立进行文件、权限、进程、网络排查。
  4. 会安装软件、管理服务、查看日志。
  5. 能写简单 Shell 脚本自动化重复工作。

2. Linux 是什么

Linux 是一种操作系统,常用于:

  1. 服务器(网站、数据库、API 服务)。
  2. 开发环境(后端、DevOps、容器)。
  3. 云计算和大数据平台。
  4. 嵌入式设备和物联网设备。

你需要先记住:

  1. Linux 对大小写敏感。
  2. 绝大多数操作可通过命令行完成。
  3. "一切皆文件"是 Linux 的核心思想之一。

3. 目录结构(先看懂)

常见目录:

  1. /:根目录。
  2. /home:普通用户目录。
  3. /root:root 用户家目录。
  4. /etc:系统配置文件。
  5. /var:日志、缓存、变化数据。
  6. /usr:系统应用和库。
  7. /bin/sbin:基础命令。
  8. /tmp:临时文件。
  9. /opt:第三方软件目录。
  10. /dev:设备文件。
  11. /proc:内核和进程信息。

4. 终端基础操作(第一天必会)

4.1 查看当前位置和内容

bash 复制代码
pwd
ls
ls -la

4.2 切换目录

bash 复制代码
cd /etc
cd ~
cd ..
cd -

说明:

  1. ~ 代表当前用户家目录。
  2. .. 代表上一级目录。
  3. - 代表上一次所在目录。

4.3 创建与删除

bash 复制代码
mkdir demo
mkdir -p demo/a/b/c
touch demo/readme.txt
rm demo/readme.txt
rmdir demo/a/b/c

5. 文件与目录操作(高频)

5.1 复制、移动、重命名

bash 复制代码
cp a.txt b.txt
cp -r src_dir dst_dir
mv old.txt new.txt
mv file.txt /tmp/

5.2 查看文件内容

bash 复制代码
cat file.txt
less file.txt
head -n 20 file.txt
tail -n 20 file.txt
tail -f app.log

5.3 查找文件

bash 复制代码
find /etc -name "*.conf"
find . -type f -size +10M

5.4 查找文本

bash 复制代码
grep "error" app.log
grep -R "db_host" .
grep -n "timeout" config.yml

6. 编辑文件(vim/nano 入门)

6.1 使用 nano(新手友好)

bash 复制代码
nano test.txt

基本步骤:

  1. 打开后直接编辑。
  2. Ctrl+O 保存。
  3. Ctrl+X 退出。

6.2 使用 vim(常用)

bash 复制代码
vim test.txt

基本步骤:

  1. i 进入插入模式。
  2. 编辑内容。
  3. Esc 退出插入模式。
  4. 输入 :wq 保存并退出。
  5. 输入 :q! 不保存退出。

7. 权限与用户(必须掌握)

7.1 查看权限

bash 复制代码
ls -l

例如:
-rw-r--r-- 1 user user 1234 file.txt

含义:

  1. 第一位 - 是文件类型(d 是目录)。
  2. 后面 9 位是权限:r 读、w 写、x 执行。
  3. 分三组:所有者、用户组、其他人。

7.2 修改权限

bash 复制代码
chmod 644 file.txt
chmod 755 script.sh
chmod +x run.sh

常用数字:

  1. 7 = rwx
  2. 6 = rw-
  3. 5 = r-x
  4. 4 = r--

7.3 修改属主属组

bash 复制代码
chown user:user file.txt
chown -R user:user /opt/app
chgrp devops file.txt

7.4 sudo 与 root

bash 复制代码
sudo command
sudo -i
whoami

注意:

  1. 优先用 sudo 执行单条命令。
  2. 少长期停留在 root 下操作。

8. 压缩与解压

8.1 tar.gz

bash 复制代码
tar -czvf backup.tar.gz /opt/app
tar -xzvf backup.tar.gz
tar -xzvf backup.tar.gz -C /tmp

8.2 zip/unzip

bash 复制代码
zip -r project.zip project/
unzip project.zip -d /tmp/project

9. 软件安装与包管理

不同发行版命令不同。

9.1 Debian/Ubuntu(apt)

bash 复制代码
sudo apt update
sudo apt install -y curl git
sudo apt remove -y nginx
sudo apt upgrade -y

9.2 CentOS/RHEL(yum/dnf)

bash 复制代码
sudo yum install -y curl git
sudo yum remove -y nginx
sudo dnf install -y htop

10. 进程管理

10.1 查看进程

bash 复制代码
ps -ef
ps -ef | grep nginx
top

10.2 结束进程

bash 复制代码
kill 12345
kill -9 12345
pkill nginx

说明:

  1. 先用 kill(正常终止)。
  2. 不响应再用 kill -9(强制终止)。

11. 服务管理(systemd)

11.1 常用操作

bash 复制代码
sudo systemctl status nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl enable nginx
sudo systemctl disable nginx

11.2 查看启动日志

bash 复制代码
journalctl -u nginx -n 100 --no-pager
journalctl -u nginx -f

12. 磁盘与内存

12.1 查看磁盘空间

bash 复制代码
df -h
du -sh /var/log
du -h --max-depth=1 /opt

12.2 查看内存与负载

bash 复制代码
free -h
uptime
vmstat 1 5

13. 网络常用排查

13.1 查看网络信息

bash 复制代码
ip a
ip route
hostname -I

13.2 连通性测试

bash 复制代码
ping -c 4 8.8.8.8
curl -I https://example.com

13.3 端口检查

bash 复制代码
ss -tulnp
ss -tulnp | grep 80

13.4 DNS 问题排查

bash 复制代码
nslookup example.com
dig example.com

14. 日志查看与排错流程

标准排查步骤:

  1. 先看服务状态:systemctl status 服务名
  2. 再看实时日志:journalctl -u 服务名 -f
  3. 查应用日志:tail -f /var/log/xxx.log
  4. 查端口占用:ss -tulnp
  5. 查资源瓶颈:topfree -hdf -h

15. 环境变量与配置

15.1 临时变量

bash 复制代码
export APP_ENV=dev
echo $APP_ENV

15.2 永久变量

写入 ~/.bashrc

bash 复制代码
echo 'export APP_ENV=dev' >> ~/.bashrc
source ~/.bashrc

16. Shell 脚本入门(自动化基础)

16.1 第一个脚本

新建 backup.sh

bash 复制代码
#!/usr/bin/env bash
set -euo pipefail

DATE=$(date +%F_%H-%M-%S)
SRC_DIR="/opt/app"
DST_DIR="/tmp/backups"

mkdir -p "$DST_DIR"
tar -czf "$DST_DIR/app_$DATE.tar.gz" "$SRC_DIR"
echo "backup done: $DST_DIR/app_$DATE.tar.gz"

执行:

bash 复制代码
chmod +x backup.sh
./backup.sh

16.2 定时任务(crontab)

编辑任务:

bash 复制代码
crontab -e

每天凌晨 2 点执行:

cron 复制代码
0 2 * * * /opt/scripts/backup.sh >> /var/log/backup.log 2>&1

查看任务:

bash 复制代码
crontab -l

17. 常规运维操作清单(可直接照做)

17.1 部署前

  1. 拉代码或同步发布包。
  2. 备份当前配置和数据。
  3. 检查磁盘空间。
  4. 检查依赖服务状态(DB、Redis、MQ)。

17.2 部署中

  1. 停服务(按需)。
  2. 替换文件或更新版本。
  3. 重启服务。
  4. 验证端口、日志、健康检查。

17.3 部署后

  1. 核查核心功能。
  2. 观察 15-30 分钟日志。
  3. 记录变更时间、版本、执行人。

18. 新手高频错误与避免方式

  1. 在错误目录执行删除命令。

    避免:先 pwd,再执行删除。

  2. 误用 rm -rf

    避免:先 ls 预览目标,再删除。

  3. 不看日志直接重启。

    避免:先定位原因,再操作。

  4. 权限乱改 chmod 777

    避免:最小权限原则,按需授权。

  5. 直接在生产环境调试。

    避免:先在测试环境复现验证。


19. Linux 命令速查(一页)

bash 复制代码
# 目录与文件
pwd
ls -la
cd /path
cp -r a b
mv a b
rm -rf dir

# 查看内容
cat file
less file
tail -f app.log

# 查找
find . -name "*.log"
grep -R "error" .

# 权限
chmod 755 run.sh
chown -R user:user /opt/app

# 进程与服务
ps -ef | grep app
top
systemctl status nginx
journalctl -u nginx -f

# 网络
ip a
ss -tulnp
curl -I http://localhost:8080

# 资源
df -h
du -sh /var/log
free -h

相关推荐
xingfujie1 小时前
第3章 安装 kubeadm/kubelet/kubectl
linux·云原生·容器·kubernetes·kubelet
测试员周周1 小时前
【Appium 系列】第09节-数据驱动测试 — YAML 数据 + parametrize
服务器·数据库·人工智能·python·测试工具·语言模型·appium
不能隔夜的咖喱1 小时前
黑马ai大模型笔记(自用,比较粗糙)
linux·windows·python
暴力求解1 小时前
Linux--网络-->UDP_socket
linux·网络·网络协议·udp·操作系统
无限进步_1 小时前
Linux指令实战:40+核心命令的用法与思维模型
linux·服务器·前端
ZZZKKKRTSAE1 小时前
一篇猛攻zabbix
linux·运维·zabbix·redhat·rhel9
想唱rap2 小时前
NAT、内网穿透、代理服务
java·linux·网络·网络协议·udp·智能路由器
环流_2 小时前
nacos环境隔离
java·服务器·前端
取谖慕12.2 小时前
面试运维岗位所遇到的问题
运维·面试·职场和发展