1. MacOS终端命令基础入门
作为一名长期使用MacOS的开发者和系统管理员,我深刻体会到终端命令在日常工作中的重要性。与图形界面相比,命令行操作往往更加高效和强大。MacOS基于Unix系统,继承了丰富的命令行工具集,掌握这些命令能极大提升工作效率。
终端(Terminal)是MacOS内置的命令行界面,通过它可以直接与操作系统内核交互。打开终端的方式很简单:在"应用程序"文件夹中找到"实用工具",然后双击"终端"图标即可。更快捷的方式是使用Spotlight搜索(Command+空格键),输入"Terminal"后回车。
提示:我习惯将终端固定在Dock栏,这样随时可以快速访问。右键点击Dock中的终端图标,选择"选项"→"在Dock中保留"即可。
初次使用终端时,你会看到一个简单的界面,通常显示为黑色背景和白色文字(当然,这些都可以自定义)。默认提示符显示当前用户名、主机名和当前工作目录。例如:
yourusername@MacBook-Pro ~ %这里的"~"符号代表当前用户的主目录(/Users/yourusername)。
2. 文件与目录操作命令
2.1 基础目录操作
在MacOS终端中,最常用的目录操作命令包括:
pwd(Print Working Directory):显示当前所在目录的完整路径
% pwd /Users/yourusername/Documentscd(Change Directory):切换目录
cd ~:返回用户主目录cd ..:返回上一级目录cd -:返回上一个访问的目录cd /path/to/directory:切换到指定目录
ls(List):列出目录内容
ls:简单列出文件和目录ls -l:详细列表(显示权限、所有者、大小等)ls -a:显示所有文件(包括隐藏文件)ls -lh:人类可读的文件大小(KB/MB/GB)
mkdir(Make Directory):创建新目录
% mkdir new_folder % mkdir -p path/to/nested/folders # 创建多级目录rmdir(Remove Directory):删除空目录
% rmdir empty_folder
2.2 文件操作命令
touch:创建空文件或更新文件时间戳
% touch new_file.txtcp(Copy):复制文件或目录
% cp file1.txt file2.txt # 复制文件 % cp -r dir1 dir2 # 递归复制目录mv(Move):移动或重命名文件/目录
% mv oldname.txt newname.txt # 重命名 % mv file.txt /target/directory/ # 移动文件rm(Remove):删除文件或目录
% rm file.txt # 删除文件 % rm -r directory # 递归删除目录及其内容
警告:
rm -rf命令极其危险,它会强制递归删除而不提示确认。我曾经不小心用这个命令删除了整个项目目录,所以现在使用前会再三确认路径。
- find:查找文件
% find ~ -name "*.txt" # 在主目录查找所有txt文件 % find / -type f -size +100M # 查找大于100MB的文件
3. 系统信息与进程管理
3.1 系统信息命令
uname:显示系统信息
% uname -a # 显示所有系统信息 Darwin MacBook-Pro.local 22.1.0 Darwin Kernel Version 22.1.0...sw_vers:显示MacOS版本信息
% sw_vers ProductName: macOS ProductVersion: 13.2.1 BuildVersion: 22D68system_profiler:获取详细系统配置
% system_profiler SPHardwareDataType # 硬件概览df(Disk Free):显示磁盘空间使用情况
% df -h # 人类可读格式 Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s1 466Gi 300Gi 161Gi 66% 2904864 488254576 1% /du(Disk Usage):显示目录或文件磁盘使用情况
% du -sh ~/Downloads # 显示Downloads目录总大小 4.7G /Users/yourusername/Downloads
3.2 进程管理命令
ps(Process Status):显示当前进程
% ps aux # 显示所有运行中的进程top:动态显示系统进程和资源使用情况
% top -o cpu # 按CPU使用率排序kill:终止进程
% kill -9 PID # 强制终止指定PID的进程lsof(List Open Files):列出被打开的文件和进程
% lsof -i :8080 # 查看哪个进程在使用8080端口htop:更友好的进程查看器(需安装)
% brew install htop % htop
4. 网络相关命令
4.1 网络配置与诊断
ifconfig:查看和配置网络接口
% ifconfig en0 # 查看en0接口(通常是Wi-Fi)netstat:显示网络连接、路由表等信息
% netstat -an | grep LISTEN # 查看监听端口ping:测试网络连通性
% ping google.com PING google.com (142.250.190.46): 56 data bytes 64 bytes from 142.250.190.46: icmp_seq=0 ttl=117 time=12.345 mstraceroute:追踪数据包路径
% traceroute google.comdig/nslookup:DNS查询工具
% dig google.com % nslookup google.com
4.2 网络文件传输
curl:强大的URL传输工具
% curl -O https://example.com/file.zip # 下载文件 % curl -I https://example.com # 仅显示HTTP头wget:另一个下载工具(MacOS默认不包含,需安装)
% brew install wget % wget https://example.com/file.zipscp(Secure Copy):安全文件传输
% scp file.txt user@remote:/path/to/destination # 上传 % scp user@remote:/path/to/file.txt . # 下载rsync:高效文件同步工具
% rsync -avz ~/Documents/ user@remote:/backup/Documents/
5. 文本处理与编辑
5.1 基础文本处理
cat(Concatenate):显示文件内容
% cat file.txtless/more:分页查看文件内容
% less long_file.txt # 支持搜索和导航head/tail:查看文件开头/结尾
% head -n 10 file.txt # 显示前10行 % tail -f logfile.log # 实时跟踪日志文件grep:文本搜索
% grep "error" logfile.log # 搜索包含"error"的行 % grep -r "function_name" /path/to/code # 递归搜索awk:强大的文本处理工具
% awk '{print $1}' file.txt # 打印每行第一个字段
5.2 高级文本处理
sed(Stream Editor):流编辑器
% sed 's/old/new/g' file.txt # 替换文本sort:排序文本
% sort file.txt # 按字母顺序排序 % sort -n numbers.txt # 按数字排序uniq:去除重复行
% sort file.txt | uniq # 先排序再去重wc(Word Count):统计行数、单词数、字符数
% wc -l file.txt # 统计行数diff:比较文件差异
% diff file1.txt file2.txt
6. 权限与用户管理
6.1 文件权限
chmod(Change Mode):修改文件权限
% chmod 755 script.sh # 设置权限为rwxr-xr-x % chmod +x script.sh # 添加可执行权限chown(Change Owner):修改文件所有者
% sudo chown user:group file.txtchgrp(Change Group):修改文件所属组
% sudo chgrp staff file.txt
6.2 用户与组管理
whoami:显示当前用户名
% whoami yourusernameid:显示用户和组信息
% id uid=501(yourusername) gid=20(staff) groups=20(staff),...passwd:修改密码
% passwdsudo:以超级用户权限执行命令
% sudo command_requires_rootsu(Switch User):切换用户
% su - otheruser
7. 包管理与开发工具
7.1 Homebrew包管理
Homebrew是MacOS上最受欢迎的包管理器,安装方法:
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"常用命令:
% brew update # 更新Homebrew本身 % brew install package_name # 安装软件包 % brew upgrade package_name # 升级软件包 % brew list # 列出已安装的包 % brew info package_name # 显示包信息 % brew doctor # 诊断问题7.2 开发相关命令
git:版本控制
% git clone https://github.com/user/repo.git % git status % git commit -am "message"ssh:安全远程登录
% ssh user@remote_host % ssh-keygen # 生成SSH密钥make:构建工具
% make % make installgcc/clang:C编译器
% gcc -o program program.cpython:Python解释器
% python3 script.py
8. 实用技巧与高级命令
8.1 命令行效率技巧
命令历史:
history:查看命令历史!n:执行历史记录中第n条命令!!:重复上一条命令!$:上一条命令的最后一个参数
Tab补全:输入部分命令或文件名后按Tab键自动补全
别名(Alias):创建命令快捷方式
% alias ll='ls -lah' % unalias ll # 删除别名重定向:
command > file:输出重定向到文件(覆盖)command >> file:输出追加到文件command < file:从文件读取输入
管道(Pipe):
% command1 | command2 # 将command1的输出作为command2的输入
8.2 高级系统命令
crontab:定时任务
% crontab -e # 编辑定时任务launchctl:管理启动项
% launchctl list # 列出所有启动项diskutil:磁盘工具
% diskutil list # 列出所有磁盘 % diskutil unmount /dev/disk2s1 # 卸载卷tmutil:Time Machine工具
% tmutil startbackup # 手动启动Time Machine备份screencapture:命令行截图
% screencapture -iW ~/Desktop/screen.png # 交互式窗口截图
9. 终端自定义与配置
9.1 终端外观设置
更改配色方案:
- 打开终端偏好设置(Command+,)
- 在"描述文件"选项卡中选择或创建新主题
修改提示符(PS1):
% export PS1="\u@\h \w \$ " # 临时修改永久修改需要将上述命令添加到~/.zshrc(或~/.bash_profile)文件中
9.2 Shell配置文件
~/.zshrc(或~/.bash_profile):每次启动终端时执行的脚本
% nano ~/.zshrc # 编辑配置文件常用配置示例:
# 设置PATH export PATH="/usr/local/bin:$PATH" # 设置别名 alias ll='ls -lah' # 设置默认编辑器 export EDITOR=nano使配置生效:
% source ~/.zshrc
9.3 第三方终端工具
iTerm2:功能更强大的终端替代品
- 分屏、搜索、自动完成等功能
- 官网:https://iterm2.com/
Oh My Zsh:Zsh配置框架
- 主题、插件和自动补全功能
- 安装:
% sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
tmux:终端复用器
- 允许在单个窗口中创建多个终端会话
- 安装:
% brew install tmux
10. 常见问题与解决方案
10.1 命令找不到问题
command not found:
- 检查命令拼写是否正确
- 检查命令是否已安装(
which command_name) - 检查PATH环境变量是否包含命令所在目录
解决方案:
% echo $PATH # 查看PATH变量 % export PATH="/path/to/bin:$PATH" # 临时添加路径
10.2 权限问题
Permission denied:
- 使用
sudo执行需要root权限的命令 - 检查文件权限(
ls -l) - 修改权限(
chmod)或所有者(chown)
- 使用
示例:
% sudo chown -R $(whoami) /usr/local/lib
10.3 进程占用端口
查找占用端口的进程:
% lsof -i :8080终止进程:
% kill -9 PID
10.4 磁盘空间不足
查找大文件:
% sudo du -h / | grep '[0-9\.]\+G'清理缓存:
% sudo rm -rf ~/Library/Caches/*
10.5 网络连接问题
刷新DNS缓存:
% sudo dscacheutil -flushcache % sudo killall -HUP mDNSResponder重置网络接口:
% sudo ifconfig en0 down % sudo ifconfig en0 up
经过多年的MacOS使用经验,我发现掌握这些终端命令不仅能提高工作效率,还能在系统出现问题时快速诊断和解决。建议新手从基础命令开始,逐步积累,最终你会发现自己越来越离不开命令行工具的强大功能。