Linux Essentials for all stacks

Source: Internet
Author: User
Tags temporary file storage

Linux is almost ubiquitous, whether it is server building or client development, and the basic skills of the operating system are essential to the full stack.

Selection of the system

Linux distributions can be broadly divided into two categories, one of which is a distribution version maintained by a commercial company, a release version maintained by a community organization, and the former is represented by the famous Redhat (RHEL), which is represented by Debian.

Redhat, which should be called the Redhat series, includes Rhel, Fedora, CentOS (community clone version of Rhel, free). Ubuntu is strictly not a standalone release, and Ubuntu is based on Debian, a nearly perfect Linux desktop system that has all the benefits of Debian and the advantages it has to enhance. The Ubuntu community believes that practicality and innovation are above all.

If you need a more stable server system, then the best choice is CentOS, after the installation, after the simple configuration to provide a very stable service. But for cloud environments, Unbantu may be good, and Hadoop was first developed on Ubantu.

System structure

Understanding the architecture can have a better sense of direction. Linux has kernel and user two modes, the kernel, shell and file system together form a basic operating system structure, the Linux kernel consists of the following parts: memory management, process management, device drivers, file systems and network management.

Linux kernel

Understanding the Linux kernel allows you to make the most of your resources and have a sense of purpose when tuning your system.

Linux divides memory into easy-to-handle "memory pages", providing abstractions of the 4KB buffers, such as the slab allocator. A process is actually a running entity for a particular application, and process scheduling controls the process's access to the CPU. Common inter-process communication mechanisms in Linux are signals, pipelines, shared memory, semaphores, sockets, and so on. The kernel provides an API through the SCI to create a new process (fork, exec, or Posⅸ), stop the process (kill, exit), and communicate and synchronize between them (signal or posⅸ mechanism). The Linux operating system combines a separate file system into a hierarchical tree structure, and a separate entity represents the filesystem. Because Linux supports many different file systems, it organizes them into a unified virtual file system. The device driver provides a set of operating systems that understand the abstraction of interface completion and the interaction between the operating system, and the specifics of hardware-related operations are done by the device driver. The network portion of the Linux kernel consists of BSD sockets, network protocol layers, and network device drivers. The network device driver is responsible for communicating with the hardware device, and each of the possible hardware devices has a corresponding device driver.

Linux file system

Linux system can support a variety of popular file systems, recommended with EXT4.
Linux The following file types are mainly:

1) ordinary files, divided into plain text and binary.

2) directory files, where files are stored.

3) links to files that point to the same file or directory.

4) device files, divided into block devices and character devices.

5) pipeline file to provide interprocess communication

6) socket file, related to network communication

Linux uses a standard directory structure, and the installer has created a file system and a complete and fixed directory composition for the user, specifying the role and file type of each directory.

Binary / / /Home / A / / The largest
Directory name Brief Description
/binexecutable Commands
Dev Equipment Special Files
etc system administration and configuration Files
/ETC/RC.D startup configuration files and scripts
the base point of the user's home directory, such as user ABC's home directory is/home/user, can be represented by ~ABC
/lib Standard Programming Library
/sbin system administration commands, which are stored in the hypervisor used by the system administrator
tmp Common temporary file storage points
/root system administrator's home directory
/mnt The system provides this directory to allow users to temporarily mount other file systems.
/lost+found This directory is usually empty, the system is not properly shutdown and left "homeless" files
/procvirtual directory, which is a mapping of system memory. This directory can be accessed directly to obtain system information.
var overflow zones for some large files, such as log files for various services
usrdirectory, the applications and files to be used almost all in this directory. It contains:/USR/X11R6 storage X Window directory/usr/bin Numerous applications/usr/sbin some hypervisor/usr/doc Linux documentation/usr/include Linux development and compilation should be Use the header file required by the program/usr/lib Common dynamic link library and software package configuration file/usr/man Help document/USR/SRC Source code, the source of the Linux kernel is placed in/usr/src/linux/usr/local/bin local add Command/usr/local/lib local additions to the library
Linux Shell and commands

The shell is the user interface of the system and provides an interface for users to interoperate with the kernel. It receives the command entered by the user and sends it to the kernel to execute, which is a command interpreter. There are many types of shells, and bash is recommended here. Bash is the GNU Bourne Again Shell, the default shell on the GNU operating system, and most Linux distribution kits use this shell.

There are many commands for Linux, and a simple classification is given below.

It is shell programming to organize the Linux commands in the shell to complete a series of tasks. Shell,perl and Python are the most common scripting languages on Linux, and I recommend using Python.

Linux applications

Standard Linux systems generally have a set of assemblies called applications, including text editors, programming languages, X windows, Internet Tools, and databases.

For text editing, Emacs and Vim are the same, and can be used even as an IDE through plug-ins. As a personal feeling, VIM should also be an essential skill. Vim commands are also many, organized as follows:

As far as application management is concerned, the ubantu needs to be familiar with apt commands, while CentOS is the Yum command. Of course, the source code compilation installation is necessary, makefile the wording of the configure/autoconfig/make, the use of extremely easy only good.

Linux Essentials for all stacks

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.