So, last semester I took a class about Bioinformatics (Python Programming) and the professor made us to use Fedora, we really didn't learn like a lot of Linux, just the basics.
Since I'm studying computer science I think that learning Linux (In a more complete way) will be very usefull for my career. So, with your experience, which distro do you recommend me to get started? (I will be very gratefull if you recommend a book or a online course to learn about it).
Thank you for your time guys, and sorry for my english, greetings from Mexico!
Latest comments (40)
Hi from México too, i use and love elementary OS, any problem you get just search how to solve it on ubuntu. Protip: type 0 when ask for a donation to donwload. Also some people at my university really like deppin
If you're interested in learning how to use Linux but still have a stable OS for your day to day tasks, try Ubuntu 16.04 LTS. It's one of the most beginner friendly Linux operating systems out there. Pretty much everything you need is baked in.
Problem with a general suggestion
The problem I encountered with diving into the GNU/Linux world is that you cannot just "do stuff from scratch and understand everything" (i.e. learn C by writing a simple webserver).
Most distributions I consider practical for production are also those that need little maintenance after an initial configuration.
So I'd recommend you boot up a "beginners" distribution first though.
If you follow these steps, you will spend a few weeks or so with the process from start 'till the end of "Production System".
This will yield a lot of knowledge though.
Systemd
Due to the added complexity (and also the opposition to the Unix philosophy inherent to most of GNU), I'd recommend against anything with systemd at the start.
As soon as you understand what an init does, what services are.…
Let's say after you naturally discover what double forking is (so don't just straight up google it).
.…then you might very well look into it and see for yourself.
How about Slackware?
afterboot(8)
As soon as you can use the shell, including:
--help
,man
)nano
is fine for starting, but as with systemd, when you know what your editor should be able to do, choose the one right for you ;-) )I suggest you go through the Gentoo Handbook.
This will show you how to install a distribution from scratch with most of the configuration done by yourself, and lots of verbose explanation.
Why not LFS?
Suggesting LFS here would be a mistake, IMO, as this adds too much overhead (compiling, compilerflags,.…) that are not needed to understand a GNU system.
As soon as you understand GNU/Linux, you should already have a general idea on how building an LFS yourself could be accomplished.
This by far does not mean you must be able to do it of course.
Underlying Tech
I suggest having a look at the following man-pages:
read()
andwrite()
Then make sure you understand:
Have a look at
wait()
.Production Systems
Learn how to use general purpose production systems.
Now that you know how it works, put it to use (this will be the easiest part).
Install e.g. a Debian Stable, configure it to the point where it hosts a static website (need not be anything special, a "Hello World" in HTML is enough).
Hints: nginx, Apache2, caddy are your friends.
Done?
You are never done with GNU/Linux (unless you switch to BSD).
If you still feel like it look into containers (e.g. LXC/LXD), automation (e.g. Puppet, Ansible) or whatever you feel like.
Debian is the industry de facto standard. (ie when a dev has only one distribution format available that is 90% of the time a .deb file)
However if you'd like to be extra thorough study also the rpm package manager for red-hat based distros. (A fedora vm image will do the trick)
Linux Mint is the way to go for your desktop environment. It is the easiest to install and use in a daily basis.
Arch is for gents who like to take care their own configs down to the finest detail.
I use a Gentoo build (coz old hardware)
I would highly recommend using Fedora 26 with KDE. It's been a dream. I've been a Linux desktop user for ~4 years, and gone from the bare metal (1 year using Awesome WM with Arch), to Gnome, to Cinnamon, to Mate, to Unity, and nothing compares to KDE or Fedora.
Modern Fedora is beautiful and easy-to-use, and I love DNF. KDE Plasma somehow feels the lightest and yet contains the most features of any DE around. The themes are sharp and it scales well at any resolution (I use a 4k monitor), providing a significantly better experience than Cinnamon (my second favorite DE). It has an application launcher similar to Unity's HUD, and the canonical start menu, giving you the best of both worlds. The layout and defaults are superior to GNOME, and Wayland support is excellent.
Any suitable VM (Oracle, VMWare) is your best friend in learning *nix-world.
Also it's a kinda filter or test to enter into that world. If you can't deal with that, forget about Linux.
Personally, I prefer Debian with KDE. But on my job they allowed me to use Ubuntu so my choice was to install Kubuntu. A nice distro I feel familiar with. :)
I like fidling and reinstalling a lot so I've tested different distros (more or less) successfully.
I started with Debian which I found was very good but a bit complicated to figure out at first. I can't really pin words on why though. Maybe it was a bit too serious for what I was doing with it.
I then switched to Linux Mint because it was Ubuntu based but lighter and worked pretty much the same way as Debian but felt more user friendly, especially when installing.
Lastly (for now), I revived a small i686 acer with Arch Linux ( aka Hipster Linux). I did it because I was looking for a challenge and I wanted to understand better how Linux works. Don't go there straight away if you're a beginner I'd say but definitely check it out on day !
Arch is my past love. Debian was my first love so I guess twas an emotional decision to return to him. :))
It just doesn't matter.
I mean, there are some wrong decisions. I would steer you away from Gentoo, because you build all the things, but beyond that, not much.
They present about the same with user space, with some superficial change with defaulting to Unity or Gnome or ... I don't even know the good window managers these days. But you can install the other ones.
And installing is similar too. Either
apt install foo
oryum install foo
, which is not a big enough difference to really get hung up on.It wasn't always this way. in the 1990s, I went Red Hat (before Fedora existed) because I could not complete a Debian install. I couldn't figure out how to get to "Yes, these are the initial packages, so install now, please". The problem then was that you didn't have yum, so you went to RPMFind to get the packages you wanted.
Then I found Ubuntu, which allowed me to say
sudo install this package
on the command line and gave me an easy installation, so yay. I stay because 1) I know how to have it tell my code my computer is locked, and 2) because it does The Right Thing with notify_osd. And, of course, because I'm used to it. This means I'm odd, not that it makes sense to you. This is not meant as a recommendation.I'm hearing Red Hat is common in enterprise situations, including the systems my code runs on that I don't admin, and Fedora is based on that. I know people who run it and, as far as I know, they like it. I see stickers and t-shirts on occasion...
If Bioinformatics is going to be your regular gig, I'd double-up on knowing the Fedora side, even if just it's being used to having
/bin/env python
pointing to/usr/local/bin/python
instead of/usr/bin/python
. But it will be much more important to you if you get into systems administration than just developing.And even then, kinda not, because with Puppet and Chef and Ansible -- are those the only major players in that area? Am I forgetting any? -- you're seeing large systems on which Bioinformatics is done, the admins want to have scripts saying "This machine has sshd, the message queue, NFS mounts to these file systems and that's about it". A Puppet developer told me about a system that caught a rootkit, but every time the kit tried to install the malware server, Puppet said "Nope, not on the manifest" and wiped it. So, installing the packages and keeping it up to, honestly, many generations back for most tools, is a Puppet/Ansible/Chef thing, not a distro thing.
So, if you know people who are strongly Fedora or Ubuntu or Mint and you can ask them questions, go with their preference, but the differences will be small and superficial. It really doesn't matter.
If you really want to learn to use Linux, I would use Arch Linux.
Pros:
Cons:
I personally recommend the gnome desktop with (at least) dash-to-dock. For pretty icons you can install numix-circle.
And there's Antergos - Arch with GUI installer. I'm using it.
Im definitely going to try Arch, but maybe just not now. I'm kinda new in this field (I only have like 2 years coding and computer science) so maybe I will start with something a little bit more easy and like windows-users friendly idk. But I really appreciate your opinion man! Thanks!
It mostly depends on your background and which OS are you currently comfortable with.
A bit of background: You can pick between multiple distributions and multiple desktop environments.
To put it really simple, a distribution can be described as the core foundation of your Operating System, the most common distros are Ubuntu, Fedora, Arch, Manjaro, OpenSuse, Linux Mint, elementary os. I'm sure I'm missing a ton of others, but these are for me the common distro. All of these, have different cores and approaches, some of them share the same core but come with drastic edits.
A Desktop Environment is what you actually see, your GUI. Common DEs are Gnome, Cinnamon, Mate, Pantheon, etc.
You can potentially have whatever distro with whatever desktop environment running on top.
If you used Fedora, most likely you used Gnome DE.
If you're coming from Windows I'd suggest Linux Mint with Cinnamon desktop, or Mate desktop. They're both based on Ubuntu, a really common distro based on Debian, with a massive availability of support, software, fixes, etc. Cinnamon and Mate DEs are really familiar looking for a user coming from Windows. They share similarities in managing windows, the file manager, and the overall interface.
If you're coming from MacOS I'd suggest Ubuntu Gnome or Elementary OS. The DEs are really similar to MacOS, and the learning curve is pretty flat.
If you don't know anything about Linux and you don't feel comfortable in tinkering with terminal commands and stuff like that right at the beginning, I'd stay away from Arch based distro, because they require a lot of customization, and also Fedora, because their approach is to include bleeding edge technologies that are not fully stable. Dealing with bugs and spending hours in the terminal is not a great first experience to approach Linux.
ElementaryOS is highly recommended for absolute beginners. Based on Ubuntu, has all the good packages and stuff you can get, but it comes with a strict and highly curated desktop environment called Pantheon. Easy to use, not overwhelming and out of the way. After you get acquainted with Linux and you want to start playing with the command line and heavy customization, you can switch distro.
I know my post is not really accurate, and I'm giving away a lot of average info, but I tried to keep it simple and easy to understand for a new user.
I hope that helps, and apologies for any inaccuracy.
Awesome first comment, Alex. 🎉
Thank you so much, I hope it'll be somewhat helpful
Thank you very much man! It was helpful! I'll be checking out Linux Mint