5 ms·
Reason why you would do that (and I often do) is that you have further piping options so it becomes standard work flow and muscle memory. What I usually do is
by jyap 8y ago
Reason why you would do that (and I often do) is that you have further piping options so it becomes standard work flow and muscle memory.
What I usually do is cat the file to inspect it, hit Control+C, then up arrow for previous command, then further pipe and head/tail/grep the file.
Starting a grep command is fine if you know that's all you're going to be doing.
- laumars 8y agoYou can use Bash (and I assumed it works in zsh too) variables to save you there. eg grep something !$ `!$` will be replaced with the last parameter of the previous command. Crude example cat /etc/hosts grep 12.34.56.78 $! # will be executed as grep 12.34.56.78 /etc/hosts I find this extremely useful for when I'm cat'ing a file to get a sense of it's output then wanting to do something more meaningful with it in the next command. That all said, I have absent-mindedly done my fair share of stuff like this too: !! | less # eg will run as `cat /etc/hosts | less` # if `cat /etc/hosts` was the previous command run so I certainly wouldn't look down on people who have "abused" cat due to muscle memory.
- shpx 8y agoYou can also hit Alt-. to insert the last argument of the previous command.
- laumars 8y agoUnfortunately not on Macs :( That's one of the features I miss the most when using terminals on a Mac.
- frou_dh 8y agoWorks fine here (Terminal.app + bash 5.0.3 from homebrew). Also, isn't that special variable $_ and not $! ?
- laumars 8y ago> Works fine here. Terminal.app + bash 5.0.3 from homebrew.? Doesn't work for me. Maybe I've broken something on my build? Or maybe you've redefined your keys to emulate the [alt] key? > Also, isn't that special variable $_ and not $! ? Sorry I meant `!$` not `$!` (updated my post accordingly). Yes, $_ does the same thing too.
- deleted 8y ago[deleted]
- lelf 8y agoOf course you can. It’s «ESC .» or «^[.» Or you can check “Profiles → Keyboard → Use Option as Meta” for Terminal.app [or just press ⌥⌘O]. And then use option as meta.
- laumars 8y ago> Of course you can. It’s «ESC .» or «^[.» Thanks, I wasn't aware of that. However it's a different hotkey and only pulls the last parameter. The shell I use, you could hit <alt>+<number> and you would get a parameter of that number completed - not just the last parameter. It was very handy for rebuilding long command lines with different arguments. > Or you can check “Profiles → Keyboard → Use Option as Meta” for Terminal.app [or just press ⌥⌘O]. And then use option as meta. I use iTerm2 - which does seem to have similar options but I'm yet to get it working. I know that's down to user error but it's still a real pity that it isn't just the default behaviour (in either iTerm or Terminal).
- lelf 8y agoctrl-meta-y (readline’s yank-nth-arg) pulls any argument.
- shpx 8y agoGo to settings and enable "use option as meta key"
- lelf 8y agoI just use M-. (meta+.⃣) for that (aka M-_ aka readline’s yank-last-arg)
- SpaceInvader 8y agothat is correct, but this case is obviously different :-)