Which Linux distribution should a beginner choose? Linux for beginners or what a girl can teach

Any user may be interested in trying out the Linux operating system. That's what happened to me once. There is a lot of literature on the Internet, but there is always topical issue: "Where to begin?". Some saw Linux from friends, some found a video or read articles on the Internet, but all this more often ready-made options. And if you yourself want to install such an OS on your computer, then you will have a lot of questions. The first question that worried me was the choice of distribution...

I rummaged through a bunch of literature, but opinions were divided, and still are. Some are for Debian, others are for Mandriva, RedHat, etc. Currently, there are more than 1,300 builds of the Linux OS, and choosing one specific one makes the hardcore Windows user think deeply. I tried to install different ones, but it was not always possible due to equipment conflicts and simply inexperience. The first successfully installed distribution was OpenSuse 11.1, then Debian. The catch is that these distributions have different file structure, programs and more. This confused me even more, but I continued experimenting until I decided on Ubuntu. This is what we will talk about.

I think it's worth noting that Ubuntu is based on the Debian distribution, which in turn is very popular among system administrators. What does "founded" mean? I'll try to draw a parallel with Windows OS. Imagine a regular licensed Windows disk. Introduced? Now imagine any assembly, even the notorious ZverDVD. So, Ubuntu is a “build” of Debian, which has an updated kernel, patches, own programs and repositories. Later I will talk about all this separately. I don't think we should go too deep into Ubuntu differences from Debian, I’ll just add that this distribution is very popular and new Ubuntu versions published every six months (April and October). And yet, why Ubuntu? Yes, it simply meets the requirements that a novice user sets for a new OS.

  1. Simplicity and ease of installation. I want to insert the disc, install it, watch it without having to dance around with a tambourine (although further work can’t do without dancing with a tambourine). I note that when working in Windows you can be simple user and don’t bother yourself with how and what works, and if infrequent problems or difficulties arise, simply turn to knowledgeable and understanding people who can help you. In the case of Linux, you will have to figure things out on your own and become a “knowledgeable” person yourself. But don’t be afraid, that’s not what you came here for. Be that as it may, you can always ask a question, and we, in turn, will try to help you.
  2. To make everything work. Installed? Here you have a desktop and all sorts of menus and many programs, and a browser, and a package office programs and a network configuration applet (however, we will learn to work without it and configure the network manually). There is even a player, but it cannot play many audio/video formats by default; I will explain later why this is so and how to solve it.
  3. I don't want to lose anything. There are a lot of applications and documents on the Windows OS partition that I don't want to lose when Linux installation. Ubuntu will offer you to divide your hard drive into parts, save Windows or any other OS and install its own bootloader that can boot both Windows and Linux. Modern Linux distributions, including Ubuntu, have the wonderful ability to run from a disk or flash drive without installing it on the computer’s hard drive. Distributions that can do this are called LiveCD / LiveDVD (or “live disk”). I advise you to first try to start the OS with installation disk . This way you will know for sure that a particular distribution can handle your computer’s hardware and there will be no problems during installation. By the way, there is a high probability that when starting Ubuntu With LiveCD You can, by entering the network settings, use the Internet and the network. You will be able to work with text documents and tables. You can view pictures and so on. Just try booting from the disk. Do not forget that working with a LiveCD is still not working in a full-fledged operating system installed on a hard drive, so be prepared for “brakes” when reading from a CD in an attempt to open this or that program.

You can always leave your comments and suggestions for improving, changing or correcting the article in the comments. We work for you!

In October 1991. Linux is a generic name for all UNIX systems running on the same kernel. At the beginning of its Linux history was quite demanding on the user's knowledge. A deep understanding of Linux fundamentals was needed, but in the process of evolution operating system Many distribution kits have appeared that simplify working in it.

Differences between Linux and Windows

The basics of working in Linux with a graphical environment are no different from Windows. But for the correct Linux works needs to be configured.

The most significant differences:

  1. Linux is intended for advanced users, Windows is a "system for everyone."
  2. Linux is superior to Windows in handling streams and data.
  3. At using Linux you don't have to be afraid to break something license agreement.
  4. Each application has its own address space, independent of the kernel's address space, making it easy to create embedded systems based on Linux.

