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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Командная строка LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 84

Автор Шоттс Уильям

Установка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π‘Ρ‚Π°Ρ€Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ часто Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π»ΡŒ для make, которая называСтся install (ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ). Π­Ρ‚Π° Ρ†Π΅Π»ΡŒ выполняСт установку Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π² систСмный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/local/bin, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ мСсто для установки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, собранного Π² локальной систСмС. Однако этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, нСдоступСн рядовым ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ для записи, поэтому, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ установку, Π²Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

[[email protected] diction-1.11]$ sudo make install

ПослС установки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ использованию:

[[email protected] diction-1.11]$ which diction

/usr/local/bin/diction

[[email protected] diction-1.11]$ man diction

ВсС Π½Π° мСстС!

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€Π΅Ρ… простых ΠΊΠΎΠΌΠ°Π½Π΄ β€” ./configure, make, make install β€” ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ· исходных ΠΊΠΎΠ΄ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, насколько Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΈΠ³Ρ€Π°Π΅Ρ‚ make Π² сопровоТдСнии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ make ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ трСбуСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ρ†Π΅Π»ΡŒ/Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для компиляции исходного ΠΊΠΎΠ΄Π°.

13 Для `all’ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. β€” ΠŸΡ€ΠΈΠΌΠ΅Ρ‡. ΠΏΠ΅Ρ€.

Π§Π°ΡΡ‚ΡŒ IV. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

24. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ сцСнария ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… ΠΌΡ‹ собрали арсСнал инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ эти инструмСнты ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ самых Ρ€Π°Π·Π½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΌΡ‹ всС Π΅Ρ‰Π΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ старинкС, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ большС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ. ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ОбъСдиняя инструмСнты Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ собствСнной конструкции, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ слоТныС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ сцСнариями ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сцСнарии ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

Π’Ρ‹Ρ€Π°ΠΆΠ°ΡΡΡŒ простым языком, сцСнарий ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ β€” это Ρ„Π°ΠΉΠ», содСрТащий ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄. Командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ этот Ρ„Π°ΠΉΠ» ΠΈ выполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ вводились Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

Командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° β€” это ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΊ систСмС, ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ языка сцСнариСв. Как Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄Π°Π»Π΅Π΅, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² сцСнариях, Π° ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² сцСнариях, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

ΠœΡ‹ ΡƒΠΆΠ΅ познакомились с мноТСством особСнностСй ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π½ΠΎ всС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΡΠ»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ особСнностям, связанным с нСпосрСдствСнным использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Но командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ мноТСством особСнностСй, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ (Π½ΠΎ Π½Π΅ всСгда) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сцСнарий ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сцСнарий ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ:

1. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ сцСнарий. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΠΈΡ… создания Π½Π°ΠΌ понадобится тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. Π›ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ подсвСтки синтаксиса, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ элСмСнты сцСнариСв с Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ. ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки. Для со­здания сцСнариСв Ρ…ΠΎΡ€ΠΎΡˆΠΎ подходят vim, gedit, kate ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹.

2. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ сцСнарий выполняСмым. БистСма Π½Π΅ позволяСт ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любой старый тСкстовый Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈ Π½Π΅Π±Π΅Π·ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ! ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сцСнарий, Ρ„Π°ΠΉΠ»Ρƒ сцСнария Π½ΡƒΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

3. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ сцСнарий Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π³Π΄Π΅ командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° смоТСт Π½Π°ΠΉΡ‚ΠΈ Π΅Π³ΠΎ. Командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° автоматичСски выполняСт поиск выполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, Ссли ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ явно. Для максимального удобства ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ наши сцСнарии Π² Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° сцСнария

БлСдуя традициям программирования, напишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Β«hello worldΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ простой сцСнарий. Π˜Ρ‚Π°ΠΊ, запуститС тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий:

#!/bin/bash

# Π­Ρ‚ΠΎ наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сцСнарий.

echo 'Hello World!'

ПослСдняя строка Π² сцСнарии Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΠ° β€” это простая ΠΊΠΎΠΌΠ°Π½Π΄Π° echo со строковым Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. Вторая строка Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠ°. Она выглядит ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, исслСдованных ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π°ΠΌΠΈ. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ, β€” ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ†Π°Ρ… строк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

echo 'Hello World!' # Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ВсС, начиная с символа # ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки, игнорируСтся.

Π’ΠΎ ΠΆΠ΅ самоС Π²Π΅Ρ€Π½ΠΎ ΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

[[email protected] ~]$ echo 'Hello World!' # Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Hello World!

НСсмотря Π½Π° Π±Π΅ΡΡΠΌΡ‹ΡΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΈΡ… всС ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠ΅Ρ€Π²Π°Ρ строка Π² сцСнарии смотрится нСсколько Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ. Она ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ начинаСтся с символа #, Π½ΠΎ выглядит ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΡƒΠΆ слишком ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов #! β€” это Π½Π° самом Π΄Π΅Π»Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ конструкция, которая называСтся shebang (произносится ΠΊΠ°ΠΊ «шС-Π±Π°Π½Π³Β») ΠΈ сообщаСт систСмС имя ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° Π½ΠΈΠΌ тСкста сцСнария. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ сцСнарий ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ это ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» сцСнария с ΠΈΠΌΠ΅Π½Π΅ΠΌ hello_world.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

Π”Π°Π»Π΅Π΅ сдСлаСм сцСнарий исполняСмым ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ chmod:

[[email protected] ~]$ ls -l hello_world

-rw-r--r-- 1 meΒ Β Β Β Β Β meΒ Β Β Β Β Β 63 2012-03-07 10:10 hello_world

[[email protected] ~]$ chmod 755 hello_world

[[email protected] ~]$ ls -l hello_world

-rwxr-xr-x 1 meΒ Β Β Β Β Β meΒ Β Β Β Β Β 63 2012-03-07 10:10 hello_world

БущСствуСт Π΄Π²Π° распространСнных Π½Π°Π±ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для сцСнариСв: 755 β€” для сцСнариСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступны для выполнСния всСм, ΠΈ 700 β€” для сцСнариСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°ΠΌΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ сцСнарии Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ доступными для чтСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ.

ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° сцСнария

ПослС установки Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сцСнарий:

[[email protected] ~]$ ./hello_world

Hello World!

Но Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ явный ΠΏΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

[[email protected] ~]$ hello_world

bash: hello_world: ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°

Π’ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°? Π§Π΅ΠΌ наш сцСнарий отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ? Как оказываСтся, Π½ΠΈΡ‡Π΅ΠΌ. Π£ нас Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сцСнарий. Π•Π³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” мСстополоТСниС. Π’ Π³Π»Π°Π²Π΅ 11 ΠΌΡ‹ обсуТдали ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния PATH ΠΈ Π΅Π΅ влияниС Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ систСма ΠΈΡ‰Π΅Ρ‚ выполняСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ систСма просматриваСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΠΎ списку всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° трСбуСтся Π½Π°ΠΉΡ‚ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ссли ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΉ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ явно. ИмСнно Ρ‚Π°ΠΊ систСма выполняСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ /bin/ls, Ссли ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ ls Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ /bin β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ систСма просматриваСт автоматичСски. Бписок ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² хранится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния PATH. Она содСрТит список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², пСрСчислСнных Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅. Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ содСрТится Π² PATH, ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

[[email protected] ~]$ echo $PATH

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, это просто список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Если ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ сцСнарий Π² любой ΠΈΠ· этих ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², наша ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² спискС, /home/me/bin. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ дистрибутивов Linux Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ bin Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ собствСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ bin ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ сцСнарий Π² Π½Π΅Π³ΠΎ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: