How do I understand what the various options/flags mean?

For example:

1) uname -a - What does -a denote here?

2) pyang -f - What does -f denote here?

I just want to understand if there is some reference/doc that tells the usage of these? Please clarify.

  • 3
    For the first man uname. What is pyang? – Thomas Dickey Sep 3 '16 at 15:02
  • pyang is library that validates the yang models – fsociety Sep 3 '16 at 15:13

With almost all Linux commands, I think the fastest and easiest first course of action is to append "--help" to the command. This gives you a good summary, which is often enough.

If you need more details, the man command is a good second choice.

For example:

$ uname --help

Usage: uname [OPTION]...  
Print certain system information.  With no OPTION, same as -s.

  -a, --all                print all information, in the following order,  
                             except omit -p and -i if unknown:  
  -s, --kernel-name        print the kernel name  
  -n, --nodename           print the network node hostname  
  -r, --kernel-release     print the kernel release  
  -v, --kernel-version     print the kernel version  
  -m, --machine            print the machine hardware name  
  -p, --processor          print the processor type (non-portable)  
  -i, --hardware-platform  print the hardware platform (non-portable)  
  -o, --operating-system   print the operating system  
      --help     display this help and exit  
      --version  output version information and exit  
| improve this answer | |
  • 'command --help' works only with executables, not for shell builtin commands, functions and aliases... – Neni Sep 3 '16 at 16:53
  • @Neni - Well, not functions and aliases, of course, but builtins? Like ls, etc? Works with bash just fine. – Marty Fried Sep 3 '16 at 16:54
  • 'read --help', 'cd --help', 'alias --help', ... doesn't work in bash. 'ls' is not a builtin, it is an executable, run: 'which ls' – Neni Sep 3 '16 at 16:58
  • @Neni - OK, fair enough. But the error actually prints out the usage, so it still is a quick way to try first. – Marty Fried Sep 3 '16 at 17:01
  • 1
    I don't think this answer deserved a down vote. The OP specifically asked how to get information about uname and pyang and these are not builtins. Yes, an answer which also mentions builtins might seem more complete, but could also overwhelm someone asking such a question. Nothing wrong with this answer IMHO. – Hoov Sep 3 '16 at 17:23

In UNIX/Linux Shells, there are four different types of commands:

1. executables: compiled binaries or scripts
2. shell builtin commands
3. shell functions
4. aliases

If you encounter an unknown command, the first thing is to check its type. Let's examine a few examples for each type:

type <command>  # indicates the commands type
type find       # find is /usr/bin/find   --> executables
type cd         # cd is a shell builtin
type dequote    # dequote is a function
type ls         # ls is aliased to 'ls --color=auto'

Having the information of the command type, you can get help, description and usage of the command and it's options:

<command> --help   # help for executables     -->  find --help
help <command>     # help for shell builtins  -->  help cd

man <command>      # manual page for the specific command

Following commands are useful for information gathering as well.

whatis <command>   # display a very brief description of the command
which <command>    # display an executables location

In the example above, ls is aliased, but what is ls really?

whatis ls
help ls      # doesn't work --> ls is not a shell builtin command
ls --help    # works        --> ls is an executable / compiled binary
which ls     # /bin/ls      --> ls is an executable / compiled binary

There are thousands of commands to explore:

ls /bin       # list a few executables
ls /usr/bin   # list more executables
enable -p     # list all available shell builtin commands
declare -f    # list all defined functions
alias         # list all defined aliases

Now let's examine the uname command:

type uname    # uname is /bin/uname   --> executable
whatis uname
which uname
uname --help  # see the meanings of the options, e.g. -a
man uname     # read the manual page for uname

Do the same for the pyang command...

| improve this answer | |
  • Kind of overwhelming for someone that is a rank beginner, though. The first several examples give no useful information for "uname", one of his specific topics, whereis my suggestion for a first try gives exactly what he wanted. – Marty Fried Sep 3 '16 at 17:37
  • I didn't mean you, I meant the original poster. He is the one that may get overwhelmed by too much detail. I didn't intend to write a thesis on every possibility - I saw your answer, so I didn't need to duplicate your information, I thought it was more useful to add what I felt was missing. Sorry if you felt insulted. – Marty Fried Sep 3 '16 at 17:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.