ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux

Titiaiev / bash-guide-1.md

БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄
Advanced Bash-Scripting Guide

BASH β€” Bourne-Again SHell (Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ пСрСводится ΠΊΠ°ΠΊ Β«ΠΏΠ΅Ρ€Π΅Ρ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ шСл», ΠΈΠ»ΠΈ Β«Π‘Π½ΠΎΠ²Π° шСл Π‘ΠΎΡ€Π½Π°(ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ sh)Β»), самый популярный ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π² ΡŽΠ½ΠΈΠΊΡΠΎΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах, Π² особСнности Π² GNU/Linux. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ряд встроСнных ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания своих скриптов.

break Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° for, while ΠΈΠ»ΠΈ until
continue Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° for, while ΠΈΠ»ΠΈ until
echo Π²Ρ‹Π²ΠΎΠ΄ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π½Π° стандартноС устройство Π²Ρ‹Π²ΠΎΠ΄Π°
exit Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
export ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ процСссы Π² срСдС
hash Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ
kill посылаСт сигнал Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСссу
pwd Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
read Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ строку ΠΈΠ· Π²Π²ΠΎΠ΄Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π΅ для присвоСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ.\
return заставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ
shift ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π°Π»Π΅Π²ΠΎ
test вычисляСт условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
times Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ систСмноС врСмя, использованноС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ Π΅Π΅ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ
trap ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ сигнала
unset Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
wait ΠΆΠ΄Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ процСсса ΠΈ сообщаСт Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ состояниС.

И ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ ΠΊΡ€ΠΎΠΌΠ΅ встроСнных ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ Π²Π½Π΅ΡˆΠ½ΠΈΡ…, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ познакомимся ΡƒΠΆΠ΅ Π² процСссС

Π§Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ с самого Π½Π°Ρ‡Π°Π»Π°

Π² этой строкС послС #! указываСтся ΠΏΡƒΡ‚ΡŒ ΠΊ bash-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ, поэтому Ссли ΠΎΠ½ Ρƒ вас установлСн Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС(Π³Π΄Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π½Π°Π±Ρ€Π°Π² whereis bash ) помСняйтС Π΅Ρ‘ Π½Π° ваш ΠΏΡƒΡ‚ΡŒ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ скрипта

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния скрипта:

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ познакомились ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ скрипту ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, врСмя ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ:

УсловныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π΄ΡƒΠΌΠ°ΡŽ, Π·Π½Π°ΠΊΠΎΠΌΡ‹ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ Ρ€Π°Π· пытался Π½Π° Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ bash условия ΠΏΠΈΡˆΡƒΡ‚ΡΡ слСд. ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅):

#!/bin/bash
#Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ source засовываСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ скрипта
source=$1
#Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ dest засовываСм Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ скрипта
dest=$2

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния скрипта:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° if-then-else ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

для построСния многоярусных условий Π²ΠΈΠ΄Π°:

для краткости ΠΈ читаСмости ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ структуру:

Условия. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΡƒΡŽ-Ρ‚ΠΎ ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с большим количСством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ цСлСсообразнСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ case.

esac #ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° case.

ПослС Π²Ρ‹Π±ΠΎΡ€ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ наТатия Enter Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ(Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ всС ΠΏΡƒΡ‚ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈ Ρƒ вас установлСны эти Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ πŸ™‚ )

ΠŸΡ€Π²Π΅Π΄Ρƒ список логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для конструкции if-then-else-fi:

-z # строка пуста
-n # строка Π½Π΅ пуста
=, (==) # строки Ρ€Π°Π²Π½Ρ‹
!= # строки Π½Π΅Ρ€Π°Π²Π½Ρ‹
-eq # Ρ€Π°Π²Π½ΠΎ
-ne # Π½Π΅Ρ€Π°Π²Π½ΠΎ
-lt,( # мСньшС
-le,( # мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
-gt,(>) #большС
-ge,(>=) #большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
! #ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ логичСского выраТСния
-a,(&&) #логичСскоС «И»
-o,(||) # логичСскоС Β«Π˜Π›Π˜Β»

Π‘ основами языка ΠΈ условиями ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Ρ€Π°Π·ΠΎΠ±ΡŒΡŽ Π΅Ρ‘ Π½Π° нСсколько частСй(допустим Π½Π° 3). Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for-in ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ обращСния ΠΊ значСниям пСрСчислСнным Π² спискС. КаТдоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ Π² спискС присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Бинтаксис ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Рассмотрим нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π¦ΠΈΠΊΠ» while слоТнСС Ρ†ΠΈΠΊΠ»Π° for-in ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для повторСния ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΠΎΠΊΠ° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ истинно( ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° = 0).
Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π° рассмотрим Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта:

Как Π²ΠΈΠ΄ΠΈΠΌ Ρ†ΠΈΠΊΠ» выполняСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ Π²Π²Π΅Π΄Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ Β«yesΒ». ΠœΠ΅ΠΆΠ΄Ρƒ do ΠΈ done ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ структуры, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ‚.ΠΏ., всС ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ выполнятся Π² Ρ†ΠΈΠΊΠ»Π΅.Но слСдуСт Π±Ρ‹Ρ‚ΡŒ остороТным с этим Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Ссли Π²Ρ‹ запуститС Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π½Ρ‘ΠΌ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π±Π΅Π· измСнСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ выраТСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² бСсконСчный Ρ†ΠΈΠΊΠ».

Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, я взял Π΅Π³ΠΎ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Advanced Bash Scripting. Π£ΠΆ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ½ ΠΌΠ½Π΅ понравился :), Π½ΠΎ я Π΅Π³ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ упростил. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ познакомимся с Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠ² UNTIL-DO. Π­Ρ‚Π° практичСски ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ Ρ†ΠΈΠΊΠ»Π° WHILE-DO, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ выполняСтся ΠΏΠΎΠΊΠ° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ.
Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния скрипта:

Ну Π²ΠΎΡ‚, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного, список матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ стандартный:

+ β€” слоТСниС
β€” β€” Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
* β€” ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅
/ β€” Π΄Π΅Π»Π΅Π½ΠΈΠ΅
** β€” Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ
% β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒ(Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ), остаток ΠΎΡ‚ дСлСния
let позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сокращСния арифмСтичСских ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚Π΅ΠΌ самым сокращая ΠΊΠΎΠ»-Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр: a = a+b эквивалСнтно a +=b ΠΈ Ρ‚.Π΄

Π Π°Π±ΠΎΡ‚Π° с внСшними ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΈ написании shell-скриптов

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.

Если Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»(ΠΏΡ€ΠΈ использовании » > » ΠΎΠ½ замСнятСся), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ вмСсто » > » ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ » >> «

послС ΠΏΡ€ΠΎΡΡŒΠ±Ρ‹ sudo ввСсти ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΎΠ½ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ΡΡ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° my_password, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π²Ρ‹ Π΅Π³ΠΎ Π²Π²Π΅Π»ΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.
Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

символ » & » ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° дСскриптор 1(stdout)
(ΠŸΠΎΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ stderr ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π° Ρ‚Ρƒ консоль, Π² ΠΊΠΎΡ‚Ρ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ(Π²Ρ€Π΅Π½Π΅Π΅ ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π° дисплСй)).

ΠšΠΎΠ½Π²Π΅Π΅Ρ€ β€” ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с консолью Bash. Бинтаксис простой:
ΠΊΠΎΠΌΠ°Π½Π΄Π°1 | ΠΊΠΎΠΌΠ°Π½Π΄Π° 2 β€” ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 1 пСрСдастся Π½Π° Π²Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ 2
ΠšΠΎΠ½Π²Π΅Π΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пСрСнаправлСния Π² Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π§Π°Ρ‰Π΅ всСго скрипты Π½Π° Bash ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² качСствС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² консоли, ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ stdout ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π½Π° stdin Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΏΡ€ΠΈ этом Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я ΠΏΠΎΡΡ‚ΠΎΡ€Π°ΡŽΡΡŒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с внСшними ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ скрипта. Π”ΡƒΠΌΠ°ΡŽ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² я ΠΏΡ€ΠΈΠ²Π΅Π» достаточно ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹.

1. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, достаточно Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² « ΠΊΠΎΠ²Ρ‹Ρ‡ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹: qwerty

Однако Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ список Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ для помСщСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Рассмотрим нСбольшой, ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π΄Π°Ρ‡ Π² ОБ Linux

Π’ Π΄Π°Π½Π½ΠΎΠΌ постС ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ написания скриптов ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ Π² Oracle Linux. Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы:

1. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π² ОБ Linux

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π² ОБ Π½Π° Π±Π°Π·Π΅ Linux – это Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, записанных Π² Ρ„Π°ΠΉΠ». Π­Ρ‚ΠΎ дСлаСтся с Ρ†Π΅Π»ΡŒΡŽ быстрого ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ этих ΠΊΠΎΠΌΠ°Π½Π΄. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ самыС Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ – ΠΎΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… дСйствий систСмного администратора Π΄ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для ИВ инфраструктуры. ΠŸΡ€ΠΈ этом Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡ (ΠΊΠΎΠΌΠ°Π½Π΄).

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ Π² скрипт, понадобятся Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС пустого Ρ„Π°ΠΉΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ дистрибутивов Linux Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ являСтся Bash, ΠΈ соотвСтствСнно ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой Π±ΡƒΠ΄Π΅Ρ‚ #!/bin/bash. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… строках символ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обозначСния ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ. Однако, пСрвая строка β€” это особый случай, здСсь Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ (эту ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ шСбанг) ΠΈ ΠΏΡƒΡ‚ΡŒ /bin/bash, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ систСмС Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ скрипт создан ΠΈΠΌΠ΅Π½Π½ΠΎ для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ bash. Π’ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипт Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ исполняСмый Ρ„Π°ΠΉΠ», Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° исполнСниС, ΠΈΠ½Π°Ρ‡Π΅, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΅Π³ΠΎ запуска даст ΠΎΡˆΠΈΠ±ΠΊΡƒ Permission denied.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ошибки, ΠΊΠΎΠ³Π΄Π° запускаСтся нСисполняСмый Ρ„Π°ΠΉΠ»:

ΠŸΡ€Π°Π²Π° Π½Π° исполнСниС Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ chmod. НапримСр,

chmod +x filename.sh

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π°Π΅Ρ‚ всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΏΡ€Π°Π²ΠΎ Π½Π° запуск Ρ„Π°ΠΉΠ»Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ filename.sh

ΠŸΡ€Π°Π²ΠΎ Π½Π° запуск Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ: chmod u+x filename.sh.

НиТС рассматриваСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ написания ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ скрипта, ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ /home/rustam/Documents Π² ΠΏΠ°ΠΏΠΊΡƒ /tmp/backup.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со скриптами ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ сцСнария Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ΄Π½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ для дальнСйшСго ΠΈΡ… использования для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄.

ИсполнСниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π±Π΅Π· хранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈΡ… возмоТности.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² bash-скриптах:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ нСобходимости Ρ€Π°Π±ΠΎΡ‚Ρ‹ с систСмными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. НапримСр, трСбуСтся вывСсти домашнюю Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Бписок ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для срСды ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ выдаСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ env.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ срСды, bash-скрипты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² скриптС свои собствСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ хранят Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнария. Как ΠΈ Π² случаС с систСмными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π°:

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ скрипт, написанный Ρ€Π°Π½Π΅Π΅ – добавляСтся пСрСмСнная для хранСния ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ осущСствляСтся ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

2. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π΄Π°Π½ΠΈΠΉ. Π Π°Π±ΠΎΡ‚Π° сСрвиса cron.

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

Для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ настройки Π² Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСмный сСрвис cron. Π­Ρ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ скрипты Ρ€Π°Π· Π² час, Ρ€Π°Π· Π² дСнь, нСдСлю ΠΈΠ»ΠΈ мСсяц, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² любоС Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· любой ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. БСрвис cron Ρ‚Π°ΠΊΠΆΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ слуТбами ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

Как ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов Linux, cron запускаСтся ΠΏΡ€ΠΈ стартС систСмы ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π•Π³ΠΎ основная Π·Π°Π΄Π°Ρ‡Π° – Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ процСссы Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя. БущСствуСт нСсколько ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… бСрСтся информация ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Cron ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» /etc/crontab, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Для настройки Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π΄Π°Ρ‚Ρ‹ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° выполнСния задания, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис Ρ„Π°ΠΉΠ»Π° cron ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°. НС рСкомСндуСтся нСпосрСдствСнно Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» /etc/crontab. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° crontab. НиТС запускаСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° crontab с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ –e для рСдактирования Ρ„Π°ΠΉΠ»Π°

Π€Π°ΠΉΠ»Ρ‹ crontab, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для управлСния Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/cron.d/. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… /etc/cron.daily/, /etc/cron.weekly/ ΠΈ /etc/cron.monthly/ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ автоматичСски запускаСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ, СТСнСдСльно ΠΈΠ»ΠΈ СТСмСсячно).

