适用人群: 零基础初学者
命令行是一个用文字控制电脑的工具。就像和电脑对话,输入指令,电脑执行。
你输入: ls
电脑回复: Documents Downloads Pictures
pat@mac:~$
│ │ │
│ │ └── 当前位置 (~ = 用户主目录)
│ └────── 电脑名
└────────── 用户名
/ 根目录
/Users/pat 绝对路径(从根开始)
~/Documents 相对路径(~ = 用户主目录)
../ 上一级目录
./ 当前目录
命令 [选项] [参数]
ls 列出当前目录
ls -la 列出详细信息(-la是选项)
ls /tmp 列出/tmp目录(/tmp是参数)
ls # 列出当前目录
ls -la # 详细列表(包含隐藏文件)
ls -la /Users # 查看指定目录常用选项:
| 选项 | 说明 |
|---|---|
-l |
详细信息 |
-a |
显示隐藏文件 |
-h |
人类可读大小 |
cd Documents # 进入 Documents 目录
cd .. # 返回上一级
cd ~ # 回到主目录
cd / # 进入根目录
cd - # 返回上一个目录rm file.txt # 删除文件
rm -r folder # 删除目录(递归)
rm -rf folder # 强制删除目录(不提示)危险! rm -rf / 会删除整个系统
cp file.txt backup.txt # 复制文件
cp -r folder folder_backup # 复制目录
cp file.txt ~/Documents/ # 复制到其他目录mv old.txt new.txt # 重命名
mv file.txt ~/Documents/ # 移动文件
mv folder ~/Desktop/ # 移动目录cat file.txt # 显示文件内容
cat file1.txt file2.txt # 合并显示多个文件
cat -n file.txt # 带行号显示echo "Hello World" # 输出文字
echo $HOME # 输出变量值
echo "text" > file.txt # 写入文件(覆盖)
echo "text" >> file.txt # 写入文件(追加)环境变量是系统级的配置,告诉程序去哪里找东西。
PATH = /usr/bin:/bin:/usr/local/bin
↓
当输入 "python" 时,系统在这些目录里查找
echo $PATH # 查看 PATH
echo $HOME # 查看主目录
env # 查看所有环境变量# 临时添加(当前终端有效)
export PATH="$HOME/myapp:$PATH"
# 永久添加(写入 ~/.zshrc)
echo 'export PATH="$HOME/myapp:$PATH"' >> ~/.zshrc
source ~/.zshrc# 临时添加
$env:PATH += ";C:\myapp"
# 永久添加
[Environment]::SetEnvironmentVariable("PATH", $env:PATH + ";C:\myapp", "User")在 Linux/Unix 系统中,所有东西都是文件:
- 普通文件 → 文件
- 目录 → 文件
- 键盘 → 文件(标准输入)
- 屏幕 → 文件(标准输出)
- 硬件设备 → 文件
# > 输出到文件(覆盖)
echo "Hello" > file.txt
# >> 输出到文件(追加)
echo "World" >> file.txt
# < 从文件输入
sort < names.txt
# 2> 错误输出
command 2> error.log
# &> 全部输出(标准+错误)
command &> all.log管道把一个命令的输出,变成另一个命令的输入。
# 基本语法
命令1 | 命令2
# 例子1: 列出文件并分页显示
ls -la | less
# 例子2: 查找包含 "error" 的日志
cat app.log | grep "error"
# 例子3: 统计文件数量
ls | wc -l
# 例子4: 复杂管道
cat access.log | grep "404" | sort | uniq -c | sort -rn | head -10
# │ │ │ │ │
# │ │ │ │ └── 取前10行
# │ │ │ └── 按数字排序
# │ │ └── 统计重复次数
# │ └── 排序
# └── 找404错误| 组合 | 用途 |
|---|---|
| `cmd | grep "text"` |
| `cmd | sort` |
| `cmd | uniq` |
| `cmd | wc -l` |
| `cmd | head -n` |
| `cmd | tail -n` |
# 先看看有哪些
find . -name "*.log"
# 确认后删除
find . -name "*.log" -delete# 把所有 .txt 改成 .bak
for f in *.txt; do mv "$f" "${f%.txt}.bak"; done# 找出大于 100MB 的文件
find . -size +100M -type f# 查找 Python 进程
ps aux | grep python
# 杀掉进程
kill -9 <PID>$ python
command not found: python解决:
- 检查是否安装:
which python - 检查 PATH:
echo $PATH - 添加到 PATH 或重新安装
$ ./script.sh
Permission denied解决:
chmod +x script.sh # 添加执行权限
./script.sh$ cd project
No such file or directory解决:
- 检查路径:
ls看看有什么 - 使用 Tab 自动补全
- 检查拼写
解决:
Ctrl + C # 终止当前命令
Ctrl + D # 退出当前 Shell
Ctrl + Z # 暂停命令(fg 恢复)备选方案:
-
使用文件管理器
- Mac: Finder
- Windows: 资源管理器
-
使用 GUI 工具
- VS Code 内置终端
- 文件操作用 VS Code 文件浏览器
-
重装 Terminal
- Mac: 重新安装 iTerm2 或 Warp
- Windows: 重装 Windows Terminal
-
使用恢复模式
- Mac: Cmd+R 启动恢复模式
- Windows: 安全模式
| 命令 | 作用 | 示例 |
|---|---|---|
ls |
列出文件 | ls -la |
cd |
切换目录 | cd ~/Documents |
pwd |
显示当前目录 | pwd |
mkdir |
创建目录 | mkdir project |
rm |
删除 | rm -rf folder |
cp |
复制 | cp file.txt backup/ |
mv |
移动/重命名 | mv old.txt new.txt |
cat |
查看文件 | cat file.txt |
grep |
搜索文本 | grep "error" log.txt |
find |
查找文件 | find . -name "*.py" |
chmod |
修改权限 | chmod +x script.sh |
ps |
查看进程 | ps aux |
kill |
杀进程 | kill -9 1234 |
- 学习 Terminal 工具安装
- 配置 Git 基础
- 探索更多命令:
man <命令>查看帮助