Where the shell comes in

Source: Internet
Author: User

the speed of software development exceeds that of any one industry. Software practitioners have climbed, and software users have gone deep into the countryside (using smartphones to watch programs and chat videos).

1 Linux and Shell
as a user of software products, we can not escape windows, as a software product staff, but also to avoid Linux (Unix-like Systems, UNIX, Linux, abbreviated Linux).

millions Hundreds of millions of Linux systems, and system contributors, hidden in the information age backstage, hard work, silent dedication. Do not fight for fame, but for freedom. It's really great.
Linux System is the treasure of the computer world, waiting for the digging and sharing of the conscientious:
1)the most mysterious is kernel, she fills the open source world the most core parts, then open source software to play independently;
2)the most colorful is devicedriver, she met the desire to create, professional, amateur DIYer, can be for open source software building blocks;
3)the most intimate is the shell, she provides a "wormhole", we can go through her, into the mysterious and colorful computer time and space, to experience the behavior of high-dimensional biological ideas (real time, perhaps the high-dimensional biological game space);
4)the most warm-hearted are all kinds of tools, you find them, they will give you surprise or indulgence, you can not find, you are hard or lucky.

this time, we focus mainly on the shell. Oh, My Precious.

2 Shell Introduction
the shell is a command interpreter. Through the shell, users can use and control resources for kernel, Device, and tools.
(according to the Lord of the Rings, "The Linux system is too complex, so for players to provide a variety of game raiders, the world Ring 17, kernel three, mysterious, intelligent and immortal; device has five, colorful situation, there is no lack of kinky skills; tools get their nine, most greedy, Too much life to die fast. Too many rings do not know how to wear, but also made a supreme ring shell. The Supreme commandment, the royal precepts, this is a bright supreme commandment, not evil; we are not to resist her, to destroy her, but to use her often, to be close to her, and to play the greater power of other rings through the supreme precepts. ")
Where the shell comes in, the personal summary has three points:
1) Quickly implement software prototypes
2) non-interactive, automated use
3) Integration for more advanced features

The following expands the description by point.

2.1 Quickly implement software prototypes
in management, we often hear a similar process: "Direction is more important than speed, and choice is more important than effort." Software work is the same: first meet the correctness, otherwise performance is meaningless (in fact, fast or meaningful, can quickly know the wrong).
We can compare this by a simple but practical example: the number of fixed-format 16 binary numbers in several files is converted to 10 binary number to save, so as to facilitate human viewing.
There are several ways to try it:
1) Print it out, convert it manually, mark it with a pen
2) Use C to write a command program
3) Using MFC, write a GUI program (can supplement other language comparison)
4) Using the shell, write a script

1th) method, correctness depends on the conversion of the person to ensure (I think of a television revealed in the game "pay 20 deposit, from 1 to 500, all right to the value of good hundreds of gift or cash, error forfeiture deposit", some people rely on this can earn money to feed the family). The time base is proportional to the number of bytes (assuming the turn, write 1 seconds 1 number)
2nd) methods, the need to write the source code, read and write files, content by rule reading, string number conversion, digital conversion and other functions, and then compile, debug, after the completion of the program, the command line is called. Correctness is designed by people and guaranteed by data. Time includes writing programs, calling files, performing three parts, the main time in the "write program", followed by "Call file", "Execution time" least
The 3rd method, and the 2nd) kind of similar, just more GUI design, implementation, after the completion of the program, you can use the mouse operation. Time is similar, just have "command line" and "GUI Mouse" operation time difference
The 4th method, and the 2nd) is the same, just implemented with a script, without compiling. Time differences have two points: "Write program" and "Write script", "Compile program execution" and "script program execution"


The specific method to choose, depends on the actual scene.
1) If there are only 100 numbers, artificial method is the most reliable manual, what write programs are clouds. But one of the characteristics of electronic information: more information

2) If using the GUI to achieve, use will be very good, mouse pointing point to fix. The development time is the longest, and must be triggered by someone. If you have to operate every day, this person will feel bored, not to forget. The characteristics of electronic information Two: developers of data processing, more than the end-user. The example of this conversion is actually the needs of the developer (the end user, perhaps not at all aware of the difference between the 16 binary and the 10 binary. "We don't even have 12 and 0 points", they're not computer idiots, they don't like to be "idiots" on program calls .
3) with the command to achieve, do not develop GUI (do not have to do GUI, development is very happy, because the art is actually a work, rather than technology live) less time, the main time is debugging, logic error time. The execution command can be copied down, to be processed on the execution, convenient and quick, but still to operate. Characteristics of electronic information Three, information at any time; Software development features: debugging, Error time, more than the encoding time
4) With script implementation, no GUI, less code than C, directly run debugging. If the point to, or more data, can be timed execution, unattended. Perfect. Oh, My Precious.
of course, if you want to convert in real time, the script speed is not up, the time-consuming part can call the written tool, or implement the tool yourself. (Real real-time conversion, no shell, we have to write a timed program to invoke.) Time has been wasted)
personal script Implementation, code line number 54, also includes 8 lines of comments, 8 blank lines. The implementation took 45 minutes (including surfing the web to check the properties, write word usage instructions). Oh, My Precious.
    
In fact, we have many examples of quick prototypes or end products:
1) MATLAB fast realization Algorithm effect
2) Build a virtual machine
3) Internet Background application

2.2 Automated use
the concept of automation, defined from the software perspective, is batch processing, unattended, timed execution. From a broad perspective, there is no need for people to participate, or do not need me to participate, can belong to the generalized automation. In modern life, automation in all aspects of the basic necessities, has been all-pervasive (and this is the industrial social progress in pursuit of one of the main goals). You can list a bunch of them casually:
first from the home of the electricity and water kitchen start: water, drinking, electric kettle, thermos, electric, light, rice cooker, induction cooker, juicer, soya-bean milk machine, refrigerator, TV, air conditioning, electric fan, washing machine; sewer, gas, canned gas, water heater, shower pa, small alarm clock, watch, computer ... Of course, there are the most important mobile phones, the network (broadly speaking, automation of all, is the embodiment of the network)
then look at the traffic: bicycles, electric cars, buses, private cars, high-speed railways, ships, airplanes, rockets ...
food and clothing will not need to say: fast foods (one of the most developed industries in Shenzhen), large stalls, restaurants, private dishes ... Have we ever made a piece of clothing, from birth to now?
The recent decades of computer revolution, the last more than 10 years of the Internet revolution, the IoT revolution in recent years, are typical automation applications related to computers, software, networks, and smart devices. Customers are getting lazy and so are the staff.
The question comes, as a staff member, or a subdivision to a software practitioner, how much of your work, or your product, is automated?
The ability, results, and convenience of the shell to be automated in all languages (followed by a gradual collation of specific applications, outlined here) is an essential tool for experienced software practitioners (like carpenter's electric saws, doctor's medical records, lawyer's file bags).
startup of Linux, automatic opening of various services
eliminate unattended Execution of outdated files, machine aging, automated testing, and more
Continuous integration of software development, after submission of code, quickly compile, package, run tests, give feedback
maintenance and backup of various servers and databases
.....
    
Most of the time, we are end-users (for the daily necessities), in the black box mode of use; occasionally a small point (work industry products), we are research and development production personnel. Sometimes, we do not switch roles and thinking, the box production requirements and standards, think too simple.
relative to the end user (interactive, black box mode of use, mainly focus on function points, performance points, interface, operation flow, etc.), research and development of production staff to master (manufacturing black boxes need more tools, boxes include many non-user requirements: such as rapid commissioning, rapid verification, rapid release, system integration, running resource monitoring, mass production , abnormal site information collection, rapid upgrade).
What if you want to improve your ability to automate your work? The shell is really good. This is the shell master, admire the feeling such as surging river, the reasons for the continuous. Oh, My Precious.

    2.3 Integrated For more advanced features
today's human world, in addition to works of art or "individual combat" mode, such as philosophical thinking, painting, calligraphy, music and so on (the main job is one man, a large number of auxiliary or automated. Like Li Zongsheng, sing with their own guitar, do the guitar with their own tree, less), and other crafts have switched to "team Combat" mode, such as out of books, art exhibitions, concerts, do mobile phones, do app products and so on (or need a hero, but a lot of work needs to support).
Moreover, "team combat" mode has been switched to "special forces" this rapid response mode, through the "small number of external performers (foreground information collection, decision-making) + Resource network support (background data processing, execution)."
This model can be bonded, assembled, and used to achieve more advanced goals (also called Assembly and composition capabilities), using the system resources of the mature work. Integration capabilities like glue, screws, rivets, ropes, pouches, containers ...
a simple metaphor (probably inappropriate), when a child holiday when the candy, our small hands are full, the results are few. So, we first grab some in the jacket pocket, put some in the trouser pocket, and then catch full, very satisfied. If we carry a backpack to install, it is estimated that mom and dad will be crazy (as a child has never thought of).
in software development, relative to hardware, other tangible products, it is easier to integrate (perhaps one of the "demand Explosion"). In object-oriented analysis and design, Booch writes that the task of a software development team is to design an illusion that obscures the complexity of the user (jargon is encapsulation). Of course, developers must bear the complexity behind them.
The software integrates the hardware, firmware and structure, the application integrates the operating system, the driver, the network, and the Shell, which provides the integration capability and the operating environment of the "special Forces" for the rapid implementation of more advanced applications.
Oh, My Precious.

3 Learning Difficulty
about learning, there are a few notes:
computer is a practical subject, light says do not practice false bashi.
Learning computer language is much easier than human natural language.
learning the shell is much easier than C + +, and is easier than python (it's easier to learn the shell than to learn Python).
Learn the shell don't struggle with grammar, remember where she comes in.
more on the internet, solve problems faster.
You solve the problem, you can risk on the internet and make Yimeimei faster.

Where the shell comes in

Related Article

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.