Π’Ρ‹Π²ΠΎΠ΄ содСрТимого Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°:

Π’Π°Π±Π»ΠΈΡ†Π° crontab состоит ΠΈΠ· 6 ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ табуляторами. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° врСмя выполнСния, соотвСтствСнно, ΠΌΠΈΠ½ΡƒΡ‚Π°, час, дСнь мСсяца, мСсяц, дСнь Π½Π΅Π΄Π΅Π»ΠΈ. Π’ Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ: число, список чисСл (1,2,3), Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл (1-3), символы * ΠΈΠ»ΠΈ /. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ символы Π² строкС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ выполняСмая ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ – ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ саму ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, echo β€œΠ”ΠΎΠ±Ρ€ΠΎΠ΅ утро”), Ρ‚Π°ΠΊ ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ исполняСмому скрипту.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. cron. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-cron. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° cron. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Как Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты Ρ‡Π΅Ρ€Π΅Π· cron

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· cron, ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π»ΠΈΠ±ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ скрипту Π² послСднСй ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ трСбуСтся ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для ΠΊΠΎΠΌΠ°Π½Π΄, запускаСмых ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ сСрвиса cron, пСрСмСнная ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ срСды PATH Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, ΠΈ сСрвис Π½Π΅ смоТСт Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запуска Ρ€Π°Π½Π΅Π΅ созданного скрипта filename.sh, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Π² 23:00:

ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 5 ΠΌΠΈΠ½ΡƒΡ‚:

3. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ настройки ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ cron:

0 17 * * 1-5 echo β€œΠ Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ – эта надпись выводится Π² 17:00 с понСдСльника ΠΏΠΎ пятницу”

15 6 * * sun echo β€œΠ’Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ΡΡ Π² 6:15 Π² Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅β€

30 12,13 * * 1,3 echo β€œΠ­Ρ‚Π° надпись выводится Π² понСдСльник ΠΈ срСду Π² 12:30 ΠΈ 13:30”

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡΠ½ΠΎΠ²Ρ‹ Bash-скриптинга для нСпрограммистов. Π§Π°ΡΡ‚ΡŒ 2

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ рассмотрСли ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ, синонимы ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Под спойлСром я Ρ‚Π°ΠΊΠΆΠ΅ рассказал, ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

Π’ этой части Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… скриптов, ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΈ ΠΏΡ€Π°Π²Π°Ρ… доступа. Π’Π°ΠΊΠΆΠ΅ я расскаТу ΠΏΡ€ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ условного выполнСния, Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹.

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹

Для выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ΄Π½ΠΈΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипты. Π‘ΠΊΡ€ΠΈΠΏΡ‚ – это тСкстовый Ρ„Π°ΠΉΠ», содСрТащий ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для shell. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ shell, Ρ‚Π°ΠΊ ΠΈ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Π½Π΅ΡˆΠ½ΠΈΡ… исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² домашнюю Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ cd

ΠΈ создадим Π² Π½Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° nano ( nano script.sh )Ρ„Π°ΠΉΠ», содСрТащий 2 строки:

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° nano послС Π½Π°Π±ΠΎΡ€Π° тСкста скрипта, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Ctrl+X, Π΄Π°Π»Π΅Π΅ Π½Π° вопрос «Save modified buffer?» Π½Π°ΠΆΠ°Ρ‚ΡŒ Y, Π΄Π°Π»Π΅Π΅ Π½Π° запрос «File Name to Write:» Π½Π°ΠΆΠ°Ρ‚ΡŒ Enter. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ:

