1. 为什么需要掌握基础命令?
在计算机操作中,基础命令就像是我们与机器对话的"普通话"。无论是Windows的CMD/PowerShell,还是Linux/macOS的终端,掌握这些基础命令都能让你:
- 快速完成文件管理(创建、复制、移动、删除)
- 高效查询系统信息(CPU、内存、磁盘使用情况)
- 批量处理重复性工作(通过脚本自动化)
- 在图形界面不可用时完成紧急操作
提示:虽然现在图形界面很完善,但很多高级功能和故障排查仍然依赖命令行。就像老司机都知道,真正修车还得靠扳手,不能只依赖智能诊断仪。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件操作四件套
2.1 查看目录内容(ls/dir)
在Linux/macOS中使用ls,Windows中用dir。这是最常用的起点命令:
bash复制# Linux/macOS基础用法
ls -l # 显示详细信息(权限、所有者、大小)
ls -a # 显示隐藏文件(以点开头的文件)
ls -lh # 人类可读的文件大小(自动转换为KB/MB)
# Windows对应命令
dir /w # 宽列表格式
dir /ah # 只显示隐藏文件
实际经验:
- 在Linux中,
ls --color=auto可以显示彩色输出(通常已设为默认) - 组合使用效果更佳:
ls -lah显示全部文件(含隐藏)的详细信息+人类可读大小
2.2 切换目录(cd)
跨平台用法基本一致:
bash复制cd /path/to/directory # 绝对路径
cd ../parent # 相对路径(上级目录)
cd ~ # 返回用户主目录
cd - # 返回上一个所在目录
踩坑记录:
- Windows中路径分隔符用反斜杠
\,但在PowerShell中也支持正斜杠/ - 路径包含空格时要用引号包裹:
cd "My Documents"
2.3 创建/删除文件(touch/del, rm)
bash复制# 创建文件
touch newfile.txt # Linux/macOS
copy nul newfile.txt # Windows
# 删除文件
rm file.txt # Linux/macOS
del file.txt # Windows CMD
Remove-Item file.txt # PowerShell
危险操作警示:
rm -rf /会递归强制删除根目录所有文件(永远不要尝试!)- Windows中没有直接等价命令,但
del /s /q也有类似破坏力
2.4 复制/移动文件(cp, mv)
bash复制# 复制文件
cp source.txt dest.txt # Linux/macOS
copy source.txt dest.txt # Windows
# 移动/重命名
mv old.txt new.txt # Linux/macOS
move old.txt new.txt # Windows
实用技巧:
cp -r可递归复制整个目录mv在Linux中实际是修改文件指针,速度极快(相比删除+新建)
3. 文本处理三剑客
3.1 查看文件内容(cat, more, less)
bash复制cat file.txt # 一次性输出全部内容
more file.txt # 分页显示(只能向下翻页)
less file.txt # 更强大的分页器(可上下翻页、搜索)
less的高级用法:
/keyword向前搜索?keyword向后搜索F实时跟踪文件变化(类似tail -f)
3.2 过滤文本(grep, findstr)
bash复制grep "error" log.txt # 在Linux中查找含"error"的行
findstr "error" log.txt # Windows对应命令
常用参数对比:
| 功能 | Linux(grep) | Windows(findstr) |
|---|---|---|
| 忽略大小写 | -i | /i |
| 显示行号 | -n | /n |
| 反向匹配 | -v | /v |
| 正则表达式 | -E | /r |
3.3 流处理(管道 | )
将前一个命令的输出作为后一个命令的输入:
bash复制# 统计当前目录下.py文件的数量
ls *.py | wc -l
# 查找包含"import"的Python文件并显示行号
grep -n "import" *.py
管道组合实例:
bash复制# 分析日志:提取404错误,按出现次数排序,显示前10个
grep " 404 " access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -10
4. 系统监控与管理
4.1 进程管理(ps, top, tasklist)
bash复制# Linux查看进程
ps aux # 显示所有用户的所有进程
top # 动态监控(类似Windows任务管理器)
# Windows对应命令
tasklist # 显示进程列表
终止进程:
bash复制# Linux
kill 1234 # 终止PID为1234的进程
kill -9 1234 # 强制终止
# Windows
taskkill /PID 1234 /F
4.2 磁盘空间(df, du)
bash复制df -h # 显示磁盘使用情况(人类可读格式)
du -sh * # 显示当前目录各文件/文件夹大小
Windows对应命令:
powershell复制wmic diskdrive get size # 查看磁盘总容量
fsutil volume diskfree C: # 查看C盘剩余空间
4.3 网络连接(netstat, ping)
bash复制netstat -tuln # 查看监听中的端口
ping example.com # 测试网络连通性
Windows特有命令:
cmd复制ipconfig /all # 查看详细网络配置
tracert example.com # 跟踪路由路径
5. 权限管理(Linux/macOS重点)
5.1 文件权限解读
使用ls -l看到的权限字符串如-rwxr-xr--:
- 第1位:文件类型(-普通文件,d目录,l链接)
- 2-4位:所有者权限(r读,w写,x执行)
- 5-7位:组权限
- 8-10位:其他用户权限
5.2 修改权限(chmod)
数字表示法:
bash复制chmod 755 script.sh # rwxr-xr-x
其中:
- 7 = 4(r) + 2(w) + 1(x)
- 5 = 4(r) + 1(x)
符号表示法:
bash复制chmod u+x script.sh # 给所有者添加执行权限
chmod o-w file.txt # 移除其他用户的写权限
5.3 修改所有者(chown)
bash复制chown user:group file.txt
实际应用场景:
- 网站目录通常需要设为
www-data:www-data - 共享文件夹可能需要特定组权限
6. 环境变量与PATH
6.1 查看环境变量
bash复制printenv # Linux/macOS显示所有环境变量
echo $PATH # 查看PATH变量
set # Windows CMD查看所有变量
$env:PATH # Windows PowerShell查看PATH
6.2 临时设置变量
bash复制export MY_VAR="value" # Linux/macOS
set MY_VAR=value # Windows CMD
$env:MY_VAR = "value" # Windows PowerShell
6.3 永久生效配置
Linux/macOS:
bash复制# 对当前用户生效
echo 'export MY_VAR="value"' >> ~/.bashrc
source ~/.bashrc
# 对所有用户生效(需要sudo)
echo 'export MY_VAR="value"' >> /etc/profile
Windows永久设置:
- 图形界面:系统属性 → 高级 → 环境变量
- PowerShell:
[Environment]::SetEnvironmentVariable("MY_VAR", "value", "User")
7. 实用技巧合集
7.1 命令历史
bash复制history # 查看历史命令
!123 # 执行历史记录中第123条命令
!! # 执行上一条命令
7.2 别名设置
bash复制alias ll='ls -alF' # Linux/macOS
doskey ls=dir /w $* # Windows CMD
持久化配置:
- Linux/macOS: 写入
~/.bashrc或~/.zshrc - Windows: 需要修改注册表或使用第三方工具
7.3 后台任务管理
bash复制python script.py & # 后台运行
jobs # 查看后台任务
fg %1 # 将任务1调到前台
Ctrl+Z → bg # 暂停当前任务并转为后台
7.4 输入输出重定向
bash复制command > output.txt # 标准输出重定向到文件
command 2> error.log # 标准错误重定向
command &> all.log # 所有输出重定向
command < input.txt # 从文件读取输入
组合示例:
bash复制# 将标准输出和错误分别记录到不同文件
python script.py > output.log 2> error.log
8. 跨平台命令对照表
为方便记忆,整理常用命令对照:
| 功能 | Linux/macOS | Windows CMD | Windows PowerShell |
|---|---|---|---|
| 列出文件 | ls | dir | Get-ChildItem |
| 复制文件 | cp | copy | Copy-Item |
| 移动文件 | mv | move | Move-Item |
| 删除文件 | rm | del | Remove-Item |
| 查看文件内容 | cat | type | Get-Content |
| 查找文本 | grep | findstr | Select-String |
| 进程列表 | ps | tasklist | Get-Process |
| 结束进程 | kill | taskkill | Stop-Process |
| 网络诊断 | ping, netstat | ping, netstat | Test-NetConnection |
9. 学习路线建议
- 第一阶段:掌握本文列出的基础命令,每个命令至少实践3次
- 第二阶段:学习命令参数(通过
man command或command --help) - 第三阶段:尝试组合命令(管道、重定向)
- 第四阶段:编写简单shell脚本(.sh/.bat)自动化任务
推荐练习项目:
- 写一个脚本自动备份指定目录到压缩包
- 创建一个日志分析脚本,提取错误信息并统计
- 实现自动清理指定天数前的临时文件
个人经验:命令行的学习曲线前期陡峭,但突破某个临界点后会产生"开悟"体验。建议从实际需求出发,遇到问题先想"能不能用命令行解决",逐步积累。我最初是通过每周完成一个命令行小任务(比如用awk处理CSV)来建立自信的。
