Skip to content

Linux 基础常用命令与生存指南 ​

目标:能够独立登录 Linux 服务器,并完成基本操作、资源排查与应用部署前的环境准备。


0. 系统初始化与安全 (发行版适配) ​

拿到一台全新的服务器后,首要任务是配置国内镜像源以加速下载,确保系统最新、时间准确且防火墙已开启。

0.1 切换 Aliyun 镜像源 (国内加速) ​

核心价值:国内服务器若使用默认源,执行 apt/yum update 会极慢甚至连接超时。切换到阿里云镜像源不仅能提升下载速度,还能确保国内环境下的安全更新 (Security Updates) 能够稳定下载。

  • [Ubuntu/Debian 系]:

    bash
    # 1. 备份现有源
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak_$(date +%F)
    # 2. 替换为阿里云镜像 (以 Ubuntu 22.04/20.04 为例)
    sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
    sudo sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
    # 3. 更新索引
    sudo apt update
  • [CentOS/RHEL 系]:

    bash
    # 1. 备份现有 repo
    sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    # 2. 下载阿里云 repo (CentOS 7 示例)
    sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    # 3. 清理并生成缓存
    sudo yum clean all && sudo yum makecache

    注意:CentOS 8 及以上版本已停止维护,建议使用 Rocky Linux 或 AlmaLinux,其源配置方式略有不同。

0.2 一键初始化与必备工具安装 ​

建议在切换镜像源后立即执行,确保系统环境齐备。

  • [Ubuntu] 极简初始化:

    bash
    sudo apt update && sudo apt upgrade -y && \
    sudo apt install -y curl wget git vim htop unzip ufw
  • [CentOS] 极简初始化:

    bash
    sudo yum update -y && \
    sudo yum install -y curl wget git vim htop unzip firewalld

0.3 设置时区 ( [Universal/通用] ) ​

此操作在所有主流发行版中通用:

bash
sudo timedatectl set-timezone Asia/Shanghai  # 设置为中国上海时间
date                                         # 验证时间,应包含 CST

0.4 防火墙安全设置 ​

⚠️ 注意:操作防火墙前,务必先开放 SSH 端口 (22),否则会失去远程连接!

  • [Ubuntu (UFW)]:

    bash
    sudo ufw allow 22/tcp      # 允许 SSH
    sudo ufw allow 80,443/tcp   # 允许 Web 端口
    sudo ufw enable            # 启用防火墙 (输入 y 确认)
  • [CentOS (Firewalld)]:

    bash
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --permanent --add-port=80/tcp
    sudo firewall-cmd --permanent --add-port=443/tcp
    sudo firewall-cmd --reload   # 重载配置生效

1. 文件与目录管理 ​

Linux 文件系统采用单根树状结构(FHS 规范),理解核心目录作用是基础。

1.1 核心目录结构 ​

  • /etc:系统及应用配置文件存放地。
  • /var/log:核心日志文件存放地。
  • /home:普通用户的家目录。
  • /root:超级管理员的家目录。
  • /data (非标准):建议用于存放业务数据与应用代码。

1.2 常用操作命令 ​

bash
ls -lh          # 列出详情 (-l: 详细列表, -h: 人类可读)
ls -al          # 列出所有文件,包含以 . 开头的隐藏文件 (-a: all)
cd /path/to     # 进入目录 dir
cd              # 直接输入 cd 回到当前用户的 home 目录
pwd             # 显示当前工作目录的绝对路径
mkdir dir       # 创建目录 dir
mkdir -p a/b/c  # 递归创建目录 (-p: 路径不存在则一并创建)
cp file1 file2  # 将 file1 复制到 file2
cp -r dir1 dir2 # 递归复制目录 (-r: recursive)
mv src dest     # 移动或重命名文件/目录
ln -s src link  # 创建软连接 (-s: symbolic)
touch file      # 创建一个名为 file 的空文件

删除操作 (rm) 详解 ​

bash
rm file         # 普通删除文件
rm -r dir       # 递归删除目录及其内容 (-r: 递归)
rm -f file      # 强制删除文件,不提示确认 (-f: 强制)
rm -rf dir      # 强制删除目录及其所有内容 (最常用也最危险!)

1.3 查找与查看 ​

bash
man command      # 查看命令的说明手册 (Manual)
find / -name "f" # 按名称搜索
cat file.log     # 查看小文件内容
more file.log    # 逐页查看内容 (空格翻页,Enter 下一行)
less file.log    # 增强版分页查看 (支持上下滚动和搜索)
tail -f file.log # 实时追踪文件末尾
grep pattern f   # 在文件中搜索匹配的内容

1.4 文件下载与解压 ​

bash
wget http://url          # 下载文件
curl -O http://url       # 下载并保存为远程文件名
tar -zxvf file.tar.gz    # 解压 Gzip 压缩的 tar 包 (-z: gzip)
tar -jxvf file.tar.bz2   # 解压 Bzip2 压缩的 tar 包 (-j: bzip2)
tar -zcvf test.tar.gz .  # 压缩当前目录为 tar.gz
unzip file.zip           # 解压 zip 文件

2. 用户与权限管理 ​

Linux 是多用户系统,坚持最小权限原则是保障服务器安全的核心。

2.1 权限基础详解 ​

  • 权限位 (rwx):
    • r (Read, 4):读取权限。
    • w (Write, 2):写入权限。
    • x (Execute, 1):执行权限。
  • 三组身份:
    • Owner (u):文件所有者。
    • Group (g):所属用户组。
    • Others (o):其他所有人。

理解 755 权限 (常用) ​

