在前一篇文章中,我们以 Windows 系统下的常见操作习惯为切入点,对照学习了 Linux 命令行的基础操作:登录、文件管理、文本编辑等。如果你跟着实践了一遍,现在应该已经能在 Linux 里活下来了——能登录、能建删改查、能用 vi 改个配置文件。
但「活下来」和「有掌控感」之间,还差一步。
这一步是什么?我举个例子:在 Windows 里,电脑卡了你会下意识打开任务管理器看一眼——CPU 是不是飙到 100% 了?内存是不是快满了?哪个进程在搞鬼?这套动作你做得行云流水,因为你对 Windows 有系统感知力。
但在 Linux 里呢?可能除了敲几个文件操作命令,你对系统内部发生了什么一无所知。遇到Permission denied 一脸懵,想装个软件不知道从何下手,想把 Windows 上的文件传到服务器上还得先去百度。
这就是本文要解决的问题。我们立下第二个 flag:建立起对 Linux 系统的「感知力」——能看懂系统状态、能理解权限机制、能自主管理软件、能在 Windows 和 Linux 之间自由传输文件。
同样地,在正式开始之前,把云服务器 ECS 的购买链接贴出来:
https://www.aliyun.com/minisite/goods?userCode=08mhjxskhttps://www.aliyun.com/daily-act/ecs/99program?userCode=08mhjxsk第一个链接是阿里云新注册用户领取优惠券地址,第二个链接直通云服务器「99 套餐」购买页。

先感慨一下,前一篇文章发布到现在已一年有余。这一年可以说是 AI Agent 突飞猛进、走入千家万户的一年。
几个月前,阿里云也正式推出 Workbench AI Agent 模式,让 ECS 玩家能够通过简单对话完成复杂的 ECS 命令行操作。
Look!

用自然语言的方式即可操作 ECS:

这操作体验没准已经比 Windows 更丝滑了!
不过呢,我还是强烈建议,该打的基础、该掌握的基本命令,还是需要稍微花点功夫的。因此,本系列文章还是会继续写下去的。
开始吧!
在 Windows 中,当我们觉得电脑变慢时,第一反应是按Ctrl + Shift + Esc 或者在任务栏上右键打开任务管理器,切到 性能 标签页,看 CPU、内存、磁盘的使用情况。这套操作已经刻进肌肉记忆了。
Linux 中也有对应的「体检」手段,而且信息更丰富、更直接。
在 Windows 中,右键 此电脑 → 属性,可以看到 CPU 型号、内存大小、系统版本等信息。Linux 中的对应命令如下:
查看操作系统版本和内核信息:
uname -auname 是 「Unix name」 的缩写,-a 表示「all」,会输出内核名称、主机名、内核版本、硬件架构等全套信息。
查看发行版详细信息:
cat /etc/os-release这个文件里记录了操作系统的名称、版本号、ID 等。对于 Alibaba Cloud Linux 3 来说,你会看到类似如下的输出:
NAME="Alibaba Cloud Linux"VERSION="3 (OpenAnolis Edition)"ID="alinux"注:Linux 的「版本」其实有两层含义——内核版本(uname -r 查看)和发行版版本(cat /etc/os-release 查看)。打个比方:内核是发动机,发行版是整车。同一台发动机可以用在不同品牌的车上。
在 Windows 任务管理器的 性能 页里,内存使用情况一目了然。Linux 中对应的命令:
free -h-h 参数表示「human-readable」,会自动把字节数转换成 KB、MB、GB 等人类可读的单位。输出解读:
total:总内存大小used:已使用的内存free:完全空闲的内存available:实际可用的内存(这个比free 更有参考价值,因为它包含了可回收的缓存)一个小知识点:Linux 会尽量利用空闲内存做文件缓存来提升性能,所以free 列数值很小不一定是坏事,关键看available。
nproc这个命令直接输出 CPU 核心数(逻辑核心)。比如输出2,就表示你的云服务器有 2 核。
在 Windows 中,打开 此电脑 就能看到 C 盘、D 盘的使用情况。Linux 中对应的命令:
df -hdf 是「disk free」的缩写,-h 同样是人性化显示。

