Yog*_*ity 1 osx zsh executable
我在看书,Learning Unix for OS X by Dave Taylor。它说:
要快速查看系统上的所有二进制可执行文件(Unix 程序),
打开终端,按住
Shift键,然后按Esc-?,或按Control-X后接Shift-1(Shift-1用于获得感叹号)。但是,在终端中显示命令之前,首先会提示(要求)您做出选择:
Run Code Online (Sandbox Code Playgroud)$ Display all 1453 possibilities? (y or n)如果您按下
n键盘上的键,您将被带回命令提示符,并且不会发生任何其他事情。但是,如果您按下该y键,您将在终端窗口中看到一个多列的 Unix 命令列表。
但是,问题是,当我按住Shift键并按下时Esc-?什么也没有发生。按下Control-X后跟Shift-1. 我究竟做错了什么?在使用此功能之前,是否需要启用任何设置?我在 Mac El Capitan 上使用 iTerm2。它也不适用于股票终端。任何帮助将非常感激。谢谢你。
书中的说明是针对 bash 的。Zsh 是一个不同的程序,具有不同的键绑定。
在 zsh 中,您可以使用以下命令查看所有命令(外部、内置、函数、别名甚至关键字...)的列表:
type -m '*'
Run Code Online (Sandbox Code Playgroud)
仅就他们的名字而言:
whence -wm '*' | sed 's/:[^:]*$//'
Run Code Online (Sandbox Code Playgroud)
或者仅用于外部命令的名称:
print -rlo -- $commands:t | less
Run Code Online (Sandbox Code Playgroud)
$commands是一个包含所有外部命令的数组。该历史修改 :t截断命令路径的目录部分(仅保持吨AIL)。print -rlo到打印出来[R AW字母Ø刻申,每大号国家统计局。
更长,但不那么神秘:
for p in "$path[@]"; do (cd ${p:-.} && ls); done | sort -u | less
Run Code Online (Sandbox Code Playgroud)
这可以调整为在任何 sh 风格的 shell 中工作:
(IFS=:; for p in $PATH; do (cd ${p:-.} && ls); done) | sort -u | less
Run Code Online (Sandbox Code Playgroud)
(我在这里列出的所有命令都假设命令路径中没有“不寻常”的字符。)
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |