Re:Programs that have saved me 100+ hours
by blacksmith_tb on Thursday March 16, 2017 @07:08PM
(#13889967)
Oh yeah, I sudo bang-bang all the time (it's in other shells, too, zsh for example). I am also fond of !$, which is the object of your last command - lots of times I will ls a file to see the timestamp or confirm it's there; and then want to open it / edit it / rm it, which just looks like
$ ls /long/path/to/file.ext
$ less !$
Re:Programs that have saved me 100+ hours
by waterhouse on Thursday March 16, 2017 @07:30PM
(#13890093)
What if you need to run a third version of the command, or a version that involves deletions, e.g. "less /really/long/path/to/..."?
bash-3.2$ less /var/log/authd.log.0.gz
"/var/log/authd.log.0.gz" may be a binary file. See it anyway?
bash-3.2$
I type: control-P control-A meta-D zcat control-E | SPACE less bash-3.2$ zcat /var/log/authd.log.0.gz | less
On the OS X terminal, you have to configure it to treat option as meta before the meta-D above will work. I forget whether common Linux terminals require such configuration. (Edit: zless would work just as well here, and on Linux "less" appears to basically have the functionality of zless.)With set -o vi:
<ESC> k cw zcat <ESC> A <SPACE> | <SPACE> less <CR>
Very natural for any Vi user: go up a "line", change the first word, then append.Yes, that's a good one :)
There are zillions more such that can be done in Unix, of course, if one puts one's mind to it and experiments, even without spending a lot of time. Another simple one I use some is to define some environment variables to the value of long directory names to which I need to go often as part of some project. Then I can just do:
cd $short_name_for_that_dir
A shell alias can also be used instead.
Re:Programs that have saved me 100+ hours
by deathanatos on Thursday March 16, 2017 @10:11PM
(#13890818)
Another one I love is that both bash & zsh can edit the current command in $EDITOR. In bash, it's ^X^E by default, and in zsh, I think you have to bind it. (it's edit-command-line, which I strangely can't find in man zshzle.)
cat /really/long/path/to/something/only/readable/by/root
cat: Permission denied (goddamnit)
sudo !!