And this is far from a complete list of advantages.

Benefits of Linux

Today, many Linux programmers are improving the system, developing new versions and variations. Among the advantages are:

  1. Free - the operating system itself and most programs for it are completely free and fully functional.
  2. No viruses - the very configuration of the operating system kernel excludes the operation of harmful programs. This allows you to do without antiviruses that slow down your computer.
  3. Open source - which allows you to use and modify the code as you wish. This also creates great amount embedded systems based on Linux.

Linux distributions

In its original form of Linux does not provide such familiar things as a graphical interface, installation and removal of programs.

Distribution is a form of software distribution. They are needed to add the OS kernel additional components, which will allow users to easily install, configure, operating system.

Thanks to open source code There are hundreds of distributions, but most of them are not worthy of attention, since they have minor differences from each other. Users need stability without bugs and long-term technical support. The following is a list of distributions that are suitable for beginners to learn the basics of Linux.

List best distributions:

  1. Debian is stable and undemanding of resources. Has a huge number of packages for installation. Absolutely free.
  2. Ubuntu is a less conservative variant of Debian. Considered one of the best for home use.

For beginners, get acquainted with Linux is better Ubuntu is most suitable, since this operating system is most similar to the familiar Windows.

Installing and Configuring Ubuntu

There are two different versions Ubuntu distributions: LTS and Regular. The main difference between LTS is stability and long-term support. This version comes out once every five years.

Regular versions are released much more often, but may still appear various problems with the compatibility of certain components.

At the time of writing, the latest LTS version is 18.04 Bionic Beaver.

Installation will not cause any difficulties. The user is only required to click the “Next” button at the right moments.

The last step before installation begins, you will be asked to enter information identifying you as a user. This information will be useful not only when starting the system, but also when starting some applications.

Linux Basics

At work Ubuntu desktop located: control panel, dock panel, and application menu.

The notification panel is a translucent strip at the top of the screen, which contains: the date and time, the system tray with notifications, and the activity menu, which allows you to manage the desktop.

The Dock panel is a kind of analogue of the panel Windows tasks, which displays frequently used and running applications.

The applications menu displays all installed applications.

Together with Ubuntu distribution supplied file manager Nautilus. This file manager allows you to easily manage files and directories.

Most of the manager's interface is occupied by the central panel, where the folders and files themselves are located. On the left is side panel, which is in general outline similar to the similar panel in Windows Explorer.

File and directory names in Linux must follow certain rules. For those who actively use other operating systems (as there may be several differences), here are the rules for naming files and directories:

  1. The name must not exceed 255 characters.
  2. Linux is a case-sensitive system, hence "example.txt" and "Example.txt" are different files even though they may be in the same directory.
  3. If the file or directory name begins with "." - such a file or directory will be marked by the system as hidden.
  4. Because the Linux base- UNIX, then it fully supports UTF-8 encoding, the use of a national layout is allowed.

Terminals in Linux

Graphics environments provide a convenient and familiar way to work with operating system components. But there are still several tasks that require using a text terminal.

There are two ways to work with the terminal: and the window console. In the first case, the graphical shell is ignored, and the results of the programs are displayed on the screen in the form of text.

To work with the terminal, you do not need knowledge of the basics of programming in Linux, as it might seem at first glance. You just need to know certain commands. Since there are many of these commands, it is very difficult to remember them even for people who are well versed in Linux. Therefore, all these commands can be found on the Internet or you can use the internal help by entering “find --help” in the terminal.

Installing and removing programs using Synaptic

Synaptic is a program with graphical interface, used in Debian distributions and Ubuntu, and designed to search, install and remove programs.

Synaptic allows you to search for programs using special filters. They are in the lower left corner and are divided into criteria. also in top corner the field is located quick search, the entered text will be searched in the program name.

After required program found, you can install it. To do this, click on the program name right click mouse and select "Install". Programs are removed and updated in the same way.

We have collected for you the 10 best video courses, the study of which will help you get started with Linux and understand the features of this system.

1. Linux for beginners

Let's start with a video tutorial on Linux, which talks about the system as a whole and how to get started with it. This video course is more suitable for those who are just starting their acquaintance with Linux.

2. Series of lessons “Learn Linux”

