On the Sun/Solaris machines where I first worked, the `sl` command had an added bonus: it played a really loud "choo-choo" sound from the workstation's internal speaker, regardless of volume or mute settings, so you always knew when someone fat-fingered their file listings, and much laughing was had by all.
I very quickly learned to alias sl=ls in my shell rc, and it's still in there to this day, just in case...
Regarding the penguin: sl(1) was originally written in 1992; Linux itself didn't hit 1.0 until 1994, and the Linux penguin itself wasn't introduced until 1996.
Also, brew seems to have added a beer mug emoji to the terminal output when it finishes installing something since the last time I installed anything. I didn't know the terminal (Actually iTerm 2 in this case) even supported that. Neat!
When a colleague accidentally types their password to our cluster into a chat window, the first thing I do is login as them and alias ls=sl. Another fun one is to add `telnet towel.blinkenlights.nl` to their .bashrc, so on login they get to watch ascii star wars.
The one bad thing about switching to the Dvorak layout is that in Dvorak, ls is really cumbersome to type. The l isn't on the home-row, and both of them are on the right pinky. The way I do it now, it's virtually impossible to type sl instead of ls.
Typing dc instead of cd, though is still very common. And dc just mockingly tells me: "will not attempt to process directory."
(I now have `no` aliased to ls. Maybe I should alias `on` to sl.)
> The following code changes the default behaviour of ls from listing
> files to turning your terminal into an unstoppable steam locomotive.
> The only way to end it is closing the terminal, so use this with caution.
Yeah I would have expected `fg` to continue the loop, but it doesn't. If I put `echo $?` after the subshell in that loop, it doesn't even print when I run `fg`. It's like bash just throws away the loop entirely when I suspend the subshell.
first saw this thing around 12 years ago on an AS/400 terminal. Our neckbearded Lead Programmer was supposed to have programmed it in RPG but probably this thing is even older?
That is optimizing for the short term. "When I've run sl, I clearly wanted ls, so you should give me that (even if you also punish me)."
Optimizing for the long term is also plausible. "Don't reward me for making mistakes (even if you also punish me) because it'll dilute my muscle-memory training, and I'll be more likely to make mistakes in the future."
Neither of these is inherently more correct than the other. The long term has more uncertainty, but greater potential rewards. We just have to make a judgment call.
I tend to favor the long-term approach for sl. I can't easily quantify how valuable my stricter muscle-memory training will be, but I can imagine the possibility of a significant upside if I actually become a more precise typer. Also, the worst-case downside just isn't that bad -- retyping ls just isn't that hard.
According to someone else's comment this thing is at least 20 years old. AFAIK these things go by popularity, after all any sort of game is also non-productive...
GoT, Game of Thrones, Decapitates user?, Automatically fires up BitTorrent client and grabs latest episode? Plays ASCII art GoT episode? Cat's all of GRRM's GoT novels into your terminal? (That'll teach you).
I very quickly learned to alias sl=ls in my shell rc, and it's still in there to this day, just in case...