Из Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠŸΡ€Π°Π²Π° доступа Π·Π°Π΄Π°ΡŽΡ‚ΡΡ трСмя Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ: для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ„Π°ΠΉΠ»; для Π³Ρ€ΡƒΠΏΠΏΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ; ΠΈ для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Π—Π΄Π΅ΡΡŒ r, w ΠΈ x ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ соотвСтствСнно доступ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

/.profile), Π»ΠΈΠ±ΠΎ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² общСсистСмный ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ (Ρ„Π°ΠΉΠ» /etc/profile).

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ΅:

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ доступ Π½Π° запись (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ содСрТимого) Ρ„Π°ΠΉΠ»Π° всСм:

Π’Π°ΠΊΠΆΠ΅ для указания ΠΏΡ€Π°Π² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ маску. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΠ΅, ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ – для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Указывая 3 Ρ†ΠΈΡ„Ρ€Ρ‹, ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ маски для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π³Ρ€ΡƒΠΏΠΏ. ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Ρ Ρ†ΠΈΡ„Ρ€Ρƒ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ систСму, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΏΡ€Π°Π²Π°ΠΌ ΠΎΠ½Π° соотвСтствуСт. Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π‘ΠΈΠΌΠ²ΠΎΠ» – ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ ΠΏΡ€Π°Π² доступа ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° ( – ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», d – дирСктория, l – ссылка, c – символьноС устройство, b – Π±Π»ΠΎΡ‡Π½ΠΎΠ΅ устройство, ΠΈ Ρ‚. Π΄.). БоотвСтствиС числа, Π΅Π³ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния ΠΈ ΠΏΡ€Π°Π² доступ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡΠ½ΠΎΠ²Ρ‹ Bash-скриптинга для нСпрограммистов

Π‘Ρ‚Π°Ρ‚ΡŒΡ рассчитана Π½Π° Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ°Π»ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой Unix/Linux, Π½ΠΎ ΠΆΠ΅Π»Π°Π΅Ρ‚ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ с Π½Π΅ΠΉ эффСктивно Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ скрипты для выполнСния своих Π·Π°Π΄Π°Ρ‡. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ справСдливы для выполнСния Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ bash ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ubuntu/Debian, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ… ΠΈ ОБ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΈΡ… спСцифики.

1. ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

БущСствуСт мноТСство дистрибутивов(Ρ„ΠΎΡ€ΠΊΠΎΠ²) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм(ОБ) сСмСйства Linux, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстныС срСди Π½ΠΈΡ…: Ubuntu, Debian, CentOS, Red Hat, Fedora, SuSE, FreeBSD, Mint.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. 500235e38c540deb7190643c864d1d98. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-500235e38c540deb7190643c864d1d98. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 500235e38c540deb7190643c864d1d98. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ большая схСма со всСми Ρ„ΠΎΡ€ΠΊΠ°ΠΌΠΈ Linux.

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ОБ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ (shell), ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ (администрированиС, автоматизация, вычислСния, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Ρ‚.Π΄.), ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ основных ΠΊΠΎΠΌΠ°Π½Π΄, Π½ΠΎ рСализация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ сравнСниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ всСми ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ.

Feature

Bourne

Korn

Bash

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠΠ²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°

Π‘Ρ‚Π΅ΠΊΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ (pushd and popd)

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибок Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

Бписок доступных ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

2. Настройка тСстовой срСды

Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ/Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ машина с установлСнным Linux, ΠΈΠ»ΠΈ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π΅Ρ‘ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· спойлСра Π½ΠΈΠΆΠ΅. Если Π΅ΡΡ‚ΡŒ доступ ΠΏΠΎ ssh ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ сСрвСру, Ρ‚ΠΎ Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ shell для Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ доступ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½Π΅ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Ρ…(ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ…) сСрвСрах ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… окруТСниях. Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ(Π’Πœ), Ρ‚ΠΎ для тСстов ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… особСнности ΠΈ ограничСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ²:
https://cocalc.com/app?anonymous=terminal
https://www.tutorialspoint.com/execute_bash_online.php
https://rextester.com/l/bash_online_compiler

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹

VirtualBox – ПО для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ОБ Β«Π²Π½ΡƒΡ‚Ρ€ΠΈΒ» Π΄Ρ€ΡƒΠ³ΠΎΠΉ. РазумССтся, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы развСртывания Π’Πœ, здСсь ΠΌΡ‹ рассмотрим лишь ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, прСдполагаСтся, Ρ‡Ρ‚ΠΎ Ρƒ вас ПК ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows ΠΈΠ»ΠΈ Mac. Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ VirtualBox ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π’Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· Π’Πœ с установлСнной ОБ Ubuntu ΠΎΡ‚ΡΡŽΠ΄Π°. ΠšΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΡΠ°ΠΌΡƒΡŽ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ скачиваСмый ΠΎΠ±Ρ€Π°Π· ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ VirtualBox (VDI).

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. Π‘Π½Π°Ρ‡Π°Π»Π° создаСм Π½Π° локальном дискС ΠΏΠ°ΠΏΠΊΡƒ для размСщСния Π² Π½Π΅ΠΉ Π’Πœ ΠΈ ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Ρƒ мСня C:\vmachines). РаспакуСм скачанный ΠΎΠ±Ρ€Π°Π· диска Π’Πœ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя Π’Πœ (Ρ‚ΠΈΠΏ ΠΈ вСрсия Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‚ΡΡ автоматичСски, Ссли это понятно ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π½Π°ΠΌΠΈ ΠΏΠ°ΠΏΠΊΡƒ. ОбъСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти устанавливаСтся автоматичСски, 1Π“Π± достаточно для выполнСния тСстов. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ТСсткий диск», Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π·Π½Π°Ρ‡ΠΎΠΊ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ±Ρ€Π°Π·Π° ТСсткого диска, Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΒ», Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ распакованный Ρ€Π°Π½Π΅Π΅ Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π’Πœ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΒ»:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

И Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ»:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² спискС ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π’Πœ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΒ»:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ПослС запуска Π’Πœ появится ΠΎΠΊΠ½ΠΎ для Π²Ρ…ΠΎΠ΄Π° Π² ОБ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись osboxes.org ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ osboxes.org. ПослС Π²Ρ…ΠΎΠ΄Π° Π² систСму Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Ctrl+Alt+T, Ρƒ нас откроСтся ΠΎΠΊΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ тСсты:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ тСстового ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

На Π΄Π°Π½Π½ΠΎΠΌ этапС ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ срСду, выполняя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ (Ctrl+Alt+T). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ssh ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, PuTTY), ΠΌΡ‹ рассмотрим это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

3. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ ΠΈ находимся Π² shell. Π”Π°Π²Π°ΠΉΡ‚Π΅ сориСнтируСмся Π² пространствС. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ имя ΠΌΠ°ΡˆΠΈΠ½Ρ‹(сСрвСра), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ находимся, Π²Π²Π΅Π΄Π΅ΠΌ hostname ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ Enter:

Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ отобраТаСтся Π² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (test@osboxes:

Команда cat Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° (Ρ‡Π°ΡΡ‚ΡŒ строк Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π° ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° …). Из Ρ„Π°ΠΉΠ»Π° Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ test ΡƒΠΊΠ°Π·Π°Π½Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° /bin/dash. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ(chsh – сокращСнноС ΠΎΡ‚ change shell):

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΌΡ‹ находимся, для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pwd :

Для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ синоним (alias), Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΅Ρ‘ Π²Π²ΠΎΠ΄. Бписок ΡƒΠΆΠ΅ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… синонимов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ alias :

Алиасы Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅

) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ домашнюю Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ нашСм случаС /home/test. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ„Π°ΠΉΠ»Π΅

/.bashrc. Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ слов ΠΎΠ± этих Ρ„Π°ΠΉΠ»Π°Ρ….

