
Evolution of shells in Linux (2011) - kercker
https://www.ibm.com/developerworks/library/l-linux-shells/
======
softwarelimits
Does anybody know a shell that keeps its input line on _top_ of the window?

Think of a browser window with the url-bar being the shell line editor. But of
course I want a real, quick shell, not a clunky electron-based monster or some
html based shell simulation in a browser.

I imagine that it will have a positive effect on our neck muscles if we would
not have to stare at the bottom of the screen all the time, but instead at the
top.

I looked into the existing pythonic shell libraries like the python-prompt-
toolkit but could not figure out in a few minutes how this could be realized,
so I hope some experts in this field would like to spend a few minutes on
this?

Thanks for your attention!

~~~
xiaq
[https://github.com/swirepe/alwaysontop](https://github.com/swirepe/alwaysontop)
is this what you need?

ascii.io seems down, but there is another screencast hosted here:
[https://asciinema.org/a/3779](https://asciinema.org/a/3779)

~~~
lanna
It seems to clear the screen at each new command, resetting scroll history
every time. Renders it pretty much useless for most of us.

~~~
coldtea
What part of

    
    
      unautoclear       Turn OFF clear-screen after each command.
    

seems difficult?

------
dghf
No zsh? I've attempted to try zsh a couple of times, but both times I was
daunted by the sheer number of config questions asked by the set-up tool (may
have been Oh-My-Zsh, can't remember), questions to which my only answer could
be "I don't know, the first one I guess?"

I was hoping to find some good reasons why I should (or shouldn't) use it over
bash.

~~~
guard-of-terra
It has really good completion, including path completion. It has virtually
infinite shared history. You can do some powerful customizations.

bash is trying to catch up in many areas but not quite there.

Having said that, I've now switched to fish which I don't like but it doesn't
need configuring.

~~~
zeveb
> Having said that, I've now switched to fish which I don't like but it
> doesn't need configuring.

That's a plus, but I _really_ don't like how unlike the standard shells fish
is. That's not entirely a bad thing (c.f. eshell, which is an interesting
experiment), but also not a good thing (c.f. eshell, which is AFAICT
unusable).

Another issue I have with fish is its popularity. eshell isn't popular, and so
eshellisms don't tend to creep into shared environments; fish is popular, and
more and more fishisms are creeping into the world at large. This is not, I
think, a good thing at all.

If you're putting shell examples out into the world, they should be POSIX-
compatible, or at the very least an _extension_ of POSIX; they shouldn't be
some wonky other language (else why use shell at all; use a better language
altogether, which fish isn't).

I'd really like to see a good reason to use fish over zsh or bash.

~~~
coldtea
> _If you 're putting shell examples out into the world, they should be POSIX-
> compatible, or at the very least an extension of POSIX;_

If you want to be constrained by POSIX (as we will all be for the next 100
years or so), there are literally myriads of shells you can use.

------
Zardoz84
Well 2011 fish not was yet there. Someone should update it with fish becoming
more popular.

~~~
hibbelig
The oldest commit on Github is from 2005, and it mentions documentation
updates, so it seems Github doesn't have the whole history.

------
Esau
Personally, I like using NetBSD's Almquist Shell, which formed the basis of
Dash. It is small and has the command line editing and tab completion features
that I can't live without.

[https://en.wikipedia.org/wiki/Almquist_shell](https://en.wikipedia.org/wiki/Almquist_shell)

~~~
groovy2shoes
On a similar note, while I normally just stick with bash on Linux (path of
least resistance), I _really_ like OpenBSD's ksh. Not _quite_ as small as ash,
but still much smaller than either bash or zsh, but with all the essential
features (many things people consider bashisms are actually kshisms, and
OpenBSD has added many of the ones that truly were bashisms into their version
of ksh, since so many scripts have come to rely on them).

------
oxplot
Learnt new commands: pushd and popd

~~~
krylon
zsh can be configured so the cd command automatically becomes a pushd. This is
such a huge improvement to me I stuck with it. (Fish has a similar feature,
except it supports pushd/popd _additionally_.) (Maybe bash supports this, too,
I have not used it much in the last couple of years.)

Interestingly, even cmd.exe on Windows (at least on Windows 7 and newer)
supports pushd/popd.

~~~
kerny
The same can be done easily in bash with an alias:

alias cd=pushd

------
therealmarv
I don't see the fish...

------
fnj
xonsh is the only shell you need. It is far and away the best of all.

~~~
lake99
I _so_ wanted to like xonsh, but the startup time is too slow. I keep spawing
new shells every now and then for every little task. When I'm done with the
task, I close it. Xonsh has noticeable startup delays.

I don't have a taste for pulldown terminals.

~~~
scopatz
Sorry to hear you ran into problems. Start up time is pretty fast for me
(~0.1-0.2 s). If it is slower than a second, I am very concerned. Please open
an issue (with the results of the xonfig) so we can work through what is going
wrong. Your workflow sounds similar to mine.

As per the pulldown terminals, do you mean the dropdown menus? If so this can
be avoided by using the readline shell instead of the prompt-toolkit one.

~~~
lake99
Thank you for the response! For me, the startup time ranges between 0.3-0.45
seconds. I have an old i5 3rd Gen processor. Presumably, your system is
faster. This should give you an idea of the timing of my shells, compared to
the latest git checkout of xonsh:

    
    
        % for i in dash mksh zsh bash xonsh; do; /usr/bin/time $i -c /usr/bin/ls; done
        0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 1884maxresident)k
        0inputs+0outputs (0major+127minor)pagefaults 0swaps
        0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 1820maxresident)k
        0inputs+0outputs (0major+136minor)pagefaults 0swaps
        0.00user 0.00system 0:00.00elapsed 50%CPU (0avgtext+0avgdata 3204maxresident)k
        0inputs+0outputs (0major+251minor)pagefaults 0swaps
        0.00user 0.00system 0:00.00elapsed 60%CPU (0avgtext+0avgdata 3092maxresident)k
        0inputs+0outputs (0major+244minor)pagefaults 0swaps
        0.41user 0.06system 0:00.48elapsed 100%CPU (0avgtext+0avgdata 58768maxresident)k
        0inputs+24outputs (0major+22347minor)pagefaults 0swaps
    
    

Do you think the difference is large enough to warrant a bug report?

I don't mean dropdown menus; "pulldown" was my misnomer. I meant dropdown
terminal emulators like Guake, Terminator, Yakuake, etc. They are meant to be
running in the background, and swoop down on pressing a hot key, inspired by
"~" opening a console in Quake games.

