logoalt Hacker News

12 Days of Shell

109 pointsby zoidbtoday at 10:13 AM26 commentsview on HN

Comments

aargh_aarghtoday at 10:47 AM

The good: Nice exercises for beginners. Tab-completion, accepts readline characters like ctrl-u.

The bad: You don't see the (wrong) output if you don't get it right the first time, making it hard to work iteratively and having to guess what the question actually intended.

E.g. 'Seven files that start with "Santa"' actually wants file names that start with Santa, after some questions that had you use "grep" to search file contents. Where I actually struggled with what's expected is Day 11.

The ugly: Actually a very nice design.

oneeyedpigeontoday at 11:41 AM

I think the instructions need more detail. 'Five lines that start with "the"' doesn't scream 'or "The", or "thE"' to me...

show 1 reply
blenderobtoday at 12:18 PM

Looks nice but it's rejecting valid commands as incorrect. Like when it told me to search for "laugh" I ran

  grep laugh *
There's only one file in the directory. So that's a correct answer but the game wants me to run

  grep laugh night-before-christmas.txt 
It's like those weird interviewers who have a specific answer in mind and they'll accept nothing other than the answer they have in mind.
show 2 replies
arionmilestoday at 10:37 AM

I've recently reached a point where I feel I've reached an upper limit with how much efficiency I can extract from my usual toolset/editors. So I've gone on a journey where I'm finally exploring tools that make living in the command line a productive and pleasant experience for me.

I've long put off learning or even exploring tmux or learning more than a few handful of vim keybinds. So I started digging into configuring them and learning them well enough to be able to regularly use them for work and personal computers.

It's been very pleasant, to say the least. There's still a few ways I need to go where I do everything from the command line and the keyboard, but I think it's worth training your muscles to be comfortable with doing things purely using the keyboard.

I've switched to vim mode for a few tools that offer it. I started seriously using vimium on chrome and firefox (a friend had introduced me to it about 7 years ago but I never cared enough to learn it well).

Another reason I finally made the jump was that I've been having RSI pain on my right hand due to using mouse too much and in un-ergonomic positions. While I've taken measures to improve ergonomic use of the mouse and keyboard, I'm just totally impressed with the capabilities of keyboard navigation and how much value you can extract out of your keyboard.

My friends have been egging on me about the bell curve meme, but I think it's important for me to figure out the limits and then maybe I will finally go back to defaults and simpler tools. The only way to be on the right side of the bell curve is through the middle.

show 3 replies
derridatoday at 11:00 AM

Hey this doesn’t work : first solution “ls -al” which I use all the time to list directories was rejected in the second question I used awk and was rejected it expected grep

I think a beginner could be doing it right but then be told they are wrong as you aren’t evaluating actual commands

Best would be to like actually run it* and then check solutions out with awk that it pattern matches

* aka give me a shell ok worth a try lol xD

Edit: also I was expecting something a bit more challenging (also that is correct) to like exercise the brain for those of us that use shell (this is hacker news) something that takes a few minutes and isn’t just commands used all the time

janmatejkatoday at 11:22 AM

'Seven files that start with Santa' is actually about filenames. That's pretty confusing especially since users are primed with file contents from the previous exercises already.

And from pipers piping description I had no idea what was wanted of me.

haoleztoday at 12:32 PM

The way that worked for me to properly learn shell is to do a non-shell project with it.

Like, do a complex background worker for a web server that listens to a socket, does complicated stuff, exports functions (if in Bash), etc.

You don't have to use it afterwards. The value is in the journey. It's fun :)

FailMoretoday at 12:35 PM

How would one make a true shell in a website like this one? (As in, is there an open source library to host an interactive shell for educational purposes - eg codecademy)

beardywtoday at 11:17 AM

As a developer I've been through 10 different languages and about the same number of operating systems, and I barely managed to remember any of them, even at the time. And I assume soon using natural language as the main interface will become commonplace, which will finally let me off the hook.

I will give this a go, but I doubt any of it will stick!

show 1 reply
Barathkannatoday at 10:21 AM

Fun idea. It’s basically an Advent calendar for shell one-liners. Nice way to level up your CLI muscles without diving into full projects.

show 1 reply
sannysanofftoday at 11:48 AM

Fluent in shell, but cultural context is more difficult, especially with pipers, had to do guess work.

show 1 reply
benterixtoday at 11:07 AM

It would be nice if the instructions spelled out what to do, then I could do it. Otherwise I have to guess what author meant. But all in, a nice small exercise, thanks!

pstolltoday at 10:45 AM

Neat idea à la regex golf.

But doesn’t seem to do enough shell escaping or correctly. Also seems underspecified, ie “find 5 lines starting with ‘the” doesn’t require a pipe to head -5.

show 1 reply
sva_today at 11:47 AM

Cool idea but very opinionated and no room for variation

ParadisoShleetoday at 11:29 AM

I assumed this was some kind of hacking challenge.

franticgecko3today at 10:54 AM

Tab complete is completely broken on Firefox mobile (Android)

bluecalmtoday at 10:51 AM

It looks very nice. One problem I've encountered is that when you make a mistake then the name of the file you have to use disappears and it's impossible to get it back. What is this website created with btw? I like the style a lot.

skinwilltoday at 10:52 AM

Viewing the page with Safari 26.1 the questions stopped showing up after the second challenge. I was left with only Learn and View Solutions, which was not very fun since both showed a form of the answer.

TL;DR: The page stopped loading properly.

show 1 reply
dncornholiotoday at 12:16 PM

Terrible. You cannot 'ls' if ls is not the right answer. Completely useless.