mac os ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΡΠΈΠΏΡ
ΠΠΎΠ½ΡΠΎΠ»Ρ Π΄Π»Ρ ΠΌΠ°ΠΊΠΎΠ²ΠΎΠ΄ΠΎΠ²: Beyond the GUI
ΠΠΎΠ±ΡΠΎΠ³ΠΎ Π΄Π½Ρ, ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ Ρ Π°Π±ΡΠ°Π²ΡΠ°Π½Π΅-ΠΌΠ°ΠΊΠΎΠ²ΠΎΠ΄Ρ!
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π² Mac OS X Π·Π° ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅
ΠΡΠ»ΠΈ ΠΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΈΠ· ΠΌΠΈΡΠ° M$, ΡΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π±Ρ ΠΏΠΎΡΡΠΈΡΡ ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ shell’Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ Π²ΠΎΡ ΡΡΠΎΠΌΡ ΡΡΠ΅Π±Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠ±ΠΈΡ. ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π½ΡΠΆΠ½ΠΎ ΡΡΠ²ΠΎΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΏΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΡΠ»ΠΈ ΠΡ ΠΏΡΠΈΡΠ»ΠΈ Π² ΠΌΠΈΡ Mac OS ΠΈΠ· ΠΌΠΈΡΠ° Linux’Π° ΠΈ FreeBSD, ΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΡΠ½ΠΎΠ²Ρ shell-ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³Π°. ΠΠΎ ΠΈ Π΄Π»Ρ Π²Π°Ρ Π² ΡΡΠ°ΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅, Π²Π΅Π΄Ρ Π² ΠΌΠ°ΠΊΠ΅ Π΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ.
ΠΠΎΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΌΠ°ΠΊΠΎΠ²ΡΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π΄Π°Π»Π΅Π΅ ΠΈ ΠΏΠΎΠΉΠ΄ΡΡ ΡΠ΅ΡΡ.
ΠΠ°ΡΠ½ΡΠΌ ΡΠ°Π±ΠΎΡΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΈΠ·Π±Π°Π²ΠΈΠΌΡΡ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΡ, ΡΠΎΡΠ½Π΅Π΅, ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΉ β ΠΏΠΎΠ»ΡΡΡΠ΅. Π― Π»ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ iTerm2, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΡΠ΄Π° Π»ΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ. Π₯ΠΎΡΡ, ΠΈ Ρ Π½Π΅Π³ΠΎ Π±ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ (ΡΠΌ. ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π²Π²Π΅ΡΡ
Ρ).
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ MacPorts (Ρ ΠΎΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²). Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π²ΠΈΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π²ΠΈΠΌ Midnight Commander (ΠΎΠ½ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ), Π½Π°Π±ΠΈΡΠ°Π΅ΠΌ Π² iTerm2:
ΠΡΡ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΊΡΡΠΈ ΠΌΠ°Π½ΡΠ°Π»Ρ Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π½Π°Π±ΠΈΡΠ°Π΅ΠΌ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ man ΠΊΠΎΠΌΠ°Π½Π΄Π° β ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. (ΠΡΡΠ°ΡΠΈ, Π΄Π»Ρ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΌΠ°Π½ΡΠ°Π»Π° Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΆΠ°ΡΡ Q).
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ. ΠΠΎΠΌΠ°Π½Π΄Π° open
Π β ΠΎΠΏΠ°! β ΡΠΊΡΡΡΡΠΉ ΡΠ°ΠΉΠ» ΠΎΡΠΊΡΡΠ»ΡΡ Π² TextEdit! ΠΡΡ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ.
ΠΠ°ΡΠ° ΡΠ»ΠΎΠ² ΠΎ Π±Π°Π½Π΄Π»Π°Ρ
Π‘ΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ²ΡΠΉ, ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
Π‘ΠΏΠΎΡΠΎΠ± Π²ΡΠΎΡΠΎΠΉ, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½Π°, Π½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΈΠ΄ΠΈΡΡΡ β ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π²ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Ρ ΠΎΡΠ΅Ρ Π²ΡΠ²Π΅ΡΡΠΈ Π² Π½Π΅Ρ. Π’ΠΎ Π΅ΡΡΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ Π»ΠΎΠ³ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΡΡ ΠΎΠ΄Π½ΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ: Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄Π²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ, Π±ΡΠ΄Π΅ ΡΠ°ΠΊΠ°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ. Π’Π°ΠΊ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (Ρ ΠΎΡΡ, ΡΠΊΠΎΡΠ΅Π΅ ΡΠΈΡΡ) ΠΌΠ°ΠΊΠΎΡΠΈ: ΡΠ΅ΡΠ΅Π· Finder, Π΄ΠΎΠΊ ΠΈ Π»Π°ΡΠ½ΡΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄Π²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅Π»ΡΠ·Ρ, Π° Π²ΠΎΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ β ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Ρ ΠΎΡΡ Π΄Π²Π°Π΄ΡΠ°ΡΡ Π΄Π²Π°.
Π‘ΠΊΡΠΈΠΏΡ?
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ, Π½ΠΎ ΠΎΠ½ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π³Π»Π°Π²Π½ΠΎΠ΅: Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ ΡΠΎΠΊΡΡΡΠ° Π²Π΅Π»ΠΈΠΊΠ°Ρ ΡΠΈΠ»Π°.
Π‘ΠΊΡΠΈΠΏΡΡ AppleScript
ΠΠ΅ Π±ΡΠ΄Ρ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² AppleScript, ΠΎΠ½ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠ΄Π½ΠΎΠΉ. Π’Π°ΠΊ ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΠΏΡΠ°Π²ΠΊΡ ΠΈΠ»ΠΈ Π³ΡΠ³Π» ΠΏΠΎ Π½Π΅ΠΌΡ.
ΠΠ»Π°Π²Π½ΠΎΠ΅: ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ shell-ΡΠΊΡΠΈΠΏΡΡ ΡΠΎ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ AppleScript, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅! Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΡ ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π·Π° Π΄ΠΈΡΠΊΠ°: ΡΠ°ΠΌ Π΄ΠΈΡΠΊ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ shell (ΡΠΌ. Π½ΠΈΠΆΠ΅), Π° ΡΠΎΠ½ ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΎΠ±ΡΠ°Π·Π΅ Π·Π°Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AppleScript.
ΠΡΡΡ Π΅ΡΡ Automator, Π½ΠΎ ΠΎΠ½ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΆ GUI-ΡΠ½ΡΠΉ, ΡΠ°ΠΊ ΡΡΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ. ΠΠ½, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ, Π½ΠΎ Π΄ΠΎ ΠΌΠΎΡΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½Π΅ Π΄ΠΎΡΡΠ³ΠΈΠ²Π°Π΅Ρ.
ΠΡΠ°ΡΠΊΠΎ ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ Mac OS X
ΠΠΎΠ»Π½ΡΠΉ (Π½Ρ, ΠΏΠΎΡΡΠΈ) ΡΠΏΠΈΡΠΎΠΊ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π»Ρ ΠΌΠ°ΠΊΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ (Ρ ΠΎΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°ΡΠ΅Π»ΠΈ), Ρ ΠΆΠ΅ Π²ΠΊΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ .
ΠΠ΄Π½Π° Π±Π΅Π΄Π° β ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π³ΠΎΠ²ΠΎΡΠΈΡ ΡΡΠ° ΡΡΡΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ½ΠΈΠΌΠ΅ΠΌ ΡΠΊΡΠΈΠ½ΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
Π’Π°ΠΊ ΠΆΠ΅ textutil ΡΠΌΠ΅Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ.
Π€Π°ΠΉΠ½Π΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡΡ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ! ΠΠΎ ΠΎΠΏΡΡΡ ΡΠ°ΠΊΠΈ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ, ΡΠ°ΠΊ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΡΠΎ Π²ΡΠΊΠ»ΡΡΠΈΠΌ, ΠΏΠΎΠΊΠ° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅ ΠΈΡΠΏΡΠ³Π°Π»ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΡΠ΄Π°Π»ΠΈΠ» Π½ΡΠΆΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ². ΠΠ»Ρ ΡΠΎΠΊΡΡΡΠΈΡ Π² ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ 0 Π²ΠΌΠ΅ΡΡΠΎ 1. ΠΡ ΠΈ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠ°ΡΡΡ, Π³Π΄Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΈΠΊΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π§ΡΠΎ-ΡΠΎ ΡΠΈΠΏΠ° Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΡ ΡΡΠΎ ΠΆ, ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π² Mac OS X. Π‘ΡΠ°ΡΡΡ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ, ΡΠΊΠΎΡΠ΅Π΅, Β«Π·Π°ΠΌΠ°Π½ΡΡ ΠΎΠΉΒ» Π΄Π»Ρ Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΠΎΠ²ΠΎΠ΄ΠΎΠ² Π² shell-ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³ Π΄Π° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
Mac os ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΡΠΈΠΏΡ
Developer
Mac Automation Scripting Guide
Creating a Script
Generally, most scripts are written in Script Editor documents. Scripts can also be written in Xcode, but this is typically for scripts that require advanced user interfaces.
Press Command-N or select File > New.
If the script isnβt configured for the correct language, choose the language in the navigation bar.
Write your script code in the editing area. Newly written code is uncompiled and formatted as new text.
Click the Compile button ( ) to compile the script and check for syntax errors.
If a syntax error occurs, an alert is displayed.
If the script compiles, code formatting is applied at this time.
Using an AppleScript Template
Script Editor includes a number of built-in templates for creating common types of AppleScripts, including droplets, Mail rule scripts, and Messages handler scripts.
Script Editor does not include JavaScript templates at this time.
Choose File > New from Template.
Select a script template.
A new Script Editor document window opens containing prewritten code and preconfigured settings. The following screenshot shows an example of a script created using a template.
Π‘ΠΊΡΠΈΠΏΡΠΈΠ½Π³ Π΄Π»Ρ Mac OS X: Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° AppleSΡriΡt
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΠ· ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΡΡ ΡΠ·Π½Π°Π΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ AppleScript, Π·Π°ΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠΌΡ ΠΎΠ½ Π½ΡΠΆΠ΅Π½, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΆΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ²ΠΎΠΈ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠΉ ΡΡΠΎ
Π§Π°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π½Π΅ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΡΠ»Π΅ΠΏΠΈΡΡ Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ β Π±Π΅Π· Π²ΡΡΠΊΠΈΡ GUI-ΡΠΊΡΠ°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ. ΠΠ΄Π΅ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΡΠ·ΡΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² β ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠ΅Π±Π΅ shell, Perl, PHP ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠ΅ ΠΎΠ½ΠΈ (Π½Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅) Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈ ΠΏΠΎΠ΄ Mac OS X. ΠΠΎ Π² ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½ΠΊΠ΅ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ Π΅ΡΡΡ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Mac OS X ΠΈ ΡΠ΅ΡΠ½ΠΎ Ρ Π½Π΅ΠΉ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ. ΠΡΠΎ AppleScript.
AppleScript ΠΈΠ΄Π΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π½Π°ΡΠΈΠ½Π°Ρ Ρ System 7. ΠΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠ° HyperCard (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π» ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ HyperTalk, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ), AppleScript ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ AppleScript ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΊΡΠΎΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ: Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π΄Π°ΠΆΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ Π·Π°Π΄Π°Ρ ΡΠ°ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΊ Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅ Mac OS X ΡΠ·ΡΠΊ AppleScript ΡΡΠ°Π» Π±ΠΎΠ»Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ ΠΌΠΎΡΠ½ΡΠΌ, Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Cocoa ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AppleScriptβΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ.
ΠΡΠΎΡΡΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ
ΠΠ»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Script Editor. ΠΠ°ΠΉΡΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ /Application/AppleScript. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ Β«HelloWorldβΠ½ΡΠΉΒ» ΡΠΊΡΠΈΠΏΡ.
display alert «Hello World!» # ΠΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³
say «Hello World» # ΠΡΠ²ΠΎΠ΄ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
ΠΠ±ΡΡΡΠ½ΡΡΡ ΡΡΡ, Π΄ΡΠΌΠ°Ρ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, Π½ΠΎ Ρ ΠΎΡΠ΅ΡΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΏΡΠΎΡΡΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΠ½ΡΠ΅Π·Π°ΡΠΎΡΡ ΡΠ΅ΡΠΈ ΠΈΠ· AppleScript c ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ say. ΠΠΎΡ ΡΡΠΎ ΠΈ Π΅ΡΡΡ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π² ΡΡΠΈΠ»Π΅ Apple :). ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΡΠΎΡ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
ΠΠ°Π½Π΅Π»Ρ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ
display alert «Hello World!» buttons <"Hello", "Bye">
set answer to button returned of the result
if answer is «Hello» then
.
else
.
end if
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅:
# ΠΠ°Π½Π΅Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»Π°
set theFile to (choose file with prompt «Select a file to read:» of type <"TEXT">)
open for access theFile
Π§ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅Π½Ρ
set fileContents to (read theFile)
close access theFile
ΠΠ° ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Ρ ΠΎΡΠΎΡΠΎ Π²ΠΈΠ΄Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ AppleScript β ΠΎΠ½ ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΠΆΠΈΠ²ΠΎΠΌΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌΡ ΡΠ·ΡΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π»Π΅Π³ΠΊΠΎ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π΄Π°Π»Π΅ΠΊΠΎΠ³ΠΎ ΠΎΡ ΠΊΠΎΠ΄ΠΈΠ½Π³Π°. ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°Π³Π»Π°Π³ΠΎΠ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ-ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ c ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ
ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ AppleScript ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
tell application «Microsoft Word»
quit
end tell
C ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ tell Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΡΠΎΡΠΈΠΌ MS Word Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ. Π Π±Π»ΠΎΠΊΠ΅ Β«tell β end tellΒ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΡΠ»Π°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ. ΠΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ. iTunes, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ² Π² ΡΡΠ΅Π΄Ρ AppleScript:
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½ΡΠΆΠ½ΡΠΉ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ Π² iTunes
tell application «iTunes»
play the playlist named «My Favorite»
end tell
Π§ΡΠΎΠ±Ρ ΡΠ΅Π±Π΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π»Ρ. ΠΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³, ΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΡ Π±Ρ Π΄Π²Π° ΡΠ°Π·Π΄Π΅Π»Π°: ΠΎΠ΄ΠΈΠ½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ². Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π±ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ Mac-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: open, print, close ΠΈ quit. Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π½ΡΠ°Π·ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ AppleScript ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ ΡΡ ΠΏΠΈΡΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Objective-C/Cocoa, ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AppleScript. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Cocoa-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ NSAppleScript. ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ iChat ΡΡΡΠΎΠΊΠΈ ΡΡΠ°ΡΡΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
NSAppleScript *iChatGetStatusScript = nil;
iChatGetStatusScript = [[NSAppleScript alloc] initWithSource: @»tell application «iChat» to get status message»];
NSString *statusString = [[iChatGetStatusScript executeAndReturnError:&errorDict] stringValue];
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΡΠ΅ΠΌ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡ, Π½ΠΎ Π²ΡΡΠ΄ Π»ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎΡ. ΠΡΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² ΡΠ΅ΡΡΡΡΠ°Ρ Π±Π°Π½Π΄Π»Π° ΠΈ ΡΠΈΡΠ°ΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π² Cocoa-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° scriptTermonology ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Script EditorβΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ Π² AppleScript ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΡΠΊΡΡΠ² scriptSuite-ΡΠ°ΠΉΠ» Π² Plist EditorβΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ:
Π Π°Π·Π±ΠΈΡΠ°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π½Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅Π±Π΅ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ sdef-ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ sdef-ΡΠ°ΠΉΠ»Π°
.
NSAppleScriptEnabled
Scrtipting.sdef
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠ°ΠΉΠ» Scripting.sdef ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ:
ΠΡΠ°ΠΊ, ΠΈΠ· AppleScriptβΠ° Ρ Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ΄Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ β myprop. ΠΡΡΠ°Π»ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ObjC-ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ· ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ NSApplication, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
EΡΠ»ΠΈ ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠ· AppleScript ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΡΠ΅Π΄ΠΈ Π½ΠΈΡ ΡΠ²ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
tell application «Scripting»
properties
end tell
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΠΏΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ AppleScript ΠΈ Π΅Π³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Cocoa-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ° ΡΡΠΎ ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ β Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΌΠ°Π½ΡΠ°Π»Ρ. Π ΠΌΡ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ ΠΎ ΠΊΠΎΠ΄ΠΈΠ½Π³Π΅ ΠΏΠΎΠ΄ ΡΠΏΠΏΠ»ΠΎΠ²ΡΠΊΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ΅Π±Π΅ Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ.
ΠΠ°ΠΊ Π² Mac OS ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ
ΠΡΠ²ΠΎΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, ΡΡΠΎ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΡΠΌΠ°ΡΠ° JPEG, Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°ΡΡ ΠΎΠ΄Π½Ρ-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΎΠΊΠ½Π΅ Terminal:
1$ grep Devanshu *.doc
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ (Π»ΠΈΡΡΠΈΠ½Π³ Π½ΠΈΠΆΠ΅).
1234// Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡBinary file BBoAH-04-Commandline.doc matchesBinary file BBoAH-06-Network-file.doc matchesBinary file BBoAH-14-Multimedia.doc matches
Grep β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΠΏΠΎΠΈΡΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ ΡΠ°ΠΉΠ»Π°ΠΌ. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½Π°, Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡΠΊΠΎΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (regular expressions) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠΎΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² Π±ΡΠΊΠ² ΠΈ ΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ [sS]hell ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΉΡΠΈ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ shell ΠΈ Shell, Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ [a-z]+ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π»ΡΠ±ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±ΡΠΊΠ² Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: man grep.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ grep ΠΈ find ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ΄Π°Π΅Ρ Spotlight, Ρ ΡΠ΅ΠΌ Π»ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ, ΡΡΠΎ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΡΠ²ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ β ΠΎΠ½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈΡΠΊΠΎΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠ΅Π· Spotlight. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ find, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΉΠ»Ρ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ISO:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° find ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ, Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ grep, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠ΅Ρ Π² Π½ΠΈΡ ΡΡΡΠΎΠΊΡ ISO, Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊΡΡ ΡΡΡΠΎΠΊΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΠΎ Π²ΠΎΡ Π²Π°ΠΌ Ρ ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, Π½ΠΎ Π½Π΅ Π²Π²ΠΎΠΆΡ Π΅Π΅ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π₯ΠΎΡΠΈΡΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ? ΠΠ°Π»Π΅Π΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ
Π ΡΡΠ΅Π΄Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π΅ΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊ: ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ (aliases) ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (variables). ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ β ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΡΠΎΠ·Π΄Π°Ρ ΠΏΠ°ΠΏΠΊΠΈ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΊΠ½ΠΈΠ³, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ, ΠΈ Ρ ΡΠ°Π½Ρ ΠΈΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΡΠΈΡΡΡΡΡΡ ΠΏΠΎ Π³ΠΎΠ΄Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΊΠ½ΠΈΠ³. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π΅Π½, Π½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅
/ tech/08/oreilly/applehacks/draft Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ°:
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΠ½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (variables), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ Π»ΡΠ±ΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ΅ΠΌ ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΄ΠΎΠ±ΡΡΠ²Π΅, ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΠΈΠΌΠ΅ΡΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅.
123// ΠΡΠΈΠΌΠ΅Ρ, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $ export WORK=
Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΌΠΎΠ³Ρ Π²Π²Π΅ΡΡΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ°Π±ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π²Π°ΡΠΈΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄ΠΎΠΉ (environment). Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²Π΅ΡΡ Π½Π°Π±ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²Π°ΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠΌ Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΡΡΠ΅Π΄Ρ.
ΠΠΎΠΌΠ°Π½Π΄Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ
Π― Π»Π΅Π½ΡΡΠΉ. ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ find, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ISO, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΡΡΡΡ ΡΠ°Π½Π΅Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ΅ΠΏΡΠ΅? Π ΠΊΡΠΎ ΠΆΠ΅ Π·Π°Ρ ΠΎΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΡΡΠ½ΡΡ? ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΊΡΠΎ-ΡΠΎ ΠΈ Π·Π°Ρ ΠΎΡΠ΅Ρ, Π½ΠΎ ΡΠΆ ΡΠΎΡΠ½ΠΎ Π½Π΅ Ρ. ΠΠ° ΠΈ Π²Π°ΠΌ ΡΡΠΎ ΡΠΎΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», Π²ΡΠ³Π»ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, findfile, Π° Π·Π°ΡΠ΅ΠΌ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ:
1$ chmod +x findfile
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ» ΠΌΠΎΠΉ ΡΠ°ΠΉΠ» findfile Π² ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Ρ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠ³Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π²Π²Π΅Π΄Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Ρ ΡΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ
ΠΠ°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΡΠΈΡΡΡΠΈΡ ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ΄ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠΊΠ»Ρ ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, ΡΡΠΎ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° ΡΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΡΠΌΠ°ΡΠ° XML Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π·. Π ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ Π±ΡΠ», ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 120, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π° ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΌΠ΅Π½Ρ Π½Π΅ Π²Π΄ΠΎΡ Π½ΠΎΠ²ΠΈΠ»Π°. ΠΠΎΡΡΠΎΠΌΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π½ΠΈΠΆΠ΅.
ΠΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.6, ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ sed. ΠΠΎΠΌΠ°Π½Π΄Π° sed β ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° UNIX, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ. Sed ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ½ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ oldName Π½Π° ΡΡΡΠΎΠΊΡ NewName.
Sed (Stream EDitor) β ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΠΈ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΉΠ»Ρ), ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ, Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ Π² sed-ΡΠΊΡΠΈΠΏΡΠ΅, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π²ΡΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ. Sed ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ, ΡΡΠΎ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠΈΠΌΠΎ man-ΡΡΡΠ°Π½ΠΈΡΡ sed, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ: http://en.wikipedia.org/wiki/Sed (Π°Π½Π³Π».) ΠΈ http://ru.wikipedia.org/wiki/Sed (ΡΡΡ.) ΠΈ ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ ΡΠ°ΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π²ΡΡΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° grep ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»Π° ΡΡΡΠΎΠΊΡ OldName. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΡΠΎΠΌ Π½ΡΠΆΠ΄Π°Π»ΠΈΡΡ.
ΠΡΠ°ΠΊ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ·ΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, ΡΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠΌΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π²Π°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΈ ΡΠ΅ΡΠΈΡΡ Π»ΡΠ±ΡΡ Π·Π°Π΄Π°ΡΡ. ΠΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΈ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ bash ΠΈ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ bash ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ. ΠΡΡΡ ΠΈ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΈ ΠΊΠ½ΠΈΠ³ ΠΏΠΎ ΡΠ·ΡΠΊΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Perl ΠΈ Python. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ bash, ΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΡ ΡΠ΅Π»Π΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ².
ΠΡΡΠΈΠ½Π½Π°Ρ ΠΌΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π»Ρ Π²Π°Ρ ΡΡΡΠΈΠ½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π²Ρ ΡΠ°ΠΌΠΈ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΎΡΠ΄ΡΡ Π°ΡΡ, ΠΎΠ±Π΅Π΄Π°ΡΡ ΠΈ Ρ. ΠΏ. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΉΠ΄Π΅ΠΌ Π΅ΡΠ΅ Π΄Π°Π»ΡΡΠ΅ ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π΄Π°ΠΆΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
Mac OS X ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π»ΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ β Π΄Π²Π° ΡΡΠ°ΡΠΎΠΌΠΎΠ΄Π½ΡΡ , ΠΏΡΠΈΠ½ΡΡΡΡ Π² ΡΠ΅ Π³ΠΎΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° UNIX Π±ΡΠ»Π° Π΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΈ Π΄Π²Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π±ΠΎΠ»Π΅Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Mac.
Π‘ΡΠ°ΡΠΎΠΌΠΎΠ΄Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΡΠΈΠ»Π°ΡΡ Π² Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΈ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ at. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, test.sh. ΠΠ΅ Π½Π°Π·ΡΠ²Π°ΠΉΡΠ΅ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎ test, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ β Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ, ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π΄ΠΎΠ»Π³ΠΎ Π»ΠΎΠΌΠ°ΡΡ Π³ΠΎΠ»ΠΎΠ²Ρ, ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠΊΡΠΈΠΏΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅.
1234// ΠΡΠΎΡΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ // ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ#!/bin/bashecho Β«helloΒ» >>trash.txt
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod +x, ΡΠΊΠ°Π·Π°Π² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠΌΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΡΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ½Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ ΡΡΡΠΎΠΊΡ hΠ΅llo Π² ΡΠΎΡΡΠ°Π² ΡΠ°ΠΉΠ»Π° trash.txt. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π΄Π°Π², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
1$ at βf test.sh 1735
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΡΡΠΏΠΈΡ 17:35, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ°ΠΉΠ» trash.txt.
ΠΡ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ? Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ cron. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° cron ΠΈΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ°ΠΉΠ» crontab, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ cron, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» crontab. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Terminal (Π»ΠΈΡΡΠΈΠ½Π³ Π½ΠΈΠΆΠ΅).
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΡΠ΅Π°Π½Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° nano, ΠΏΡΠΈΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΊΡΠ°Π½ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΠΉ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ». ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΡΡΠΎΠΊΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π°, ΡΡΠΎΠ±Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² nano.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ» ^ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Control, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ^G ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ctrl+G.
Π€Π°ΠΉΠ» crontab ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠΎΠΊΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅ΠΌΡ, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π½ΠΈΠΆΠ΅.
ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ cron, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠ°Ρ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠ°ΡΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· 15 ΠΌΠΈΠ½ΡΡ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΡΠ°. ΠΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ cron ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠ°Ρ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² 12:30. Π’ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² 12:35 Π² ΠΏΠ΅ΡΠ²ΡΠΉ Π΄Π΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΡΠ°, Π° ΡΠ΅ΡΠ²Π΅ΡΡΠ°Ρ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² 12:40 ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ Π΄Π΅Π½Ρ. Π§ΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° nano, Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ctrl+X ΠΈ Π΄Π°ΠΉΡΠ΅ ΡΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, Ρ ΠΎΡΠΈΡΠ΅ Π»ΠΈ Π²Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π² Π²ΡΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ°, ΡΠ°ΠΊ ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ.
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠ°ΠΉΠ»Π° crontab, ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ· Π²ΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² crontab.
ΠΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»Π° crontab, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΡΠ½ΡΠ΄Ρ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΡΡΠ°Π΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠ°Ρ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ cron, Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ Π·Π°ΠΏΡΡΠΊ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΊ Π±ΡΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½). ΠΡΠΈ ΡΡΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ, Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ (ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΌ ΠΏΡΠΈ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ β ΡΡΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅). Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π²Π°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° /etc/periodic. Π’Π°ΠΊΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π²ΡΠ΅Π³ΠΎ ΡΡΠΈ β daily, weekly ΠΈ monthly.
Π§ΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠ°ΡΠΎΠΌΠΎΠ΄Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ. ΠΠΎΠ²ΠΎΡΡ ΡΠΎΡΠ½Π΅Π΅, Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² 3:15 ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ, Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡΠ½ΡΠ΅ β Π² 3:15 ΠΏΠΎ ΡΡΠ±Π±ΠΎΡΠ°ΠΌ, Π° Π΅ΠΆΠ΅ΠΌΠ΅ΡΡΡΠ½ΡΠ΅ β Π² 5:30 Π΅ΠΆΠ΅ΠΌΠ΅ΡΡΡΠ½ΠΎ. Π‘ΠΊΡΠΈΠΏΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π²Ρ ΠΆΠ΅Π»Π°Π΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΊΡΠΈΠΏΡΠΎΠ² Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΡΠ°Π½Π΅Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΠ΅ ΠΈΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ launchd.