"Books and manuals" - all materials of the section. Andrey Robachevsky - UNIX operating system


Before you can use the system, you must register yourself with the system. This is necessary because it is unwise to use the superuser name (root) for normal purposes. The root user is needed to execute privileged commands and maintain the system.

In order to register yourself, you need to log in as root and use the useradd or adduser command (depending on the distribution). See Section 4.6 for details on this procedure.

3.2.2 Login.

When you log in, you will see a prompt on the screen, for example, like this:

mousehouse login:

Enter your login name and click Enter key. Our hero larry will print the following:

Mousehouse login: larry Password:

Now enter your password. As you type, the password will not be displayed on the screen, so please type carefully. If you typed the password incorrectly, you will see a message on the screen:

Login incorrect and you should try again.

The situation when the password is securely forgotten is very funny. Then you will have to log in as root and erase the password for the corresponding user (how this is done will be described below). Even more amusing is the situation when the root password is forgotten. It's fun for everyone except root himself. Although the system, even from such a situation, can be brought to working condition, it is not easy to do so.

When you finally enter your username and password correctly, you will be officially admitted to the system and can roam freely in it.

3.2.3 Virtual consoles.

This brings us to the burning question: What are teams? What happens when you type ``make love ""? The first word on the command line `` make "" is the name of the command to be executed. Everything else on the command line is treated as command arguments.

When you issue a command, the shell does several things. First, it looks at what could (should) be a command name and whether it is an internal command to the shell (internal is a command that the shell knows how to execute. There are a number of such commands, we'll talk about them later). The shell also checks to see if the command is a synonym for another command or if name substitution is required. If it doesn't, the shell looks for a program on disk that matches the name. If the shell finds such a program, it executes it, passing it arguments from the command line.

In our example, the shell looks for a program named make and tries to execute it with the love argument. make is a program often used when compiling large programs, it takes as an argument the name of the "target" file to compile. In the case of `` make love "" we told make to compile love. Because make couldn't find a file with that name, it reported (in a somewhat amusing way) that it couldn't execute the command and returned to the prompt.

What happens if we enter a command and the shell cannot find a program with that command? Let's try: /home/larry# eat dirt eat: command not found. /home/larry# It's very simple, if the shell can't find a program with the given name on the command line (here `` eat ""), it will issue an error message that explains why the command failed. You will often see this message if you enter command names with errors. (for example, type `` make love "" instead of `` make love "").

3.2.5 Logout.

/home/larry# exit to exit. There are other ways to get out, but this one is the safest.

3.2.6 Change password.

3.2.7 Files and directories.

As already mentioned, directories can be nested inside each other. For example, let's say Larry has another directory called notes in the papers directory. This directory contains files named math-notes and cheat-sheet . The cheat-sheet file path will be:

papers/notes/cheat-sheet

So, the path is the route that must be taken to get to specific file. The directory above the given (sub)directory is called parent directory. Here, the papers directory is the parent of the notes directory.

3.2.8 Directory tree.

Most Linux systems have a standard directory structure that makes it easy to install a particular system. The structure is a directory tree starting at the directory ``/"', known as the "root directory". The directories below / are among the most important subdirectories: /bin , /etc , /dev , and /usr are among them. These directories in turn contain other directories that contain system configuration files, programs, etc.

3.3 First steps in Linux.

Before we begin, it is important to note that all file and command names are capital and small letter sensitive (which is not the case on systems such as MS-DOS). For example, the make command is very different from Make or MAKE . The same applies to directory names.

3.3.1 First walk.

Now we can log in and learn how to access files and change the location in the file system to make our life easier in it. The command to move through a directory tree is cd , (``change directory""). You will soon notice that many commonly used Linux commands consist of two or three letters. cd command format:

cd directory where directory the name of the directory you wish to change to. As we said, when you log in, you are automatically placed in your home directory. If Larry wishes to move down the tree (for example, into the papers subdirectory), he must use the command: /home/larry# cd papers /home/larry/papers#

As you can see, the tooltip has changed to reflect the location change (new working directory). He is now in the papers directory and can look at his history-final file with the command:

/home/larry/papers# more history-final

To navigate back from the papers subdirectory, use the command:

/home/larry/papers# cd .. /home/larry#

Note the space between `` cd "" and `` .. "". Each directory contains a name `` .. "", which refers to the parent (for this directory) directory. Also each directory is named `` . "", which refers to itself. Therefore the command:

/home/larry/papers# cd . won't translate anywhere.

In the cd command, you can use routes. To change to Carl's home directory, you can use the command:

/home/larry/papers# cd /home/karl /home/harl#

Using the cd command with no arguments will return you from anywhere in the tree to your home directory:

/home/karl# cd /home/larry#

3.3.2 Viewing the contents of directories.

Now you know how to navigate directories, but the question probably arises: "So what next?" Walking through directories by itself is useless, let's get acquainted with the new ls command. ls (LiSt) displays a list of files and directories (from the current directory by default). For example,

/home/larry# Is Mail letters papers /home/larry#

Here we see that Larry has three "storage units" in his current directory: Mail , letters and papers . But it's not enough that says: are these directories or files? You can use the -F option in the ls command to get more information:

/home/larry# Is --F Mail/ letters/ papers/ /home/larry#

The / appended to the right side of the file names indicate that these are subdirectories.

Using ls -F (note " -F " is written without a space) may also result in `` * "" at the end of some filenames. It will say that it is performed files or programs. If, when you call ls -F , nothing to the right is assigned to the name, then it is a "normal" file, i.e. not a directory or an executable file.

In general, each UNIX command can have several options in addition to other arguments. These options are usually written with a `` - "" sign, as shown with ls -F . The -F option tells the ls command what to issue Additional information about the file type.

If you write the name of a directory to the ls command, it will list the contents of the specified directory:

/home/larry# Is -F papers english-lit history-final masters-thesis notes/ /home/larry#

Or, to make it more interesting, let's see what is in the /etc/ system directory:

/home/larry# Is /etc Images ftpusers lpc rc.new shells adm getty magic rc0.d startcons bcheckrc gettydefs motd rc1.d swapoff brc group mount rc2.d swapon brc inet mtab rc3.d syslog.conf csh.cshrc init mtools rc4.d syslog.pid csh.login init.d pac rc5.d syslogd.reload default initrunlvl passwd rmt termcap disktab inittab printcap rpc umount fdprm inittab.old profile rpcinfo update fstab issue psdatabase securetty utmp ftpaccess lilo rc services wtmp /home/larry #

It is useful for non-MS-DOS users to note that filenames can be longer than 8 characters and contain a dot at any position. You can even use multiple dots in the same name.

Let's climb up the tree (translator's note: it so happened that in UNIX the initial top of the tree is "root (root)"), using the command `` cd .. "", and then going down to another directory (/usr/bin):

/home/larry# cd .. /home# cd .. /#cd usr /usr# cd bin /usr/bin#

You can, of course, move through directories in large steps, such as cd /usr/bin right away.

Try walking through directories using the ls and cd commands. In some cases, you may run into the annoying `` Permission denied "" message. It's just that the UNIX security system worked, in order to execute commands in certain directories you must have permission to do so. We'll talk more about this later.

3.3.3 Creating new directories.

It's time to get familiar with how to create directories. This is done with the mkdir command. Try the following:

/home/larry# mkdir foo /home/larry# Is -F Mail/ foo/ letters/ papers/ /home/larry# cd foo /home/larry/foo# Is /home/larry/foo#

Our congratulations to you! You have just created a new directory and entered it. Since there are no files in this new directory yet, let's get familiar with how to copy files.

3.3.4 Copying files.

We created with you junk files while learning how the ls command works. To remove files, use the rm (ReMove) command:

/home/larry/foo# rm bells sells /home/larry/foo# Is -F shells /home/larry/foo#

We're left with nothing but shells , but let's not worry. Note that the rm command will not prompt you before deleting, so be careful. User orders are not discussed, they are executed!

The related rm command is rmdir . This command removes directories, but only empty directories. If there are at least some files or subdirectories in the directory, she will sign in impotence.

3.3.7 Viewing files.

The more and cat commands are used to view the contents of files. more displays the file screen by screen, while cat displays the entire file at once. (translator's note: if the file is long, then when using the cat command, the file will flash and the last lines will remain on the screen).

To view the shells file, use the command:

/home/larry/foo# more shells

When using the more command, press the spacebar to move to the next page and b to return to the previous page. Pressing q will exit more.

Now try cat etc/termcap/. The text will flash by too quickly to be able to read it. Actually the command `` cat "" (conCATenate) is mostly used for other purposes, for the same concatenation of multiple files. This will be discussed further.

3.3.8 Obtaining prompt assistance.

Almost every UNIX has what is called a "Manual" man (``manual pages"") . This man command contains documentation on various system commands, resources, configuration files. For example, if you want to find information about other options for the ls command, type: /home/larry# man Is and the ls manual pages will be displayed.

Unfortunately, most of the manual pages are written for users who have some understanding of how the corresponding commands work. Therefore, the pages of the Manual usually contain reference data for commands rather than tutorial material.

But the Manual is invaluable for refreshing your memory if you forget the syntax of a command. The manual can also tell you a lot about commands that we won't even mention in this book. I suggest that you look in the Guide for the commands we have already discussed and all that we will meet. You will find that not all commands have a manual. There are several reasons for this. One, some pages of the Manual are simply not written yet ( the Linux Documentation Project, the Linux Documentation Program, seems to be responsible for solving this problem. We have already collected most of the documentation). Secondly, the command can be internal team shell or a synonym (alias) as discussed, in each of these cases there is no own pages. Let's take cd as an example, which is an internal shell command. Shell executes this command, but it does not have its own program.

3.4 Access to MS-DOS files.

If, for some inexplicable reason, you need to provide access to MS-DOS files, you can do it easily.

Usually, to access MS-DOS files, you just need to mount an MS-DOS partition or floppy disk and access the files through the Linux file system. For example, if you insert an MS-DOS floppy into /dev/fd0 (A: in MS/DOS notation), the command: # mount -t msdos /dev/fd0 /mnt will mount the floppy to the /mnt directory. See Section 4.8.4 for more information on mounting floppy disks.

Similarly, you can mount an MS-DOS partition on your hard drive. If you, for example, have an MS-DOS partition on /dev/hda1 , the command is:

# mount -t msdos /dev/hdal /mnt will mount it. Don't forget to unmount the DOS partition when you're done with it. You can mount an MS-DOS partition automatically at system boot time by adding a line to the /etc/fstab file (see section 4.4). For example, the following line in the /etc/fstab file mounts the /dev/hda1 DOS partition to the /dos directory: /dev/hdal dos msdos defaults

You can also mount the VFAT filesystem used by Windows 95/98/2000:

# mount -t vfat /dev/hdal /mnt This way you will be able to work with long names files. This approach is applicable only to sections that actually store long names. You cannot work with long names if the partition is mounted as normal FAT16. Note: VFAT and FAT32 are supported by the same system kernel module, so if you can mount a VFAT partition, you can mount a FAT32 partition as well. This situation sometimes leads to funny situations, such as the case with red hat Linux, in which there was no mention of FAT32, although there was support for it (it was only about VFAT).

3.6 Examining the file system.

3.7 Types of shells.

3.8 Wildcards.

Note that when we use `` * "", none of the files with names starting with `` . "" not shown: /home/larry# Is * frog Joe stuff /home/larry# This is a precaution: if `` * "" would match filenames that start with `` . "", it would also select the names `` . "" and ``.. "". But this can be dangerous when executing a number of commands.

Another wildcard character `` ? "". `` ? "" allows you to substitute exactly one character. So `` ls ? "" will return only single-character filenames, while `` ls termca? "" will display `` termcap "", but will not display `` termcap.backup "". Here is another example:

/home/larry# Is J?e Joe /home/larry# Is f??g frog /home/larry# Is ????f stuff /home/larry#

As you can see, the wildcard character allows you to describe many files at once. When reviewing the simplest commands, we said that the cp and mv commands can copy or move many files at once. For example,

/home/larry# cp /etc/s* /home/larry will copy all files in /etc that start with ``s"" to the /home/larry directory. The format of the cp command is actually: cp files destination where files list of files to be copied, and destination is the file or directory to copy to. mv has a similar syntax.

Please note that if more than one file is being copied or moved, must be a directory. Only one file can be copied or moved to a file.

3.9 Linux channels.

3.9.1 Standard input and standard output.

Now, let's say we want to send the sort result to a file so that we can store a shopping list somewhere. Shell gives us the opportunity redirect standard output to a file using the ``>"" character. Here's how it works:

/home/larry/papers# sort>shopping-list bananas carrots apples Ctrl-D /home/larry/papers# As you can see, the result of the sort command is not displayed on the screen, instead it is stored in the file shopping-list (list purchases). Let's look at this file: /home/larry/papers# cat shopping-list apples bananas carrots /home/larry/papers# Now we can not only sort (arrange) the list of planned purchases, but also save it! But suppose we stored our unsorted original shopping list in a file named items . One way to sort and save it is to sort the file with the given name, instead of getting the file from standard input, and redirect standard output to a file. For example: /home/larry/papers# sort items>shopping-list /home/larry/papers# cat shopping-list apples bananas carrots /home/larry/papers# But this can be done in another way. Not only stdout can be redirected, but also stdout input, using the symbol ``<"": /home/larry/papers# sort

Technically sort

3.12 Work management.

3.12.1 Tasks and processes.

3.13 Using the vi editor.

Text editor, is a program used to edit files that contain text, such as letters, C programs, or system configuration files. While there are many different editors on Linux, the only editor you can be sure to find on any UNIX is vi (``visual editor""). vi is not the easiest editor to use. But because it's so common in the UNIX/Linux world and you might need it at any time, it deserves at least some description here.

3.13.1 Concepts.

When using vi at any time, you can be in one of three modes of operation. These modes are known as command mode, insert mode and last line mode.

3.13.4 Deleting text.

To quit vi without making changes to a pre-existing file, use the command: q! .

When you type `` : "", the cursor will move to the last line of the screen, as you will be in last line mode: COW IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY.

Some advanced commands can be executed in last line mode. One of them q! , which allows you to exit vi without writing. The :wq command saves (writes) the file and then exits vi . The ZZ command (in command mode, without ` : "") is equivalent to: wq . Remember that you must press Enter after typing the command in last line mode. If you want to write a file without exiting vi , just use :w .

3.13.8 Editing another file.

To edit another file, use the :e command. For example, to stop editing the file test and go on to edit the file foo , use the command:

COW IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY. foci

If you use :e without first saving the file, you will first get an error: No write since last change ("edit" overrides). which simply means that vi doesn't want to edit another file until the first one has been saved. At this point you can use :w to save the original file and then use :e or use the command: COW IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY. foci `` ! "" tells vi that you actually mean to edit the new file without saving the changes that were made in the first one.

3.13.9 Inserting other files.

3.13.10 Execution of Shell commands.

You can also run commands directly from vi . Team:r! works like :r , but instead of reading the file, it pastes the output of the given command into the buffer, at the location of the cursor. For example, if you use the command:

:r! Is -F you get as a result: COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY letters/ misc/ papers/

You can execute a command while in the vi editor and return to the editor when it completes. For example, if you use the command:

Is -F will execute the ls -F command and display the result on the screen instead of pasting it into the file being edited. If you use the command: shell vi will launch a shell, which will allow you to temporarily suspend vi and execute commands. After exiting the shell (using the exit command) you will return to vi .

3.13.11 Getting help with vi .

vi isn't great at online help (nor are most UNIXes), but you can always look at the vi manual pages. vi is the "visual part" of the ex editor; this ex does a lot to maintain last line mode and command mode in vi . So in addition to reading the vi manual, see also the ex manual.

3.14 Environment setup.

Shell provides various mechanisms for customizing your working environment. We mentioned earlier that the shell is more than an interpretation command: it is also a powerful programming language. But a discussion of shell programming would take us a long way, and we would like to introduce you to some ways to make your work in UNIX easier by using some additional useful features of the shell.

As we mentioned earlier, different shells use different syntax to write their programs. For example, Tcsh uses a syntax similar to C, while the Bourne shell has a different syntax. In this section, we will not deal with their differences, but will look at examples using Bourne's shell syntax.

3.14.1 Shell scripts.

Let's say that you frequently use a series of commands and would like to reduce the amount of constant typing by grouping them into one command. For example, the commands: /home/larry# cat chapter1 chapter2 chapter3 >book /home/larry# wc -1 book /home/larry# Ip book concatenate the files containing the chapters of the book: chapter1 , chapter2 , chapter3 and place the result in the file book . It then counts the number of lines in the book (in the file book) and displays it, and finally prints it with the lp command.

Instead of entering these commands each time, you can collect them into one script or a script (batch file). Shell scripts will be briefly described later. And the script that will execute the above commands will look like this:

#!/bin/sh # A shell script to create and print the booh cat chapter1 chapter2 chapter3 > book wc -1 book Ip book

If this script is placed in a makebook file, then you can simply use the following command:

/home/larry# makebook which will execute all script commands. Shell scripts are plain text files that you can create with an editor like emacs or vi .

Let's look at this scenario. The first line `` #! bin/sh/"" says that this file is a script and tells the shell how to execute the script. In this case, you need to pass the script to the /bin/sh command, where /bin/sh is the shell program itself. Why is it important? On most UNIX systems, /bin/sh shell is a Bourne type, such as bash . By initiating a shell script, it is executed using /bin/sh , and we ensure that the script will be executed under a Bourne-type shell (and not, say, under a C shell). This script will run under the Bourne shell even if you use Tcsh (or some other C shell) as your working shell.

The second line is

A selection of books for those who want to know the history and structure of UNIX-like operating systems and want to learn how to administer them and develop software for the Linux platform.

Linus Torvalds "Just for Fun: Notes of an Unexpected Revolutionary" (2002)

Linus Torvalds, contrary to popular belief, did not invent open source. But it was he who discovered the possibilities of this principle, which surpassed all conceivable expectations. Starting by writing his own terminal emulation program, he eventually created a full-fledged operating system - and to this day the most popular in the world. The rest was done by the community, which enthusiastically began to refine and improve the sources provided by Linus for open access to the whole world.

Operating system Linux, which hundreds of thousands of programmers from all over the world are working to improve for free and voluntarily, has become the most common system on web servers and has supplanted commercial products from well-known companies. No group or company can take control of it - the open development of this system has been going on for many years, and anyone can join the project.

"Just for Fun" is a blend of Linus's biography with a discussion of technology and how it has evolved, written in charming, light language. For connoisseurs of biographical works of this format, it can deliver no less pleasure than the most famous representative of the humorous biographical genre with a scientific and technical bias - “You must be joking, Mr. Feynman!”, Which won millions of hearts. This is a book that never gets old or boring.

Although Linus enjoys driving his shiny new BMW, he has never pursued fame and fortune. Yet both came to him when Linus Torvalds radically changed the world of technology for one selfish reason: for his own pleasure.

Rafael Herzog, Roland Ma "Debian Administrator's Handbook" (2016)

One of the best guides by linux. The new, revised 2016 edition will suit both newbies and experienced Ubuntu/Debian/Mint administrators.

This book is a handy and comprehensive guide to Debian-based distributions, from system installation to flexible configuration of highly specialized utilities and services. System administrators will find a lot of useful things for themselves (instructions for implementing the system on various servers and desktops, setting up various services), users of other distributions (the ability to quickly navigate the intricacies of a new distribution), as well as experienced Debian users who want to get closer to joining the developer community.

Brian Ward "Linux Internals" (2016)

Brian Ward's book became an instant bestseller. It describes all the subtleties of working with the Linux OS: system administration, deep mechanisms that provide low-level functionality of Linux, the basics of working with the kernel, and the principles of proper operation of computer networks.

The book also covers low-level scripting in C, information security, and virtualization.

Linux Format magazine, all issues for 2014, 2015 and 2016

Russia's first monthly magazine in Russian, entirely dedicated to the Linux operating system. Editorial policy - timely and complete informing the readership about the current state of the industry software open source, technology updates and tutorials, news and interviews.

The content of the magazine will be interesting and useful to all PC users, both to programmers and system administrators, and to those who are just starting their journey in the rapidly changing world of open source.

Sam Alapati "Modern Linux Administration" (2016)

This edition provides an overview of the latest Linux-based development and administration tools. If you are already familiar with the basics of Linux system administration, the author will provide you with an excellent opportunity to study and deepen your knowledge on the topics of virtualization, cloud systems and big data, configuration management and continuous integration.

Main topics:

  • Scalability, web applications, web services and microservices
  • Server virtualization, Docker
  • Automation of server deployment and work with deployment systems
  • Version control and source code management

and much more.

Daniel Barrett "Linux Pocket Guide" 3rd ed. (2016)

If you use Linux in your daily life, this book will serve as an excellent reference that can answer many of the questions users have every day. The third edition contains many new commands suggested by readers of previous editions.

This book is a well-organized, step-by-step guide to mastering the command line and its basic commands. For experienced users, it will be easy to quickly find the answer to a sudden question.

Gregory Boyce The Linux Networking Cookbook (2016)

Over 40 recipes to help you install and set up networking on Linux. Starting with the basics of the operating system and ending with professional server and network administration, the book provides ready-made solutions for building, maintaining and protecting a computer network.

The target audience for this publication are system administrators who have a deep understanding of and some experience with Linux machines. These are people who want to better understand how computer networks work, how to set up and maintain them, and how to keep them secure. To read this book, you must be able to install Linux Server and its additional software.

Any user may be interested in trying the Linux operating system. That's how it used to be with me. There is a lot of literature on the Internet, but the question always remains: “Where to start?”. Someone saw Linux with friends, someone found a video or read articles on the Internet, but all these are 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 kit ...

I rummaged through a bunch of literature, but opinions were divided, and they are still divided. Some are for Debian, some are for Mandriva, RedHat, etc. Currently, there are more than 1300 builds of the Linux OS, and choosing one particular one makes the hardened Windows user think deeply. I tried to install different ones, but this was not always possible due to equipment conflicts and simply inexperience. The first successfully established distribution was OpenSuse 11.1, then Debian. The catch is that these distributions have different file structures, programs, and so on. This confused me even more, but I continued experimenting until I settled on Ubuntu. She will be discussed.

I think it's worth noting that Ubuntu is based on the Debian distribution, which in turn is quite popular with system administrators. What does "founded" mean? I will try to draw a parallel with Windows OS. Imagine a regular Windows license disc. Represented? Now imagine any assembly, even the notorious ZverDVD. So, Ubuntu is a "build" of Debian 'a, which has an updated kernel, patches (patches), own programs and repositories. Later I will talk about all this separately. I think you should not go too deep into the differences between Ubuntu and Debian, I will only add that this distribution is very popular and new versions of Ubuntu are released every six months (in 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 a disk, install it, watch it and so that there are no unnecessary dances with a tambourine (although in further work it will not do without dancing with a tambourine). I note that when working in Windows, you can be a simple user and not bother how and what works, and in case of infrequent problems or difficulties, just turn to knowledgeable and understanding people who can help you. In the case of Linux, you will have to figure out a lot on your own and become a “knowledgeable” person yourself. But do not be afraid, you did not come here for this. 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 an office software package and a network settings applet (however, we will learn to work without it and configure the network manually). There is even a player, but it does not play many audio / video formats by default, I will explain later why and how to solve it.
  3. I don't want to lose anything. There are a lot of applications and documents on the Windows partition that I don't want to lose when installing Linux. Ubuntu will prompt you to partition your hard drive, save Windows or any other OS, and install its own bootloader that can boot both Windows and Linux. Modern Linux distributions, including Ubuntu, have a wonderful opportunity 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 (that is, "live disk"). I advise you to first try to start the OS from the installation disk before the first installation. So you will know for sure that a particular distribution kit will cope with the hardware of your computer and there will be no problems during installation. By the way, it is highly likely that when you start Ubuntu from a LiveCD, you will be able to use the Internet and the network by driving in the network settings. You will be able to work with text documents and spreadsheets. You can view pictures and more. Just try to boot from disk. Do not forget that working with a LiveCD is still not working in a full-fledged operating system installed on a hard disk, so get ready for "brakes" when reading from a CD in an attempt to open a particular program.

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

Name: A Linux tutorial for the user.

The book is devoted to the use of the operating Linux systems. Provides information about the history of Linux and existing distributions. Discusses Linux OS installation and configuration, describes the file system, graphical and command line interface, hardware connection and configuration, installation and updating of software packages, work in local network and the Internet. Text programs and operating shells for manipulating files are considered. Links to Internet resources are provided. For advanced users and novice network administrators.


Content
Preface.1
Who is this book for.1
What is this book about.2
How did this book come about.3
Typographic conventions.4
Thanks.5
Chapter 1. Linux OS: history and distributions. 7
1.1. What is OS in general and Linux in particular.7
1.1.1. UNIX.7 type OS family
1.1.2. A bit of history.8
1.1.3. Key Features of Linux OS.11
Real multitasking.11
Multi-user access.11
Swap random access memory to disk.11
Memory paging.12
Loading executables on demand.12
Sharing executable programs.12
Shared Libraries.12
Dynamic disk caching.12
100% POSIX 1003.1 compliant.
Partial support for System V and BSD.13 features
System VIPC.13
Ability to run executable files of other OS.13
Support for various file system formats.13
Networking.14
Work on different hardware platforms.14
1.2. Linux distributions.14
1.3. Computer requirements.17
1.4. Where to get Linux?.19
Chapter 2 Installing Linux OS on a Windows computer. 21
2.1. Preparing for installation.21
2.2. Warnings and recommendations.23
2.3. Partitions on the disk and the boot process.25
2.3.1. What is "disk geometry"?.25
2.3.2. Disk Partitions and Disk Partition Table.26
2.3.3. Microsoft OS boot process.28
2.3.4. Problems with large disks.31
2.4. Bootloader selection.32
2.4.1. LILO bootloader from the Linux OS distribution.33
2.4.2. Other OS.34 loaders
2.4.3. Loading options.35
2.5. Preparing disk partitions.36
2.5.1. Partitioning Guidelines.36
2.5.2. Disk Partitioning Programs.39
2.6. Windows NT and Linux: booting via OS Loader from NT.40
2.7. Using the LILO.43 bootloader
2.7.1. Installing and configuring the LILO.43 bootloader
2.7.2. Installing other operating systems after Linux.47
2.7.3. Moving the /boot directory to a DOS partition.48
2.8. Booting Linux from MS-DOS using loadlin.exe.48
Chapter 3 First launch of Linux OS. 53
3.1. Loading OS Linux.53
3.2. Login.54
3.3. Console, virtual terminals and shell.56
3.4. Command line editing. Team history.59
3.5. Shutting down a Linux system.63
3.6. Help with Linux.64
3.6.1. Reference sources.65
3.6.2. man.65 online manual pages
3.6.3. info.67 command
3.6.4. help.68 command
3.6.5. Documentation supplied with the distribution and software packages.68
3.6.6. Xtap.69 team
3.6.7. helptool.69 command
3.6.8. Books and Internet.70
Chapter 4 Introduction to the ext2fs file system. 71
4.1. Files and their names.71
4.2. Catalogs.74
4.3. Assignment of the main system directories.
4.4. File Types.83
4.4.1. Physical device files.83
4.4.2. Named pipes (pipes).85
4.4.3. Domain sockets (sockets).85
4.4.4. Symbolic links (again about filenames).86
4.5. File and directory permissions.87
4.6. Commands for working with files and directories.94
4.6.1. chown and chgrp.94 Commands
4.6.2. mkdir.94 command
4.6.3. Team cat.94
4.6.4. Team cf.95
4.6.5. Team mv.96
4.6.6. Commands t and rmdir.96
4.6.7. Commands toge and less.97
4.6.8. The //^ command and wildcards for filenames.98
4.6.9. Split command - split the file into several parts.101
4.6.10. File comparison and patch.102 command
4.7. Commands for archiving files.103
4.7.1. tar.104 program
4.7.2. gzip.106 program
4.7.3. bzip2.108 program
4.8. Creating and mounting file systems.110
Chapter 5 bash shell. 117
5.1. What is a shell?.117
5.2. Special characters.118
5.3. Command execution.120
5.3.1. Operator;.120
5.3.2. &.120 operator
5.3.3. Operators && and |.120
5.4. Standard I/O.121
5.4.1. I/O streams.121
5.4.2. echo.122 command
5.4.3. Team cat.122
5.5. I/O redirection, channels and filters.123
5.5.1. Operators >,< и ».123
5.5.2. Operator |.125
5.5.3. Filters.125
5.6. Parameters and variables. Shell environment.126
5.6.1. Varieties of parameters.127
5.6.2. Shell prompts.129
5.6.3. Variable PATH.131
5.6.4. Variable IFS.131
5.6.5. Current and home directories.131
5.6.6. export.132 command
5.7. Expression expansion.132
5.7.1. Parentheses expansion.132
5.7.2. Tilde substitution.133
5.7.3. Substitution of parameters and variables.133
5.7.4. Command substitution.134
5.7.5. Arithmetic substitutions.134
5.7.6. Word separation.135
5.7.7. Expanding file and directory name patterns.135
5.7.8. Removing special characters.136
5.8. Shell as a programming language.136
5.8.1. Operators // and test (or ).136
5.8.2. Operators and conditional expressions.138
5.8.3. case.140 statement
5.8.4. select.141 statement
5.8.5. for.142 statement
5.8.6. while and until statements.143
5.8.7. Functions.143
Syntax.143
Arguments.144
Local variables.144
Factorial function fact.145
5.9. Shell scripts and the source.145 command
5.10. Teams.146
Chapter 6 Midnight Commander program. 147
6.1. Installing Midnight Commander.147
6.2. Appearance screen Midnight Commander.148
6.3. Getting help.150
6.4. Mouse support.152
6.5. Panel management.152
6.5.1. File list display formats.153
6.5.2. Other display modes.156
6.5.3. Keyboard commands panel controls.158
6.6. Function keys and menu File.159
6.7. File masks for copy/rename operations.162
6.8. Midnight Commander messages during file copy and move operations.165
6.9. Command line shells.166
6.10. Menu Commands.168
6.11. Configuring Midnight Commander.173
Chapter 7 Graphical interface. 181
7.1. XFree86 and its components.181
7.2. How a computer's video system works.186
7.3. Configuring the X Server.189
7.3.1. Collection of necessary data.190
7.3.2. File structure /etc/Xll/XF86Config.191
7.3.3. Configuring /etc/Xll/XF86ConfIg.200
7.4. Starting the X Window System.207
7.5. Selecting and configuring a window manager.211
7.6. KDE.212 graphical environment
7.7. Using the Display Manager.213
Chapter 8 Basics of system administration. 215
8.1. Main goals system administration. Processes and their IDs.215
8.2. Linux boot procedure.218
8.2.1. The init process and the /etc/inittab.218 file
8.2.2. Basic configuration files.222
8.2.3. Other files affecting the download process.224
8.2.4. Processes that occur during user registration.225
8.2.5. Boot in Single User Mode.226
8.3. Starting and configuring system-wide services.228
8.3.1. Editing the /etc/fstab.228 file
8.3.2. Swap files and partitions.229
8.3.3. Running daemons.231
8.3.4. System V Init Editor ksysv.232
8.4. Process management.235
8.4.1. Team/w.235
8.4.2. team top.237
8.4.3. Priorities, nice value and renice.238 command
8.4.4. Signals and the kill.239 Command
8.4.5. Putting a process in the background.242
8.4.6. nohup.243 command
8.5. User management.243
8.6. Resource management.246
8.6.1. How much disk space is left?.247
8.6.2. Freeing up disk space.248
8.7. Software to configure the system.250
8.8. User environment setup.253
Chapter 9 Connecting and configuring hardware devices. 255
9.1. Device drivers.255
9.2. Special Files devices.257
9.3. Keyboard.259
9.3.1. kbdrate.260 command
9.3.2. Character encoding tables.260
9.3.3. Entering characters from the keyboard.264
9.3.4. Changing the keyboard layout for text mode.267
9.3.5. Creating your own layout.268
9.3.6. Working with the keyboard in graphics mode.270
9.3.7. XKV.270 module
Several practical advice for setting up the XKV.275 module
9.4. Mouse.277
9.4.1. Determining the type of mouse.278
9.4.2. Interrupt conflicts.278
9.4.3. Mouse setup.279
9.5. Hard disk.280
9.5.1. Numbering.280
9.5.2. Hard Formatting disc.281
9.5.3. hdparm.282 command
9.5.4. Team fc.285
9.6. Printer.288
9.6.1. Traditional UNIX Printing Tools.288
9.6.2. FILE /etc/printcap.290
9.6.3. Configuring LPD with printconf-gui.292
9.6.4. Filters.296
9.6.5. PostScript and Ghostscript.297
9.6.6. Fonts for Ghostscript.298
9.6.7. Printing to a Remote Printer.301
9.7. Sound card.301
9.8. CD-ROM drive.303
9.9. Iomega Parallel Zip Disk.304
Chapter 10 Installing and updating software packages. 307
10.1. Two ways to install software.307
10.2. rpm.307 program
10.3. Compiling software from sources.313
10.3.1. Required Information about C.313 programming
10.3.2. Installing software packages from sources.315
Chapter 11 Russification and fonts. 317
11.1. Preliminary information.318
11.1.1. Displaying characters on the screen.318
Text mode.318
Graphics mode.320
11.1.2. Localization.320
11.2. Configuring system localization tools.322
11.2.1. Checking for localization tools.322
11.2.2. Format for setting values ​​of localization variables.323
11.2.3. Enabling localization tools.324
11.3. Console Russification.325
11.3.1. What needs to be done.325
11.3.2. How it's done in Black Cat.328 distribution
11.3.3. Switching encodings.330
11.4. Russification X Window.330
11.4.1. A bit about terminology.331
11.4.2. Font File Formats.334
Bitmap Fonts.334
Fonts Type 1.334
Type 3.335 fonts
TrueType Fonts.335
Type 42.335 fonts
Comparison of Type 1 and TrueType.335 formats
Metafont.336
11.4.3. X Server Configuration.337
11.4.4. Font servers.338
Font server xfs.338
Font servers xfstt and xfsft.339
11.4.5. Font economy revision.340
Is the font server installed?.340
What fonts are available on your system?.340
fonts.dir, fonts.alias, and fonts.scale.343 files
Removing unnecessary fonts.346
11.4.6. Connecting new fonts.346
Font sources.346
Installing bitmap and Type fonts 1.348
Installing TrueType Fonts.349
11.5. Cyrillicization of shell and other programs.352
11.5.1.bash.353
11.5.2. less.353
11.5.3. man.354
11.5.4. MOff.354
11.5.5.1s.354
11.5.6. The Midnight Commander.354
11.5.7. Windows drives 95 and DOS.355
11.5.8. Samba.355
11.5.9. riogin.355
11.5.10. telnet.355
11.5.11. Ircll.356
11.6. Cyrillic printing.356
Chapter 12 Programs for working with text. 359
12.1. A few words about text file formats.359
12.2. Programs for viewing texts in different formats.360
12.2.1. Traditional UNIX tools for viewing text files.360
12.2.2. Program Acrobat Reader(version 4.05).361
12.2.3. gv.365 program
12.2.4. PS, PDF and DVI file viewers from KDE.367
12.2.5. Package WordViewer.369
12.2.6. Code page transcoders.371
12.3. Spell checker.373
12.4. About three types of text editors.376
12.5. Console editors for ASCII files.378
12.5.1. vi.378 type editors
12.5.2. Emacs.378 editor
12.5.3. CoolEdit - built-in editor of Midnight Commander.379
12.6. ASCII file editors for graphics mode.383
12.6.1. KEdit.383 editor
12.6.2. KWrite.387 editor
12.6.3. Text editor Nedit version 5.1.1.387
12.7. Word processors.391
12.7.1. Features of word processors.391
12.7.2. Text processors for Linux.392
12.7.3. Text editor Ted.392
12.7.4. AbiWord.397 word processor
12.7.5. Word processor KWord.399
12.7.6. StarWriter and OpenOffice.org Writer word processors.409
12.8. Dictionaries and translators.412
Chapter 13 Access to local networks. 415
13.1. Preparing to go online.415
13.1.1. Network Device Drivers in Kernel.415
13.1.2. Dynamic connection of drivers.416
13.1.3. Receipt network address and installation of software.417
13.2. Configuring network interfaces.418
13.2.1. Location of configuration files.418
13.2.2. ifconfig.419 command
Configuring the local interface 10.419
Board interface setup Ethernet LAN networks (ethO).420
Interface for serial port.420
13.2.3. Routing setup.420
13.2.4. Naming service setup.422
13.2.5. Network connection test.424
13.2.6. netconf.425 utility
13.3. telnet and ftp.427 programs
13.3.1 The telnet and rlogin.428 programs
13.3.2. ftp.428 program
13.4. Network File System NFS.431
13.5. Connecting to a Windows network.432
13.5.1. What is Samba.432
13.5.2. Mounting Filesystems with Samba.434
Difficulties.435
13.6. Connecting to a Novell Netware.435 Server
Chapter 14 Internet and e-mail. 439
14.1. Required information about Internet protocols.439
14.2. Preparing to go online.442
14.3. krr program.
14.3.1. Configuring krrr.445
14.3.2. Establishing a connection using kppp.461
14.3.3. Connection setup issues.465
If it still doesn't work (where to go for help).467
14.4. Internet browsers.468
14.4.1. Internet surfing with lynx.468
14.4.2. Browsers Netscape Navigator and Mozilla.472
14.4.4. File manager Konqueror.476
14.5. Email.478
Chapter 15 Living in a KDE environment. 489
15.1. Basics of working with KDE.489
15.1.1. Appearance.490
15.1.2. Main Menu KDE.492
15.1.3. Control Center KDE.493
15.1.4. Customizing the panel and icons on the desktop.497
15.2. What is a "comfortable working environment".501
15.3. Utilities.502
15.4. Office applications.506
15.5. Graphic editor GIMP.510
15.6. Personal organizer.514
15.7. Communication with the rest of the world.517
15.8. Multimedia and games.519
15.8.1. Sound.519
15.8.2. Video.524
Program aKtion.524
Xine.527 program
MPlayer.535 program
15.8.3. Games.536
Chapter 16 back side file system. 541
16.1. Types of file systems supported by Linux.541
16.2. Structure disk partition in ext2fs.543
16.3. File inodes.547
16.4. Data addressing system.550
16.5. Virtual File System VFS.551
16.6. New file systems.552
16.7. Journaled file systems.553
16.8. File system ReiserFS.554
Chapter 17 Kernel update. 557
17.1. What is a core and when should it be changed.557
17.2. Kernel version numbering.558
17.3. Installing a new kernel from an RPM package.559
17.4. About compiling a new kernel.561
17.4.1. Why compile the kernel at all?.561
17.4.2. Things to know before compiling.563
17.5. Seven Steps to a New Core.564
17.5.1. Getting and unzipping the kernel.564
17.5.2. Software update.565
17.5.3. Configuring the future kernel.566
17.5.4. Checks.569
17.5.5. Compiling kernel.570
17.5.6. Compiling modules.571
17.5.7. Kernel installation.571
17.6. Conclusion.573
Chapter 18 Virtual computer (VMware system). 575
18.1. What is a "virtual computer".576
18.2. Installing the virtual machine system.578
18.3. Installing a license to use VMware.579
18.4. Create a virtual machine.579
18.5. First session on a virtual machine.584
18.6. On some features of working with a virtual computer.585
18.6.1. Copy and paste.585
18.6.2. Suspend and instantly restore the state of VM.586
18.6.3. Turning off VM.587
18.6.4. Usage direct access to memory.587
18.6.5. RAM allocation for VMware.588
18.7. Connection physical disks to the virtual computer.589
18.7.1. Necessary measures precautions.590
18.7.2. Connecting a physical disk to a virtual machine.591
Disk permissions.591
Physical disk description file.591
Procedure for attaching a physical disk.592
18.7.3. Boot OS from physical disk.594
18.8. Access to the local network.600
18.8.1. Four options for organizing network services in the VMware.600 system
18.8.2. Support Tools networking opportunities in VMware.603
18.8.3. Assigning MAC addresses to virtual computers.604
18.8.4. Installing Network Support Tools.605
18.8.5. A few examples of configuring network access.610
Example 1: Connecting to an Existing LAN
in the option "Bridged networking".610
Example 2: Creating a network on an isolated computer.611
Example 3: Connecting a virtual and physical network.612
18.8.6. Access to disks of a virtual computer from the base OS.613
18.9. A few additional notes.614
18.9.1. Again about precautions.614
18.9.2. List of users who are allowed to access the Samba server.614
18.9.3. How to fix "leaked" packages from virtual network into real.615
18.9.4. About using the VMware.615 system
18.9.5. A little about performance.616
18.9.6. About primary sources.617
Application. Sources and links to additional materials. 619
Subject index.

Download options.
So, in my opinion, the choice of boot option is as follows.
-If you have Windows NT or Windows 2000 installed, then use NT Loader.

If you have Windows 95 or Windows 98 on FAT16 and don't want to install a bootloader from another OS or third party, you can either use LILO or start DOS first and then boot Linux using loadlin.exe (or another similar program, there are several of them, but we will not consider others).

If you have Windows 95 OSR2 or Windows 98 on FAT32 installed and you do not want to install a loader from another OS or from an independent developer, then you will need to use loadlin.exe. Many IIOWTO guides state that LILO should not be used if active partition yours is formatted in the FAT32 system, although the reasons for this are unknown to me. But my own attempt to boot Linux with NT Loader installed on a PAT32 partition failed. So I also had to use the program in this case

We all need to get our knowledge from somewhere. It can be your own experiments, articles from the Internet, forums. But the most reliable and trusted source is books. If you want to upgrade your knowledge of Linux to the level of a system administrator, you will definitely need the best Linux books. On the this moment already exists a large number of books about the Linux operating system, Unix, networking and programming, but most of them are distributed for money and not all are available in Russian.

In this article, I have collected 18 of the best Linux books. They cover various areas: administration, programming, the philosophy of open source software, training for beginners. Not all of them have been translated into Russian. Yes, yes, Linux users need to know English. In the description of each book, I will write in what language it is distributed and its price. However, most of these Linux books can be found for free on the Internet. There are both the best linux books for beginners and linux books for advanced users and professionals.

Linus Torvalds, David Diamond - Just for fun

The book is definitely must have! For every self-respecting Linux user. It was written by the creator Linux kernels- Linus Torvalds. In it, he tells his biography, describes how it all began, the process of creating and developing the kernel and the Linux operating system. The book reflects Linus's vision of the concept of free software, the further development of Linux and computer industry. The best book on Linux and the history of its creation.

Languages: original - Finnish and Swedish, translated into many languages ​​of the world, including Russian.

Year of issue: 2002

Price: Is free

Y. Vakhalia - UNIX from the inside

This book is not really about Linux, it's about the Unix kernel. It covers all aspects of the Unix kernel from a developer's point of view. Described internal organization kernel, its structures and their implementation. The book is clearly not for beginners and can be used as a guide to studying the UNIX kernel in universities.

Language: Russian English

Year of issue: 2003

Price: $7

Andrey Robachevsky - UNIX operating system

Another book about the UNIX kernel, only this time from a Russian author. The concept is similar to the previous book. The internal architecture of the kernel, I / O subsystems, memory and process management, system calls and libraries. TCP / IP network protocols, network subsystems and sockets are slightly affected.

Language: Russian

Year of issue: 2010

Price: $26

D. N. Kolisnechenko, V. Allen - LINUX Complete Guide

This is one of the most comprehensive Linux references, providing the most complete understanding of the operating system. The book highlights three aspects: Linux for the user, Linux for the system and network administrator, and Linux programming. Everything is covered here - from a simple installation of software, to serious settings and internal processes of the system. The distributions of Red Hat, Fedora and Mandriva are mainly described. This is the best book about linux for beginners and advanced users alike.

Language: Russian

Year of issue: 2007

Price: $5

Evie Nemeth, Garth Snyder, Trent R. Hein - Linux Administrator's Guide

This is a book written by professionals, the most complete guide setup and deployment of most popular Linux distributions: Red Hat, Fedora, Suse Linux, Debian, Ubuntu and others. It covers everything from basic administrative tasks to more difficult problems- network settings and system performance.

Language: Russian

Year of issue: 2007

The price of a paper book: $31

David Tainsley - Linux and UNIX: shell programming. Developer Guide

it practical guide on programming in the Unix command interpreter - Bourme shell, which is fully compatible with the Linux BASH interpreter. The book is suitable for both beginners and more experienced users. You will learn how to create scripts to solve most of the problems that arise.

Language: Russian

Year of issue: 2001

James Armstrong - Secrets of Unix

This book stands out from other publications on UNIX. There are books on linux for novice users that cover the basics and there are many books for experts, this book is aimed at ordinary advanced users. It describes not just Unix commands, but the internal processes that take place in the system. The book will teach you how to use the right tools to solve your problems and how to unite teams to achieve best result. It has everything from the basics to developing your own programs.

Language: Russian English

Year of issue: 2001

Steven Spinauer, Ellen Seaver - Linux. Directory

This is a reference book covering all Linux commands available on most distributions. Here are the commands from system tools administration to program creation tools, everything is described in great detail with detailed description command options and syntax, as well as several command interpreters.

Language: Russian English

Year of issue: 2001

Brian Kernighan, Rob Pike - UNIX. Software environment

The book describes UNIX through the lens of the C programming language. It will be useful for those who want to learn how to program using the tools supplied with the system. It describes input, working with files, environment variables, system alerts and calls. After reading the book, you will be able to work with the system even more effectively.

Language: Russian

Year of issue: 2003

Scott Mann - Linux. TCP/IP network administration

This is a book about the most popular protocol at the moment - the protocol for networking between computers - TCP / IP. The description begins with the basics of TCP and the OSI model and ends with detailed overview everyone OSI layer with implementation examples in Linux.

The book will be of interest to network administrators and developers of network applications.

Language: Russian

Year of issue: 2008

Evy Nemeth - UNIX. System Administrator Guide

The book is intended for system administrators working in a UNIX environment. It will be useful for both professionals and beginners, who only comprehend this difficult and very interesting activity. Many techniques used by experienced administrators are described here: configuration, performance improvement, network administration, mail exchange setup, device connection. Relatively new and best linux book for system administrators.

The book has a large number of examples for the most popular versions of UNIX - FreeBSD and Red Hat.

Language: Russian

Year of issue: 2012

D. Bendel, R. Naper - Using Linux

The linux book presents practical aspects work with Linux for both beginners and more experienced users. There is a description of the system settings, desktops KDE, Gnome, the internal architecture of the system is described. The book is focused on Calculera, Red Hat and Debain Linux. This is a great linux book for new users, even though it's been around for quite some time.

Language: Russian

Year of issue: 2005

Andrew Tanenbaum - Modern Operating Systems

This book will help you understand the big picture of modern operating systems and how they work. Here is a description of not only the operation of Linux, but also Windows 8, as well as Android. The book also covers multi-core systems and cloud computing.

Language: Russian

Year of issue: 2015

Daniel J. Barret - Linux. Basic commands. Pocket guide

Another command reference for Linux. Suitable for both beginners study guide and experienced users. The commands are divided into categories, the location of the command on the disk and its belonging to the package are described. For some commands there are examples of working with them.

Language: Russian

Year of issue: 2007

Matt Welsh, Matthias Calle Dahlheimer, Terry Dawson, Lar Kaufman - Starting Linux

This is one of the best Linux tutorials for beginners. Everything you need to understand, install and start working with this operating system is described here. The authors talk about possible difficulties and offer their solution to make your Linux experience easier. The tuning issues with which problems most often arise are considered.

Language: Russian

Year of issue: 2004

Mark Mitchell, Jeffrey Oldham, Alex Samuel - Linux Programming. Professional approach

Book about programming in Linux environment. You will learn how to program programs with an interface that users are used to, master multitasking, multithreaded programming, and intertask interaction. The book is aimed at programmers already familiar with the C programming language.

Language: Russian

Year of issue: 2003

Daniel Robbins - Linux Basics from the Founder of Gentoo

A book for beginners in which Daniel Robbins, Chris Heizer and Aron Griffiths talk about Linux basics. Topics covered include Bash, basic commands Linux, working with files, effective work in the terminal and much more.

Language: English, but some translated into Russian.

Year of issue: 2010

Price: Is free

Master Unix on Your Own in 24 Hours

If you need a book about UNIX from scratch, then this is what you need. The book is divided into 24 lessons, each of which will allow you to learn a certain aspect of UNIX and include practical tasks.

Language: English

Year of issue: 2001

Price: $21

conclusions

This article comes to an end. But these are definitely not all good Linux books, there are still a lot of them. What Linux/Unix books would you recommend for beginners and experienced users to read? Write in the comments.







2022 gtavrl.ru.