This video course is designed to get you started with Linux. It will help you install this system on your PC. The audience of this video course is people who have heard a little about Linux.

3. Course of lectures on Linux administration

Detailed video course on Linux administration. He examines various issues: from the purpose of this system to the administration of MySQL. Suitable for both beginners and experienced Linux users.

4. Bash Programming

An excellent English-language tutorial on learning Bash programming. Will help you understand very important aspect working with Linux, but it is best to start studying this course after watching one of the previous ones.

5. Linux administration

This course will provide you with basic knowledge of Linux and help you obtain the LPIC-1 certificate. If you want to reinforce your knowledge with the LPIC-1 certificate, then this course is definitely for you.

6. Linux Basics

A short video course on the basics of working with Linux. If you want to start with this video course, I recommend that you familiarize yourself with installing Linux, since this video course covers aspects of working directly in the system itself.

7. Command Line Basics

A small but very useful English-language tutorial on working with the Linux command line. In this video course you will learn such simple operations as creating and deleting files or directories. Suitable for anyone who wants to expand their knowledge of working in Linux.

8. Video course on GNU/Linux by Vladimir Mozhenkov

Video course on the basics of working with GNU/Linux, simple and clear. This video course is aimed at both beginners and experienced Linux users.

9. Series of lessons “Your path to the world of Linux!”

This video course talks about working with such things as system Cron scheduler And path variable. I advise you not to start with this course, until you read one of the previous ones.

10. Linux Administration

Last on our list is a video course that explains in detail all aspects of working with Linux. This video course will expand the knowledge of experienced users; the course is designed for those who are already somewhat familiar with Linux, but want to know more about it.

Discussion, best workers Linux tables is very hot among regular users, because in Linux there are not 2 or 3 of them, but only 6 popular ones, I don’t think there are several others that are less popular. Experienced Linux users“grab their swords” and begin to defend their choice.

If you're wondering about my opinion, know that I've been using Ubuntu for years, until now. I recently tried Linux Deepin, maybe it will lure me to its shores in the future. I really appreciate Linux Mint, I once used his new working environment Cinnamon, on weak laptop I'm currently using Linux Mint XFCE. With that said, Linux Mint is the clear winner when it comes to choosing a Linux distribution for beginners.

The real truth of this question is that you can't go wrong when trying Linux with any of these desktops. Each of them illuminates its own path. If you are looking for true beauty, then go the Linux Deepin route. If you want a combination of beauty and simplicity, use Ubuntu Linux. If you want simplicity, then Linux Mint is the way to go. No matter which route you take, it will be a win-win.

As the reader response shows, interest in solutions to Linux based very, very large, at the same time, the level of training of administrators in this area leaves much to be desired. Evidence of this is the endlessly repeated simple questions in the comments. In many ways, this is a consequence of the fact that our instructions can be followed “verbatim” and get a working result. But there is also back side medals, this approach does not provide for the emergence of systemic knowledge, leaving knowledge of the subject at a fragmented level.

Yes, in addition to practical materials, we always try to publish reviews devoted to any technology in general, or make extensive theoretical digressions, so that the reader has minimum required knowledge. However, they all assume that the reader has basic knowledge of the system in which he works.

But what about those who are just taking their first steps? Unfortunately, there is some snobbery in the IT community, they say, why talk about it, everyone already knows it, or “Google to the rescue,” forgetting that each of us was once a beginner and looked at a black screen with mystical horror Linux consoles, absolutely not understanding where he ended up and what to do.

As a result, a beginner, faced with the first difficulties, is forced to go look for knowledge elsewhere, and it’s good if such a place can be quickly found. Therefore, we decided to release a short series of materials in which we will lay out the basics at an accessible level. Linux administration systems, literally explaining “well-known things” on their fingers, advanced users They can skip this series, or they can read it, at the same time updating their knowledge.

So you've decided to become a Linux administrator...

Let’s paraphrase Mayakovsky a little “I would go to Linux admins, let them teach me”, this is exactly how things are in most cases. There is a need, there is a desire, there is basic set knowledge of working with Windows systems - all this will be useful when working with Linux systems. It’s much worse if any component is missing, then it’s probably worth thinking about wrong choice professions.

