ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ Π±Π°Ρ ΡΠΊΡΠΈΠΏΡΡ
ΠΡΠ½ΠΎΠ²Ρ BASH. Π§Π°ΡΡΡ 1
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
break Π²ΡΡ
ΠΎΠ΄ ΠΈΠ· ΡΠΈΠΊΠ»Π° for, while ΠΈΠ»ΠΈ until
continue Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° for, while ΠΈΠ»ΠΈ until
echo Π²ΡΠ²ΠΎΠ΄ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄Π°
exit Π²ΡΡ
ΠΎΠ΄ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
export ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² ΡΡΠ΅Π΄Π΅
hash Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎΠ±Ρ Π½Π΅ ΠΈΡΠΊΠ°ΡΡ ΠΈΡ
ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ
kill ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΡ
pwd Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
read ΡΠΈΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΠΈΠ· Π²Π²ΠΎΠ΄Π° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π΅ Π΄Π»Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ.\
return Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π²ΡΠΉΡΠΈ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
shift ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°Π»Π΅Π²ΠΎ
test Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
times Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ ΠΈ Π΅Π΅ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌΠΈ
trap ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ ΡΠΈΠ³Π½Π°Π»Π°
unset Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
wait ΠΆΠ΄Π΅Ρ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅ ΠΊΡΠΎΠΌΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΡΡ ΠΊΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ , ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ ΡΠΆΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅
Π§ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°
1. ΠΡΠ±ΠΎΠΉ bash-ΡΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠΈ:
#!/bin/bash
Π² ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΠΎΡΠ»Π΅ #! ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡ ΠΊ bash-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΎΠ½ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅(Π³Π΄Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π½Π°Π±ΡΠ°Π² whereis bash) ΠΏΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ Π΅Ρ Π½Π° Π²Π°Ρ ΠΏΡΡΡ.
2. ΠΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° # (ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ).
3. Π bash ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏΠ°(ΠΎ Π½ΠΈΡ
ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½ΠΈΠΆΠ΅)
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°
ΠΡΠΈΠ²Π΅Π΄Ρ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°:
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ:
Π£ΡΠ»ΠΎΠ²ΠΈΡ
Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, Π΄ΡΠΌΠ°Ρ, Π·Π½Π°ΠΊΠΎΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ, ΠΊΡΠΎ Ρ
ΠΎΡΡ ΡΠ°Π· ΠΏΡΡΠ°Π»ΡΡ Π½Π° ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π bash ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΏΠΈΡΡΡΡΡ ΡΠ»Π΅Π΄. ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅):
#!/bin/bash
source=$1 #Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ source Π·Π°ΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΡΠΈΠΏΡΠ°
dest=$2 #Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ dest Π·Π°ΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΡΠΈΠΏΡΠ°
Π£ΡΠ»ΠΎΠ²ΠΈΡ. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ±ΠΎΡ
esac #ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° case.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ:
ite@ite-desktop:
UPD: ΠΡΠΏΡΠ°Π²ΠΈΠ» Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ
UPD: ΠΠ±Π½ΠΎΠ²ΠΈΠ» ΡΠ°ΡΡΡ ΠΏΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ if-then-else
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² Linux Bash
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ°Π±ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ bash (ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² sh, zsh, etc) ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π»ΡΠ±ΡΠΌ POSIX-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² Linux, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΡΠΎΠΈΡΡ Π² Π²Π°Ρ bash-ΡΠΊΡΠΈΠΏΡ Π»ΡΠ±ΠΎΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π΄Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π² ΡΡΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠΈΠ½Π½ΡΡ Π·Π°Π΄Π°Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Linux, Π΄Π΅ΠΏΠ»ΠΎΡ ΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΎΠΊ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π°ΡΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ.
ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° β ΡΠ°ΠΌΡΠΉ ΠΌΠΎΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π·Π½Π°Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·ΡΡΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ bash. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ man bash.
Π‘ΡΡΡ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ² β Π·Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ² Ρ Π½ΡΠ»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΈΠ·Π²Π»Π΅ΡΡ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ bash-ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ Π·Π°Π½ΡΡΡΡΡ ΡΡΠΈΠΌ Π²ΡΠ΅ΡΡΠ΅Π·.
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄Ρ
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ, Π½ΡΠΆΠ½Π° ΡΡΠ΅Π΄Π°. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Linux, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. ΠΡΠ»ΠΈ Windows, β ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ WSL/WSL2. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎ SSH. Π’Π°ΠΊ Π²Ρ Π½Π΅ Π½Π°Π²ΡΠ΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ.
ΠΡ Π²ΡΠ±ΡΠ°Π»ΠΈ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ°Π»ΠΎΠ³ΠΈΠ½ΠΈΠΌΡΡ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅ https://my.selectel.ru/, Π½Π°ΠΆΠ°Π² Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Β«ΠΠ±Π»Π°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Β». Π’Π°ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π·ΠΎΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π΅Π³ΠΎ Π±Π»ΠΈΠ·ΠΎΡΡΠΈ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. Π§Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΠΏΠΈΠ½Π³.
ΠΠ°ΠΆΠΌΠ΅ΠΌ Β«Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΒ».
Π ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΡΡΠΎΡΠ½ΠΈΠΊΒ» ΡΠ±Π΅ΠΆΠ΄Π°Π΅ΠΌΡΡ, ΡΡΠΎ Π²ΡΠ±ΡΠ°Π½ ΠΎΠ±ΡΠ°Π· Ubuntu 20.04.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ.
Π ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π‘Π΅ΡΡΒ» ΡΡΠΎΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ Β«ΠΠΎΠ΄ΡΠ΅ΡΡ β ΠΠ»Π°Π²Π°ΡΡΠΈΠΉ IP-Π°Π΄ΡΠ΅ΡΒ».
Π ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΎΡΡΡΠΏΒ» Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ SSH-ΠΊΠ»ΡΡ ΠΈ Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ root-ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Β«Π‘ΠΎΠ·Π΄Π°ΡΡΒ» Π² ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠ·Ρ.
ΠΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° ΡΡΠ°ΡΡΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°, Π½Π°Π΄ΠΎ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ACTIVE Π²Π²Π΅ΡΡ Ρ ΡΠΏΡΠ°Π²Π°.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΠΎΡΡΡΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ IP-Π°Π΄ΡΠ΅Ρ, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΠ΅ ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΠΆΠΎΠΉ ΠΊΠΎΠ΄
ΠΡΠ±ΠΎΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°
ΠΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎ SSH, ΡΠΎ Π»ΡΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ 3 Π²Π°ΡΠΈΠ°Π½ΡΠ°:
ΠΡΠ»ΠΈ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π²ΡΠ±ΠΎΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π° Π²Π°Ρ. ΠΠ±ΡΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΏΠΎΠ΄ Linux β gedit. Π ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ nano ΡΠ΅ΡΠ΅Π· SSH Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠ°ΠΏΡΡΠΊ βHello, World!β
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΡΠΎ Β«Hello, World!Β» β ΠΏΡΠΎΡΡΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡ ΡΠΎΠΆΠ΅ Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΡΠ½Π΅ΠΌ. ΠΠ° Π²ΡΠ²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° echo. ΠΡΡΠΌΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ echo Β«Hello, World!Β» ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠΎΠΌΠ°Π½Π΄Π° touch helloworld.sh ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» helloworld.sh. ΠΠΎΠΌΠ°Π½Π΄Π° nano helloworld.sh ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ:
ΠΠ»Ρ Π²ΡΡ ΠΎΠ΄Π° Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· nano Π½Π°Π΄ΠΎ Π½Π°ΠΆΠ°ΡΡ CTRL + O Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ (ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°ΠΆΠ°ΡΡ enter Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°), Π° ΠΏΠΎΡΠΎΠΌ CTRL + X Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π°. ΠΠΎΠΆΠ½ΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ Π±Π΅Π· ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ ΡΠΏΡΠΎΡΠΈΡ, ΡΠΎΡΠ½ΠΎ Π»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠΉΡΠΈ Π±Π΅Π· ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π΄Π°, Π½Π°Π΄ΠΎ Π½Π°ΠΆΠ°ΡΡ N Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° Π±Π΅Π· ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Y, ΠΎΠ½ ΡΠΏΡΠΎΡΠΈΡ ΠΊΡΠ΄Π° ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ enter Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ.
ΠΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈΠ΄Π΅Ρ #!/bin/bash β ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°. Π§ΡΠΎΠ±Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Π½Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. Π£Π±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Π°Ρ bash ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π»Π΅ΠΆΠΈΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ which bash:
ΠΡΠΎΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈΠ΄Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΡ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΠ°ΠΊ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ Π²ΡΡΠ΅, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΡΡΠΈΡΡ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ/ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
Π‘ΠΏΠΎΡΠΎΠ± β1: bash helloworld.sh. ΠΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ Π΅ΠΌΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π‘ΠΏΠΎΡΠΎΠ± β2: Π‘Π½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΊΡΠΈΠΏΡ: chmod +x helloworld.sh. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΉΠ» ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² linux: ./helloworld.sh.
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π³ΠΎΡΠΎΠ²Π°, ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ
ΠΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΈ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ping ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° IP-Π°Π΄ΡΠ΅Ρ ΠΈΠ»ΠΈ DNS-ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΏΠΈΠ½Π³ΠΎΠ²Π°ΡΡ: ping selectel.ru. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ ΡΠΈΠΊΠ»Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ .
ΠΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»: touch hellousername.sh. ΠΡΠ΄Π°Π΅ΠΌ ΠΏΡΠ°Π²Π° Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ chmod +x hellousername.sh.
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ nano hellousername.sh
ΠΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ, Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ. Π‘ΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ, Π½ΠΎ ΠΎΠ½Π° ΡΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅) Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π² Π½Π΅Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½, Vasya, ΠΌΡ ΡΡΠ°Π·Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ, Π½Π΅ Π΄Π΅Π»Π°Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ.
ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π² Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π±Π°Π³: ΠΎΠ½Π° Π½ΠΈ Ρ ΠΊΠ΅ΠΌ Π½Π΅ ΠΏΠΎΠ·Π΄ΠΎΡΠΎΠ²Π°Π΅ΡΡΡ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, Π΅ΡΡΡ 2 ΡΠΏΠΎΡΠΎΠ±Π°: ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
Π‘ΠΏΠΎΡΠΎΠ± β1
Π‘ΠΏΠΎΡΠΎΠ± β2
ΠΠ΄Π΅ΡΡ ΡΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if then [else] fi. ΠΠ»ΡΡ -z Π² if ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ. ΠΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΉ ΠΊΠ»ΡΡ -n, ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΠΎ ΡΡΡΠΎΠΊΠ° Π½Π΅ ΠΏΡΡΡΠ°Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π½ΠΎ Π² ΡΠ΅Π»Π΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ Π² ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎ-ΡΠΎ Π²Π΅ΡΠ½ΡΠ»ΠΎ.
Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ
if-else
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΈΠ· ΡΠ·ΡΠΊΠΎΠ² Π΄Π»ΠΈΠ½Π½Π΅Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΡΠ΅ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π±Π΅Π· Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ. Π ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ Π±ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ, Π½ΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ if else. Π bash ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ.
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²ΡΡΠ΅.
ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $# Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ (lower than, -lt) 1. ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎ, ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² Π±Π»ΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ then. ΠΠ΅ΡΡ Π±Π»ΠΎΠΊ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉΡΡ Ρ if, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ fi. ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Β«$1Β» = Β«VasyaΒ» ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ. ΠΠ»ΠΎΠΊ ΠΏΠΎΡΠ»Π΅ else Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²ΡΡΠ΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π±Π»ΠΎΠΊ.
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» exit 1 Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. Π bash Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ && ΠΈ ||, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΠΌΠ΅Ρ 1: command1 && command2. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ command2 Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ command1 Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ 0 (exit 0, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ).
ΠΡΠΈΠΌΠ΅Ρ 2: command1 || command2. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ command2 Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ command1 Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ 0.
ΠΡΠΈΠΌΠ΅Ρ 3: command1 && command2 || command3. ΠΡΠ»ΠΈ command1 Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ 0, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ command2, ΠΈΠ½Π°ΡΠ΅ command3.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
ΠΠ°ΠΊ Π³Π»Π°ΡΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Do Not Repeat Yourself (DRY). ΠΠΎΡ ΠΈ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΡΠ΅Π±Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ echo ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² bash ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ: x=Β»foo barΒ» ΠΈΠ»ΠΈ z=$1. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ @foo barΒ«, Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ z ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ $1, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ .
Π ΡΠΎΠΌΡ ΠΆΠ΅, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠ΄ΡΠΈ Π² ΡΠ°Π·Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Ρ, ΠΏΡΠΈ ΡΠ°Π·ΡΠ°ΡΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΎ ΡΠ½ΠΈΠ·ΠΈΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΈΠΌΠ΅Π½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ) Π²ΡΠΎΠ΄Π΅ Β«aΒ», Β«bΒ», Β«zzzzΒ», etc.
Π§ΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ echo Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΡΠ°Π·ΠΎΠ±ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠ°ΡΡΠΈ. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΠΌ. ΠΡΠΎΡΠ°Ρ β ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’ΡΠ΅ΡΡΡ β Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΌ Π·Π½Π°ΠΊΠΎΠΌ ΠΏΡΠ΅ΠΏΠΈΠ½Π°Π½ΠΈΡ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π²ΡΠ½ΠΎΡΠΈΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ greetString ΠΈ nameString, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ Π΄Π²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ echo ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (Π² Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΊΠ°Π²ΡΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΡΡ). ΠΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½Π°Π΄ΠΎ Π»ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Switch case
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ if-else ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ. ΠΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠ²Π΅ΡΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π»ΡΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ switch-case-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ.
ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ switch-case:
Π¦ΠΈΠΊΠ»Ρ
ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, bash ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠΊΠ»Ρ. Π¦ΠΈΠΊΠ» for ΠΈ ΡΠΈΠΊΠ» while. Π¦ΠΈΠΊΠ»Ρ Π½ΡΠΆΠ½Ρ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ΄ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π·. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π΅ CSV ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ ΠΈ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
Π¦ΠΈΠΊΠ» for
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΊΠ»Π° for:
ΠΡΠΎΡΡΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ echo.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ:
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ touch names ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² Π½Π΅Π³ΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ^C. ΠΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π²ΡΠ·Π²Π°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΈ ΠΎΠ½Π° Π²ΠΎΡΠ»Π° Π² Π²Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ». ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π·Π°Π²ΠΈΡΠ»Π°. ΠΡΠΈΡΠ»ΠΎΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π΅Π΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ . ΠΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π³Π»Π°Π²Π°Ρ if-else ΠΈ switch case, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
Π Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±Π°Π³. ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» ΠΈΠΌΠ΅Π½:
ΠΠ°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΠ»ΡΡΠΈΠΌ Π²ΡΠ²ΠΎΠ΄:
ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, Β«ΠΡΠΎ Π²ΡΠ΅ ΡΡΠΈ Π»ΡΠ΄ΠΈ?Β». Π’Π°ΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°Ρ Π½Π΅ Π·Π°Π΄Π°Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ IFS (Internal Field Separator), ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ Π½Π° ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ ΠΏΠΎΠ»Π΅ΠΉ. ΠΠ°Ρ ΡΠΈΠΊΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡ ΡΡΡΠΎΠΊΠΈ ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ. Π Π½Π°ΡΠ°Π»Π΅ ΡΠΊΡΠΈΠΏΡΠ° (ΠΏΠΎΡΠ»Π΅ #!/bin/bash) ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΡΡΠΎΠΊΠΈ ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΏΠΎΠ»Π΅ΠΉ: IFS=$β\nβ.
Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΡΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΠΏΠ°ΡΡΠΈΠ½Π³Π° CSV.
ΠΠ±ΡΡΠ½ΠΎ ΡΠΈΠΊΠ» for ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠΌ. Π C-like ΡΡΠΈΠ»Π΅. Π§ΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ for (i=0;i
Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Bash Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π§Π°ΡΡΡ 1
ΠΡΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Bash. ΠΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ!
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Bash/Shell/Scripting
Π‘ΠΊΡΠΈΠΏΡΠΈΠ½Π³ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Π±Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ΄Π½Π° Π·Π° Π΄ΡΡΠ³ΠΎΠΉ.
ΠΡΠ½ΠΎΠ²Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Bash
ΠΠ΅ ΠΎΡΡΠ°ΠΈΠ²Π°ΠΉΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΠΎΠ½ΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. ΠΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π²Π΅Π΄Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΡ ΡΡΠ°ΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π»ΠΈ, Bash Scripting ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π½Π°Π²ΡΠΊΠΎΠΌ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² Linux ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΡΠΎΠ³ΠΎ Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ ΡΠΈΠ΄ΠΈΡΠ΅ Π·Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, ΠΎΡΠΊΡΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈ Π·Π°Π΄Π°Π΅ΡΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ: «Π§ΡΠΎ ΠΆΠ΅ ΠΌΠ½Π΅ Π΄Π΅Π»Π°ΡΡ Ρ ΡΡΠΎΠΉ ΡΡΡΠΊΠΎΠΉ?».
Π’Π°ΠΊ Π²ΠΎΡ, Π² ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΏΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ shell, Π° shell ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΡΠΎ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ! ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ date, cal, pwd ΠΈΠ»ΠΈ ls, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ ENTER.
ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠΎ, ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ (date), ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ (cal), ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (pwd) ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² Π½Π΅ΠΌ (ls).
*Ρ Π½Π°Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΠΎΠΊΠ° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ls Π½Π΅ Π΄Π°Π»Π° Π²ΡΠ²ΠΎΠ΄Π°.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³ (ΡΡΠ΅Π½Π°ΡΠΈΠΈ Bash)
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π°Ρ Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ task.sh Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² Π»ΡΠ±ΠΎΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ cron ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΡΠ΅Π½Π°ΡΠΈΡ Π² ΡΠ°ΠΉΠ» ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π΄ΡΡΠ³Π°Ρ ΠΈΡΡΠΎΡΠΈΡ, Π° ΠΏΠΎΠΊΠ° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Bash
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Korn shell, C shell ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠ΅ Π½Π°ΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ #!/bin/bash.
ΠΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ°Π»Π΅Π΅ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡ shell ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΄Π΅Π»Π°Π½ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod +x FILENAME. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΡΡΡΠΈΠΊΡΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°.
Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ GNU/Linux ΠΊΠΎΠΌΠ°Π½Π΄Π° file ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»Π°. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠΉ Π²Π΅Ρ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠΌΡ shell-ΡΡΠ΅Π½Π°ΡΠΈΡ 0_xyz Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, Π½ΠΎ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² Bash
ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΏΡΡΡ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌ Π½Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ bash, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΠΊ ΡΠ°ΠΉΠ»Ρ.
Π ΡΡΠ°ΡΡΡΡ, Π² GNU/Linux Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pwd. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π²Π°ΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cd ΠΈ pwd Π΄Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ GNU/Linux Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ.
ΠΡΡΡΡΡΠΉ ΡΠΎΠ²Π΅Ρ:
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ bash Π² Linux? ΠΠ°ΠΉΠ΄ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ²
ΠΠ±Π½ΠΎΠ²Π». 29 ΠΡΠ» 2021 |
bash (ΡΠΎΠΊΡ. ΠΎΡ Β«Bourne-Again shellΒ») β ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° (ΠΈΠ»ΠΈ Β«ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈΒ»), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π½Π° Π±Π°Π·Π΅ Unix ΠΈ Linux, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π² 1989 Π³ΠΎΠ΄Ρ ΠΡΠ°ΠΉΠ°Π½ΠΎΠΌ Π€ΠΎΠΊΡΠΎΠΌ Ρ ΡΠ΅Π»ΡΡ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ sh.
bash ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² bash, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π³Π°ΠΉΠ΄ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ².
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»?
Π’Π΅ΡΠΌΠΈΠ½Π°Π» β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅Π»Π»ΠΎΠΌ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ Π½Π΅ΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅Π΅. ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» (Konsole) Π² Debian 11 (ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° β KDE Plasma):
Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π² Linux
ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»Π»Π° β ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ@ΠΈΠΌΡ_ΠΌΠ°ΡΠΈΠ½Ρ:
ΠΠΎΠΌΠ°Π½Π΄Ρ Π² bash
ΠΠΎΠΌΠ°Π½Π΄Π° Π² bash β ΡΡΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΡ bash ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΡ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ΡΠ΅Π»Π»Ρ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π». bash ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ΄Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. Π§ΡΠΎΠ±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²ΠΎΠΈΡΡΡΡ Π² bash, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠΎΠΌΠ°Π½Π΄Π° echo β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΡ, ΡΡΠΎ Π²Ρ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo
ΠΠΎΠΌΠ°Π½Π΄Π° date β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈ Π΄Π°ΡΡ:
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ date
ΠΠΎΠΌΠ°Π½Π΄Π° pwd (ΡΠΎΠΊΡ. ΠΎΡ Β«print working directoryΒ») β ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅Π»Π»Π° Π±ΡΠ΄ΡΡ ΠΈΡΠΊΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pwd
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ls
ΠΠΎΠΌΠ°Π½Π΄Π° cd (ΡΠΎΠΊΡ. ΠΎΡ Β«change directoryΒ») β ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
cd β ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ls ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ / ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ; Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π΄Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅
cd β Π²Π΅ΡΠ½ΡΡΡΡΡ Π² Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
ΠΠΎΠΌΠ°Π½Π΄Π° mkdir (ΡΠΎΠΊΡ. ΠΎΡ Β«make directoryΒ») β ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
ΠΠΎΠΌΠ°Π½Π΄Π° mv (ΡΠΎΠΊΡ. ΠΎΡ Β«moveΒ») β ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²/ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π² Π΄ΡΡΠ³ΠΎΠ΅ (Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ (Ρ.Π΅. ΠΈΡΡΠΎΡΠ½ΠΈΠΊ), ΠΈ ΠΊΡΠ΄Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ (Ρ.Π΅. ΠΏΡΠ½ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ).
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΡΠΎΠ·Π΄Π°ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ravesli Π² ΡΠ²ΠΎΠ΅ΠΉ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡ Π² Π½Π΅Π³ΠΎ Π²ΡΠ΅ .txt-ΡΠ°ΠΉΠ»Ρ (Π½Ρ ΠΊΠ°ΠΊ Β«Π²ΡΠ΅Β», Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» β ΠΠ΄ΡΠ΅ΡΠ°.txt) ΠΈΠ· /home/diego/ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ/ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄:
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mv
ΠΠΎΠΌΠ°Π½Π΄Π° touch β ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ (Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ ). ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ foo.txt Π² ΠΏΠ°ΠΏΠΊΠ΅ Ravesli ΠΈΠ· Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ touch
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π°Π»ΠΈΠΌ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» foo.txt:
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rm
ΠΠΎΠΌΠ°Π½Π΄Π° rmdir (ΡΠΎΠΊΡ. ΠΎΡ Β«remove directoryΒ») β ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π°Π»ΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /home/diego/Ravesli:
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rmdir
ΠΠΎΠΌΠ°Π½Π΄Π° cat (ΡΠΎΠΊΡ. ΠΎΡ Β«concatenateΒ») β ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ ΠΈΡ Π²ΡΠ²ΠΎΠ΄ Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ (ΠΎΡΡΡΠ΄Π° ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅). Π£ ΠΌΠ΅Π½Ρ Π² Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° untitled Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π‘++/Qt-ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ Π½ΠΈΠΆΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cat Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° main.cpp ΠΈΠ· untitled:
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cat
ΠΡΠΎΡΠΌΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cat
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ man
Π Π΅Π΄Π°ΠΊΡΠΎΡ nano
ΠΠ°ΠΉΠ΄ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ²
ΠΠ°Ρ ΡΠ΅Π»Π», ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π½ΠΎ Π΅ΡΠ΅ ΠΈ ΠΌΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ ΡΠ΅Π»Π»Π°, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ shell-ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ (ΠΈΠ»ΠΈ shell-ΡΡΠ΅Π½Π°ΡΠΈΡΠΌΠΈ) ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² β .sh. Π‘Π°ΠΌ ΡΠ·ΡΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠΈΠ»ΠΈΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² *nix-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠΊΠ»Ρ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΡ. Π’Π°ΠΊΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΡΠ°ΠΌ, Π³Π΄Π΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π·Π°Π΄Π°ΡΠ°Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ bash-ΡΠΊΡΠΈΠΏΡΠ°
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» bash-ΡΠΊΡΠΈΠΏΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .sh. ΠΡΠ΅ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Ρ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π² Debian Linux, Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° nano.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ravesli.sh:
$ touch ravesli.sh
diego@debian:
Π§ΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΠΉΠ» bash-ΡΠΊΡΠΈΠΏΡΠ°, Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π²Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠΎΠΊΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ chmod +x :
$ chmod +x ravesli.sh
diego@debian:
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ bash-ΡΠΊΡΠΈΠΏΡΠ°
Π€Π°ΠΉΠ» bash-ΡΠΊΡΠΈΠΏΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: