How to find all the available tools in mac terminal? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Should an RSS feed of hot network questions feed any chat room(s) here?How to migrate my Mac OS X application and data from MacBook Pro to Mac Mini?Automating terminals at startupLoad .bash_profile automatically on Terminal.app startup?Auto open 4 terminal sessions and SSH them to a given hostTerminal bash commands stopped workingHelp Understanding Terminal's CommandHow to programmatically start commands in Terminal tabs without losing focusIs 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 an alien society believe that their star system is the universe?

Is it fair for a professor to grade us on the possession of past papers?

What would be the ideal power source for a cybernetic eye?

How widely used is the term Treppenwitz? Is it something that most Germans know?

Sci-Fi book where patients in a coma ward all live in a subconscious world linked together

What is the meaning of the new sigil in Game of Thrones Season 8 intro?

Why are there no cargo aircraft with "flying wing" design?

Why did the IBM 650 use bi-quinary?

English words in a non-english sci-fi novel

What exactly is a "Meth" in Altered Carbon?

How does debian/ubuntu knows a package has a updated version

Should I discuss the type of campaign with my players?

Identify plant with long narrow paired leaves and reddish stems

How to tell that you are a giant?

What does this icon in iOS Stardew Valley mean?

Withdrew £2800, but only £2000 shows as withdrawn on online banking; what are my obligations?

What LEGO pieces have "real-world" functionality?

Why do we bend a book to keep it straight?

Seeking colloquialism for “just because”

List of Python versions

Is it ethical to give a final exam after the professor has quit before teaching the remaining chapters of the course?

String `!23` is replaced with `docker` in command line

Can a USB port passively 'listen only'?

How to Merge Multiple Columns in to Two Columns based on Column 1 Value?



How to find all the available tools in mac terminal?



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Should an RSS feed of hot network questions feed any chat room(s) here?How to migrate my Mac OS X application and data from MacBook Pro to Mac Mini?Automating terminals at startupLoad .bash_profile automatically on Terminal.app startup?Auto open 4 terminal sessions and SSH them to a given hostTerminal bash commands stopped workingHelp Understanding Terminal's CommandHow to programmatically start commands in Terminal tabs without losing focusIs 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;








13















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?










share|improve this question



















  • 10





    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
    21 hours ago

















13















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?










share|improve this question



















  • 10





    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
    21 hours ago













13












13








13


2






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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 2 hours ago







Spear A1

















asked yesterday









Spear A1Spear A1

715




715







  • 10





    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
    21 hours ago












  • 10





    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
    21 hours ago







10




10





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
21 hours ago





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
21 hours ago










6 Answers
6






active

oldest

votes


















17














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.






share|improve this answer






























    14














    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





    share|improve this answer
































      4














      You could take the PATH variable and translate 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 translate the colons to newlines.



      ( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") ) 





      share|improve this answer




















      • 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
        14 hours ago


















      3














      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.






      share|improve this answer
































        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





        share|improve this answer






























          1














          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.






          share|improve this answer
































            6 Answers
            6






            active

            oldest

            votes








            6 Answers
            6






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            17














            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.






            share|improve this answer



























              17














              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.






              share|improve this answer

























                17












                17








                17







                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.






                share|improve this answer













                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.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered yesterday









                jksoegaardjksoegaard

                20.8k12151




                20.8k12151























                    14














                    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





                    share|improve this answer





























                      14














                      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





                      share|improve this answer



























                        14












                        14








                        14







                        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





                        share|improve this answer















                        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






                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited yesterday

























                        answered yesterday









                        slmslm

                        982615




                        982615





















                            4














                            You could take the PATH variable and translate 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 translate the colons to newlines.



                            ( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") ) 





                            share|improve this answer




















                            • 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
                              14 hours ago















                            4














                            You could take the PATH variable and translate 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 translate the colons to newlines.



                            ( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") ) 





                            share|improve this answer




















                            • 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
                              14 hours ago













                            4












                            4








                            4







                            You could take the PATH variable and translate 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 translate the colons to newlines.



                            ( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") ) 





                            share|improve this answer















                            You could take the PATH variable and translate 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 translate the colons to newlines.



                            ( IFS=$'n'; ls $(tr ':' 'n' <<<"$PATH") ) 






                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited 13 hours ago

























                            answered yesterday









                            fd0fd0

                            6,47511431




                            6,47511431







                            • 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
                              14 hours ago












                            • 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
                              14 hours ago







                            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
                            14 hours ago





                            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
                            14 hours ago











                            3














                            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.






                            share|improve this answer





























                              3














                              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.






                              share|improve this answer



























                                3












                                3








                                3







                                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.






                                share|improve this answer















                                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.







                                share|improve this answer














                                share|improve this answer



                                share|improve this answer








                                edited 15 hours ago

























                                answered 15 hours ago









                                David AndersonDavid Anderson

                                14.6k41846




                                14.6k41846





















                                    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





                                    share|improve this answer



























                                      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





                                      share|improve this answer

























                                        1












                                        1








                                        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





                                        share|improve this answer













                                        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






                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered 7 hours ago









                                        KevinKevin

                                        1189




                                        1189





















                                            1














                                            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.






                                            share|improve this answer





























                                              1














                                              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.






                                              share|improve this answer



























                                                1












                                                1








                                                1







                                                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.






                                                share|improve this answer















                                                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.







                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited 6 hours ago

























                                                answered 13 hours ago









                                                Nimesh NeemaNimesh Neema

                                                17.1k74879




                                                17.1k74879













                                                    Popular posts from this blog

                                                    Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                                                    Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                                                    199年 目錄 大件事 到箇年出世嗰人 到箇年死嗰人 節慶、風俗習慣 導覽選單