终端是什么
终端(Terminal)就是一个纯文字界面,你通过输入命令来控制电脑,而不是点鼠标。听起来很古老,但实际上是开发者最高效的工具之一。
打开 WSL(Ubuntu)或者 macOS 的 Terminal,你会看到一行提示符,大概长这样:
transcendence@ubuntu:~/projects$ ← 在这里输入命令
格式是 用户名@主机名:当前目录$。$ 后面就是你输入命令的地方。
~ 是你的「家目录」的缩写,相当于 Windows 的 C:\Users\你的用户名\。你的个人文件、配置文件都默认放在这里。
文件系统导航
最常用的四个导航命令:
pwd — 你在哪里
# Print Working Directory,显示当前所在路径
$ pwd
/home/transcendence/projects
ls — 查看目录内容
# 列出当前目录的文件和文件夹
$ ls
# 显示详细信息(权限、大小、修改时间)
$ ls -l
# 包含隐藏文件(以 . 开头的文件)
$ ls -la
# 查看某个特定目录
$ ls ~/projects
cd — 切换目录
# 进入某个目录
$ cd projects
# 回到上一级目录
$ cd ..
# 直接回到家目录
$ cd ~
# 或者直接
$ cd
# 用绝对路径跳转
$ cd /home/transcendence/projects/myapp
# 回到上一个待过的目录(很实用)
$ cd -
Tab 补全是神器。 输入路径或命令的前几个字母,按 Tab 键自动补全。输入 cd pro 再按 Tab,如果只有一个匹配就会自动补全,有多个就再按一次 Tab 显示所有可能的选项。这能省很多打字时间。
文件与目录操作
创建
# 创建空文件
$ touch readme.md
# 创建目录
$ mkdir my-project
# 创建多级目录(-p 表示递归创建,不报错)
$ mkdir -p my-project/src/components
复制、移动、删除
# 复制文件
$ cp file.txt file_backup.txt
# 复制整个目录(-r 表示递归)
$ cp -r my-project my-project-backup
# 移动文件 / 重命名
$ mv old-name.txt new-name.txt
$ mv file.txt ~/projects/
# 删除文件
$ rm file.txt
# 删除目录(-r 递归,-f 强制不提示)
$ rm -rf my-old-project
rm -rf 是危险命令。 Linux 没有回收站,删了就是真删了。rm -rf / 这种写法会删除整个系统(已有保护机制,但别试)。使用前确认路径正确。
查看与编辑文件
查看文件内容
# 直接输出全部内容
$ cat file.txt
# 分页查看(空格翻页,q 退出)
$ less file.txt
# 只看头 10 行
$ head file.txt
# 只看尾 20 行
$ tail -n 20 file.txt
# 实时追踪文件新增内容(看日志时很有用)
$ tail -f app.log
在终端里编辑文件
有时候需要快速编辑一个配置文件,不想开 VS Code,可以用 nano——它是 Linux 自带的、最容易上手的文本编辑器:
$ nano ~/.bashrc
用方向键移动光标,直接编辑。底部会显示快捷键提示:^X 是 Ctrl+X 退出,退出时按 Y 保存,N 不保存。
你可能听说过 vim,它很强大,但学习曲线陡。如果打开了 vim 不知道怎么退出:按 Esc,然后输入 :q!(不保存退出)或 :wq(保存退出)。
权限与 sudo
Linux 里每个文件和命令都有权限控制,普通用户不能随便修改系统文件。
sudo(Super User Do)让你以管理员(root)权限执行单条命令:
# 以管理员权限安装软件
$ sudo apt install nodejs
# 以管理员权限编辑系统配置文件
$ sudo nano /etc/hosts
执行 sudo 命令时会要求输入你的用户密码(就是设置 WSL 时设的那个)。
记住一个原则:只在必要时用 sudo。安装系统软件需要,但安装 npm 包、运行你自己的脚本通常不需要。乱用 sudo 可能搞乱文件权限。
软件包管理 apt
在 Ubuntu(WSL)里,apt 是安装软件的主要工具,相当于一个命令行版的「应用商店」:
# 更新软件包列表(先跑这个,再安装)
$ sudo apt update
# 安装软件
$ sudo apt install curl wget git build-essential
# 升级所有已安装的软件
$ sudo apt upgrade -y
# 卸载软件
$ sudo apt remove package-name
# 搜索软件
$ apt search keyword
新开 WSL 之后养成习惯先跑 sudo apt update && sudo apt upgrade -y,保持系统是最新的。
环境变量详解
环境变量是很多新手觉得神秘的东西,但其实理解了就很简单。
它是什么
环境变量就是系统里存储的一些「全局配置信息」,用键值对的形式保存,所有程序都可以读取。
你可以把它理解成贴在墙上的便签纸:系统和程序运行的时候会来读这些便签,来决定某些行为。
# 查看所有环境变量
$ env
# 查看某一个环境变量的值
$ echo $HOME
/home/transcendence
$ echo $USER
transcendence
最重要的环境变量:PATH
PATH 是最关键的环境变量。它告诉 Shell:当你输入一个命令时,去哪些目录里找这个命令的可执行文件。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/transcendence/.local/bin
这一串目录用 : 分隔。当你输入 python3 时,Shell 会按顺序在这些目录里找名字是 python3 的可执行文件,找到就运行,找不到就报「command not found」。
所以「将某个工具加入 PATH」的意思就是:把那个工具的安装目录加进这个列表,这样在任何地方都能直接运行它,而不用每次都写完整路径。
如何设置环境变量
临时设置(当前终端会话有效,关闭终端就消失)
$ export MY_API_KEY="sk-xxxxxxxx"
$ echo $MY_API_KEY
sk-xxxxxxxx
永久设置(写入配置文件)
把 export 语句写进 ~/.bashrc(bash 用户)或 ~/.zshrc(zsh 用户):
# 打开配置文件
$ nano ~/.bashrc
# 在文件末尾添加(比如把 ~/.local/bin 加入 PATH)
export PATH="$HOME/.local/bin:$PATH"
# 或者存储一个 API Key(注意:这种方式不安全,API Key 最好用其他方法管理)
export ANTHROPIC_API_KEY="sk-ant-xxxxxxxx"
保存文件后,需要让当前终端重新加载配置:
# 重新加载 .bashrc
$ source ~/.bashrc
# 或者重启终端
查看某个命令的实际路径
# which 命令告诉你某个命令在哪里
$ which python3
/usr/bin/python3
$ which node
/usr/local/bin/node
实战场景: 你安装了某个工具,但运行时报「command not found」。通常原因是它的安装目录没有加入 PATH。用 which 工具名 确认安装位置,再把那个目录加入 PATH 就好了。
效率快捷键
这些快捷键能让你在终端里快很多:
| 快捷键 | 作用 |
|---|---|
Tab |
自动补全命令或路径 |
↑ / ↓ |
翻历史命令 |
Ctrl + C |
强制终止当前运行的程序 |
Ctrl + L |
清屏(等同于 clear) |
Ctrl + A |
光标跳到行首 |
Ctrl + E |
光标跳到行尾 |
Ctrl + R |
搜索历史命令 |
Ctrl + D |
退出当前终端 / Shell |
!! |
重复上一条命令(比如 sudo !!) |
Ctrl + C 是最重要的。 程序跑飞了、卡住了、输出停不下来——第一反应就是 Ctrl+C。它不会删除任何文件,只是终止当前进程。
下一步
现在你能在 Linux 终端里自由地导航、操作文件、理解环境变量了。接下来要安装 AI Coding 最常用的两个语言运行时:Node.js 和 Python。