Northward Midget Pole to Pole

21Jul/150

Shell Nuggets: Musing on Dates

Posted by Quinn

Nigh ever day I happen across some gem tucked away in the opaque vista of the *nix command-line shell.   While attempting to contrive the proper arguments for a date command interpolation, the following editorial injection from its GNU info entry caught my fancy.

28 Date input formats
*********************
First, a quote:
Our units of temporal measurement, from seconds on up to months,
are so complicated, asymmetrical and disjunctive so as to make
coherent mental reckoning in time all but impossible. Indeed, had
some tyrannical god contrived to enslave our minds to time, to
make it all but impossible for us to escape subjection to sodden
routines and unpleasant surprises, he could hardly have done
better than handing down our present system. It is like a set of
trapezoidal building blocks, with no vertical or horizontal
surfaces, like a language in which the simplest thought demands
ornate constructions, useless particles and lengthy
circumlocutions. Unlike the more successful patterns of language
and science, which enable us to face experience boldly or at least
level-headedly, our system of temporal calculation silently and
persistently encourages our terror of time.
... It is as though architects had to measure length in feet,
width in meters and height in ells; as though basic instruction
manuals demanded a knowledge of five different languages. It is
no wonder then that we often look into our own immediate past or
future, last Tuesday or a week from Sunday, with feelings of
helpless confusion. ...
-- Robert Grudin, `Time and the Art of Living'.
This section describes the textual date representations that GNU
programs accept. These are the strings you, as a user, can supply as
arguments to the various programs. The C interface (via the `get_date'
function) is not described here.

Now back to work.

 

28Apr/150

ssh: no matching cipher found

Posted by Quinn

After a recent Ubuntu upgrade on my home machine, ssh attempts to it from the VirtualBox instance at work stopped working.   Here's what ssh spewed back at me:

  no matching cipher found: client blowfish-cbc,arcfour server aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com

 

Impatient, I just logged in from another machine.  The VM runs CentOS 5.10 so that its environment is comparable with what [used to be] present on the majority of our production servers.   I'm an anti-RedHat bigot in the first place, and didn't want to hunt down repos and upgrade my ssh.

That was not necessary.  The problem was a "Ciphers" line I'd added to my ~/.ssh/config, intended to prefer  ("Googallegedly") faster encryption methods.   Adding all but those that resemble email addresses seems to have fixed the issue.   My "Ciphers" line now looks like this:

  Host *
  Ciphers blowfish-cbc,arcfour,aes128-ctr,aes192-ctr,aes256-ctr

 

The ciphers may be defined in your system /etc/ssh/ssh_config.  Check around.  If you can't find it anywhere, try this:

  sudo find  ~/.[a-z]* /etc -path '*ssh*' -type f | sudo xargs fgrep Cipher

 

Anyway, that was my fix.   Right on in, easy-peasy lemon-squeezy.

 

Tagged as: , , No Comments
18Apr/110

Stuffing Text Into All Screen Windows

Posted by Quinn

Various pagers have been giving me question marks in boxes and hexadecimal codes.  This is probably because I didn't have the right font in the past and inserted various hacks into my ~/.bash tree to get around them, e.g. aliasing a LANG=C before every perldoc command.

Well, now I've just about got everything right and proper in UTF-8 mode using a uxterm, but those little nigglers still pop up.  Today I did a man less and found the LESSCHARSET environment variable.  Awesome!  But if it's not set, it's supposed to use the locale, and my locale is already properly set up to en_US.utf-8.  Not a problem.  I just export -n LESSCHARSET to un-export the variable.

But I'm in screen, with fourteen windows open.  How do I loop through all screen windows, stuffing a command into each?

Luckily, a quick reading of the screen man page led me to this:

at \# stuff "export -n LESSCHARSET\015source ~/.bash/aliases\015

And BAM that gets stuffed into every window I have open.  Unfortunately, some of those are SQL prompts, log tails, and maybe an open vim session or two, but such are the pitfalls of impatiently trying out a new command, and no harm was done.

The trick is to use the backslash-escaped octothorpe to specify all windows.  The rest is just a normal stuff, with that annoying octal \015 to specify a newline.

Oh, and I added a second command to source my bash aliases, because I'd added new ones recently.