Immediately about what you need to forget once and for all. These are "religious wars" and "religious fanaticism." It is equally bad to deny the capabilities of Linux systems, as it is to extol them, trying to transfer everything that is needed and not needed to Linux. Remember - the operating system is a tool, good specialist takes the most suitable one for each task, the fanatic will hammer nails with a microscope, because “religion does not allow him” to pick up a hammer.

Even more, the operating system itself has no value; it is just an environment for launching and executing some services. Without software, the system is dead. Let's take the BeOS clone Haiku as an example, well, we installed it, we looked at it - it's cool... And then what?

So, you have decided to become... First of all, be ready to perceive new things, in particular new approach to administration, trying to forget about existing habits for a while. On for a long time your main tool will be the console.

For a Windows administrator accustomed to graphical tools, this may seem difficult. But one truth should be firmly understood - the console is the only full-fledged Linux administration tool and does not at all mean that the system is limited in capabilities or inferior. On the contrary, the command line allows you to perform many tasks much faster and easier than graphical administration tools.

But there are graphical administration tools, another reader will say, there are different panels, or you can install a graphical shell. It's possible, but not necessary. Why? Take a close look at the diagram below:

Linux, created in the image and likeness of UNIX systems, is a full-fledged system and without a graphical shell, moreover, we can start, close or even change the graphical shell without any impact on the performance of the system and even without rebooting it. We ended the Gnome session, launched KDE, and then went out to the console. Therefore, all system management tools are designed for use in command line. And all panels and graphical tools are just an add-on over them.

Windows was developed for a long time using a fundamentally different technology; the graphical shell was placed at the core of the system and for a long time even ran at the kernel level (Win 9x family). Therefore, all administration tools were originally graphical, and command line tools complemented them rather than replaced them. Anyone who has been involved Windows recovery, knows that the capabilities of command line tools there are significantly limited and are intended primarily for system recovery, and not for its administration.

The situation began to change with the release of PowerShell and Core versions Windows Server. Despite the fact that today the graphical shell continues to play a significant role in Windows systems, administrators now have an alternative tool in their hands - the PowerShell console, which allows you to fully administer Windows in command line mode. At the same time, the capabilities of PowerShell immediately gained popularity among specialists, as they allow you to perform many tasks faster and easier than graphical tools.

And the command line mode gives unlimited possibilities in creating your own scripts and scenarios that allow you to perform complex sequences of actions in automatic mode or according to schedule.

After this, we think you will have to look at Linux console on a completely different side. Regarding panels and graphic tools, then there are significant differences from Windows systems. IN Windows graphic tools are a complete alternative to PowerShell. IN Linux graphic the instruments are an add-on over the console, in fact using the same instruments, but through an additional layer. Therefore, we categorically do not recommend using various types of panels and other graphical tools, at least until you master the console. After this, you can decide for yourself whether you need a panel or whether you can do everything easier and faster through the console.

Infatuation with panels at an early stage of getting to know the system leads to the fact that system administration skills will be replaced by skills in working with the panel, which is fraught with problems when the panel for some reason turns out to be inaccessible, but you need to work with the system. This can be compared to the fact that a person who has learned to drive a car with a manual transmission will switch to an automatic without any problems, but a person who initially knows how to drive only an automatic is unlikely to be able to additional training drive a car with manual transmission.

If you haven’t changed your mind about becoming a Linux administrator, then let’s move on and look at the differences in the system architecture.

Kernel and drivers

The core of any operating system is the kernel. There are several various architectures kernels, Linux, like the vast majority UNIX systems, uses a monolithic kernel, Windows, on the contrary, uses the concept of a microkernel, although the Windows architecture is not truly microkernel, it is generally accepted that Windows uses a hybrid kernel.

A feature of a monolithic kernel is that all hardware drivers are also part of the kernel. Previously, when the hardware was changed, the kernel had to be rebuilt; today, monolithic kernels use a modular design, i.e. dynamically allow you to load the necessary modules responsible for this or that functionality. Those. Having added a new device to the system, we must dynamically load the corresponding kernel module, and if there is no such module, then working with the device will be impossible. As a solution, we can build the module ourselves, but in this case the module will be compiled under current version kernel and when changing it, the module will need to be recompiled.