输出中重点关注Size(总大小)、Used(已用)、Avail(可用)这几列,以及Mounted on(挂载点,可以理解为该分区对应哪个目录)。
对于我们的 ECS 来说,最需要关注的是挂载在/(根目录)的那一行,因为你的所有文件都存在这里。
df 看的是整个分区的情况。如果你想知道某个具体目录(比如 WordPress 网站目录)占了多大空间,用du 命令:
du -sh /usr/share/nginx/html/wordpress-s 表示只显示汇总大小(summary),-h 表示人性化显示。如果不加-s,它会列出目录下每个子目录的大小,信息量太大。
对应的回滚操作?不需要。这些只是查看命令,不会对系统做任何更改,放心用。
这是重头戏。Linux 中最接近 Windows 任务管理器的命令是top:
top执行后会进入一个实时刷新的界面:

top 界面中常用的交互按键:
q:退出1:展开/折叠每个 CPU 核心的使用情况M:按内存占用排序P:按 CPU 占用排序(默认)如果你觉得top 的界面太朴素,可以试试它的升级版htop(需要先安装,后面软件管理部分会讲到):
htophtop 支持彩色显示、鼠标点击、上下滚动浏览进程列表,对新手更友好。
如果你只想看一眼进程列表,不需要实时监控,可以用ps 命令:
ps aux参数拆解:
a:显示所有用户的进程u:以用户友好的格式显示(包含用户名、CPU、内存等)x:包含没有关联终端的进程(比如后台服务)这个命令的输出会比较多,通常配合grep 来过滤:
ps aux | grep nginx这行命令的含义是:列出所有进程,然后从中筛选出包含「nginx」的行。| 是管道符,作用是把前一个命令的输出「喂」给后一个命令。
在 Windows 中,程序卡死了我们会在任务管理器里右键 → 结束任务。Linux 中对应的命令是kill:
kill 12345 # 优雅地终止 PID 为 12345 的进程kill -9 12345 # 强制终止 PID 为 12345 的进程(相当于 Windows 的"立即结束")PID(进程 ID)可以从top 或ps aux 的输出中获取。
如果你知道进程的名字,还可以用killall:
killall nginx # 终止所有名为 nginx 的进程对应的回滚操作:如果误杀了某个服务进程,可以重新启动它。比如 Nginx:
sudo systemctl restart nginx注:kill 这个名字有点误导——它本质上是向进程「发信号」,默认信号是「请你优雅退出」,而不是「暴力干掉」。-9 参数(SIGKILL)才是真正意义上的强制终止。
在 Windows 中,右键 文件 → 属性 → 常规,可以看到不同用户对这个文件的权限。虽然大多数普通用户不常碰这个界面,但概念是存在的。
Linux 的权限机制更简洁、更透明,但也因此让新手感到困惑。Permission denied 可能是 Linux 新手最常看到的报错——本节的目标就是让你从此不再怕它。
ls -l:那一串rwxr-xr-x 到底是什么?在前一篇文章中,我们学会了用ls -l 查看文件的详细信息。现在来深入解读它的输出:
ls -l note.txt假设输出如下:
-rw-r--r-- 1 moweng moweng 1024 May 10 14:30 note.txt我们来逐列拆解:
-rw-r--r-- | ||
1 | ||
moweng | ||
moweng | ||
1024 | ||
May 10 14:30 | ||
note.txt |
重点看第 1 列,它由 10 个字符组成,分为两部分:
- rwx r-- r--↑ ↑ ↑ ↑类型 所有者 组 其他人- 表示普通文件,d 表示目录,l 表示软链接。rwx):文件所有者的权限。r--):所属组的权限。r--):其他人的权限。r、w、x 的含义:
r | |||
w | |||
x | |||
- |
所以-rw-r--r-- 翻译过来就是:这是一个普通文件,所有者可以读写,组内用户可以读,其他用户可以读。
chmod在 Windows 中,我们在 常规 选项卡里勾选权限。Linux 中用chmod(change mode)命令。
chmod 有两种用法:数字模式和符号模式。对于入门来说,数字模式更简洁,推荐先掌握。
数字模式——每个权限对应一个数字:
r | |
w | |
x | |
- |
把需要的权限数字相加,就得到该角色的权限值:
三个数字依次代表所有者、组、其他人。常用组合:
chmod 755 script.sh # 所有者可读写执行,组和其他人可读执行(适合脚本和目录)chmod 644 note.txt # 所有者可读写,组和其他人只读(适合普通文件)chmod 600 secret.txt # 只有所有者可读写,其他人完全无法访问(适合私密文件)chmod 777 public.txt # 所有人都能读写执行(权限最宽松,仅用于临时调试)对应的回滚操作:记住修改前的权限值,需要时改回去即可。一般来说,普通文件的默认权限是644,目录的默认权限是755。
符号模式(了解即可)——用u(所有者)、g(组)、o(其他人)、a(所有人)加上+、-、=:
chmod u+x script.sh # 给所有者增加执行权限chmod go-w note.txt # 移除组和其他人的写权限chmod a=r note.txt # 所有人的权限设为只读chown有时候文件的所有者不对,比如你用root 创建的文件,moweng 用户无法编辑。这时需要修改所有者:
chown moweng note.txt # 将 note.txt 的所有者改为 mowengchown moweng:moweng note.txt # 将所有者改为 moweng,所属组也改为 mowengchown -R moweng:moweng folder1/ # 递归修改整个目录的所有者和所属组-R 参数表示递归(Recursive),对目录使用时会同时修改目录下所有文件和子目录的所有者。
对应的回滚操作:再用chown 改回去即可。
sudo 的正确打开方式在前一篇文章中,我们知道了sudo 可以「提权」执行命令。这里补充几个关键认知:
什么时候需要sudo?
/etc 下的文件)什么时候不需要sudo?
/home/moweng/)free、df、top、ps 等)cat、ls 等,只要文件本身可读)一个简单的判断原则:如果操作影响范围仅限于你自己的文件,不需要sudo;如果会影响系统或其他用户,就需要sudo。
在 Windows 中装软件,我们习惯的操作流程是:打开浏览器 → 搜索软件名 → 找到官网 → 下载.exe 安装包 → 双击安装 → 一路点 下一步。
Linux 则走了一条完全不同的路:包管理器。你可以把它理解为系统自带的 应用商店 ——软件都集中在一个仓库里,搜索、安装、更新、卸载都在同一个工具里完成,不需要打开浏览器。
Alibaba Cloud Linux 3 使用的是dnf 包管理器(老版本 CentOS/RHEL 用yum,用法几乎一样)。
不确定想要的软件包叫什么名字?用search:
dnf search htop会列出所有名称或描述中包含 "htop" 的软件包。

