FreeBSD switches the default root shell from csh to sh(cgit.freebsd.org) |
FreeBSD switches the default root shell from csh to sh(cgit.freebsd.org) |
I explained how to disable readline
Was this kind of shell changing disabled? Maybe there’s no way of doing that exec automatically? Is there some advantage to having your shell of choice explicitly listed in /etc/passwd?
I'd be sad to see an educated person refuse interesting new tricks (readline causes no regression or loss right ?)
If the tools such as base environment changes way too often, I'd be annoyed as well - not because I don't know how to make the colours go away or set up the proper aliases - but the fact that I need to do it and pause my actual work.
At this point I don't want to learn any new tricks, either. I'm sticking with bash for the rest of my life.
If you have a problem with one or two shells but not all of them, then you might want to look within.
- command completion
- ...
Too much bloat for my tastes.
I'm guessing your alternative is:
echo $PATH | sed 's/:/\n/g' | xargs ls | grep command_im_looking_forThere is a new setting in tcsh to allow for automatic rehash, but I have it disabled.
What's the current process to make extremely small "minimal" freebsd server install?
Is it Nanobsd[1], because the unfortunate downside is that the base can't change (I realize that's a feature) and for a web server or database server that might not be ideal.
It's a great shell for user input.
I never especially liked that csh-whynot article as I feel it focuses a bit on the wrong things, and things people rarely use in day-to-day usage.
I used tcsh for many years (as it was the default on FreeBSD, the first system where I seriously used the CLI), but I can't really think of many things it does better than either bash or tcsh nowadays. The only thing is that you can set "noclobber" to "notempty" and "ask", but at least "notempty" was added in zsh recently; AFAIK bash can't do that. It's a small but very useful feature for cases where you type "wrong-cmd > foo" and then up and "wrong-cmd-corrected > foo".
Whichever shell you might prefer, it's absurd and infuriating to have one shell as the default for normal users (including the first user created at installation time), and a completely different, not even remotely compatible one for the superuser.
As BASH uses the GPL3 license it does not have the chance of being included in the FreeBSD Base System because the FreeBSD project currently tries to remove all GPL3 licensed software from its base.
Details here:
It's a tradeoff but one I find more useful than not.
It was one of the things that made FreeBSD unique. I guess the got sick of hearing this question: "can I change the root shell to bash ?". I think they were the last holdout of the BSDs.
But to me, if you care what root's shell is, you are doing something wrong by using root way too often.
That said, it really was damned annoying. I like to port my software to AIX, FreeBSD, Linux/glibc, Linux/musl, NetBSD, macOS, OpenBSD, and Solaris. All of them use a Bourne-like root shell except FreeBSD, and every time I go to upgrade a FreeBSD VM or build a new one I seem to always trip over that at some point. If I used FreeBSD regularly I wouldn't care as much--I'd change the default, or know how to achieve what I want more directly. But not being familiar with FreeBSD, I always end up in a root shell poking around trying to remember how upgrades work, which tools I need to find documentation for, etc, and end up cursing csh for compounding the mental burden.
From my perspective, changing the default root shell is a benefit, albeit very minor. Though, if FreeBSD (and NetBSD and OpenBSD, for that matter) began publishing official VM images, that'd be worth so much more to me.
You can do all kinds of fancy stuff with zsh (especially via something like oh-my-zsh) but it bloats it and slows it down too much for my liking. Maybe if I were trying to work on a machine with no GUI, I'd go for that sort of thing. As it is, I don't need a battery level graph or load monitor or whatever, always visible in my terminal.
The most important thing about zsh you should think of is "no need to quote variable expansion".
https://vermaden.wordpress.com/2021/09/19/ghost-in-the-shell...
> has anyone done serious scripting in the C shell?
I recall SAP created used CSH/TCSH for its scripts but I am not sure they still do it.
SunOS was BSD and Nirvana as far as Unix goes. Solaris was SysV and quickly earned the nickname "Slowlaris". For me FreeBSD is the functional descendant of SunOS.
As for Linux I first tried it out in 1993 and was appalled that command line switches for most standard Unix utils had been arbitrarily remapped. Tried FreeBSD 1.0 when it came out and never looked back. Of course I use Linux in AWS and various servers at work and regularly experiment with Linux distros on personal machines but it always feels a bit "off".
I wonder how many other greybeards that cut their teeth on SunOS prefer FreeBSD over Linux today?
Not a greybeard but I certainly reach for a BSD when I want to "use Unix".
Linux is a quivering basket case that cant decide if its Unix, MacOS or Windows.
That could be an interesting question. I certainly cut my teeth on SunOS and Irix. I much prefer modern Linux.
I do prefer FreeBSD over most Linux distros (except Slackware) from a philosophical standpoint.
GNU and Linux distributions are actually Unix clones, with different distributions mimicking or incorporating code from the various open source and proprietary Unix operating systems. For example, Slackware used to use an rc-style init system like BSD. Linux cgroups (underlying tech like Docker) look very much like Solaris zones. GNU coreutils have POSIX compatibility modes. Systemd looks a lot like Solaris SMF. Stuff like ZFS and DTrace were imported from OpenSolaris. And so on.
That's a common misconception. It's as much of a UNIX as Linux is (see the AT&T lawsuit).
It's great that other projects make other choices about default shells and other system design details.
EDIT: Oh, and I would expect BSDs to feel a lot more like traditional unix because they're direct descendants of UNIX™, unlike the later clones like GNU/Linux.
Plus the documentation for FreeBSD is much, much better. For one thing, no pushing me to use that god awful “infodoc” crap.
For those with CLI access, adding a more full-featured shell is fairly easy with pkg.
They do: ftp://ftp.freebsd.org/pub/FreeBSD/releases/VM-IMAGES/
[Usenet; poss. from the variety of prosimian called a “slow loris”. The variant ‘Slowlartus’ is also common, related to LART]
Common hackish term for Solaris, Sun's System VR4 version of Unix that came out of the standardization wars of the early 1990s. So named because especially on older hardware, responsiveness was much less crisp than under the preceding SunOS. Early releases of Solaris (that is, Solaris 2, as some marketroids at Sun retroactively rechristened SunOS as Solaris 1) were quite buggy, and Sun was forced by customer demand to support SunOS for quite some time. Newer versions are acknowledged to be among the best commercial Unix variants in 1998, but still lose single-processor benchmarks to Sparc Linux.
But I always liked SUN Solaris for its features and solutions.
$ hash
hash: hash table emptyA more positive spin on this would be that it combines the best of all three.
Personally I'm very much in the Unix camp though, and have the proverbial greybeard long enough to trip over. But I can see the value in the "Linux way" of doing things. Actually, I mostly just use Linux myself these days, mainly because of software compatibility and because it's "Unix-y enough" with the right distro; a decent trade-off.
A more accurate spin would be that it does a half-assed job of implementing features from each but runs off half way to chase after some other shiny feature.
That's the virtue of BSD; it's simple, it's documented it's complete (in features and feature implementation).
But I considered readline a good addition, not a waste of time and neurons.
ps: I stopped using zsh/fish, my emacs theme is the vanilla theme.. you forget about these 'improvements', for real tasks they don't matter.
But as you say, tools must get out of the way...
If you just want to execute it then it is a footgun - using only the !command syntax.
If you use the !command:p syntax then you are just printing what command has been executed instead of invoking it.
Example.
% uname
FreeBSD
% !uname
uname
FreeBSD
% !uname:p
uname
%I imagine that how it worked for them before is that the up arrow would move the cursor to the previous line into the output of the previous command, while feeding the arrow key escape sequences to the shell prompt as part of the command. IOW, a pretty useless and annoying key right? Why even press it? How did they notice readline?
He also noticed that if you ran 9 "yes" commands on a 8 core machine, the CPU wasn't allocated in 8/9ths units (one process always got a lot less CPU). he was used to much more predictible CPU scheduler on multiprocessor systems (spoilt by TruCluster). Linux later adopted a better scheduler (fair share) so imho he was right on that one, even if "yes" is a terribly performance metric.
A lot of times people would be a lot more receptive if you show them "hey, you can use the up arrow like so if you want!" Then they can choose and adapt at their own pace if they want to, and they're in control of their own systems.
It's closer to BSD than it is to Linux. Not super similar, but closer, especially in ways one tends to notice on the command line.
I'm quite shocked
I'm not 20 something either, I'm not chasing new shiny.. but a simple history access (arrows or search) is not an invasive disruptive toy feature..
alas
I've used freebsd for years and I still find Mac OS to be the least useful UNIX.
Further, unless I'm missing an important technical detail, Linux could, with some effort, pass the certification process.