公司动态
零基础学Linux核心命令:从环境搭建到云计算运维实战
各位读者朋友好。近几年云计算运维岗位需求一直很稳定而 Linux 几乎是所有服务器、云主机、容器平台的操作系统底座。不管你是刚转行准备找运维工作还是后端开发想补齐服务器操作能力Linux 系统操作和核心命令都是绕不开的第一步。网上讲 Linux 的资料虽然多但很多要么太零散要么直接甩命令不给解释。本文把零基础学 Linux 最需要掌握的系统操作和常用命令整理成一条完整学习路径从环境搭建、命令分类讲解到结合云计算运维场景的实战案例最后加上高频报错排查和工程实践建议尽量做到照着学、照着敲、照着排错。如果你现在处于“知道 Linux 这个名字但没系统操作过”的阶段或者已经会一些命令但不成体系这篇文章都适用。学完之后你至少能独立完成 Linux 环境搭建、日常文件操作、用户权限管理、服务部署、日志查看和远程文件传输这些基础运维工作。1. 为什么要从 Linux 系统操作和核心命令学起1.1 Linux 在云计算运维中的位置云计算里最常见的一句话是“上云先上 Linux”。无论是阿里云 ECS、腾讯云 CVM、华为云 ECS还是 AWS EC2绝大多数云服务器的操作系统镜像都默认提供各种 Linux 发行版比如 CentOS、Ubuntu、Debian、Rocky Linux、openEuler 等。云计算运维工程师日常做的事可以简单概括为给服务器安装操作系统和初始化环境部署 Web 服务、数据库、中间件排查 CPU、内存、磁盘、网络问题配置用户权限和安全策略编写脚本批量处理重复操作配合监控系统处理告警这些工作几乎全部依赖 Linux 命令行完成。虽然现在云厂商提供了图形化控制台但控制台只解决了“创建机器”和“基本管理”过程真正进入服务器内部做配置、调试、排查还是离不开 Shell 命令。1.2 图形界面和命令行的关系很多零基础同学会问Linux 不是有桌面环境吗为什么还要学命令可以这样理解图形界面是 Linux 的外衣命令行才是 Linux 的内核能力。服务器为了节省资源、提高稳定性和安全性通常不安装图形桌面。云服务器默认连上之后就是一个黑乎乎的终端窗口你面对的只有 Shell 提示符。即使某些 Linux 发行版带了桌面环境做自动化运维、批量部署、远程管理时命令行也远比鼠标点击高效。比如你要在 100 台服务器上执行同样的操作图形界面根本做不到而 Linux 命令配合脚本几秒钟就能完成。1.3 学习目标和学习路径建议零基础学 Linux 不建议一上来就啃《鸟哥的 Linux 私房菜》这种大部头也不建议直接去背几百条命令。更合理的路径是先搭好一个可以随时练习的 Linux 环境理解 Shell 和命令的基本组成掌握高频命令的分类用法在实战场景里反复使用遇到报错时通过帮助文档和搜索引擎解决逐步接触 Shell 脚本、服务管理、网络配置等进阶内容本文会按照这个思路展开。命令不求全但求高频、实用、能串联起真实工作场景。2. 环境准备搭建你的第一个 Linux 练习环境2.1 几种常见方案对比学习 Linux 首先需要一台可以操作的 Linux 机器。根据你的电脑配置和需求可以通过下面几种方式实现。方案适用场景优点缺点虚拟机安装 Linux本地长期学习、测试环境隔离、可随时快照恢复占用电脑内存和磁盘云服务器更接近真实运维场景随时随地 SSH 连接可部署服务需要一定费用WSLWindows 上轻量体验启动快、资源占用小与真实服务器环境有差异Docker 容器有一定基础后练习服务部署环境干净、快速创建不适合学习内核级别操作对于零基础同学我的建议顺序是本地虚拟机 或 云服务器。虚拟机适合离线学习云服务器适合体验真实运维流程。如果电脑配置一般也可以用 WSL 先感受一下 Linux 命令的感觉但要清楚 WSL 不是完整的 Linux 服务器环境。版本方面不需要纠结太久。不同发行版命令 90% 以上相同核心差异主要在软件包管理工具上。本文示例以常见的 CentOS / Rocky Linux 和 Ubuntu 两种环境为主命令差异会单独说明。学习初期选择任何一个主流发行版都可以。2.2 虚拟机方案快速上手如果选择虚拟机推荐使用 VMware Workstation 或 VirtualBox配合 CentOS Stream、Rocky Linux 或 Ubuntu Server 镜像安装。安装过程中的关键点内存建议至少分配 2GB硬盘 20GB 以上网络模式选择 NAT 或桥接NAT 模式下宿主机可以访问虚拟机适合学习安装时建议勾选“开发工具”或“最小安装”最小安装更接近服务器环境2.3 云服务器方案快速上手如果选择云服务器购买后需要做几件事在云控制台重置 root 密码或创建密钥对在安全组规则中放行 SSH22端口等必要端口使用终端工具连接服务器Windows 可以使用 Xshell、MobaXterm、FinalShell 等工具Mac/Linux 直接使用系统自带终端即可。连接命令格式为ssh root服务器IP这里提醒一下云服务器的安全组相当于云环境下的防火墙很多“连不上”“端口不通”问题都是安全组没放行导致的。学习阶段建议只放开需要的端口不要全部放行。2.4 Linux 基本操作习惯连接上 Linux 之后你会看到类似这样的提示符[rootlocalhost ~]#拆开解释一下root 表示当前登录用户localhost 是主机名~ 表示当前目录是当前用户的家目录表示当前是超级管理员 root普通用户提示符是 $Linux 中命令的基本格式是命令名称 [选项] [参数]选项通常以 - 开头表示短选项以 -- 开头表示长选项比如ls -l ls --all初学者可以先不要死记硬背选项优先记住“命令单词的缩写含义”比如 ls 是 list列出的缩写pwd 是 print working directory显示当前工作目录的缩写这样更容易联想记忆。3. Linux 核心命令分类讲解3.1 目录和文件操作命令这部分是 Linux 使用频率最高的命令几乎每个操作场景都会用到。pwd查看当前所在目录pwd输出类似于/root刚接触 Linux 时你经常会“迷路”不知道自己在哪个目录。pwd 就是你确认当前位置的工具。ls列出目录内容ls # 列出当前目录文件和子目录 ls -l # 以详细列表方式显示包含权限、属主、大小、修改时间 ls -a # 显示所有文件包括以 . 开头的隐藏文件 ls -lh # 以人类可读的方式显示文件大小比如 1.2K、3.4M ls -lt # 按修改时间排序ls -l 的输出信息很丰富下面是一个典型例子-rw-r--r-- 1 root root 2215 8月 20 10:30 nginx.conf这里重点看第一列的 -rw-r--r--它表示文件类型和权限。第 1 位- 表示普通文件d 表示目录l 表示软链接第 2-4 位属主权限ownerr 读w 写x 执行第 5-7 位属组权限group第 8-10 位其他人权限other这个权限模型是 Linux 的核心设计之一后面讲 chmod 时还会用到。cd切换目录cd /etc # 进入 /etc 目录 cd .. # 返回上一级目录 cd ~ # 回到当前用户的家目录 cd - # 切换到上一次所在目录相对路径和绝对路径需要理解清楚。以 / 开头的是绝对路径比如 /etc/nginx不以 / 开头的是相对路径是相对于当前目录而言的。mkdir创建目录mkdir data # 创建单级目录 mkdir -p /data/www # 递归创建多级目录父目录不存在时自动创建-p 参数在部署项目时很常用因为项目目录往往有多层结构。touch创建空文件或更新时间戳touch index.html # 创建空文件cp复制文件或目录cp nginx.conf nginx.conf.bak # 复制文件并改名 cp -r /data/www /data/www_backup # 递归复制整个目录 cp -a 源目录 目标目录 # 保持权限、属性完整复制常用于备份在实际操作中修改配置文件前先复制一份备份是非常好的习惯。mv移动或重命名mv old.txt new.txt # 重命名 mv /tmp/a.txt /data/ # 移动文件到目标目录rm删除文件或目录rm file.txt # 删除文件 rm -r dir # 递归删除目录及其内容 rm -f file.txt # 强制删除不提示 rm -rf dir # 递归强制删除目录慎用这里必须特别强调rm -rf 是 Linux 世界里“出名”的危险命令。一旦执行目录内的文件会直接删除不会进入回收站。生产环境操作时尽量先 cd 到目标目录确认路径再执行删除。更安全的做法是用 mv 把目录先改名确认无误后再删除。find查找文件find /etc -name nginx* # 按名称查找 find /data -type f -size 100M # 查找大于 100M 的文件 find /var/log -name *.log -mtime 7 # 查找 7 天前修改的日志文件find 在排查磁盘占用、定位配置文件时很有用。查找大文件可以用find / -xdev -type f -size 500M 2/dev/null这里 2/dev/null 是把错误输出重定向到空设备避免大量“权限不足”的提示干扰结果。3.2 文件内容查看和文本处理命令运维工作中查看日志和查找关键字是高频操作。cat一次性输出整个文件内容cat /etc/passwdcat 适合查看小文件。如果文件很长用 cat 会让终端刷屏这时候应该用 less 或 tail。less分页查看文件less /var/log/messages进入 less 之后可以用 空格 翻页、j/k 上下移动、q 退出。按 / 可以搜索关键字输入关键字后按 n 跳到下一个匹配项。head 和 tail查看文件头部或尾部head -n 20 /etc/nginx/nginx.conf # 查看前 20 行 tail -n 50 /var/log/nginx/access.log # 查看最后 50 行 tail -f /var/log/nginx/access.log # 实时跟踪文件新增内容tail -f 是排查线上问题最常用的命令之一服务日志实时输出时你可以直接看到请求进来时发生了什么。grep按关键字过滤内容grep error /var/log/nginx/error.log grep -i warning /var/log/messages # 忽略大小写 grep -r listen /etc/nginx/ # 递归搜索目录下所有文件 grep -n root /etc/nginx/nginx.conf # 显示匹配行行号grep 经常和管道符配合使用。管道符 | 的作用是把前一个命令的输出作为后一个命令的输入例如cat /var/log/nginx/access.log | grep 404 | head -20这条命令的含义是先查看日志文件再从日志里过滤出包含 404 的行最后只展示前 20 行。管道是 Linux 命令组合的核心方式理解它之后命令的威力会大很多。wc统计行数、单词数、字节数wc -l /etc/passwd统计文件有多少行在确认数据量时很有用。vi/vim文本编辑器Linux 命令行下的文本编辑主要靠 vi/vim。刚接触时很多人会卡在 vim 的三种模式上普通模式打开 vim 后默认模式可以移动光标、删除、复制插入模式按 i 进入可以编辑文本按 Esc 退出命令模式在普通模式输入 : 进入可以执行保存、退出等操作基础操作只需要记住几个vim /etc/nginx/nginx.conf进入后按 i 进入插入模式修改完成后按 Esc 回到普通模式输入 :wq 保存并退出。需要注意:wq 是 write保存和 quit退出的组合。如果不想保存用 :q! 强制退出。3.3 用户管理和权限命令云计算运维中用户权限管理直接关系到服务器安全。用户管理核心命令useradd zhangsan # 创建用户 passwd zhangsan # 设置或修改用户密码 usermod -aG wheel zhangsan # 把用户加入 wheel 组CentOS 下可获得 sudo 权限 userdel -r zhangsan # 删除用户并删除家目录 id zhangsan # 查看用户 UID、所属组 whoami # 查看当前登录用户名 w # 查看当前登录用户和正在执行的命令Ubuntu 系统下sudo 用户组一般是 sudo 组命令写成usermod -aG sudo zhangsan关于 root 用户建议平时使用普通用户操作需要管理员权限时通过 sudo 临时提权减少误操作风险。权限修改命令 chmod 和 chown权限的数字表示法需要重点掌握。r 代表 4w 代表 2x 代表 1。一个文件的权限如果是 rw-r--r--按数字表示就是 644owner426group4other4常用权限组合chmod 755 script.sh # 属主可读可写可执行其他人可读可执行 chmod 644 file.txt # 属主可读可写其他人只读 chmod x script.sh # 给所有用户增加执行权限chown 用于修改文件属主和属组chown zhangsan:zhangsan /data/app chown -R zhangsan:zhangsan /data/app # -R 递归修改目录下所有文件3.4 系统状态和资源查看命令服务器出问题时第一步是看系统负载和资源使用情况。uname查看内核和系统信息uname -a后面输出的信息可能类似Linux localhost 5.14.0-284.11.1.el9_2.x86_64 ...可以看到内核版本是 5.14.0el9 表示 RHEL 9 系列。uptime查看运行时间和负载uptime输出中包含 1 分钟、5 分钟、15 分钟的平均负载。负载值如果长期远高于 CPU 核心数说明系统可能存在性能瓶颈。free查看内存使用free -h-h 参数用人类可读单位显示。重点看 total、used、available 三列available 是真正可用的内存。df 和 du查看磁盘空间df -h # 查看分区空间使用情况 du -sh /data # 查看目录总大小 du -h --max-depth1 /data | sort -hr # 查看目录下各子目录大小并排序磁盘满了是运维常见事故之一。排查思路通常是先用 df -h 看哪个分区用量高再用 du 逐层定位大目录最后清理日志或临时文件。ps 和 top查看进程ps -ef | grep nginx # 查看 nginx 相关进程 top # 动态查看系统进程和资源占用top 进入后按 P 按 CPU 排序按 M 按内存排序按 q 退出是非常顺手的一个交互操作。实际排查性能问题时top 是第一个要敲的命令。kill结束进程kill 进程PID # 正常结束进程 kill -9 进程PID # 强制结束进程 pkill nginx # 按进程名结束kill -9 是强制终止可能导致数据丢失或服务异常建议先尝试普通 kill。3.5 网络相关命令ip 和 ifconfig查看网络接口ip addr在 CentOS 8 / Rocky Linux / Ubuntu 18.04 之后的系统中推荐使用 ip 命令。ifconfig 需要额外安装 net-tools。ping测试网络连通性ping -c 4 www.baidu.com-c 表示只发 4 个包否则会一直 ping 下去需要 CtrlC 终止。curl 和 wget请求和下载curl http://127.0.0.1 # 请求本地服务 curl -I http://127.0.0.1 # 查看响应头信息 wget http://example.com/a.tar.gz # 下载文件部署完服务后用 curl 访问本机端口是验证服务是否正常最直接的方法。ss 和 netstat查看端口监听ss -lntp netstat -lntpss 是新一代命令输出更快。-l 查看监听端口-n 直接显示 IP 和端口-t 只看 TCP-p 显示对应进程。scp远程复制文件scp /data/app.tar.gz root192.168.1.100:/data/这条命令把本地文件复制到远程服务器。逆向从远程拉取文件scp root192.168.1.100:/data/app.tar.gz /local/path/scp 基于 SSH 协议需要目标服务器开放 22 端口并使用目标服务器上的用户密码或密钥进行认证。ssh远程登录ssh root192.168.1.100 ssh -p 2222 user192.168.1.100 # 指定端口连接3.6 打包压缩和软件安装命令tar打包和解压tar -czvf app.tar.gz /data/app # 打包并 gzip 压缩 tar -xzvf app.tar.gz # 解压 tar -tf app.tar.gz # 查看压缩包内容不解压参数含义c 创建、x 解压、z 使用 gzip、v 显示过程、f 指定文件名。这个组合几乎每天都在用。软件包管理命令CentOS / Rocky Linux 使用 yum 或 dnfyum install -y nginx yum remove -y nginx yum update -yUbuntu / Debian 使用 aptapt update apt install -y nginx apt remove -y nginx安装软件时 -y 参数表示自动确认否则会询问是否继续安装。初学者不熟悉时可以先不加 -y看看安装提示确认没问题再输入 y 确认。4. 实战案例从零部署一台 Web 服务器把前面的命令串起来我们做一个小型综合实战。场景是在一台刚装好的 Linux 服务器上创建运维账号、配置目录、部署并启动 Nginx 服务最后验证访问。4.1 查看系统基本信息登录服务器后先确认系统是什么发行版、什么版本cat /etc/os-release本示例以 CentOS / Rocky Linux 环境为例。执行结果包含 NAME 字段能看到系统名称和版本号。查看内核信息uname -r4.2 创建运维账号并配置 sudo 权限先用 root 登录创建用户useradd opuser passwd opuser根据提示输入两次密码。然后给 opuser 添加 sudo 权限usermod -aG wheel opuser验证id opuser输出能看到 opuser 属于 wheel 组。切换用户测试 sudosu - opuser sudo whoami第一次使用 sudo 会提醒你输入密码输入 opuser 的密码后如果输出 root说明 sudo 权限生效。4.3 创建项目目录并调整权限创建项目目录sudo mkdir -p /data/www sudo chown -R opuser:opuser /data/www这里说明一下/data 目录属于 root普通用户直接 mkdir 会权限不足所以要加 sudo。chown 把 /data/www 的属主改为 opuser之后 opuser 就可以在该目录下自由创建文件了。创建测试页面cd /data/www echo h1Hello Linux/h1 index.html ls -l index.html cat index.html4.4 安装并启动 Nginx使用 yum 安装sudo yum install -y nginx启动服务并设置开机自启sudo systemctl start nginx sudo systemctl enable nginx查看服务状态sudo systemctl status nginx4.5 验证服务是否正常运行在本机验证端口监听ss -lntp | grep 80用 curl 请求本地服务curl http://127.0.0.1如果配置正确会输出 index.html 中的内容。再访问一下自己的测试页面curl http://127.0.0.1/index.html如果想要从外部访问需要防火墙放行 80 端口云服务器还要在安全组中添加规则sudo firewall-cmd --add-port80/tcp --permanent sudo firewall-cmd --reload4.6 将本地文件上传到服务器把本地的配置文件或资料传到服务器使用 scpscp /本地路径/nginx.conf opuser服务器IP:/data/www/输入 opuser 密码后文件就会上传到服务器的 /data/www 目录。如果再配合 ls 和 cat 查看就能完整走一遍“上传-查看-修改-验证”的流程。4.7 查看日志和清理归档访问过服务后查看访问日志sudo tail -f /var/log/nginx/access.log此时刷新浏览器或再执行一次 curl日志里会出现新的访问记录。如果日志文件较大可以用 tar 归档并清理旧日志cd /var/log/nginx sudo tar -czvf access_$(date %F).tar.gz access.log sudo truncate -s 0 access.log # 清空日志文件但保留文件date %F 会输出当天的日期比如 2026-08-20这样日志包名称就带上了时间方便后续清理。5. 常见问题与排查思路5.1 命令找不到command not found问题现象常见原因解决思路敲了命令提示 command not found软件未安装使用 yum/apt 安装对应软件包命令已安装但找不到PATH 环境变量未生效检查 PATH重开终端或 source 配置文件使用 systemctl 提示找不到系统无 systemd老版本系统改用 service 命令很多命令依赖安装包。比如 ifconfig 在最小化安装中没有需要安装 net-toolsvim 可能需要安装 vim-enhanced。不要想着“系统里什么都有”Linux 的设计哲学是“按需安装”。5.2 权限不足Permission denied问题现象常见原因解决思路读取文件提示 Permission denied当前用户无读权限检查文件属主和权限位调整用户或 chmod创建文件提示 Permission denied目录没有写权限确认目录属主必要时使用 sudo执行脚本提示 Permission denied脚本没有执行权限chmod x script.sh解决思路上最有价值的一点是理解 Linux 一切皆文件的原则普通文件有读写执行权限目录有读、写、执行权限目录的执行权限决定你能不能进入这个目录。5.3 删除文件失败或误删问题现象常见原因解决思路rm 删除目录提示 is a directory没有加 -rrm -r 递归删除误删重要文件操作太急或路径写错恢复备份预防为主用 mv 代替 rmrm 删除后没有回收站Linux 采用直接删除机制重要文件放入 git 或定期备份生产环境删除文件前我建议先执行 ls 查看目录内容再用绝对路径确认目标甚至先 mv 到 /tmp 保留一段时间避免“删完就后悔”的情况。5.4 SSH 连接不上问题现象常见原因解决思路连接超时IP 不通、安全组/防火墙拦截ping IP检查安全组和防火墙认证失败密码错误或密钥不匹配确认用户密码检查密钥文件权限连接被拒绝sshd 服务未启动systemctl status sshd 查看状态连接很慢DNS 反向解析修改 sshd_config 中 UseDNS 为 no云服务器连接不上时第一反应不是改系统内部配置而是先检查云控制台里的安全组规则。很多新手折腾半天 sshd 配置最后发现是安全组 22 端口没放行。5.5 磁盘空间满问题现象常见原因解决思路系统报 No space left on device磁盘分区占满df -h 确认分区du 定位大文件删除文件后空间没释放文件被进程占用lsof日志文件持续增长日志未轮转配置 logrotate 日志轮转策略“删除文件后空间没释放”是一个比较隐蔽的问题。原因是被删除的文件仍然被某个进程打开文件相关的句柄还没释放所以磁盘空间不会立即恢复。这时候需要用 lsof 找到占用进程。5.6 端口被占用问题现象常见原因解决思路服务启动失败报 Address already in use端口被其他进程占用ss -lntp 查看占用端口的进程 PID服务无法访问端口未监听确认服务启动成功检查防火墙安全组云服务器端口不通安全组未放行在云控制台安全组中添加入方向规则6. 最佳实践与工程建议6.1 命令使用习惯多使用 Tab 键自动补全减少命令拼写错误使用 history 查看历史命令用 !编号 重复执行历史命令慎用 root 操作优先普通用户 sudo修改配置文件前先备份例如 cp nginx.conf nginx.conf.bak避免使用 rm -rf 加变量路径比如 rm -rf $DIR/如果 DIR 变量为空后果非常严重定期清理 /tmp 和日志目录避免磁盘占满6.2 安全管理建议修改默认 SSH 端口并非必需但一定要设置复杂密码或使用密钥登录不要把密码明文写在脚本中新创建的运维账号按需分配权限不要全部给 root 权限查看日志时/var/log/secure 或 /var/log/auth.log 记录了登录信息定期检查可以发现异常登录尝试防火墙只放行业务必要端口其余端口关闭6.3 运维排查思路遇到系统或服务问题时推荐按照下面顺序排查先看网络通不通ping 目标 IP再看端口通不通telnet 或 curl然后看服务状态systemctl status 服务名接着查日志journalctl -u 服务名 或 /var/log 下的日志最后看系统资源top、free -h、df -h很多问题从日志里能找到直接原因比“瞎猜”高效得多。6.4 学习方法建议学 Linux 命令有一个很实用的思路不需要一次性记住所有参数只要记住“这个命令能解决什么问题”就行。用的时候通过 man 命令或 help 参数查看说明。遇到不认识的命令可以用man ls # 查看命令手册 ls --help # 查看命令帮助平时练习时可以给自己定一些任务型目标比如“在 /data 下创建目录结构并创建用户”“部署 Nginx 并配置自定义页面”“清理超过 100M 的日志文件”。带着任务去敲命令比按顺序背命令记得牢固得多。7. 总结与下一步学习方向到这里Linux 系统操作和核心命令的主线已经梳理了一遍。现在你应该能完成这些基础工作搭建 Linux 环境、连接远程服务器、使用目录和文件命令、管理用户与权限、查看系统资源、部署 Web 服务、查看日志、远程传输文件以及处理一些常见报错。这套能力对应到云计算运维岗位就是日常“登服务器、看状态、查日志、部署服务、传文件、做基础权限管理”这个闭环。学习和面试中常见的 Linux 考察内容基本也集中在这几个方向。接下来可以继续深入学习的方向包括Shell 脚本编程用脚本代替重复操作systemd 服务管理自定义服务单元网络配置和防火墙管理使用 Docker 部署容器化应用文件系统、磁盘管理和 LVM 逻辑卷监控工具的使用比如 Prometheus、Grafana最后想提醒一点Linux 是动手性很强的技术。看再多命令列表不如自己亲手敲一遍。哪怕一开始慢、出错都是正常的。建议你准备一台练习机器把本文的实战案例完整跑一遍再尝试扩展成自己的小项目。如果这篇文章对你有帮助可以收藏备用。遇到问题欢迎在评论区交流后续我还会围绕 Linux 进阶、Shell 脚本、服务部署和云计算运维场景继续整理更多实战内容。