In microkernel and hybrid architectures, drivers, although they can work at the kernel level, are not part of it and do not depend on the kernel version. Therefore, we can update the kernel without problems or use the same driver for all versions of systems with general structure kernels. For example, in Windows for the entire family of modern operating systems, from Windows Vista before Windows 8.1, the same driver is often used.

This does not mean that Linux is worse in this regard; a different architecture provides for different approaches. In practice, this means only one thing - you need to be more careful when choosing equipment for servers, trying to ensure that all major devices are supported by the kernel of your distribution. This is especially true for network cards. It will be very unpleasant if after each kernel update you have to run to the server room, connect a monitor and keyboard to the server, and reassemble the kernel module.

In fact, there is no such thing as a driver in Linux systems. The hardware is either supported by the kernel or it is not. The undoubted advantage of a monolithic kernel is that it is self-sufficient. If all equipment is supported - set it and forget it, it’s time to remember the situation when there is no driver for Windows network card and the disk is lost.

File system

We will not touch upon specific file systems; there should be no problems here; if the administrator worked with Windows systems, then he knows what a file system is and how FAT differs from NTFS, so to understand the difference between ext3, ext4 and, say, ReiserFS for him it won't be much of a problem. Let's talk about the fundamental differences. Unlike Windows, the Linux file system is hierarchical. It starts from the root, which is indicated by the sign / (slash), and has a tree-like structure. In this case, it does not matter at all that the individual parts file system may be located on other partitions or even physical disks.

Let's look at another diagram.

In Windows, each partition has its own file system and its own letter. All paths to files and folders begin with a letter, i.e. from the root of the section. So if we had a DATA folder on the first physical disk, on the second logical partition, then the path to it will accordingly be like D:\DATA, if we want to move it to second hard disk, then let it change to E:\DATA. In some cases, this is terribly inconvenient, since the path must be changed in all places where it is used, and there are even corresponding utilities.

In Linux, the approach is radically different. It's time to get acquainted with the term mount point, which means the file system location where the storage device is attached. For example, we want to move the users' home directories to a separate partition, as in the diagram above; for this we need to mount the second logical partition of the first physical disk sda2 V /home. Then transfer all user data there. This will happen absolutely transparently for the system and programs, as they used absolute path, let's say /home/andrey/data, so they will use it. We added another disk and want to move the directory there /var? No problem, stop the services using the directory, mount sdb1 V /var and transfer the data, start the services.

Everything is a file

Another fundamental principle that is inherited from UNIX systems. In Linux, everything is a file: devices, disks, sockets, etc., for example, opening /var/run we will see pid files corresponding to each running service in the system, and in /dev files for each device connected to the system:

What does this give? We won’t go into details, but let’s look at a few simple examples. Let's say you need to create an image optical disk. In Windows we need specialized software for this, in Linux everything is simpler, a CD-ROM is a block device, but at the same time it is a file, a block device file. We take the appropriate tool and copy the contents of the device file to ISO file image:

Dd if=/dev/cdrom of=/home/andrey/image.iso

We want to replace HDD? There is nothing simpler, we copy the contents of one block device file to the file of another block device:

Dd if=/dev/sda of=/dev/sdb

And you don't need any Partition Magic.

Another situation is that some software is urgently looking for the library lib-2-0-1.so, and we have a compatible but newer library, lib-2-1-5.so, what should we do? Create a symbolic link to lib-2-1-5.so with the name lib-2-0-1.so and everything will work. Because everything is a file and a symbolic link is also a file type. Now try to slip Windows application lib-2-0-1.lnk instead of lib-2-1-5.dll...

Ifconfig

will display information about network adapters systems:

Now remember that everything is a file, including the display device (screen), so we’ll simply redirect the standard output stream instead of the screen to the file we need:

Ifconfig > ~/123.txt

After which the command output will be saved to file 123.txt in the user’s root directory:

Threads and conveyor

In the previous example, we touched on the standard output stream. Linux has standard I/O streams for all processes. stdin, stdout and error output stream stderr. What does it mean? At a minimum, the process of data exchange between different processes is standardized. This allows you to create pipelines where the standard output of one command is passed to the standard input of another. For example, we want to see a list installed packages in the system, in particular squid packages. There is a command for this purpose:

Uh... What is this and how can I understand something here? Information about all the packages installed on the system quickly flashed on the screen and all we can see is the “tail” of this output:

But we don’t need the entire output of this command, we are only interested in squid packages. Therefore, we will direct the output of this command to the input of another, which will already select and show what we need:

Dpkg -l | grep squid

This is a completely different matter!

Moreover, the pipeline can be as long as desired; the result of one command can be transferred to a second, from the second to the third, etc. Another example from life. You need to get all the lines of your configuration file squid, but without comments and empty lines, for example, to post on a forum or send to a friend. You can, of course, copy everything, but it’s unlikely that anyone will want to help you by scrolling through the canvas standard file squid.conf, most of which is comments and examples. Let's make it simpler:

Cat /etc/squid3/squid.conf | grep -v "^#" | sed "/^$/d" > ~/mysquid.conf

And this is what we got:

Simple and clear, all options are at your fingertips. This became possible as a result of using a pipeline of three commands, the first outputted the contents of the file into the stream, the second selected all lines except comments, and the third deleted empty ones; we sent the result to a file.

Large letters, small letters

Linux, like UNIX, is a case-sensitive system. And we must remember this! Because, unlike Windows, myfile.txt, Myfile.txt And myfile.TXT- that's three different files. For the sake of compatibility with other systems, you should not abuse this and store files whose names differ only in case, and it is considered good form to use only lowercase letters in names.

Extensions and file types

IN Windows systems the file type is determined by its extension, if we rename exe file V jpg, then it will not start, and the system will try to process it as a picture. In Linux, a file type is determined by its content and the extension is used solely for compatibility with other systems or for user convenience. The ability to execute a file is ensured by setting the appropriate attribute. So on Windows, to make the script executable, you had to change the extension from txt on bat, in Linux, to do this you need to make the file executable. Misunderstanding of this point leads to situations where a novice administrator does not understand why his script myscript.sh not executed. Actually an extension .sh it is necessary only for convenience, so that it is immediately clear that this bash script Shell, but for it to work, it needs to be given the executable attribute, and it can be called anything, even myscript.pupkin-vasya.

Too shy to ask...

Excuse me, another reader will say, there is so much to remember: command syntax, keys, options, etc., etc. Here you need to buy a reference book or always keep the Internet at hand... Not at all, it’s enough to remember the names of the commands, it’s just not difficult, according to the traditions established in UNIX, commands are given short and convenient names. And everything else can be asked from the system. Contrary to popular belief, Linux systems perfectly documented. You can view the syntax and keys of any command by running it with the key --help, and since descriptions usually do not fit on one screen, you should redirect the help output to the utility more, which will display information screen by screen. Let's say we are interested in the team grep:

Grep --help | more

More detailed information can be obtained using the command man:

Man grep

Unfortunately, the information is in English, but knowledge of technical English is at least at the level of “reading with a dictionary” necessary requirement To system administrator. Does the last screenshot remind you of anything? That's right, OpenNET.

Without in any way belittling the importance of this resource, we can say that by adopting the command man and basic knowledge of English, you will visit OpenNET much less often.

Conclusion

We hope that after reading this article, novice administrators will have a better understanding of the structure of Linux systems and their fundamental differences from the Windows they are used to. This will make it possible in the future to correctly interpret the information received and put together a holistic picture of the functioning of the system, which will no longer be a “black box” and commands “a Chinese letter.”

We would also like to point out that in our examples we only used standard tools, which once again shows the wealth of administration tools, despite the fact that they only work on the command line. Let's return to the last example - the output of the squid config, and now think about how this could be done using graphical tools and how long would it take?

There is no need to be afraid of the command line; Linux puts in the hands of the administrator a very powerful set of tools that allows you to successfully solve all emerging problems without involving third party tools. When you master at least some of these capabilities, then Linux will no longer seem difficult to you, and the console will no longer seem gloomy, on the contrary, even having graphical shell you will launch the terminal, plunging into a familiar and understandable environment, understanding that it is you who control the system and are doing exactly what you want, and not what the developers of the next panel have in mind.

  • Tags:

Please enable JavaScript to view the