找到想要的软件后,用install 安装:
sudo dnf install htop -y-y 参数表示自动确认,跳过"Are you sure?"的交互提示。加上sudo 是因为安装软件会影响系统,需要管理员权限。
装完之后,直接输入htop 就能用了——没有桌面快捷方式,没有开始菜单,但在终端里随时可以调用。

对应的回滚操作——卸载:
sudo dnf remove htop -ydnf list installed # 列出所有已安装的软件包(很多,建议配合 grep)dnf list installed | grep nginx # 查看 nginx 相关的已安装包dnf check-update这个命令会列出仓库中有新版本可用的所有软件包。
sudo dnf update -y # 更新所有可更新的软件包sudo dnf update nginx -y # 只更新 nginx对应的回滚操作——降级:
sudo dnf downgrade nginx -y # 将 nginx 降级到上一个版本趁热打铁,以下是我推荐的几个小工具,装上之后能显著提升使用体验:
# htop:更好看的任务管理器sudo dnf install htop -y# lrzsz:终端里上传下载小文件(后面会用到)sudo dnf install lrzsz -y# tree:以树状图显示目录结构sudo dnf install tree -y# unzip:解压 .zip 文件sudo dnf install unzip -y到目前为止,你的文件和操作都局限在云服务器内部。但在实际使用中,你一定需要把文件在两个系统之间搬来搬去——把本地的代码传到服务器上,或者把服务器上的日志下载到本地查看。
在 Windows 世界里,我们习惯用 U 盘、微信文件传输、网盘来传文件。Linux 服务器在云端,这些方法显然不适用。好在有更直接的方式。
scp:最常用的跨系统文件传输scp(Secure Copy)基于 SSH 协议,安全且无需额外配置。在你的 Windows 本地电脑上打开 Git Bash(或其他支持 SSH 的终端),执行:
从本地上传到服务器:
scp -i ~/.ssh/moweng_rsa_key /d/myfile.txt moweng@<IP Address>:~/拆解这行命令:
scp:安全复制命令-i ~/.ssh/moweng_rsa_key:指定私钥文件(和前一篇 SSH 登录用的是同一把密钥)/d/myfile.txt:本地文件路径(Git Bash 中,D 盘写作/d/)moweng@<IP Address>:~/:远程服务器用户名、IP 地址和目标路径(~/ 表示 home 目录)从服务器下载到本地:
scp -i ~/.ssh/moweng_rsa_key moweng@<IP Address>:/home/moweng/note.txt /d/把本地路径和远程路径调换位置即可——逻辑和cp 命令一样:源在前,目标在后。
传输整个目录:
scp -i ~/.ssh/moweng_rsa_key -r /d/myfolder/ moweng@<IP Address>:~/和cp 一样,传目录需要加-r 参数。
wget:从互联网直接下载文件如果你需要的文件已经在网上(比如某个软件的安装包、一张图片),不需要先下载到本地再传到服务器,可以直接在服务器上用wget 下载:
wget https://example.com/file.zip文件会下载到当前目录。如果下载过程中断,可以用-c(continue)参数续传:
wget -c https://example.com/large-file.zipcurl:下载 + 更多功能curl 是另一个常用的下载工具,功能比wget 更丰富,但默认不会保存文件,需要加-o 参数:
curl -o file.zip https://example.com/file.zipcurl 的强项在于调试 API、查看 HTTP 响应头等高级场景,入门阶段了解即可。
lrzsz:终端里上传下载小文件如果你用的是支持 Zmodem 协议的终端软件(如 Xshell、SecureCRT、某些版本的 Git Bash),安装lrzsz 之后可以更方便地传小文件:
# 上传:在终端中输入 rz,会弹出文件选择窗口rz# 下载:把服务器上的文件下载到本地sz note.txt这种方式的好处是不需要输入长长的路径,弹窗选择即可,适合零散的小文件传输。不过 Workbench 控制台目前不支持此功能,需要用本地终端软件连接时才有效。
本文沿着第 1 篇「Windows → Linux 对照」的思路,往前进了一步——从「会用命令」升级到「看懂系统」。现在你应该能够:
free -h、df -h、top 等命令检查系统健康状况,不再对服务器状态一无所知rwxr-xr-x 的含义,遇到Permission denied 知道该怎么排查和修复dnf 搜索、安装、更新、卸载软件,不再觉得 Linux 装软件是玄学scp、wget 在 Windows 和 Linux 之间自由传输文件以下是本文命令总结,延续第 1 篇的对照表风格:
| Windows 操作 | Linux 命令 | 功能说明 |
|---|---|---|
uname -acat /etc/os-release | ||
free -h | ||
nproc | ||
df -h | ||
du -sh | ||
tophtop,ps aux | ||
killkillall | ||
ls -l | ||
chmod | ||
chown | ||
sudo | ||
dnf search | ||
sudo dnf install | ||
sudo dnf remove | ||
sudo dnf update | ||
scp | ||
wgetcurl -O | ||
rzsz(lrzsz) |