People here in these comments are claiming that terseness in CLI commands is a good thing.
Perhaps there is a way to do one better? I could imagine an interactive shell that can show you the relevant portion of the man page for that specific flag.
Man pages never have sat right with me; I would love to have a shell that can show me (intellisense?) the most common flags and options commands are run with.
The command line is powerful but the barrier to entry is high. Anybody who does not fathom complexity hidden behind pages of manuals is doomed to be overwhelmed with the sheer ignorance and lack of discoverability a shell provides.
> Man pages never have sat right with me; I would love to have a shell that can show me (intellisense?) the most common flags and options commands are run with.
While not intellisense, the fish shell [0] might be what you're thinking.
> Man pages never have sat right with me; I would love to have a shell that can show me (intellisense?) the most common flags and options commands are run with.
Apple's A/UX (their Unix port for the Mac, before OS X) had a cool thing called Commando that did something like this. If you entered "..." in place of an argument to a command in the shell, it would invoke Commando to get the command arguments, and then replace the "..." with them.
Commando would bring up a dialog for the command that would list the various options and flags. There's a screenshot of the Commando dialog for ls here [1].
More complicated commands, like the C compiler, had tabbed dialogs with different tabs for things like language settings, optimization settings, debug settings, and so on.
PowerShell can do that first part for PS cmdlets rather than general man pages; Get-Command searches for available functions, loaded module exports and executables in the path. It takes a parameter -Module which limits that to things exported by just one module. You can use Get-Help to find out about just that parameter, e.g.:
PS C:\> Get-Help -Name Get-Command -Parameter Module
-Module <String[]>
Specifies an array of modules. This cmdlet gets the commands that came from the specified modules or snap-ins.
Enter the names of modules or snap-ins, or enter snap-in or module objects.
This parameter takes string values, but the value of this parameter can also be a PSModuleInfo or PSSnapinInfo
object, such as the objects that the Get-Module, Get-PSSnapin, and Import-PSSession cmdlets return.
You can refer to this parameter by its name, Module , or by its alias, PSSnapin . The parameter name that you
choose has no effect on the command output.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? false
Or in a shorter version, help gcm -param mod*
> I would love to have a shell that can show me (intellisense?) the most common flags and options commands are run with.
It can do some of that for PS cmdlets as well, intellisense can look into the cmdlets, find the names of exported parameters and show them all to you (not in most common order) and then for some commands you can do get-executionpolicy -Scope {tab} and it will cycle through the three available scopes. That autocomplete can be extended to do things like interrogate a database engine and complete table names, by the author, or wrapped by the user to do that. Again not really for system commands unless you wrap around them.
>Perhaps there is a way to do one better? I could imagine an interactive shell that can show you the relevant portion of the man page for that specific flag.
I've had a similar idea before. I think this is a great way to think about the problem.
Just like so many other comments in this thread, you're describing powershell. There's autocomplete for parameter names in the basic powershell.exe prompt, but VS Code, VS, and PowerShell ISE (integrated script environment) all show argument types and docs through intellisense.
I think explainshell [1] is a halfway measure for what you're looking for.
My current approach is simply to have a notes folder with the title of a man page as the filename, I put a 'tl;dr', common commands section, and write down any quirks or complexities you only tend to remember when you've just been digging through things - am working on something better at the moment.
Perhaps there is a way to do one better? I could imagine an interactive shell that can show you the relevant portion of the man page for that specific flag.
Man pages never have sat right with me; I would love to have a shell that can show me (intellisense?) the most common flags and options commands are run with.
The command line is powerful but the barrier to entry is high. Anybody who does not fathom complexity hidden behind pages of manuals is doomed to be overwhelmed with the sheer ignorance and lack of discoverability a shell provides.