我正在嘗試在Mac中設置一系列開發項目。我必須運行各種工具,例如python,ruby,scala,groovy等。 要查看工具是否可用,我使用
之類的選項 ruby --version。
相反,我想通過一個命令查看Mac終端中可用的所有工具列表。它的命令/選項是什麼?
我正在嘗試在Mac中設置一系列開發項目。我必須運行各種工具,例如python,ruby,scala,groovy等。 要查看工具是否可用,我使用
之類的選項 ruby --version。
相反,我想通過一個命令查看Mac終端中可用的所有工具列表。它的命令/選項是什麼?
最簡單的方法是打開終端,然後按兩次TAB鍵。系統將詢問您是否要查看所有可能性-回答“ y”,您將獲得完整列表。
請參閱此U&L Q&A的答案,標題為: 列出外殼程序知道的所有命令 。
我個人最喜歡的是利用 compgen
,因為這是當您在終端中並按下 tab> kbd時用於構建所有製表符完成功能的工具系列的一部分> + tab kbd>兩次。
$ compgen -c
$ compgen -c |尾巴
深度複製
kube-controller-manager
信息人
李斯特氏
等
gen-apidocs
kube-apiserver
Kubectl
kubebuilder
轉換代
順便說一句,如果您想知道這些可執行文件之一在硬盤上的哪個位置,請使用 type -a <cmd>
來找到它:
$ type-一個ansible
ansible別名為“ ANSIBLE_CONFIG =〜/ .ansible.cfg ansible”
ansible是/ usr / local / bin / ansible
這表明命令 ansible
是別名,並且也位於HDD的本地位置: / usr / local / bin / ansible
。
您可以使用PATH變量,然後 tr
將冒號插入空格,然後在這些目錄中列出文件。
ls $(tr':'''<<<“ $ PATH”)
並且正如Peter Cordes所指出的,如果目錄路徑的名稱中包含空格,則以上內容將失效。在子外殼中,將IFS(內部字段分隔符)更改為僅換行符,然後 tr
將冒號附加到換行符。
(IFS = $'\ n'; ls $(tr':''\ n'<<<“ $ PATH”)))
安裝命令後,應在 whatis
數據庫中放置一個條目。但是,不需要這樣做。要獲得數據庫中命令的一行描述,請輸入 whatis
,然後輸入命令。例如,下面顯示輸入 whatis“ ruby”
的輸出。
erb(1)-Ruby模板化
irb(1)-交互式Ruby Shell
ri(1)-Ruby API參考前端
ruby(1)-解釋的面向對像腳本語言
此 whatis
命令將接受正則表達式。因此,要獲取數據庫中所有命令的列表,請輸入下面給出的命令。
什麼是“。”
whatis
的手冊頁指出以下內容:
whatis在一組包含系統命令簡短描述的數據庫文件中搜索關鍵字,並將結果顯示在標準輸出上。僅顯示完整的單詞匹配。
也存在一個類似的命令,稱為 apropos
。 apropos
的手冊頁指出以下內容:
apropos在一組包含系統命令簡短描述的數據庫文件中搜索關鍵字,並將結果顯示在標準輸出上。
基本上,區別是 apropos
不需要完整的單詞匹配。例如,遇到字符串 string>時,
whatis“ string”
不會找到匹配項,但是遇到 apropos“ string”
時,會找到匹配項。
第二個@jksoegaard已經提到,最簡單的方法是在Bash中使用 Tab kbd>自動完成功能。兩次按下 Tab kbd>鍵會列出所有可用的Shell內部命令,外部命令和可用的別名。如果輸入命令的初始字符,則在按 Tab kbd>鍵兩次時會列出匹配的命令。
有適用於macOS的第三方軟件包管理器,可讓您安裝命令行工具,這些工具在macOS的本機安裝中不可用,或者已安裝舊版本。在軟件開發人員中,一些受歡迎的軟件包管理器是 Homebrew和 MacPorts。
因此,如果您對可在Mac上運行的更廣泛的開發人員工具感興趣,則還可以通過執行 brew search code列出所有易於安裝和運行的命令行工具。 >用於Homebrew,而
port search
用於MacPorts。執行上述命令需要在您的系統上安裝相應的軟件包管理器。
出於完整性考慮,如果使用 zsh
,則可以使用 ls“ $ {(@)path}(N)”
。要獲取按目錄分組的列表,請使用 ls“ $ {(@)path}” / *(-* N)
或 printf“%s \ n”“ $ {(@) path}“ / *(-* N)
(未排序,但按照找到的順序); printf“%s \ n”“ $ {(@)path}” / *(-* N)| xargs -L 1基本名稱| sort -u
將為您提供不帶路徑的命令列表。
請注意,這僅顯示可執行文件,而不顯示別名或函數。要獲取這些,請使用 alias
或 typeset -f + | grep -v'^ _'
分別。
每個的樣本輸出:
%ls“ $ {(@)path}”(N)
/ bin:
[貓cp
[...]
同步測試wait4path
/ sbin:
apfs_hfs_convert fsck fstyp
[...]
%ls“ $ {(@)path}” / *(-* N)
/ bin / [/ usr / bin / nc / usr / local / bin / gmktemp
/ bin / bash / usr / bin / ncal / usr / local / bin / gmv
/ bin / cat / usr / bin / ncctl / usr / local / bin / gnice
/ bin / chmod / usr / bin / ncdestroy / usr / local / bin / gnl
/ bin / cp / usr / bin / ncinit / usr / local / bin / gnohup
/ bin / csh / usr / bin / nclist / usr / local / bin / gnproc
%printf“%s \ n”“ $ {(@)path}” / *(-* N)
/ usr / local / bin / 2to3
/ usr / local / bin / 2to3-2
/usr/local/bin/2to3-2.7
[...]
/ usr / sbin / AppleFileServer
/ usr / sbin / BootCacheControl
/ usr / sbin / DevToolsSecurity
/ usr / sbin / DirectoryService
[...]
%printf“%s \ n”“ $ {(@)path}” / *(-* N)| xargs -L 1基本名稱|排序-u
2對3
2對3
2至3-2
2至3-2.7
2至3-3.7
7z
7za
7zr
蘋果文件服務器
AssetCacheLocatorUtil
AssetCacheManagerUtil
[...]
新
zprint
sh
zsh-5.7.1