How to find all the available tools in mac terminal?Is there a list of pre-installed command-line tools for macOS?Is there an easy way to list CLI tools installed on macOS?What commands can I run in the Terminal, and how do I use them?Unhide Partitions via TerminalHow to migrate my Mac OS X application and data from MacBook Pro to Mac Mini?Automating terminals at startupAuto open 4 terminal sessions and SSH them to a given hostTerminal bash commands stopped workingHelp Understanding Terminal's CommandIs it possible to make a folder look and behave like a file?How can I fix my terminal when editing the PATH in .bash_profile has the startup hang and I get no prompt?How can I make sure that the title of a Terminal tab/window is identical to the command I typed
Can the Fixed-Term Parliaments Act be bypassed by a simple bill?
Would a horse be sufficient buffer to prevent injury when falling from a great height?
Caro-Kann c4-c5 push
Disable all sound permanently
I just compiled bitcoind and run for the first time. Do I already have a private key?
How important is knowledge of trig identities for use in Calculus
Realistically, how much do you need to start investing?
Does the US Armed Forces refuse to recruit anyone with an IQ less than 83?
Why does `FindFit` fail so badly in this simple case?
Short story about a potato hotel that makes its guests into potatoes throughout the night
What does a textbook look like while you are writing it?
Would an object shot from earth fall into the sun?
How to interpret the challenge rating of creatures?
PhD Length: are shorter PhD degrees (from different countries) valued differently in other counter countries where PhD Is a longer process?
Is the "spacetime" the same thing as the mathematical 4th dimension?
Can I bring this power bank on board the aircraft?
Can Familiars read and use spell scrolls?
How is this situation not a checkmate?
Should I be an author on another PhD student's paper if I went to their meetings and gave advice?
Replace zeros in a list with last nonzero value
What's the global, general word that stands for "center tone of a song"?
Why do Russians sometimes spell "жирный" (fatty) as "жырный"?
Sending mail to the Professor for PhD, after seeing his tweet
Looking for circuit board material that can be dissolved
How to find all the available tools in mac terminal?
Is there a list of pre-installed command-line tools for macOS?Is there an easy way to list CLI tools installed on macOS?What commands can I run in the Terminal, and how do I use them?Unhide Partitions via TerminalHow to migrate my Mac OS X application and data from MacBook Pro to Mac Mini?Automating terminals at startupAuto open 4 terminal sessions and SSH them to a given hostTerminal bash commands stopped workingHelp Understanding Terminal's CommandIs it possible to make a folder look and behave like a file?How can I fix my terminal when editing the PATH in .bash_profile has the startup hang and I get no prompt?How can I make sure that the title of a Terminal tab/window is identical to the command I typed
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty
margin-bottom:0;
I am trying to setup a bunch of development projects in my Mac. I have to run various tools like python, ruby, scala, groovy etc.
To see if a tool is available I use options like
ruby --version.
Instead I would like to see all the list of tools available in Mac terminal via a single command. What is the command/options for it?
macos terminal iterm
add a comment
|
I am trying to setup a bunch of development projects in my Mac. I have to run various tools like python, ruby, scala, groovy etc.
To see if a tool is available I use options like
ruby --version.
Instead I would like to see all the list of tools available in Mac terminal via a single command. What is the command/options for it?
macos terminal iterm
12
The list will be more overwhelming than informative. On macOS 10.14.4, I see 1,302 executables in /bin, /sbin, /usr/bin, and /usr/sbin. Most of them obscure and/or single-purpose. For instance:hpftodit
, which converts fonts from HP tagged font metric (TFM) format for use with an HP Laser-Jet 4-series (or newer) printer withgroff -Tlj4
. Ok, that's an extreme example, I claim the point is still valid.
– Gordon Davisson
Apr 16 at 5:52
add a comment
|
I am trying to setup a bunch of development projects in my Mac. I have to run various tools like python, ruby, scala, groovy etc.
To see if a tool is available I use options like
ruby --version.
Instead I would like to see all the list of tools available in Mac terminal via a single command. What is the command/options for it?
macos terminal iterm
I am trying to setup a bunch of development projects in my Mac. I have to run various tools like python, ruby, scala, groovy etc.
To see if a tool is available I use options like
ruby --version.
Instead I would like to see all the list of tools available in Mac terminal via a single command. What is the command/options for it?
macos terminal iterm
macos terminal iterm
edited Apr 17 at 0:49
Spear A1
asked Apr 15 at 20:00
Spear A1Spear A1
915 bronze badges
915 bronze badges
12
The list will be more overwhelming than informative. On macOS 10.14.4, I see 1,302 executables in /bin, /sbin, /usr/bin, and /usr/sbin. Most of them obscure and/or single-purpose. For instance:hpftodit
, which converts fonts from HP tagged font metric (TFM) format for use with an HP Laser-Jet 4-series (or newer) printer withgroff -Tlj4
. Ok, that's an extreme example, I claim the point is still valid.
– Gordon Davisson
Apr 16 at 5:52
add a comment
|
12
The list will be more overwhelming than informative. On macOS 10.14.4, I see 1,302 executables in /bin, /sbin, /usr/bin, and /usr/sbin. Most of them obscure and/or single-purpose. For instance:hpftodit
, which converts fonts from HP tagged font metric (TFM) format for use with an HP Laser-Jet 4-series (or newer) printer withgroff -Tlj4
. Ok, that's an extreme example, I claim the point is still valid.
– Gordon Davisson
Apr 16 at 5:52
12
12
The list will be more overwhelming than informative. On macOS 10.14.4, I see 1,302 executables in /bin, /sbin, /usr/bin, and /usr/sbin. Most of them obscure and/or single-purpose. For instance:
hpftodit
, which converts fonts from HP tagged font metric (TFM) format for use with an HP Laser-Jet 4-series (or newer) printer with groff -Tlj4
. Ok, that's an extreme example, I claim the point is still valid.– Gordon Davisson
Apr 16 at 5:52
The list will be more overwhelming than informative. On macOS 10.14.4, I see 1,302 executables in /bin, /sbin, /usr/bin, and /usr/sbin. Most of them obscure and/or single-purpose. For instance:
hpftodit
, which converts fonts from HP tagged font metric (TFM) format for use with an HP Laser-Jet 4-series (or newer) printer with groff -Tlj4
. Ok, that's an extreme example, I claim the point is still valid.– Gordon Davisson
Apr 16 at 5:52
add a comment
|
6 Answers
6
active
oldest
votes
The easiest is simply to open the Terminal and then press the TAB key twice. You'll be asked if you want to see all possibilities - reply "y" and you'll get the full list.
add a comment
|
See the answers from this U&L Q&A titled:
List all commands that a shell knows
.
My personal favorite is to utilize compgen
since this is part of the family of tools used to build all the tab completion when you're in a terminal and hit tab> + tab twice.
$ compgen -c
Example
$ compgen -c | tail
deepcopy-gen
kube-controller-manager
informer-gen
lister-gen
etcd
gen-apidocs
kube-apiserver
kubectl
kubebuilder
conversion-gen
Incidentally, if you want to know where one of these executables lives on your HDD use type -a <cmd>
to find it:
$ type -a ansible
ansible is aliased to `ANSIBLE_CONFIG=~/.ansible.cfg ansible'
ansible is /usr/local/bin/ansible
This shows that the command ansible
is an alias and also lives locally on the HDD here: /usr/local/bin/ansible
.
References
- 8.7 Programmable Completion Builtins
add a comment
|
You could take the PATH variable and tr
anslate the colons into spaces then list the files in those directories.
ls $(tr ':' ' ' <<<"$PATH")
And as Peter Cordes points out, the above will break if directory paths have spaces in their name. In a subshell, change the IFS (Internal Field Separator) to only a newline and tr
anslate the colons to newlines.
( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") )
1
If your$PATH
contains spaces but not newlines, you can tr spaces to newlines inside an(IFS=$'n'; ls $(...))
subshell so word-splitting only happens on newline.
– Peter Cordes
Apr 16 at 12:37
add a comment
|
When a command is installed, an entry should have been placed in the whatis
database. However, there is no requirement to do so. To get a one line description of a command in the database, enter whatis
followed by the command. For example, the output from entering whatis "ruby"
is shown below.
erb(1) - Ruby Templating
irb(1) - Interactive Ruby Shell
ri(1) - Ruby API reference front end
ruby(1) - Interpreted object-oriented scripting language
This the whatis
command will accept regular expressions. Therefore, to get a list of all commands in the database, enter the command given below.
whatis "."
The man page for whatis
states the following:
whatis searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output. Only complete word matches are displayed.
There also exists a similar command called apropos
. The man page for apropos
states the following:
apropos searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output.
Basically, the difference is apropos
does not require complete word matches. For example, whatis "string"
would not find a match when encountering strings
, but apropos "string"
would.
add a comment
|
For completeness's sake, if you use zsh
, you can use ls "$(@)path(N)"
. To get a list grouped by directory, use ls "$(@)path"/*(-*N)
or printf "%sn" "$(@)path"/*(-*N)
(unsorted but in the order they would be found); printf "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
will give you a list of just the commands without paths.
Do note that this only shows executables, not aliases or functions. To get those, use alias
or typeset -f + | grep -v '^_'
respectively.
Sample output of each:
% ls "$(@)path"(N)
/bin:
[ cat cp
[...]
sync test 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 "%sn" "$(@)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 "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
2to3
2to3-
2to3-2
2to3-2.7
2to3-3.7
7z
7za
7zr
AppleFileServer
AssetCacheLocatorUtil
AssetCacheManagerUtil
[...]
znew
zprint
zsh
zsh-5.7.1
add a comment
|
Seconding what @jksoegaard already mentioned, the simplest way is to use Tab autocompletion feature in Bash. Hitting the Tab key twice lists all available shell internal commands, external commands and alias available. If you enter the initial characters of a command, the matching commands are listed when hitting Tab key twice.
There are 3rd party package managers available for macOS which lets you install command-line-tools which are either unavailable in the native installation of macOS, or have their older version installed. A couple popular package managers among software developers are Homebrew and MacPorts.
Thus, if you are interested in the broader spectrum of developer tools available to run on your Mac, you can also list all the command-line-tools available for easy installation and running by executing brew search
for Homebrew and port search
for MacPorts. Executing the said commands require the respective package managers to be installed on your system.
add a comment
|
6 Answers
6
active
oldest
votes
6 Answers
6
active
oldest
votes
active
oldest
votes
active
oldest
votes
The easiest is simply to open the Terminal and then press the TAB key twice. You'll be asked if you want to see all possibilities - reply "y" and you'll get the full list.
add a comment
|
The easiest is simply to open the Terminal and then press the TAB key twice. You'll be asked if you want to see all possibilities - reply "y" and you'll get the full list.
add a comment
|
The easiest is simply to open the Terminal and then press the TAB key twice. You'll be asked if you want to see all possibilities - reply "y" and you'll get the full list.
The easiest is simply to open the Terminal and then press the TAB key twice. You'll be asked if you want to see all possibilities - reply "y" and you'll get the full list.
answered Apr 15 at 20:14
jksoegaardjksoegaard
27k1 gold badge34 silver badges65 bronze badges
27k1 gold badge34 silver badges65 bronze badges
add a comment
|
add a comment
|
See the answers from this U&L Q&A titled:
List all commands that a shell knows
.
My personal favorite is to utilize compgen
since this is part of the family of tools used to build all the tab completion when you're in a terminal and hit tab> + tab twice.
$ compgen -c
Example
$ compgen -c | tail
deepcopy-gen
kube-controller-manager
informer-gen
lister-gen
etcd
gen-apidocs
kube-apiserver
kubectl
kubebuilder
conversion-gen
Incidentally, if you want to know where one of these executables lives on your HDD use type -a <cmd>
to find it:
$ type -a ansible
ansible is aliased to `ANSIBLE_CONFIG=~/.ansible.cfg ansible'
ansible is /usr/local/bin/ansible
This shows that the command ansible
is an alias and also lives locally on the HDD here: /usr/local/bin/ansible
.
References
- 8.7 Programmable Completion Builtins
add a comment
|
See the answers from this U&L Q&A titled:
List all commands that a shell knows
.
My personal favorite is to utilize compgen
since this is part of the family of tools used to build all the tab completion when you're in a terminal and hit tab> + tab twice.
$ compgen -c
Example
$ compgen -c | tail
deepcopy-gen
kube-controller-manager
informer-gen
lister-gen
etcd
gen-apidocs
kube-apiserver
kubectl
kubebuilder
conversion-gen
Incidentally, if you want to know where one of these executables lives on your HDD use type -a <cmd>
to find it:
$ type -a ansible
ansible is aliased to `ANSIBLE_CONFIG=~/.ansible.cfg ansible'
ansible is /usr/local/bin/ansible
This shows that the command ansible
is an alias and also lives locally on the HDD here: /usr/local/bin/ansible
.
References
- 8.7 Programmable Completion Builtins
add a comment
|
See the answers from this U&L Q&A titled:
List all commands that a shell knows
.
My personal favorite is to utilize compgen
since this is part of the family of tools used to build all the tab completion when you're in a terminal and hit tab> + tab twice.
$ compgen -c
Example
$ compgen -c | tail
deepcopy-gen
kube-controller-manager
informer-gen
lister-gen
etcd
gen-apidocs
kube-apiserver
kubectl
kubebuilder
conversion-gen
Incidentally, if you want to know where one of these executables lives on your HDD use type -a <cmd>
to find it:
$ type -a ansible
ansible is aliased to `ANSIBLE_CONFIG=~/.ansible.cfg ansible'
ansible is /usr/local/bin/ansible
This shows that the command ansible
is an alias and also lives locally on the HDD here: /usr/local/bin/ansible
.
References
- 8.7 Programmable Completion Builtins
See the answers from this U&L Q&A titled:
List all commands that a shell knows
.
My personal favorite is to utilize compgen
since this is part of the family of tools used to build all the tab completion when you're in a terminal and hit tab> + tab twice.
$ compgen -c
Example
$ compgen -c | tail
deepcopy-gen
kube-controller-manager
informer-gen
lister-gen
etcd
gen-apidocs
kube-apiserver
kubectl
kubebuilder
conversion-gen
Incidentally, if you want to know where one of these executables lives on your HDD use type -a <cmd>
to find it:
$ type -a ansible
ansible is aliased to `ANSIBLE_CONFIG=~/.ansible.cfg ansible'
ansible is /usr/local/bin/ansible
This shows that the command ansible
is an alias and also lives locally on the HDD here: /usr/local/bin/ansible
.
References
- 8.7 Programmable Completion Builtins
edited Apr 15 at 22:30
answered Apr 15 at 20:45
slmslm
2,4449 silver badges24 bronze badges
2,4449 silver badges24 bronze badges
add a comment
|
add a comment
|
You could take the PATH variable and tr
anslate the colons into spaces then list the files in those directories.
ls $(tr ':' ' ' <<<"$PATH")
And as Peter Cordes points out, the above will break if directory paths have spaces in their name. In a subshell, change the IFS (Internal Field Separator) to only a newline and tr
anslate the colons to newlines.
( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") )
1
If your$PATH
contains spaces but not newlines, you can tr spaces to newlines inside an(IFS=$'n'; ls $(...))
subshell so word-splitting only happens on newline.
– Peter Cordes
Apr 16 at 12:37
add a comment
|
You could take the PATH variable and tr
anslate the colons into spaces then list the files in those directories.
ls $(tr ':' ' ' <<<"$PATH")
And as Peter Cordes points out, the above will break if directory paths have spaces in their name. In a subshell, change the IFS (Internal Field Separator) to only a newline and tr
anslate the colons to newlines.
( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") )
1
If your$PATH
contains spaces but not newlines, you can tr spaces to newlines inside an(IFS=$'n'; ls $(...))
subshell so word-splitting only happens on newline.
– Peter Cordes
Apr 16 at 12:37
add a comment
|
You could take the PATH variable and tr
anslate the colons into spaces then list the files in those directories.
ls $(tr ':' ' ' <<<"$PATH")
And as Peter Cordes points out, the above will break if directory paths have spaces in their name. In a subshell, change the IFS (Internal Field Separator) to only a newline and tr
anslate the colons to newlines.
( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") )
You could take the PATH variable and tr
anslate the colons into spaces then list the files in those directories.
ls $(tr ':' ' ' <<<"$PATH")
And as Peter Cordes points out, the above will break if directory paths have spaces in their name. In a subshell, change the IFS (Internal Field Separator) to only a newline and tr
anslate the colons to newlines.
( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") )
edited Apr 16 at 13:23
answered Apr 15 at 20:39
fd0fd0
7,1141 gold badge16 silver badges32 bronze badges
7,1141 gold badge16 silver badges32 bronze badges
1
If your$PATH
contains spaces but not newlines, you can tr spaces to newlines inside an(IFS=$'n'; ls $(...))
subshell so word-splitting only happens on newline.
– Peter Cordes
Apr 16 at 12:37
add a comment
|
1
If your$PATH
contains spaces but not newlines, you can tr spaces to newlines inside an(IFS=$'n'; ls $(...))
subshell so word-splitting only happens on newline.
– Peter Cordes
Apr 16 at 12:37
1
1
If your
$PATH
contains spaces but not newlines, you can tr spaces to newlines inside an (IFS=$'n'; ls $(...))
subshell so word-splitting only happens on newline.– Peter Cordes
Apr 16 at 12:37
If your
$PATH
contains spaces but not newlines, you can tr spaces to newlines inside an (IFS=$'n'; ls $(...))
subshell so word-splitting only happens on newline.– Peter Cordes
Apr 16 at 12:37
add a comment
|
When a command is installed, an entry should have been placed in the whatis
database. However, there is no requirement to do so. To get a one line description of a command in the database, enter whatis
followed by the command. For example, the output from entering whatis "ruby"
is shown below.
erb(1) - Ruby Templating
irb(1) - Interactive Ruby Shell
ri(1) - Ruby API reference front end
ruby(1) - Interpreted object-oriented scripting language
This the whatis
command will accept regular expressions. Therefore, to get a list of all commands in the database, enter the command given below.
whatis "."
The man page for whatis
states the following:
whatis searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output. Only complete word matches are displayed.
There also exists a similar command called apropos
. The man page for apropos
states the following:
apropos searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output.
Basically, the difference is apropos
does not require complete word matches. For example, whatis "string"
would not find a match when encountering strings
, but apropos "string"
would.
add a comment
|
When a command is installed, an entry should have been placed in the whatis
database. However, there is no requirement to do so. To get a one line description of a command in the database, enter whatis
followed by the command. For example, the output from entering whatis "ruby"
is shown below.
erb(1) - Ruby Templating
irb(1) - Interactive Ruby Shell
ri(1) - Ruby API reference front end
ruby(1) - Interpreted object-oriented scripting language
This the whatis
command will accept regular expressions. Therefore, to get a list of all commands in the database, enter the command given below.
whatis "."
The man page for whatis
states the following:
whatis searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output. Only complete word matches are displayed.
There also exists a similar command called apropos
. The man page for apropos
states the following:
apropos searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output.
Basically, the difference is apropos
does not require complete word matches. For example, whatis "string"
would not find a match when encountering strings
, but apropos "string"
would.
add a comment
|
When a command is installed, an entry should have been placed in the whatis
database. However, there is no requirement to do so. To get a one line description of a command in the database, enter whatis
followed by the command. For example, the output from entering whatis "ruby"
is shown below.
erb(1) - Ruby Templating
irb(1) - Interactive Ruby Shell
ri(1) - Ruby API reference front end
ruby(1) - Interpreted object-oriented scripting language
This the whatis
command will accept regular expressions. Therefore, to get a list of all commands in the database, enter the command given below.
whatis "."
The man page for whatis
states the following:
whatis searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output. Only complete word matches are displayed.
There also exists a similar command called apropos
. The man page for apropos
states the following:
apropos searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output.
Basically, the difference is apropos
does not require complete word matches. For example, whatis "string"
would not find a match when encountering strings
, but apropos "string"
would.
When a command is installed, an entry should have been placed in the whatis
database. However, there is no requirement to do so. To get a one line description of a command in the database, enter whatis
followed by the command. For example, the output from entering whatis "ruby"
is shown below.
erb(1) - Ruby Templating
irb(1) - Interactive Ruby Shell
ri(1) - Ruby API reference front end
ruby(1) - Interpreted object-oriented scripting language
This the whatis
command will accept regular expressions. Therefore, to get a list of all commands in the database, enter the command given below.
whatis "."
The man page for whatis
states the following:
whatis searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output. Only complete word matches are displayed.
There also exists a similar command called apropos
. The man page for apropos
states the following:
apropos searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output.
Basically, the difference is apropos
does not require complete word matches. For example, whatis "string"
would not find a match when encountering strings
, but apropos "string"
would.
edited Apr 16 at 11:32
answered Apr 16 at 11:14
David AndersonDavid Anderson
16.4k5 gold badges23 silver badges50 bronze badges
16.4k5 gold badges23 silver badges50 bronze badges
add a comment
|
add a comment
|
For completeness's sake, if you use zsh
, you can use ls "$(@)path(N)"
. To get a list grouped by directory, use ls "$(@)path"/*(-*N)
or printf "%sn" "$(@)path"/*(-*N)
(unsorted but in the order they would be found); printf "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
will give you a list of just the commands without paths.
Do note that this only shows executables, not aliases or functions. To get those, use alias
or typeset -f + | grep -v '^_'
respectively.
Sample output of each:
% ls "$(@)path"(N)
/bin:
[ cat cp
[...]
sync test 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 "%sn" "$(@)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 "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
2to3
2to3-
2to3-2
2to3-2.7
2to3-3.7
7z
7za
7zr
AppleFileServer
AssetCacheLocatorUtil
AssetCacheManagerUtil
[...]
znew
zprint
zsh
zsh-5.7.1
add a comment
|
For completeness's sake, if you use zsh
, you can use ls "$(@)path(N)"
. To get a list grouped by directory, use ls "$(@)path"/*(-*N)
or printf "%sn" "$(@)path"/*(-*N)
(unsorted but in the order they would be found); printf "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
will give you a list of just the commands without paths.
Do note that this only shows executables, not aliases or functions. To get those, use alias
or typeset -f + | grep -v '^_'
respectively.
Sample output of each:
% ls "$(@)path"(N)
/bin:
[ cat cp
[...]
sync test 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 "%sn" "$(@)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 "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
2to3
2to3-
2to3-2
2to3-2.7
2to3-3.7
7z
7za
7zr
AppleFileServer
AssetCacheLocatorUtil
AssetCacheManagerUtil
[...]
znew
zprint
zsh
zsh-5.7.1
add a comment
|
For completeness's sake, if you use zsh
, you can use ls "$(@)path(N)"
. To get a list grouped by directory, use ls "$(@)path"/*(-*N)
or printf "%sn" "$(@)path"/*(-*N)
(unsorted but in the order they would be found); printf "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
will give you a list of just the commands without paths.
Do note that this only shows executables, not aliases or functions. To get those, use alias
or typeset -f + | grep -v '^_'
respectively.
Sample output of each:
% ls "$(@)path"(N)
/bin:
[ cat cp
[...]
sync test 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 "%sn" "$(@)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 "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
2to3
2to3-
2to3-2
2to3-2.7
2to3-3.7
7z
7za
7zr
AppleFileServer
AssetCacheLocatorUtil
AssetCacheManagerUtil
[...]
znew
zprint
zsh
zsh-5.7.1
For completeness's sake, if you use zsh
, you can use ls "$(@)path(N)"
. To get a list grouped by directory, use ls "$(@)path"/*(-*N)
or printf "%sn" "$(@)path"/*(-*N)
(unsorted but in the order they would be found); printf "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
will give you a list of just the commands without paths.
Do note that this only shows executables, not aliases or functions. To get those, use alias
or typeset -f + | grep -v '^_'
respectively.
Sample output of each:
% ls "$(@)path"(N)
/bin:
[ cat cp
[...]
sync test 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 "%sn" "$(@)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 "%sn" "$(@)path"/*(-*N) | xargs -L 1 basename | sort -u
2to3
2to3-
2to3-2
2to3-2.7
2to3-3.7
7z
7za
7zr
AppleFileServer
AssetCacheLocatorUtil
AssetCacheManagerUtil
[...]
znew
zprint
zsh
zsh-5.7.1
answered Apr 16 at 19:44
KevinKevin
1189 bronze badges
1189 bronze badges
add a comment
|
add a comment
|
Seconding what @jksoegaard already mentioned, the simplest way is to use Tab autocompletion feature in Bash. Hitting the Tab key twice lists all available shell internal commands, external commands and alias available. If you enter the initial characters of a command, the matching commands are listed when hitting Tab key twice.
There are 3rd party package managers available for macOS which lets you install command-line-tools which are either unavailable in the native installation of macOS, or have their older version installed. A couple popular package managers among software developers are Homebrew and MacPorts.
Thus, if you are interested in the broader spectrum of developer tools available to run on your Mac, you can also list all the command-line-tools available for easy installation and running by executing brew search
for Homebrew and port search
for MacPorts. Executing the said commands require the respective package managers to be installed on your system.
add a comment
|
Seconding what @jksoegaard already mentioned, the simplest way is to use Tab autocompletion feature in Bash. Hitting the Tab key twice lists all available shell internal commands, external commands and alias available. If you enter the initial characters of a command, the matching commands are listed when hitting Tab key twice.
There are 3rd party package managers available for macOS which lets you install command-line-tools which are either unavailable in the native installation of macOS, or have their older version installed. A couple popular package managers among software developers are Homebrew and MacPorts.
Thus, if you are interested in the broader spectrum of developer tools available to run on your Mac, you can also list all the command-line-tools available for easy installation and running by executing brew search
for Homebrew and port search
for MacPorts. Executing the said commands require the respective package managers to be installed on your system.
add a comment
|
Seconding what @jksoegaard already mentioned, the simplest way is to use Tab autocompletion feature in Bash. Hitting the Tab key twice lists all available shell internal commands, external commands and alias available. If you enter the initial characters of a command, the matching commands are listed when hitting Tab key twice.
There are 3rd party package managers available for macOS which lets you install command-line-tools which are either unavailable in the native installation of macOS, or have their older version installed. A couple popular package managers among software developers are Homebrew and MacPorts.
Thus, if you are interested in the broader spectrum of developer tools available to run on your Mac, you can also list all the command-line-tools available for easy installation and running by executing brew search
for Homebrew and port search
for MacPorts. Executing the said commands require the respective package managers to be installed on your system.
Seconding what @jksoegaard already mentioned, the simplest way is to use Tab autocompletion feature in Bash. Hitting the Tab key twice lists all available shell internal commands, external commands and alias available. If you enter the initial characters of a command, the matching commands are listed when hitting Tab key twice.
There are 3rd party package managers available for macOS which lets you install command-line-tools which are either unavailable in the native installation of macOS, or have their older version installed. A couple popular package managers among software developers are Homebrew and MacPorts.
Thus, if you are interested in the broader spectrum of developer tools available to run on your Mac, you can also list all the command-line-tools available for easy installation and running by executing brew search
for Homebrew and port search
for MacPorts. Executing the said commands require the respective package managers to be installed on your system.
edited Apr 16 at 20:46
answered Apr 16 at 13:45
Nimesh NeemaNimesh Neema
25.4k9 gold badges63 silver badges101 bronze badges
25.4k9 gold badges63 silver badges101 bronze badges
add a comment
|
add a comment
|
12
The list will be more overwhelming than informative. On macOS 10.14.4, I see 1,302 executables in /bin, /sbin, /usr/bin, and /usr/sbin. Most of them obscure and/or single-purpose. For instance:
hpftodit
, which converts fonts from HP tagged font metric (TFM) format for use with an HP Laser-Jet 4-series (or newer) printer withgroff -Tlj4
. Ok, that's an extreme example, I claim the point is still valid.– Gordon Davisson
Apr 16 at 5:52