755 是 Web 应用中最常见的权限配置(如目录权限):

  • 7 (4+2+1):所有者拥有 读+写+执行 权限。
  • 5 (4+0+1):所属组拥有 读+执行 权限(不能写)。
  • 5 (4+0+1):其他人拥有 读+执行 权限(不能写)。
  • 结论:755 允许所有人进入目录并读取文件,但只有所有者可以修改。如果是纯文件,通常设为 644 (所有者可读写,其他人只读)。

2.2 核心操作命令 ​

bash
id user             # 查看用户的 UID/GID 及所属组信息
whoami              # 显示当前登录的用户名
passwd              # 修改当前用户密码
chmod 755 dir       # 更改权限 (数字法)
chmod +x script.sh  # 增加执行权限 (+x: 快捷方式)
chown -R user:group dir # 递归更改所有者 (-R: recursive)
sudo -u www command # 以指定用户运行命令 (-u: user)
  • 原则:应用运行应分配独立非 root 用户,禁止直接以 root 身份运行对外 Web 服务。

3. 进程与系统资源排障 ​

当应用“访问慢”或“连不上”时,首先检查系统负载。

3.1 进程与内存管理 ​

bash
ps -ef | grep node    # 查看特定进程的详细信息
top                   # 实时监控系统资源与进程
htop                  # 交互式监控 (更加直观,支持鼠标)
free -h               # 查看内存使用情况 (-h: 人类可读)
vmstat 1              # 每隔1秒输出一次系统资源统计 (CPU/内存/IO)
kill pid              # 杀掉指定 ID 的进程
kill -9 <pid>         # 强制结束进程 (慎用)
killall proc          # 杀掉所有名为 proc 的进程

3.2 网络与端口 ​

bash
ping host             # 测试与目标主机的网络连通性
ss -ntlp              # 查看本地监听的端口 (-n: 数字, -t: tcp, -l: listen, -p: pid)
lsof -i :8080         # 查看占用 8080 端口的进程
curl -I localhost     # 查看 HTTP 响应头

4. 磁盘空间管理 ​

磁盘占满会导致数据库崩溃或日志无法写入。

4.1 监控与清理 ​

bash
df -h                 # 查看磁盘分区剩余容量
du -sh * | sort -hr   # 查看当前目录下各子目录大小并排序
find . -type f -size +100M  # 查找当前目录下大于 100M 的大文件
lsblk                 # 查看磁盘挂载点与分区结构
  • inode 耗尽:如果磁盘有空间但无法创建文件,需检查 df -i 确认索引节点是否耗尽。
  • 清理思路:清理 /var/log 旧日志、/tmp 临时文件,或使用 docker image prune 释放容器空间。

5. 系统信息与运维效率 (新增) ​

5.1 系统状态查看 ​

bash
uname -a              # 查看内核版本与系统架构
cat /etc/os-release   # 查看发行版详细信息 (Ubuntu/CentOS 版本)
uptime                # 查看系统运行时间及负载情况
date                  # 显示当前系统时间 (排查日志时间差)
journalctl -u nginx   # 查看 systemd 托管服务的日志 (-u: unit)
journalctl -xe        # 查看系统最近的错误日志 (-x: 解释, -e: 跳到末尾)

5.2 效率小技巧 ​

  • Tab 键补全:输入命令或路径的前几个字母,按 Tab 自动补全。
  • 历史记录:使用 history 查看历史命令,!数字 可以快速执行该行命令。
  • 命令别名:编辑 ~/.bashrc 添加 alias ll='ls -lh',让复杂命令变短。
  • 管道符 (|):将前一个命令的输出交给后一个命令处理,如 ps -ef | grep node。
  • 输出重定向:
    • >:覆盖写入文件,如 echo "hello" > a.txt。
    • >>:追加写入文件,如 tail -n 10 log >> backup.log。
    • cat > file:将终端输入的内容写入文件 (按 Ctrl+D 结束输入)。

6. Linux 生产环境保命守则 (⚠️ 核心) ​

为了防止运维事故,在生产环境下操作时必须严格遵守以下原则:

6.1 毁灭性命令预防 (rm -rf) ​

  • 检查路径:执行 rm -rf 前,务必反复确认路径。禁止使用 rm -rf / 或类似的模糊通配符。
  • 改删为移:建议使用 mv 将文件移到 /tmp 或自定义的回收站目录,确认无误后再清理。
  • Tab 补全:利用 Tab 键补全路径,避免手抖敲错目录名。

6.2 修改配置必备份 ​

  • 先备份后修改:修改任何系统或应用配置文件前,先执行备份。
    • 示例:sudo cp nginx.conf nginx.conf.bak_20260917
  • 保留历史版本:备份文件名建议带上日期,方便出现问题时秒级回滚。

6.3 权限与身份安全 ​

  • 禁止长期以 root 登录:使用普通用户登录,必要时通过 sudo 提权。
  • 谨慎执行 chmod 777:禁止在生产环境对目录递归执行 777 权限,这会带来巨大的安全风险。

6.4 执行前的最后确认 ​

  • 确认环境:操作前确认当前连接的是 Production (生产) 还是 Staging (测试)。建议在 SSH 客户端为不同环境设置不同的终端背景色。
  • 长任务使用 Screen/Tmux:执行耗时较长的操作(如数据库备份、大数据量迁移)时,使用 tmux 或 screen 开启持久会话,防止网络断开导致任务中断。

6.5 脚本安全 ​

  • 路径全称:在 Shell 脚本或 Crontab 定时任务中,所有命令和路径务必使用绝对路径。
  • 检查 curl | sh:禁止直接运行来源不明的 curl ... | sh 脚本,必须先下载并审查代码逻辑。

7. 外部优质资源参考 ​


Generated by Ark Gardener based on user workflow.

方舟 · Ark