基础知识
| 命令 | 操作 |
|---|---|
| / | 顶级目录 |
| . | 当前目录 |
| .. | 上级目录 |
| ~ | 主目录 (Home directory) |
| sudo [任何命令] | 以超级用户权限运行命令 |
| nano [文件] | 打开终端编辑器 |
| open [文件] | 打开文件 |
| [命令] -h | 获取关于该命令的帮助 |
| man [命令] | 显示该命令的帮助手册 |
组合键快捷方式
| 命令 | 操作 |
|---|---|
| Tab | 自动补全文件和文件夹名称 |
| Ctrl + A | 跳转到当前输入行的开头 |
| Ctrl + E | 跳转到当前输入行的末尾 |
| Ctrl + U | 清除光标前的内容 |
| Ctrl + K | 清除光标后的内容 |
| Ctrl + W | 删除光标前的一个单词 |
| Ctrl + T | 交换光标前的最后两个字符 |
| Esc + T | 交换光标前的最后两个单词 |
| Ctrl + L | 清屏 |
| Ctrl + C | 强制终止当前正在运行的 Unix 程序 |
| Ctrl + D | 退出当前的 shell 会话 |
| Option + 右方向键 | 光标向后移动一个单词 |
| Option + 左方向键 | 光标向前移动一个单词 |
| Ctrl + F | 光标向前移动一个字符 |
| Ctrl + B | 光标向后移动一个字符 |
| Ctrl + Y | 粘贴由上一个命令剪切的内容 |
| Ctrl + Z | 将当前运行的进程挂起至后台 |
| Ctrl + _ | 撤销上一个命令 |
| Option + Shift + Cmd + C | 复制纯文本 |
| Shift + Cmd + V | 粘贴所选内容 |
| exit | 结束 shell 会话 |
更改目录
| 命令 | 操作 |
|---|---|
| cd | 返回主目录 |
| cd [文件夹] | 更改目录,例如 cd Documents |
| cd ~ | 返回主目录 |
| cd/ | 返回驱动器根目录 |
| cd - | 返回上一次浏览的目录或文件夹 |
| pwd | 显示当前工作目录 |
| cd .. | 返回上一级目录 |
| cd../../ | 向上返回两级目录 |
列出目录内容
| 命令 | 操作 |
|---|---|
| ls | 显示目录中的文件和子目录名称 |
| ls -C | 强制以多列格式输出列表 |
| ls -a | 列出所有条目,包括以 . 和 .. 开头的条目 |
| ls -1 | 以每行一个条目的格式输出文件列表 |
| ls -F | 在目录路径后显示 /,在可执行程序或脚本后显示 *,在符号链接后显示 @ |
| ls -S | 按大小对文件或条目进行排序 |
| ls -l | 以长格式列出。包括文件模式、所有者和组名、文件修改日期和时间、路径名等 |
| ls -l / | 从根目录开始列出文件系统,包括符号链接 |
| ls -lt | 按修改时间排序列表(最新修改在前) |
| ls -lh | 以长格式列表并显示 KB、MB 或 GB 为单位的可读文件大小 |
| ls -lo | 列出带有大小、所有者和标志的文件名 |
| ls -la | 列出详细目录内容,包括隐藏文件 |
文件大小和磁盘空间
| 命令 | 操作 |
|---|---|
| du | 列出每个子目录及其内容的使用情况 |
| du -sh [文件夹] | 以可读格式输出目录中所有文件的占用情况 |
| du -s | 为每个指定文件显示一个条目 |
| df -h | 计算系统的可用磁盘空间 |
| df -H | 以 1,000 的幂次计算可用磁盘空间 |
文件和目录管理
| 命令 | 操作 |
|---|---|
| mkdir <目录> | 创建名为 <目录> 的新文件夹 |
| mkdir -p <目录>/<目录> | 创建嵌套文件夹 |
| mkdir <目录1> <目录2> <目录3> | 同时创建多个文件夹 |
| mkdir "<目录>" | 创建名称中带有空格的文件夹 |
| rmdir <目录> | 删除文件夹(仅适用于空文件夹) |
| rm -R <目录> | 删除文件夹及其内容 |
| touch <文件> | 创建一个不带扩展名的新文件 |
| cp <文件> <目录> | 将文件复制到文件夹 |
| cp <文件> <新文件> | 将文件复制到当前文件夹 |
| cp <文件>~/<目录>/<新文件> | 将文件复制到文件夹并重命名 |
| cp -R <目录> <"新目录"> | 将文件夹复制到名称中带有空格的新目录 |
| cp -i <文件><目录> | 在覆盖文件前提示警告消息 |
| cp <文件1> <文件2> <文件3>/Users/<目录> | 将多个文件复制到文件夹 |
| ditto -V [文件夹路径][新文件夹] | 将文件夹内容复制到新文件夹。“-V”会在复制每个文件时打印一行状态信息 |
| rm <文件> | 删除文件(永久删除,请谨慎使用) |
| rm -i <文件> | 仅在确认后删除文件 |
| rm -f <文件> | 强制删除,无需确认 |
| rm <文件1> <文件2> <文件3> | 删除多个文件,无需确认 |
| mv <文件> <新文件名> | 移动/重命名 |
| mv <文件> <目录> | 将文件移动到文件夹,可能会覆盖现有文件 |
| mv -i <文件> <目录> | 使用可选的 -i 标志在覆盖文件前发出警告 |
| mv *.png ~/<目录> | 将所有 PNG 文件从当前文件夹移动到另一个文件夹 |
命令历史记录
| 命令 | 操作 |
|---|---|
| Ctrl + R | 在之前使用过的命令中进行搜索 |
| history n | 显示之前输入的命令。添加数字以限制为最近的 n 条 |
| ![值] | 执行上一个以该值开头的已输入命令 |
| !! | 执行上一个命令 |
权限
| 命令 | 操作 |
|---|---|
| ls -ld | 显示主目录的默认权限 |
| ls -ld/<目录> | 显示特定文件夹的读、写和访问权限 |
| chmod 755 <文件> | 将文件的权限更改为 755 |
| chmod -R 600 <目录> | 将文件夹(及其内容)的权限更改为 600 |
| chown <用户>:<组> <文件> | 更改文件的用户和组所有权。添加 -R 以包含文件夹内容 |
进程
| 命令 | 操作 |
|---|---|
| ps -ax | 输出当前运行的进程。其中 a 显示来自所有用户的进程,x 显示未连接到终端的进程 |
| ps -aux | 显示所有进程的 %cpu、%mem、page in、PID 和命令 |
| top | 显示当前运行进程的实时信息 |
| top -ocpu -s 5 | 按 CPU 使用率排序显示进程,每 5 秒更新一次 |
| top -o rsize | 按内存使用率排序 top |
| kill PID | 退出 ID 为 <PID> 的进程。PID 可在“活动监视器”中的一列中找到 |
网络
| 命令 | 操作 |
|---|---|
| ping <主机> | Ping 主机并显示状态 |
| whois <域名> | 输出域名的 whois 信息 |
| curl -O <url/to/file> | 通过 HTTP、HTTPS 或 FTP 下载文件 |
| ssh <用户名>@<主机> | 以 <用户名> 身份建立到 <主机> 的 SSH 连接 |
| scp <文件><用户名>@<主机>:/远程/路径 | 将 <文件> 复制到远程 <主机> |
| arp -a | 查看本地网络上的所有设备列表。它会显示所有设备的 IP 地址和 MAC 地址 |
| ifconfig en0 | 查看设备的 IP 地址和 MAC 地址 |
| traceroute [主机名] | 识别从设备到目标地址的数据包路径和跳数 |
Homebrew
| 命令 | 操作 |
|---|---|
| brew doctor | 检查 brew 是否存在潜在问题 |
| brew help | 列出有用的 homebrew formula 和 cask 命令 |
| brew list --formula | 仅列出已安装的 formula |
| brew list --cask | 仅列出已安装的 cask |
| brew outdated --formula | 搜索过时的 formula |
| brew outdated --cask | 搜索过时的 cask |
| brew pin [已安装的formula] | 固定 formula 防止其被升级 |
| brew unpin [已安装的formula] | 解除固定以升级软件包 |
| brew cleanup | 删除所有 formula 和 cask 的陈旧锁文件及过时软件包 |
环境变量或路径
| 命令 | 操作 |
|---|---|
| printenv | 显示当前设置的环境变量列表。同时显示正在使用的 shell |
| $echo | 通知终端打印内容并显示出来 |
| echo $PATH | 检查 PATH 变量的值,该变量存储了包含可执行文件的目录列表 |
| echo $PATH >path.txt | 将路径目录导出到文本文件 |
| export PATH=$PATH:绝对/路径/到/程序/ | 仅在当前会话中通过终端执行程序 |
搜索
| 命令 | 操作 |
|---|---|
| find <目录> -name <"文件"> | 查找 <目录> 内所有名为 <文件> 的内容。使用通配符 (*) 搜索文件名的一部分 |
| grep "<文本>" <文件> | 输出 <文件> 中所有出现的 <文本>(添加 -i 可忽略大小写) |
| grep -rl "<文本>" <目录> | 搜索 <目录> 内所有包含 <文本> 的文件 |
输出
| 命令 | 操作 |
|---|---|
| cat <文件> | 输出 <文件> 的内容 |
| less <文件> | 使用 less 命令输出 <文件> 内容,支持分页等功能 |
| head <文件> | 输出 <文件> 的前 10 行 |
| <命令> > > <文件> | 将 <命令> 的输出追加到 <文件> |
| <命令> > <文件> | 将 <命令> 的输出重定向到 <文件> |
0条评论