ΠŸΡ€ΠΈ запускС bash Π² качСствС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, сначала выполняСтся Ρ„Π°ΠΉΠ»Ρ‹ (Π² случаС ΠΈΡ… наличия), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ настройки профиля ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия Π² процСссС Π²Ρ…ΠΎΠ΄Π° Π΄ΠΎ появлСния ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки: сначала выполняСтся Ρ„Π°ΠΉΠ» /etc/profile, Π΄Π°Π»Π΅Π΅ bash ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ‰Π΅Ρ‚ ΠΈ выполняСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

/.profile. Из ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

./profile вызываСтся Ρ„Π°ΠΉΠ»

НСкоторыС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ bash Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ сдСлано, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипты ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НапримСр, сущСствуСт исполняСмый Ρ„Π°ΠΉΠ» /usr/bin/echo, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo. Команда help echo Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ справку ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° /usr/bin/echo –help Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ справку для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ исполняСмого Ρ„Π°ΠΉΠ»Π°. Π’Ρ‹Π²ΠΎΠ΄ справки для этих ΠΊΠΎΠΌΠ°Π½Π΄ отличаСтся, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° внутрСнняя ΠΊΠΎΠΌΠ°Π½Π΄Π° echo, скрипт, содСрТащий Π²Ρ‹Π·ΠΎΠ² echo, смоТСт ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ, Ρ‚.ΠΊ. для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Π±ΡƒΠ΄Π΅Ρ‚ использован исполняСмый Ρ„Π°ΠΉΠ» /usr/bin/echo. Для поиска Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ клавиши Β«Π’Π²Π΅Ρ€Ρ…Β» ΠΈ Β«Π’Π½ΠΈΠ·Β», ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· истории ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Если Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» интСрСсСн, Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠΈ ΡΡ‚Π°Ρ‚ΡŒΠΈ я расскаТу ΠΏΡ€ΠΎ скрипты ΠΈ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ условного выполнСния, Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π΄Π°Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Bash-скрипты, Ρ‡Π°ΡΡ‚ΡŒ 10: практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… ΠΌΡ‹ обсуТдали Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ аспСкты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ bash-скриптов, Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтах, Π½ΠΎ Π΄ΠΎ сих ΠΏΠΎΡ€ рассматривали лишь нСбольшиС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². А ΠΈΠΌΠ΅Π½Π½ΠΎ, здСсь Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ β€” скрипт для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” скрипт, выводящий свСдСния ΠΎΠ± использовании дискового пространства.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Главная Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ bash, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Когда ΠΏΠ΅Ρ€Π΅Π΄ программистом встаёт Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Π³ΠΎ Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ, Π΅Π³ΠΎ ΠΏΡƒΡ‚ΡŒ Ρ€Π΅Π΄ΠΊΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ прямым ΠΈ быстрым. Π—Π°Π΄Π°Ρ‡Ρƒ Π½Π°Π΄ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° части, Π½Π°ΠΉΡ‚ΠΈ срСдства Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· частСй Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π·Π°Π΄Π°Ρ‡Π°: Β«ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС», ΠΏΡ€ΠΈ блиТайшСм рассмотрСнии, оказалась Π·Π°Π΄Π°Ρ‡Π΅ΠΉ: Β«ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния, ΠΈ, Ссли Π½Π΅Ρ‚ прСпятствий, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎΒ». Займёмся Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ bash-скрипта.

β–ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ who ΠΈ mesg

Π―Π΄Ρ€ΠΎΠΌ скрипта ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΅Ρ‰Ρ‘ Π½Π΅ обсуТдали. Всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΠΎ ΠΏΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌ.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ who

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²Π΅Π»Π° Β«is yΒ», это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² систСмС, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ сообщСния, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² Π΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС mesg Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Β«is nΒ».

ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вошли Π² систСму. Если такая ΠΊΠΎΠΌΠ°Π½Π΄Π°, послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ‡Ρ‘Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ (-), это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ» запись Π² свой Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, сообщСния Π΅ΠΌΡƒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ нСльзя. О Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π·Π½Π°ΠΊ «плюс» (+).

