Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 9

Автор НСйл ΠœΡΡ‚ΡŒΡŽ

Π”Π°Π²Π°ΠΉΡ‚Π΅ познакомимся с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ для компилятора GNU Π‘ (gcc).

1. Π‘Π½Π°Ρ‡Π°Π»Π° посмотрим Π½Π° справочноС руководство.

$ man gcc

GCC(1)                GNU                GCC(1)

NAME

       gcc β€” GNU project Π‘ and Π‘++ compiler

SYNOPSIS

       gcc [-с|-S|-E] [-std=standard]

           [-g] [-pg] [-Olevel]

           [-Wwarn...] [-pedantic]

           [-Idir...] [-Ldir...]

           [-Dmacro[=defn]...] [-Umacro]

           [-foption...] [-mmachine-option...]

           [-ΠΎ outfile] infile...

       Only the most useful options are listed here; see below

       for the remainder. g++ accepts mostly the same options as

       gcc.

DESCRIPTION

       When you invoke GCC, it normally does preprocessing, com-

       pilation, assembly and linking. The "overall options"

       allow you to stop this process at an intermediate stage.

       For example, the -c option says not to run the linker.

       Then the output consists of object files output by the assembler.


       Other options are passed on to one stage of processing.

       Some options control the preprocessor and others the com-

       piler itself. Yet other options control the assembler and

       linker; most of these are not documented here, since we

       rarely need to use any of them.

...

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΎΠ± опциях, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… транслятором. Π’ этом случаС справочноС руководство ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅, хотя содСрТит лишь ΠΌΠ°Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ компилятору GNU Π‘ (ΠΈ Π‘++).

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ справочных страниц ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <ΠŸΡ€ΠΎΠ±Π΅Π»> для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ страницС, ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <Enter> (ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <Return>, Ссли Π½Π° вашСй ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ примСняСтся эта клавиша вмСсто <Enter>) для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <q> для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

2. Для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ компиляторС GNU Π‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ info.

$ info gcc

File: gcc.info. Node: Top, Next: G++ and GCC, Up: (DIR)

Introduction

************


   This manual documents how to use the GNU compilers, as well as their

features and incompatibilities, and how to report bugs. It corresponds to

GCC version 4.1.3. The internals of the GNU compilers, including how to port

them to new targets and some information about how to write front ends for

new languages, are documented in a separate manual.

*Note Introduction: (gccint)Top.


*Menu:


* G++ and GCC:: You can compile Π‘ or Π‘++ Applications.

* Standards:: Language standards supported by GCC,

* Invoking GCC:: Command options supported by `gcc'.

* Π‘ Implementation:: How GCC implements theISO Π‘ specification.

* Π‘ Extensions:: GNU extensions to the Π‘ language family.

* Π‘++ Extensions:: GNU extensions to the Π‘++ language.

* Objective-C:: GNU Objective-C runtime features.

* Compatibility:: Binary Compatibility

--zz-Info: (gcc.info.gz)Top, 39 lines --Top--------------------------

Welcome to Info version 4.8. Type ? for help, m for menu item.

Π’Π°ΠΌ прСдоставляСтся Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ мСню ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ для пСрСмСщСния Π² ΠΏΠΎΠ»Π½ΠΎΠΉ тСкстовой вСрсии Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ мСню ΠΈ иСрархия страниц ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π² ΠΎΡ‡Π΅Π½ΡŒ большом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. На Π±ΡƒΠΌΠ°Π³Π΅ докумСнтация ΠΊ компилятору GNU Π‘ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ сотни страниц.

Π£ систСмы info Π΅ΡΡ‚ΡŒ собствСнная справка, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ страниц info. Если Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш <Ctrl>+<H>, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ со справочным руководством, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ срСдства обучСния пользованию систСмой info. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° info Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав ΠΌΠ½ΠΎΠ³ΠΈΡ… дистрибутивов Linux ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ОБ UNIX.

РСзюмС 

Π’ этой Π²Π²ΠΎΠ΄Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ познакомились с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ОБ Linux ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ОБ Linux, ΠΎΠ±Ρ‰ΠΈΠΌΠΈ с ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ систСмами UNIX. ΠœΡ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ систСм программирования, доступных UNIX-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ прСдставили простыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ срСдства языка Π‘ ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΈΡ… с эквивалСнтными срСдствами Π² ОБ Windows.

Π“Π»Π°Π²Π° 2

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ срСдствами ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

Начав ΠΊΠ½ΠΈΠ³Ρƒ с программирования Π² ОБ Linux Π½Π° языкС Π‘, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ сдСлаСм отступлСниС ΠΈ остановимся Π½Π° написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ОБ Linux Π½Π΅ относится ΠΊ систСмам, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки β€” Π·Π°ΠΏΠΎΠ·Π΄Π°Π»ΠΎΠ΅ Π΄Π΅Ρ‚ΠΈΡ‰Π΅ графичСского интСрфСйса. Π£ систСм UNIX, ΠΏΡ€ΠΎΠΎΠ±Ρ€Π°Π·Π° Linux, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ графичСского интСрфСйса; всС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки UNIX всС врСмя Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт. Π­Ρ‚ΠΈ свойства ΠΏΠ΅Ρ€Π΅ΠΊΠΎΡ‡Π΅Π²Π°Π»ΠΈ ΠΈ Π² Linux, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ самыС ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΌ способом ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Π° для ОБ Linux ΠΈ ΡΡ‚ΠΎΠ»ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ простых Π·Π°Π΄Π°Ρ‡, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ срСдствами ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ рассматриваСтся ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго.

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌ вас с синтаксисом, структурами ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, доступными ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ (основанныС Π½Π° экранах) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. Они ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ собствСнныС дСйствия. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ бросим Π±Π΅Π³Π»Ρ‹ΠΉ взгляд Π½Π° ΠΏΠ°Ρ€Ρƒ особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ: grep ΠΈ find. Рассматривая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ grep, ΠΌΡ‹ познакомимся с основными полоТСниями, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠΌΠΈΡΡ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ… ОБ Linux ΠΈ языках программирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Perl, Ruby ΠΈ PHP. Π’ ΠΊΠΎΠ½Ρ†Π΅ Π³Π»Π°Π²Ρ‹ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ настоящиС сцСнарии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ Π½Π° языкС Π‘ Π½Π° протяТСнии всСй ΠΊΠ½ΠΈΠ³ΠΈ. Π’ этой Π³Π»Π°Π²Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

β–‘ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°;

β–‘ тСорСтичСскиС основы;

β–‘ тонкости синтаксиса: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, условия ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ;

β–‘ списки;

β–‘ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

β–‘ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;

β–‘ встроСнныС (here) Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹;

β–‘ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°;

β–‘ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° grep ΠΈ рСгулярныС выраТСния;

β–‘ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° find.

Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ со слоТным сцСнариСм ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΈ администрировании систСмы, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ послСднюю Π³Ρ€Π°Π½Π΄ΠΈΠΎΠ·Π½ΡƒΡŽ (Π½ΠΎ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ) идСю ΠΈΠ»ΠΈ просто ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, эта Π³Π»Π°Π²Π° Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π°.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅?

Одна ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ примСнСния ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстрого ΠΈ простого программирования. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° всСгда Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π² самых ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Ρ… установках ОБ Linux, поэтому благодаря простому ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π²Ρ‹ смоТСтС ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ ваша идСя. Командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Π° ΠΈ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Π°, Ρ‡Π΅ΠΌ простыС настройка, сопровоТдСниС ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ для управлСния процСссами, обСспСчивая Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ порядкС, зависящСм ΠΎΡ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ этапа выполнСния.

Π₯отя внСшнС командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² ОБ Windows, ΠΎΠ½Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠΎΡ‰Π½Π΅Π΅ ΠΈ способна Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ слоТныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ОБ Linux; Π½ΠΎ ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ…. Командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° выполняСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, часто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ сцСнариями ΠΈΠ»ΠΈ скриптами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²ΠΎ врСмя выполнСния. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ построчно ΠΈ Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ. Но для Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Π°ΠΆΠ½ΠΎ врСмя выполнСния ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ интСнсивноС использованиС процСссора, командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° оказываСтся нСподходящСй срСдой.

НСмного Ρ‚Π΅ΠΎΡ€ΠΈΠΈ

Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ Π΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π΄ΠΎ тСорСтичСских основ UNIX ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Linux. ОБ UNIX основана Π½Π° интСнсивном ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ зависит ΠΎΡ‚ Π½Π΅Π³ΠΎ. Π’Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π΅Π΅ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ссылок Π² строкС, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Одно ΠΈΠ· наслаТдСний, доставляСмых ОБ Linux, β€” Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдств. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°:

$ ls -al | more

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° примСняСт ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ls ΠΈ more ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ списка Ρ„Π°ΠΉΠ»ΠΎΠ² для поэкранного отобраТСния. КаТдая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ мноТСство ΠΌΠ΅Π»ΠΊΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для создания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ слоТных комплСксов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ копию справочного руководства ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ bash, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

man bash | col -b | lpr

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, благодаря автоматичСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ этих ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ написаны. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΅Π΅ сначала ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ ΠΈ Π·Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π°, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π΅Π΅ Π½Π° языкС Π‘ ΠΈΠ»ΠΈ Π‘++, Perl, Python ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ быстроС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, Ссли Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° дСйствуСт Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ, Π²Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ Π² ΠΏΠΎΠΊΠΎΠ΅.