Re: Bye, bye, bash
- Reply: Sysadmin Lists : "Re: Bye, bye, bash"
- Reply: Kurt Hackenberg : "Re: Bye, bye, bash"
- In reply to: Christian Weisgerber : "Bye, bye, bash"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 26 Mar 2023 00:55:15 UTC
> ----------------------------------------
> From: Christian Weisgerber <naddy@mips.inka.de>
> Date: Mar 25, 2023, 3:18:34 PM
> To: <freebsd-questions@freebsd.org>
> Subject: Bye, bye, bash
>
> [...] although I use approximately 0% of bash's bloated
> feature set.
>
Bash certainly has its problems, but sh's interactive feature set is primitive.
I find most people don't even know some of the features in bash exist.
Just a few:
Commands for Manipulating the History
yank-nth-arg (M-C-y)
Insert the first argument to the previous command (usually the
second word on the previous line) at point. With an argument n,
insert the nth word from the previous command (the words in the
previous command begin with word 0). A negative argument
inserts the nth word from the end of the previous command. Once
the argument n is computed, the argument is extracted as if the
"!n" history expansion had been specified.
yank-last-arg (M-., M-_)
Insert the last argument to the previous command (the last word
of the previous history entry). With a numeric argument, behave
exactly like yank-nth-arg. Successive calls to yank-last-arg
move back through the history list, inserting the last word (or
the word specified by the argument to the first call) of each
line in turn. Any numeric argument supplied to these successive
calls determines the direction to move through the history. A
negative argument switches the direction through the history
(back or forward). The history expansion facilities are used to
extract the last word, as if the "!$" history expansion had been
specified.
shell-expand-line (M-C-e)
Expand the line as the shell does. This performs alias and
history expansion as well as all of the shell word expansions.
See HISTORY EXPANSION below for a description of history
expansion.
history-expand-line (M-^)
Perform history expansion on the current line. See HISTORY
EXPANSION below for a description of history expansion.
Killing and Yanking
yank (C-y)
Yank the top of the kill ring into the buffer at point.
yank-pop (M-y)
Rotate the kill ring, and yank the new top. Only works
following yank or yank-pop.
Completing
possible-completions (M-?)
List the possible completions of the text before point.
insert-completions (M-*)
Insert all completions of the text before point that would have
been generated by possible-completions.
complete-into-braces (M-{)
Perform filename completion and insert the list of possible
completions enclosed within braces so the list is available to
the shell (see Brace Expansion above).
Miscellaneous
insert-comment (M-#)
Without a numeric argument, the value of the readline
comment-begin variable is inserted at the beginning of the
current line. If a numeric argument is supplied, this command
acts as a toggle: if the characters at the beginning of the line
do not match the value of comment-begin, the value is inserted,
otherwise the characters in comment-begin are deleted from the
beginning of the line. In either case, the line is accepted as
if a newline had been typed. The default value of comment-begin
causes this command to make the current line a shell comment.
If a numeric argument causes the comment character to be
removed, the line will be executed by the shell.
glob-expand-word (C-x *)
The word before point is treated as a pattern for pathname
expansion, and the list of matching filenames is inserted,
replacing the word. If a numeric argument is supplied, an
asterisk is appended before pathname expansion.
glob-list-expansions (C-x g)
The list of expansions that would have been generated by
glob-expand-word is displayed, and the line is redrawn. If a
numeric argument is supplied, an asterisk is appended before
pathname expansion.
And pretty much all of the 'HISTORY EXPANSION' section.
I use those features daily, but have watched career-long sysadmins wear out
their arrow keys as they navigate the command line. If efficiency is key, those
features make working on the command line a breeze.
--
Sent with https://mailfence.com
Secure and private email