终端快速入门

终端快速入门

为什么要学习终端

终端(Terminal)是开发者最重要的工具之一。掌握终端操作可以:

  • 大幅提升工作效率
  • 自动化重复任务
  • 更好地理解系统运作
  • 使用强大的命令行工具

基础导航命令

目录操作

# 查看当前目录
pwd

# 列出文件和目录
ls          # 基础列表
ls -la      # 显示所有文件(包括隐藏)的详细信息
ls -lh      # 人类可读的文件大小

# 切换目录
cd /path/to/directory   # 进入指定目录
cd ..                   # 返回上级目录
cd ~                    # 进入用户主目录
cd -                    # 返回上一个目录

文件操作

# 创建文件和目录
touch file.txt          # 创建空文件
mkdir directory         # 创建目录
mkdir -p path/to/dir    # 创建多级目录

# 复制文件和目录
cp source.txt dest.txt      # 复制文件
cp -r source/ dest/         # 递归复制目录

# 移动和重命名
mv old.txt new.txt          # 重命名文件
mv file.txt /path/to/       # 移动文件

# 删除文件和目录
rm file.txt                 # 删除文件
rm -r directory/            # 递归删除目录
rm -rf directory/           # 强制递归删除(慎用)

文件内容查看

# 查看文件内容
cat file.txt               # 显示整个文件
less file.txt              # 分页查看(q 退出)
head -n 10 file.txt        # 显示前 10 行
tail -n 10 file.txt        # 显示后 10 行
tail -f log.txt            # 实时监控文件变化

# 搜索文件内容
grep "pattern" file.txt           # 搜索包含 pattern 的行
grep -r "pattern" directory/      # 递归搜索目录
grep -i "pattern" file.txt        # 忽略大小写
grep -n "pattern" file.txt        # 显示行号

权限管理

# 查看权限
ls -l file.txt

# 修改权限
chmod 755 script.sh         # 设置权限(rwxr-xr-x)
chmod +x script.sh          # 添加执行权限
chmod -w file.txt           # 移除写权限

# 修改所有者
chown user:group file.txt   # 改变文件所有者

进程管理

# 查看进程
ps aux                      # 显示所有进程
ps aux | grep node          # 查找特定进程
top                         # 实时进程监控
htop                        # 更好的进程监控(需安装)

# 管理进程
kill PID                    # 终止进程
kill -9 PID                 # 强制终止进程
killall process_name        # 终止所有同名进程

# 后台任务
command &                   # 在后台运行命令
jobs                        # 查看后台任务
fg %1                       # 将任务调到前台
bg %1                       # 将任务放到后台

网络操作

# 网络请求
curl https://api.example.com        # GET 请求
curl -X POST -d "data" url          # POST 请求
wget https://example.com/file.zip   # 下载文件

# 网络诊断
ping google.com                      # 测试连接
traceroute google.com                # 追踪路由
netstat -tuln                        # 查看端口占用
lsof -i :3000                        # 查看特定端口

环境变量

# 查看环境变量
echo $PATH                  # 显示 PATH 变量
env                         # 显示所有环境变量
printenv                    # 同上

# 设置环境变量
export VAR_NAME=value       # 设置临时环境变量
echo 'export VAR=value' >> ~/.bashrc   # 永久设置(bash)
echo 'export VAR=value' >> ~/.zshrc    # 永久设置(zsh)
source ~/.bashrc            # 重新加载配置

常用快捷键

光标移动

  • Ctrl + A - 移到行首
  • Ctrl + E - 移到行尾
  • Alt + ←/→ - 按单词移动
  • Ctrl + U - 删除到行首
  • Ctrl + K - 删除到行尾
  • Ctrl + W - 删除前一个单词

历史记录

  • ↑/↓ - 浏览历史命令
  • Ctrl + R - 搜索历史命令
  • !! - 执行上一条命令
  • !$ - 上一条命令的最后一个参数
  • history - 显示命令历史

进程控制

  • Ctrl + C - 终止当前进程
  • Ctrl + Z - 暂停当前进程
  • Ctrl + D - 退出终端/EOF
  • Ctrl + L - 清屏(同 clear)

管道和重定向

# 管道(将输出作为下一个命令的输入)
ls -la | grep ".txt"        # 列出所有 txt 文件
cat file.txt | wc -l       # 统计行数
ps aux | grep node | awk '{print $2}'  # 获取进程 ID

# 重定向
command > output.txt        # 输出到文件(覆盖)
command >> output.txt       # 输出到文件(追加)
command 2> error.txt        # 错误输出到文件
command &> all.txt          # 所有输出到文件
command < input.txt         # 从文件读取输入

实用技巧

命令别名

# 创建别名
alias ll='ls -la'
alias gs='git status'
alias dc='docker-compose'

# 永久保存别名
echo "alias ll='ls -la'" >> ~/.bashrc

批量操作

# 批量重命名
for file in *.txt; do mv "$file" "${file%.txt}.md"; done

# 查找并执行
find . -name "*.log" -exec rm {} \;
find . -type f -name "*.js" | xargs grep "TODO"

# 批量替换
sed -i 's/old/new/g' file.txt              # 文件内替换
find . -name "*.txt" -exec sed -i 's/old/new/g' {} \;

SSH 连接

# 基础连接
ssh user@hostname
ssh -p 2222 user@hostname   # 指定端口

# SSH 密钥
ssh-keygen -t rsa -b 4096   # 生成密钥对
ssh-copy-id user@hostname   # 复制公钥到服务器

推荐工具

Shell 增强

  • Oh My Zsh - Zsh 配置框架
  • Fish - 友好的交互式 Shell
  • Starship - 跨 Shell 的提示符

终端工具

  • tmux - 终端复用器
  • fzf - 模糊查找工具
  • ripgrep (rg) - 更快的 grep
  • bat - 更好的 cat
  • exa - 更好的 ls
  • htop - 更好的 top

开发工具

  • git - 版本控制
  • docker - 容器化
  • nvm - Node 版本管理
  • pyenv - Python 版本管理

学习资源

总结

终端是开发者的利器,掌握基础命令只是开始。随着使用的深入,你会发现终端的强大之处。建议:

  1. 从基础开始 - 先掌握导航和文件操作
  2. 多加练习 - 日常工作中尽量使用终端
  3. 学习脚本 - 编写 Shell 脚本自动化任务
  4. 定制环境 - 配置适合自己的终端环境
  5. 持续学习 - 探索新工具和技巧

记住:终端的学习曲线可能较陡,但投入的时间会获得巨大回报。