Appearance
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] 极简初始化:
bashsudo apt update && sudo apt upgrade -y && \ sudo apt install -y curl wget git vim htop unzip ufw[CentOS] 极简初始化:
bashsudo 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 # 验证时间,应包含 CST0.4 防火墙安全设置
⚠️ 注意:操作防火墙前,务必先开放 SSH 端口 (22),否则会失去远程连接!
[Ubuntu (UFW)]:
bashsudo ufw allow 22/tcp # 允许 SSH sudo ufw allow 80,443/tcp # 允许 Web 端口 sudo ufw enable # 启用防火墙 (输入 y 确认)[CentOS (Firewalld)]:
bashsudo 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. 外部优质资源参考
- linux-command: 🏆 首选中文手册。涵盖 580+ 命令,带详细实例。
- macrozheng - Linux 常用命令: 📦 实战派手册。基于电商项目沉淀的运维经验。
- How2J.cn - 部署到 Linux: 适合初学者的极简热身命令与 VI 基础。
- tldr-pages: ⚡ 极简手册。抛弃冗长描述,只给核心示例。
Generated by Ark Gardener based on user workflow.