Если Ρƒ вас ΠΏΡ€ΠΈΡ‘ΠΌ сообщСний ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½, Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Π°ΠΌ сообщСния, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ‘ΠΌΠ° сообщСний ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ПослС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΈΡ‘ΠΌΠ° сообщСний mesg Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Β«is yΒ».
ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π½ΡƒΠΆΠ½Ρ‹ Π΄Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, поэтому ΠΌΡ‹, послС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° Π² систСму, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΏΠΎ ssh. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

β–ΠšΠΎΠΌΠ°Π½Π΄Π° write

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ write ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, вошСдшим Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ консоль. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² графичСском ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ (KDE, Gnome, Cinnamon, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅), Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ сообщСния.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° возмоТности ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСния

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ Π² своём Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ сообщСниС.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

НовоС сообщСниС, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ΅Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»

ПолагаСм, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ сообщСний с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сцСнария ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

▍БозданиС скрипта для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ сообщСний, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π²ΠΎΡˆΡ‘Π» Π»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ нас ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π² систСму. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

β–ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° возмоТности записи Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сообщСния. Для этого понадобится такая конструкция, похоТая Π½Π° Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ использовали Π²Ρ‹ΡˆΠ΅:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° возмоТности ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ

β–ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° скрипта

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ скрипта являСтся имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС. Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ β€” тСкст сообщСния, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” состоящий ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ слова. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π»ΠΈ скрипту сообщСниС для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ скрипта

Π’ΡƒΡ‚, Ссли ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ скрипта Π΅ΠΌΡƒ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ сообщСниС для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, ΠΌΡ‹ сообщаСм ΠΎΠ± этом ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” ΠΈΠ΄Ρ‘ΠΌ дальшС.

β–ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСдСний ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ сообщСниС, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свСдСния ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ имя Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ДСлаСтся это Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ собраны, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ лишь ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС:

Π’Ρ‹Π·ΠΎΠ² Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ скрипта выглядит Ρ‚Π°ΠΊ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

УспСшная ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ bash-скрипта

Как Π²ΠΈΠ΄Π½ΠΎ, всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. Однако, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ сцСнария ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ лишь сообщСния, состоящиС ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ слова. Π₯ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ сообщСния.

β–ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… сообщСний

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ сообщСния

Π’ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ тСкст сцСнария:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

УспСшная ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ сообщСния:

Π”Π»ΠΈΠ½Π½ΠΎΠ΅ сообщСниС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ дошло Π΄ΠΎ адрСсата. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° дискового пространства

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π’ Π½Π°Ρ‡Π°Π»Π΅ строки выводится Π΅Ρ‘ Π½ΠΎΠΌΠ΅Ρ€, ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ΄Ρ‘Ρ‚ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ ΠΈ Π·Π½Π°ΠΊ табуляции, Π΄Π°Π»Π΅Π΅ β€” ΠΎΠ±ΡŠΡ‘ΠΌ дискового пространства, слСдом β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ табуляции ΠΈ имя ΠΏΠ°ΠΏΠΊΠΈ.

Π‘ΠΎΠ±Π΅Ρ€Ρ‘ΠΌ вмСстС всё Ρ‚ΠΎ, ΠΎ Ρ‡Ρ‘ΠΌ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π’Ρ‹Π²ΠΎΠ΄ свСдСний ΠΎ дисковом пространствС

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ совсСм скоро ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ получСния Π΄Π°Π½Π½Ρ‹Ρ… сразу ΠΏΠΎ нСскольким дирСкториям. Для этого создадим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ MY_DIRECTORIES ΠΈ внСсём Π² Π½Π΅Ρ‘ список ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ… нас Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ:

ΠŸΠ΅Ρ€Π΅Π±Π΅Ρ€Ρ‘ΠΌ список с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта списка. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСдСний ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дирСкториях

Π˜Ρ‚ΠΎΠ³ΠΈ

На сСгодня это всё. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ expect.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт для linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСсплатная ΠΊΠ½ΠΈΠ³Π°-сайт Π½Π° русском, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ Advanced Bash-Scripting Guide

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Π•ΡΡ‚ΡŒ Π»ΠΈ Ρƒ вас Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ‚Π΅ нСслоТныС (Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ слоТныС, Π½ΠΎ понятныС) bash-скрипты, Ρ€Π°Π·Π±ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *