MacOS终端命令大全:从入门到高效使用
1. MacOS终端命令基础入门作为一名长期使用MacOS的开发者和系统管理员我深刻体会到终端命令在日常工作中的重要性。与图形界面相比命令行操作往往更加高效和强大。MacOS基于Unix系统继承了丰富的命令行工具集掌握这些命令能极大提升工作效率。终端Terminal是MacOS内置的命令行界面通过它可以直接与操作系统内核交互。打开终端的方式很简单在应用程序文件夹中找到实用工具然后双击终端图标即可。更快捷的方式是使用Spotlight搜索Command空格键输入Terminal后回车。提示我习惯将终端固定在Dock栏这样随时可以快速访问。右键点击Dock中的终端图标选择选项→在Dock中保留即可。初次使用终端时你会看到一个简单的界面通常显示为黑色背景和白色文字当然这些都可以自定义。默认提示符显示当前用户名、主机名和当前工作目录。例如yourusernameMacBook-Pro ~ %这里的~符号代表当前用户的主目录/Users/yourusername。2. 文件与目录操作命令2.1 基础目录操作在MacOS终端中最常用的目录操作命令包括pwdPrint Working Directory显示当前所在目录的完整路径% pwd /Users/yourusername/DocumentscdChange Directory切换目录cd ~返回用户主目录cd ..返回上一级目录cd -返回上一个访问的目录cd /path/to/directory切换到指定目录lsList列出目录内容ls简单列出文件和目录ls -l详细列表显示权限、所有者、大小等ls -a显示所有文件包括隐藏文件ls -lh人类可读的文件大小KB/MB/GBmkdirMake Directory创建新目录% mkdir new_folder % mkdir -p path/to/nested/folders # 创建多级目录rmdirRemove Directory删除空目录% rmdir empty_folder2.2 文件操作命令touch创建空文件或更新文件时间戳% touch new_file.txtcpCopy复制文件或目录% cp file1.txt file2.txt # 复制文件 % cp -r dir1 dir2 # 递归复制目录mvMove移动或重命名文件/目录% mv oldname.txt newname.txt # 重命名 % mv file.txt /target/directory/ # 移动文件rmRemove删除文件或目录% 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 # 硬件概览dfDisk Free显示磁盘空间使用情况% df -h # 人类可读格式 Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s1 466Gi 300Gi 161Gi 66% 2904864 488254576 1% /duDisk Usage显示目录或文件磁盘使用情况% du -sh ~/Downloads # 显示Downloads目录总大小 4.7G /Users/yourusername/Downloads3.2 进程管理命令psProcess Status显示当前进程% ps aux # 显示所有运行中的进程top动态显示系统进程和资源使用情况% top -o cpu # 按CPU使用率排序kill终止进程% kill -9 PID # 强制终止指定PID的进程lsofList Open Files列出被打开的文件和进程% lsof -i :8080 # 查看哪个进程在使用8080端口htop更友好的进程查看器需安装% brew install htop % htop4. 网络相关命令4.1 网络配置与诊断ifconfig查看和配置网络接口% ifconfig en0 # 查看en0接口通常是Wi-Finetstat显示网络连接、路由表等信息% 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_seq0 ttl117 time12.345 mstraceroute追踪数据包路径% traceroute google.comdig/nslookupDNS查询工具% dig google.com % nslookup google.com4.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.zipscpSecure Copy安全文件传输% scp file.txt userremote:/path/to/destination # 上传 % scp userremote:/path/to/file.txt . # 下载rsync高效文件同步工具% rsync -avz ~/Documents/ userremote:/backup/Documents/5. 文本处理与编辑5.1 基础文本处理catConcatenate显示文件内容% 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 高级文本处理sedStream Editor流编辑器% sed s/old/new/g file.txt # 替换文本sort排序文本% sort file.txt # 按字母顺序排序 % sort -n numbers.txt # 按数字排序uniq去除重复行% sort file.txt | uniq # 先排序再去重wcWord Count统计行数、单词数、字符数% wc -l file.txt # 统计行数diff比较文件差异% diff file1.txt file2.txt6. 权限与用户管理6.1 文件权限chmodChange Mode修改文件权限% chmod 755 script.sh # 设置权限为rwxr-xr-x % chmod x script.sh # 添加可执行权限chownChange Owner修改文件所有者% sudo chown user:group file.txtchgrpChange Group修改文件所属组% sudo chgrp staff file.txt6.2 用户与组管理whoami显示当前用户名% whoami yourusernameid显示用户和组信息% id uid501(yourusername) gid20(staff) groups20(staff),...passwd修改密码% passwdsudo以超级用户权限执行命令% sudo command_requires_rootsuSwitch User切换用户% su - otheruser7. 包管理与开发工具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 messagessh安全远程登录% ssh userremote_host % ssh-keygen # 生成SSH密钥make构建工具% make % make installgcc/clangC编译器% gcc -o program program.cpythonPython解释器% python3 script.py8. 实用技巧与高级命令8.1 命令行效率技巧命令历史history查看命令历史!n执行历史记录中第n条命令!!重复上一条命令!$上一条命令的最后一个参数Tab补全输入部分命令或文件名后按Tab键自动补全别名Alias创建命令快捷方式% alias llls -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 # 卸载卷tmutilTime 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 llls -lah # 设置默认编辑器 export EDITORnano使配置生效% source ~/.zshrc9.3 第三方终端工具iTerm2功能更强大的终端替代品分屏、搜索、自动完成等功能官网https://iterm2.com/Oh My ZshZsh配置框架主题、插件和自动补全功能安装% sh -c $(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)tmux终端复用器允许在单个窗口中创建多个终端会话安装% brew install tmux10. 常见问题与解决方案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/lib10.3 进程占用端口查找占用端口的进程% lsof -i :8080终止进程% kill -9 PID10.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使用经验我发现掌握这些终端命令不仅能提高工作效率还能在系统出现问题时快速诊断和解决。建议新手从基础命令开始逐步积累最终你会发现自己越来越离不开命令行工具的强大功能。