直接运行 composer global show 即可列出所有全局安装的包及版本号和描述,它不依赖当前目录位置,读取的是全局配置;输出为空说明尚未安装任何全局包,需先执行 composer global require 安装;若提示“Command 'global' not found”,则是 Composer 版本过低。

直接运行 composer global show 就能列出所有全局包,但多数人卡在“命令找不到”或“列表为空”——问题通常不在命令本身,而在路径、作用域或安装方式。
为什么 composer global show 没输出或报错
最常见原因是没在正确的上下文中执行:
- 当前目录不是项目根目录?没关系——
composer global show不依赖composer.json,它读的是全局配置,任何路径下都能用 - 输出为空?先确认是否真装过全局包:
composer global require laravel/installer试装一个再查 - 提示 “Command 'global' not found”?说明你用的是极老版本 Composer(composer self-update
- Windows 用户遇到权限错误?别用 PowerShell 以管理员身份乱跑,改用普通 CMD 或 Git Bash
composer global show 的关键参数怎么选
默认输出包含描述和依赖树,但多数时候你只想要干净的包名或版本号:
- 只看包名:
composer global show --name-only(适合脚本解析或快速扫一眼) - 只看「你亲手装的」,排除自动拉进来的依赖:
composer global show --direct - 要包名 + 版本两列对齐表格:
composer global show --format=table - 想 grep 查某个包是否存在:
composer global show --name-only | grep "php-cs-fixer" - 注意:
--installed对全局命令无效,因为global show默认就只显示已安装的
查到了包,但终端里敲命令还是 command not found
这跟 composer global show 无关,是 PATH 没配对:
- 先定位真实 bin 路径:
composer config --global home→ 得到类似/home/you/.composer(Linux/macOS)或C:\Users\You\AppData\Roaming\Composer(Windows) - 全局命令实际在
[home]/vendor/bin,不是[home]/bin—— 这个细节很多人搞错 - Linux/macOS:把
export PATH="$HOME/.composer/vendor/bin:$PATH"加进~/.bashrc或~/.zshrc - Windows:把
%APPDATA%\Composer\Vendor\bin加进系统环境变量 PATH(注意是Vendor\bin,不是vendor\bin,大小写敏感) - 改完 PATH 后新开终端,再运行
which php-cs-fixer(Linux/macOS)或where php-cs-fixer(Windows)验证
别把 composer show 和 composer global show 混着用
这是最容易反复踩的坑:
-
composer show laravel/installer→ 永远查不到,因为它只查当前项目vendor/下的包 -
composer global show laravel/installer→ 才是正解,且会显示版本、描述、依赖等完整信息 -
composer show --tree是项目依赖树;composer global show --tree会报错——全局命令不支持--tree - 想确认某个包是否被某个全局工具依赖?得进它的源码目录(
$(composer config --global home)/vendor/laravel/installer)手动看composer.json
真正麻烦的不是命令记不住,而是路径没加对、作用域分不清、或者 Windows 下环境变量填了错的大小写——这些地方一错,global show 显示正常,命令却永远调用不了。


















