Shell Ρ„Π°ΠΉΠ». Командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π² качСствС языка программирования. Команда ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ shell ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½

Командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π² Π»ΡŽΠ±Ρ‹Ρ… unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ относится ΠΈ GNU/Linux, являСтся ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, запускаСмой ΠΊΠ°ΠΊ Π² тСкстовой консоли (которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ всё Ρ€Π΅ΠΆΠ΅), Ρ‚Π°ΠΊ ΠΈ Π² графичСской срСдС – Π² ΠΎΠΊΠ½Π΅ эмулятора Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, доступного Π² любой Linux-систСмС.

Π•Π΅ Π·Π°Π΄Π°Ρ‡Π° проста ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ строку (ΠΈΠ»ΠΈ строки) Π²Π²ΠΎΠ΄Π°, произвСсти ΠΈΡ… синтаксичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ Π½Π° основС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² этого Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ – Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, вывСсти диагностичСскоС сообщСниС ΠΈ Ρ‚.ΠΏ.

ΠŸΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх дистрибутивах Linux для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ назначаСтся командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° bash (Bourne Again SHell – Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π‘ΡƒΡ€Π½Π°; Π‘Ρ‚ΠΈΠ² Π‘ΡƒΡ€Π½ – Π°Π²Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π² Unix – sh). ЀактичСски ΠΎΠ½Π° стала Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ стандартом, ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй продолТаСтся Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ – tcsh (вСрсия C-shell), ksh (Korn Shell), zsh ΠΈ Ρ‚.Π΄. – Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅ΡΡ‚ΡŒ свои достоинства ΠΈ нСдостатки, Π° Ρ‚Π°ΠΊΠΆΠ΅ свои Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, bash Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ массам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ уровнями ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ я ΠΈ остановил свой Π²Ρ‹Π±ΠΎΡ€ Π½Π° Π½Π΅ΠΉ. Π‘Ρ‚ΠΎΠΈΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠΌΠΈ Π±Ρ‹ возмоТностями Π½ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, всС ΠΎΠ½ΠΈ совмСстимы со своим идСологичСским ΠΏΡ€Π°Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ – Bourn Shell (sh). Π˜Π½Ρ‹ΠΌΠΈ словами, скрипт, написанный для sh, Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² любой соврСмСнной ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ (ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π½Π΅Π²Π΅Ρ€Π½ΠΎ).

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос: Π·Π°Ρ‡Π΅ΠΌ Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой, Ссли ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈ красивыС графичСскиС интСрфСйсы? Π’ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ мноТСство ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ быстрСС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ графичСского интСрфСйса. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, каТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° слСдуСт ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Unix-систСм: Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‘Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‘ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π˜Π½Ρ‹ΠΌΠΈ словами, Π²Ρ‹ всСгда ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ запускС Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ (Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ понятно, Ρ‚ΠΎ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ man-руководству). Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, осваивая ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, пробуя ΠΈΡ… сочСтания ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ систСму, приобрСтая Ρ†Π΅Π½Π½Ρ‹ΠΉ практичСский ΠΎΠΏΡ‹Ρ‚. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ эффСктивным инструмСнтам, ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, срСдства пСрСнаправлСния Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, Π° ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ стоит ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ систСмныС сцСнарии Π² Linux (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, скрипты запуска систСмных сСрвисов) написаны для shell.

Командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π² качСствС языка программирования

Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ язык программирования ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ срСду выполнСния ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. РазумССтся, этот язык Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ, Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ. Он допускаСт использованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: систСмных ΠΈΠ»ΠΈ собствСнных. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ измСняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкций ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°: if-then-else ΠΈ case. Π¦ΠΈΠΊΠ»Ρ‹ while, until ΠΈ for ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ дСйствия. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄ Π² логичСскиС Π±Π»ΠΎΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ настоящиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π² Π½ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°Π»ΠΈΡ†ΠΎ всС ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈ характСристики ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ языка программирования. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· этого Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ – наряду с ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ основ программирования Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ свою ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Hello, World! ΠŸΡ€ΠΎΡΡ‚Π°Ρ систСма Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования

О нСобходимости рСгулярного Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π΄Π°Π½Π½Ρ‹Ρ… Π·Π½Π°ΡŽΡ‚ всС, Π½ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π²Π΅Ρ‡Π½ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° эту ΡΠΊΡƒΡ‡Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Π’Ρ‹Ρ…ΠΎΠ΄ прост – ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ автоматичСскоС созданиС Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ. Π­Ρ‚ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ нашим ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅.

#!/bin/bash # # Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° # Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ скрипт ΠΌΠΎΠΆΠ½ΠΎ автоматичСски Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ cron # cd $HOME if [ ! -d archives ] then mkdir archives fi cur_date=`date +%Y%m%d%H%M` if [ $# -eq 0 ] ; then tar czf archive${cur_date}.tar.gz projects bin else tar czf archive${cur_date}.tar.gz $* fi if [ $? = 0 ] ; then mv archive${cur_date}.tar.gz $HOME/archives echo "$cur_date – Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ." else echo "$cur_date – ΠžΠ¨Π˜Π‘ΠšΠ Π²ΠΎ врСмя Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования." fi

Π›ΡŽΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ сцСнарий (script – скрипт, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ) начинаСтся со строки ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ явно задаётся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ Π½Π΅ΠΌΡƒ. ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ – ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ пСрСчислСниС всСх ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², начиная с ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ Π²ΠΎΠΉΡ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈ, разумССтся, имя этого Ρ„Π°ΠΉΠ»Π°. Π—Π°ΠΏΠΈΡΡŒ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π²Π°ΠΆΠ½Π° для ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

Π”Π°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ строки ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° встрСчаСт символ "#", ΠΎΠ½Π° считаСт всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы коммСнтариями ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½Π΅ с самого Π½Π°Ρ‡Π°Π»Π° строки, Π° ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠΌ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

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

НаконСц-Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ «настоящСй» ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Она позволяСт ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Change Directory), Ρ‚.Π΅. ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ задаётся Π² явной Ρ„ΠΎΡ€ΠΌΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, cd /tmp ΠΈΠ»ΠΈ cd projects, Π½ΠΎ Π² нашСм случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прСдопрСдСлённая систСмная пСрСмСнная HOME – Π² Π½Π΅ΠΉ содСрТится ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ сцСнарий. Π’Π΅ΠΌ самым ΠΌΡ‹ избавляСмся ΠΎΡ‚ нСобходимости Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² ΠΊΠΎΠ΄ всякий Ρ€Π°Π· ΠΏΡ€ΠΈ смСнС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ любого Π² Π΅Π³ΠΎ Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π—Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π° "$" ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, содСрТащССся Π² этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку вмСсто Π΅Ρ‘ ΠΈΠΌΠ΅Π½ΠΈ. Особо слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ языкС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ рСгистров Π±ΡƒΠΊΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚.Π΅. HOME, Home ΠΈ home – это Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. По соглашСнию, Π±ΡƒΠΊΠ²Π°ΠΌΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ рСгистра ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° систСмных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: HOME, PATH, EDITOR ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΎ соглашСниС Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈΠ· Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… Π±ΡƒΠΊΠ², Π½ΠΎ Π·Π°Ρ‡Π΅ΠΌ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ сСбС Тизнь, Π½Π°Ρ€ΡƒΡˆΠ°Ρ общСпринятыС Π½ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°? НС рСкомСндуСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния систСмных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±Π΅Π· ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ нСобходимости. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, соблюдаСм простоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: систСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Π° Ссли ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ собствСнная, Ρ‚ΠΎ Π΅Ρ‘ имя записываСм Π±ΡƒΠΊΠ²Π°ΠΌΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра.

ΠΠ°ΡˆΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ:

cd ~

Π—Π΄Π΅ΡΡŒ символ "~" Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π΅Ρ‚Π΅Ρ€Π°Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π΅Ρ‰Ρ‘ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Π΅Π΅:

cd

Бмысл Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cd Π½Π΅ Π·Π°Π΄Π°Π½ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠ½Π° выполняСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

На ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ классичСская программная конструкция ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия ΠΈ принятия ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠžΠ±Ρ‰Π°Ρ схСма Ρ‚Π°ΠΊΠΎΠ²Π°:

if <условиС> then <ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄> fi

ПослСднСС слово конструкции (if Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС) выполняСт Ρ€ΠΎΠ»ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобки, Ρ‚.Π΅. Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ списка ΠΊΠΎΠΌΠ°Π½Π΄, выполняСмых ΠΏΡ€ΠΈ истинности условия. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ fi ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Ссли Π² спискС лишь ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, примСняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° test ΠΈΠ»ΠΈ Π΅Ρ‘ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° записи Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. Π˜Π½Π°Ρ‡Π΅ говоря, записи

if [ ! -d archives ] if test ! -d archives

Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹. Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π±ΠΎΠ»Π΅Π΅ наглядно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ провСряСмого условия. И правая, ΠΈ лСвая скобка Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΡ‚ условия ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ. Команда test распознаёт ΠΎΡ‡Π΅Π½ΡŒ большой ΠΈΡ… список. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использован Ρ„Π»Π°Π³ -d, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, соотвСтствуСт Π»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ послС Ρ„Π»Π°Π³Π° имя Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ (directory). НаиболСС часто ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π»Π°Π³ΠΈ:

F – сущСствуСт Π»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ;

R – установлСно Π»ΠΈ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€Π°Π²ΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π΅Π³ΠΎ;

W – установлСно Π»ΠΈ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€Π°Π²ΠΎ Π½Π° запись Π² Π½Π΅Π³ΠΎ;

X – установлСно Π»ΠΈ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€Π°Π²ΠΎ Π½Π° Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;

S – ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€.

Π’ нашСм случаС ΠΏΠ΅Ρ€Π΅Π΄ условиСм стоит Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ логичСского отрицания, поэтому смысл провСряСмого условия становится Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΌ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ смысл этих ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ русском языкС:

if [ ! -d archives ] Если Π½Π΅ сущСствуСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ archives (Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅), then Ρ‚ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄: mkdir archives ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ archives (Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅) fi Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄.

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

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΌΡ‹ создаём ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ cur_date. Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ простым присваиваниСм ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ значСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ten=10 string="Π­Ρ‚ΠΎ строка тСкста"

Но Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ примСняСтся нСбольшая Ρ…ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ послС Π·Π½Π°ΠΊΠ° равСнства – символа присваивания – записана ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…. Вакая Ρ„ΠΎΡ€ΠΌΠ° записи позволяСт ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ саму строку, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Ρ‘ выполнСния. Π—Π΄Π΅ΡΡŒ это Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ date, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, опрСдСляСмом списком ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

%Y – Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π³ΠΎΠ΄ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚.Π΅. ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Ρ†ΠΈΡ„Ρ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2009);

%m – Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ мСсяца (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 09 – для сСнтября);

%d – Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ дня;

%H – Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ час Π² 24-часовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅;

%M – тСкущая ΠΌΠΈΠ½ΡƒΡ‚Π°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

cur_date=`date +%Y%m%d%H%M`

дСсятого сСнтября 2009 Π³ΠΎΠ΄Π° Π² 22:45, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ cur_date Π±ΡƒΠ΄Π΅Ρ‚ присвоСно строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "200909102245". ЦСль этого ухищрСния – ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅, Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ имя Π°Ρ€Ρ…ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Если Π²Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ нСсколько экзСмпляров ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΡ‘Π½, добавляя Π΅Ρ‰Ρ‘ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ сСкунды. Как? Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ руководство ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ date (man date) – Π² этом Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию Ρ„Π°ΠΉΠ»Π° Π°Ρ€Ρ…ΠΈΠ²Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Π½Ρ‘ΠΌ. Для большСй гибкости ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹ этого Π½Π°Π±ΠΎΡ€Π° списком ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² наш ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ сцСнарий. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ: $# – число ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π² сцСнарий ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ $* – всС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, записанныС Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΠΉ строки.

if [ $# -eq 0 ] ; then

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия «Ссли число ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽΒ», Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово then ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² строкС условия, ΠΎΡ‚Π΄Π΅Π»ΠΈΠ² Π΅Π³ΠΎ ΠΎΡ‚ условного выраТСния Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой.

tar czf archive${cur_date}.tar.gz projects bin

Команда создания Π°Ρ€Ρ…ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ сТатия этого Ρ„Π°ΠΉΠ»Π°. Π‘Π°ΠΌΠ° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° tar Π½Π΅ выполняСт сТатиС, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь собираСт всС Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ tar-Ρ„Π°ΠΉΠ». Для этого ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ„Π»Π°Π³ - c (create – ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ). Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ выполняСт внСшняя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° – здСсь это gzip, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Ρ„Π»Π°Π³ΠΎΠΌ - z. Если Π² вашСй систСмС установлСна Π±ΠΎΠ»Π΅Π΅ эффСктивная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сТатия bzip2, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Сю, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

tar cjf archive${cur_date}.tar.bz2 projects bin

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Ρ„Π»Π°Π³ f сообщаСт ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π»Π΅Π΅ слСдуСт имя Π°Ρ€Ρ…ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, поэтому всСгда являСтся Π·Π°ΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠΌ Π² ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ Ρ„Π»Π°Π³ΠΎΠ². ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ подстановкС имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. Π­Ρ‚ΠΎ сдСлано, Ρ‡Ρ‚ΠΎΠ±Ρ‹ явно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ Π΅Ρ‘ строкС, Ρ‚Π΅ΠΌ самым устраняя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π°Ρ€Ρ…ΠΈΠ²Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π½Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ автоматичСски, Π²Ρ‹ сами дописываСтС всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅. Π’ качСствС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, я ΡƒΠΊΠ°Π·Π°Π» projects ΠΈ bin, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ здСсь ΠΈΠΌΠ΅Π½Π° своих Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ†Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово else ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ выполнСния. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ этого Π±Π»ΠΎΠΊΠ° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ссли ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия Π΄Π°Ρ‘Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ «лоТь» (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: «число ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅Β», Ρ‚.Π΅. ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π΄Π°Π» ΠΈΠΌΠ΅Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²). Π’ этом случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

tar czf archive${cur_date}.tar.gz $*

Π—Π΄Π΅ΡΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ строкой ΠΈΠΌΡ‘Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², принятой ΠΈΠ·Π²Π½Π΅. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ внСшний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Π½Π°ΠΌ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строку Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выполняСтся Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°. Π’ unix-срСдах всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΊΠΎΠ΄ статуса Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹. Если ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Ρ‚ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ 0, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $?, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всСгда содСрТится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ самой послСднСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Если Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $? содСрТится 0, Ρ‚.Π΅. Ρ„Π°ΠΉΠ» Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создан, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ²:

mv archive${cur_date}.tar.gz $HOME/archives

ΠΈ Π²Ρ‹Π΄Π°Ρ‘ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

echo "$cur_date – Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ."

Если ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Π»Π°, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ архивирования Π½Π΅ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ выводится сообщСниС ΠΎΠ± ошибкС:

echo "$cur_date – ΠžΠ¨Π˜Π‘ΠšΠ Π²ΠΎ врСмя Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования."

На этом Ρ€Π°Π±ΠΎΡ‚Π° нашСго ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ сцСнария Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ описанный Π²Ρ‹ΡˆΠ΅ исходный ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΈΠΌΠ΅Π½Π΅ΠΌ bckp, Π° Π·Π°Ρ‚Π΅ΠΌ для удобства ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ выполняСмым:

chmod 750 bckp

ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ:

./bckp

для создания Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ

./bckp docs progs works

для создания Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ пСрСчислСнных ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² (ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² вашСй систСмС, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС).

МоТно ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» bckp Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² систСмной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH. НаиболСС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ мСстами размСщСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ /usr/local/bin ΠΈΠ»ΠΈ $HOME/bin, Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρƒ вас ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ. ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ bckp ΠΊΠ°ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

Как Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Β«ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽΒ»

НСсколько слов ΠΎΠ± Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования. Для этой Ρ†Π΅Π»ΠΈ слуТит систСмный ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ cron, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считываСт Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ инструкции ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ crontab-Ρ„Π°ΠΉΠ»Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ инструкции, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой crontab-Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

crontab -e

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (поля Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ):

ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ часы дСнь_мСсяца мСсяц дСнь_Π½Π΅Π΄Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°

Один ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² расписания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

30 23 10,20,30 * * /usr/local/bin/bckp

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сцСнарий Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования (слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ этому Ρ„Π°ΠΉΠ»Ρƒ) Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² 23:30 10-Π³ΠΎ, 20-Π³ΠΎ ΠΈ 30-Π³ΠΎ числа ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ мСсяца нСзависимо ΠΎΡ‚ дня Π½Π΅Π΄Π΅Π»ΠΈ. (Π—Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ вСсь допустимый Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц – Π² 4-ΠΌ ΠΏΠΎΠ»Π΅, любой дСнь Π½Π΅Π΄Π΅Π»ΠΈ – Π² 5-ΠΌ ΠΏΠΎΠ»Π΅)

Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΈ ΠΏΠΎ нСдСлям, Π° ваша систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ круглосуточно, Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² часы с минимальной Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ:

0 5 * * 3,5 /usr/local/bin/bckp

Π—Π΄Π΅ΡΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² 5:00 ΠΏΠΎ срСдам ΠΈ пятницам Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ мСсяцС (Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠ° Π² 4-ΠΌ ΠΏΠΎΠ»Π΅), нСзависимо ΠΎΡ‚ числа (Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠ° Π² 3-ΠΌ ΠΏΠΎΠ»Π΅).

Обо всСх тонкостях составлСния расписания ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² руководствС man 5 crontab.

Π˜Ρ‚ΠΎΠ³ΠΈ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Ρ‹

РассмотрСнный Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ сцСнарий Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ скромными Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ свойствами. Но Π½Π΅ Π² этом состояла Π΅Π³ΠΎ главная Π·Π°Π΄Π°Ρ‡Π°, Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ понял, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скопировал ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π° заинтСрСсовался Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, занялся исслСдованиСм Π½Π΅ΠΎΠ±ΡŠΡΡ‚Π½Ρ‹Ρ… возмоТностСй, прСдоставляСмых ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ. И Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² эту ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ здСсь ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ собствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ свою Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ идСю, Ρ‚ΠΎ я сочту, Ρ‡Ρ‚ΠΎ основная Ρ†Π΅Π»ΡŒ достигнута.

РСсурсы для скачивания

static.content.url=http://www.сайт/developerworks/js/artrating/

ArticleID=458335

ArticleTitle=ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ shell

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ ΠΏΠΎ вопросам Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ

Π’Π°ΠΌ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ послал ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ Ρ„Π°ΠΉΠ» SHELL, ΠΈ Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ? ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π²Ρ‹ нашли Ρ„Π°ΠΉΠ» SHELL Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈ вас заинтСрСсовало, Ρ‡Ρ‚ΠΎ это Π·Π° Ρ„Π°ΠΉΠ»? Windows ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΈΠ»ΠΈ, Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ сообщСниСм ΠΎΠ± ошибкС, связанным с Ρ„Π°ΠΉΠ»ΠΎΠΌ SHELL.

Π”ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ смоТСтС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» SHELL, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π° относится Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° SHELL.

Tip: Incorrect SHELL file association errors can be a symptom of other underlying issues within your Windows operating system. These invalid entries can also produce associated symptoms such as slow Windows startups, computer freezes, and other PC performance issues. Therefore, it highly recommended that you scan your Windows registry for invalid file associations and other issues related to a fragmented registry.

ΠžΡ‚Π²Π΅Ρ‚:

Π€Π°ΠΉΠ»Ρ‹ SHELL ΠΈΠΌΠ΅ΡŽΡ‚ Uncommon Files, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСимущСствСнно ассоциирован с Unknown Apple II File (found on Golden Orchard Apple II CD Rom).

Π˜Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° SHELL. Если Π²Π°ΠΌ извСстны Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° SHELL, поТалуйста, ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ смогли ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ваш Ρ„Π°ΠΉΠ» SHELL:

Π‘Π°ΠΌΡ‹ΠΉ быстрый ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ способ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ свой Ρ„Π°ΠΉΠ» SHELL - это Π΄Π²Π° Ρ€Π°Π·Π° Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΌΡ‹ΡˆΡŒΡŽ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС систСма Windows сама Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для открытия вашСго Ρ„Π°ΠΉΠ»Π° SHELL.

Π’ случаС, Ссли ваш Ρ„Π°ΠΉΠ» SHELL Π½Π΅ открываСтся, вСсьма вСроятно, Ρ‡Ρ‚ΠΎ Π½Π° вашСм ПК Π½Π΅ установлСна нСобходимая прикладная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для просмотра ΠΈΠ»ΠΈ рСдактирования Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ SHELL.

Если ваш ПК ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» SHELL, Π½ΠΎ Π² Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π²Π°ΠΌ потрСбуСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ настройки ассоциации Ρ„Π°ΠΉΠ»ΠΎΠ² Π² вашСм рССстрС Windows. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Windows ассоциируСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² SHELL с Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ - FileViewPro (Solvusoft) | | | |

SHELL Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Π°Π½Π°Π»ΠΈΠ·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²β„’

Π’Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Ρƒ Ρ„Π°ΠΉΠ»Π° SHELL? Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π΅, Π΅Π³ΠΎ создатСлС ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π΅ SHELL!

Π Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ SHELL Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Π°Π½Π°Π»ΠΈΠ·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²β„’ сканируСт, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ сообщаСт ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π΅ SHELL. Наш Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ (оТидаСтся Π²Ρ‹Π΄Π°Ρ‡Π° ΠΏΠ°Ρ‚Π΅Π½Ρ‚Π°) быстро ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΈ Ρ‡Π΅Ρ€Π΅Π· нСсколько сСкунд прСдоставит ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² наглядном ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.†

Π£ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· нСсколько сСкунд Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Ρ‚ΠΈΠΏ вашСго Ρ„Π°ΠΉΠ»Π° SHELL, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, сопоставлСнноС с Ρ„Π°ΠΉΠ»ΠΎΠΌ, имя создавшСго Ρ„Π°ΠΉΠ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, статус Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ„Π°ΠΉΠ»Π° ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ бСсплатный Π°Π½Π°Π»ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, просто ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ваш Ρ„Π°ΠΉΠ» SHELL Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Β» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ». ΠžΡ‚Ρ‡Π΅Ρ‚ ΠΎΠ± Π°Π½Π°Π»ΠΈΠ·Π΅ Ρ„Π°ΠΉΠ»Π° SHELL Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²Π½ΠΈΠ·Ρƒ, прямо Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» SHELL сюда для Π½Π°Ρ‡Π°Π»Π° Π°Π½Π°Π»ΠΈΠ·Π°

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Β»

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» Π½Π° вирусы

Π’Π°Ρˆ Ρ„Π°ΠΉΠ» анализируСтся... поТалуйста ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅.

ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ язык shell (Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ - Ρ€Π°ΠΊΠΎΠ²ΠΈΠ½Π°, скорлупа) фактичСски Π΅ΡΡ‚ΡŒ язык программирования ΠΎΡ‡Π΅Π½ΡŒ высокого уровня. На этом языкС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ осущСствляСт ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, послС Π²Ρ…ΠΎΠ΄Π° Π² систСму Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ. ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° (shell) Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ ΠΏΡ€ΠΈΠ΅ΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ слуТит Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Сю Π½Π° экран ΠΏΡ€ΠΎΠΌΠΏΡ‚Π΅Ρ€. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС это ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠ»Π»Π°Ρ€ ("$"). Shell Π½Π΅ являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΈ СдинствСнным ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ языком (хотя ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ стандартизован Π² Ρ€Π°ΠΌΠΊΠ°Ρ… POSIX - стандарта ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… систСм). НапримСр, Π½Π΅ΠΌΠ°Π»ΠΎΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ язык cshell, Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ kshell, bashell ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ язык. ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ экзСмплярС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌΠΈ языками. shell - это ΠΎΠ΄Π½Π° ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ UNIX. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ "shell" Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° "sh" - Π²Ρ‹Π·ΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° "shell". ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ "shell" вызываСтся автоматичСски ΠΏΡ€ΠΈ вашСм Π²Ρ…ΠΎΠ΄Π΅ Π² систСму ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π½Π° экран ΠΏΡ€ΠΎΠΌΡ‚Π΅Ρ€. ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π² Ρ‚ΠΎΠΌ числС ΠΈ снова сам "shell", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ создаст Π½ΠΎΠ²ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ. Π’Π°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Ρ„Π°ΠΉΠ» "file_1":

Echo Hello!

Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ», содСрТащий ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "echo", которая ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ всС написанноС ΠΏΡ€Π°Π²Π΅Π΅ Π΅Π΅ Π½Π° экран. МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» "file_1" выполняСмым с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "chmod 755 file_1". Но Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² явно ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "sh" ("shell"):

Sh file_1

Sh < file1

Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ экзСмплярС "shell". Для этого сущСствуСт спСцифичСская ΠΊΠΎΠΌΠ°Π½Π΄Π° "." (Ρ‚ΠΎΡ‡ΠΊΠ°), Ρ‚.Π΅.

File_1

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ UNIX - систСма ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, скаТСм, Π½Π° 12-Ρ‚ΠΈ экранах (ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с экрана Π½Π° экран ALT/Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ клавиша), имСя Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ экранС Π½ΠΎΠ²ΠΎΠ³ΠΎ (ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅) ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ со своСй ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΈ Π² графичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ X-Window Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ большоС число ΠΎΠΊΠΎΠ½, Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ свой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ со своСй ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ... Π‘Ρ‚Π΅Ρ€ΠΆΠ½Π΅Π²Ρ‹ΠΌ элСмСнтом языка shell являСтся ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄:

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π² shell ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

<имя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹> <Ρ„Π»Π°Π³ΠΈ> <Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚(Ρ‹)>

НапримСр:

Ls -ls /usr/bin

Π“Π΄Π΅ ls - имя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Π΄Π°Ρ‡ΠΈ содСрТимого дирСктория, -ls - Ρ„Π»Π°Π³ΠΈ ("-" - ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Ρ„Π»Π°Π³ΠΎΠ², l - Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, s - ΠΎΠ±"Π΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π±Π»ΠΎΠΊΠ°Ρ…), /usr/bin - Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° выдаст Π½Π° экран Π² Π΄Π»ΠΈΠ½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ содСрТимоС дирСктория /usr/bin, ΠΏΡ€ΠΈ этом Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π±Π»ΠΎΠΊΠ°Ρ…. К соТалСнию, такая структура ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выдСрТиваСтся Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда. НС всСгда ΠΏΠ΅Ρ€Π΅Π΄ Ρ„Π»Π°Π³Π°ΠΌΠΈ ставится минус, Π½Π΅ всСгда Ρ„Π»Π°Π³ΠΈ ΠΈΠ΄ΡƒΡ‚ ΠΎΠ΄Π½ΠΈΠΌ словом. Π•ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΈ Π² прСдставлСнии Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². К числу ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… экзотичСскиС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, относятся ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ "Ρ…ΠΎΠ΄ΠΎΠ²Ρ‹Π΅" ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠ°ΠΊ сс - Π²Ρ‹Π·ΠΎΠ² компилятора языка Π‘, tar - Ρ€Π°Π±ΠΎΡ‚Π° с Π°Ρ€Ρ…ΠΈΠ²Π°ΠΌΠΈ, dd - ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, find - поиск Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ…. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово shell воспринимаСт, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΎ shell, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° (ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ), которая выдаст Π½Π° экран Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ "cat" (Π²Ρ‚ΠΎΡ€ΠΎΠ΅ слово), находящийся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ (Π²Ρ…ΠΎΠ΄) - "stdin" Π² ОБ UNIX осущСствляСтся с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π° стандартный Π²Ρ‹Π²ΠΎΠ΄ (Π²Ρ‹Ρ…ΠΎΠ΄) - "stdout" Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° экран Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. БущСствуСт Π΅Ρ‰Π΅ ΠΈ стандартный Ρ„Π°ΠΉΠ» диагностичСских сообщСний - "stderr", ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Ρ‡ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅. Команда, которая ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со стандартным Π²Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ, называСтся Π€Π˜Π›Π¬Π’Π ΠžΠœ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства пСрСнаправлСния Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ (устройства). Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ">" ΠΈ ">>" ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π°. ls >file_1 ΠΊΠΎΠΌΠ°Π½Π΄Π° "ls" сформируСт список Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ помСстит Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» "file_1" (вмСсто Π²Ρ‹Π΄Π°Ρ‡ΠΈ Π½Π° экран). Если Ρ„Π°ΠΉΠ» "file_1" Π΄ΠΎ этого сущСствовал, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ‚Π΅Ρ€Ρ‚ Π½ΠΎΠ²Ρ‹ΠΌ.

Pwd >>file_1

ΠΊΠΎΠΌΠ°Π½Π΄Π° pwd сформируСт ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ помСстит Π΅Π³ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° "file_1", Ρ‚.Π΅. ">>" добавляСт Π² Ρ„Π°ΠΉΠ», Ссли ΠΎΠ½ нСпустой. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ "<" ΠΈ "<<" ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°.

Wc -l

подсчитаСт ΠΈ выдаст Π½Π° экран число строк Π² Ρ„Π°ΠΉΠ»Π΅ file_1.

Ed file_2 <

создаст с использованиСм Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Ρ„Π°ΠΉΠ» "file_2", нСпосрСдствСнно с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° опрСдСляСтся ΠΏΠΎ символу, стоящСму ΠΏΡ€Π°Π²Π΅Π΅ "<<" (Ρ‚. Π΅. "!"). Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ строкС Π±ΡƒΠ΄Π΅Ρ‚ "!". МоТно ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ пСрСнаправлСния. Π’Π°ΠΊ

Wc -l file_4

Wc -l >file_4

Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ: подсчитываСтся число строк Ρ„Π°ΠΉΠ»Π° "file_3" ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ помСщаСтся Π² Ρ„Π°ΠΉΠ» "file_4". БрСдство, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅Π΅ стандартный Π²Ρ‹Ρ…ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ со стандартным Π²Ρ…ΠΎΠ΄ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, называСтся ΠšΠžΠΠ’Π•Π™Π•Π ΠžΠœ ΠΈ обозначаСтся Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ "|".

Ls | wc -l

список Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "wc", которая Π½Π° экран Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ число строк ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΠ³Π΄Π° всС ΠΎΠ½ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ послСднСй - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹:

Cat file_1 | grep -h result | sort | cat -b > file_2

Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° "file_1" ("cat") Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ всС строки, содСрТащиС слово "result" ("grep"), отсортируСт ("sort") ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ строки, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΡƒΠ΅Ρ‚ ("cat -b") ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„Π°ΠΉΠ» "file_2". ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ устройства Π² ОБ UNIX прСдставлСны ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ пСрСнаправлСниях. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ "/dev". НапримСр, "lp" - ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ; "console" - консоль; "ttyi" - i-Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»; "null" - Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ (пустой) Ρ„Π°ΠΉΠ» (устройство). Π’ΠΎΠ³Π΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

Ls > /dev/lp

Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ содСрТимоС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ, Π° file_1 < /dev/null ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ Ρ„Π°ΠΉΠ» "file_1".

Sort file_1 | tee /dev/lp | tail -20

Π’ этом случаС Π±ΡƒΠ΄Π΅Ρ‚ отсортирован Ρ„Π°ΠΉΠ» "file_1" ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ, Π° 20 послСдних строк Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π΄Π°Π½Ρ‹ Π½Π° экран. ВСрнСмся ΠΊ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Π²Ρ‹Ρ…ΠΎΠ΄Π°. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΎΠΌΠ΅Ρ€Π°:

0 - stdin, 1 - stdout 2 - stderr. Если Π²Π°ΠΌ Π½Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π° экранС сообщСниС ΠΎΠ± ошибкС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с экрана Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ Ρ„Π°ΠΉΠ» (ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ "Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ", ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΠ² Π² Ρ„Π°ΠΉΠ» "пустого устройства" - /dev/null). НапримСр ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Cat file_1 file_2

которая Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π΄Π°Ρ‚ΡŒ Π½Π° экран ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ² "file_1" ΠΈ "file_2", выдаст Π²Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅

111111 222222 cat: f2: No such file or directory

Π³Π΄Π΅ 111111 222222 - содСрТимоС Ρ„Π°ΠΉΠ»Π° "file_1", Π° Ρ„Π°ΠΉΠ» "file_2" отсутствуСт, ΠΎ Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° "cat" Π²Ρ‹Π΄Π°Π»Π° сообщСниС Π² стандартный Ρ„Π°ΠΉΠ» диагностики, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠ°ΠΊ ΠΈ стандартный Π²Ρ‹Ρ…ΠΎΠ΄, прСдставлСнный экраном. Если Π²Π°ΠΌ Π½Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сообщСниС Π½Π° экранС, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»:

Cat file_1 file_2 2>f-err

сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ (ΠΎΠ± этом Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ "2>") Π² Ρ„Π°ΠΉΠ» "f-err". ΠšΡΡ‚Π°Ρ‚ΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» "ff", использовав Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ

Cat file_1 file_2 >>ff 2>ff

МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· стандартных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, Π½ΠΎ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ стандартный Ρ„Π°ΠΉΠ» ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Cat file_1 file_2 2>>ff 1>&2

Π—Π΄Π΅ΡΡŒ сначала "stderr" пСрСнаправляСтся (Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ добавлСния) Π² Ρ„Π°ΠΉΠ» "ff", Π° Π·Π°Ρ‚Π΅ΠΌ стандартный Π²Ρ‹Ρ…ΠΎΠ΄ пСрСнаправляСтся Π½Π° "stderr", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊ этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ являСтся Ρ„Π°ΠΉΠ» "ff". Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ "1>&2" - ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° стандартного Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ "&"; вся конструкция ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². <- Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ стандартный Π²Π²ΠΎΠ΄. >- Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ стандартный Π²Ρ‹Π²ΠΎΠ΄. ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ тСкстовый Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, сущСствуСт нСсколько возмоТностСй. ΠŸΡƒΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° создан Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ "cmd", содСрТащий ΠΎΠ΄Π½Ρƒ строку ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

Date; pwd; ls

МоТно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ shell ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡƒΡŽ "sh", ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΉ Ρ„Π°ΠΉΠ» "cmd", ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄, Ρ‚.Π΅.

$ sh cmd

$ sh

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния любой ΠΈΠ· этих ΠΊΠΎΠΌΠ°Π½Π΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° Π΄Π°Ρ‚Π°, Π·Π°Ρ‚Π΅ΠΌ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π° ΠΏΠΎΡ‚ΠΎΠΌ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π‘ΠΎΠ»Π΅Π΅ интСрСсный ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ - это ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² выполняСмый, Ρ‚.Π΅. просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Ρ‡Ρ‚ΠΎ достигаСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹. Для этого Π½Π°Π΄ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого Ρ„Π°ΠΉΠ»Π°. НапримСр,

Chmod 711 cmd

сдСлаСт ΠΊΠΎΠ΄ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ "rwx__x__x". Π’ΠΎΠ³Π΄Π° простой Π²Ρ‹Π·ΠΎΠ²

ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Ссли Ρ„Π°ΠΉΠ» с содСрТимым

Date; pwd; ls

прСдставлСн Π² Π²ΠΈΠ΄Π΅: date pwd ls Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, выполняСмыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компиляции ΠΈ сборки, Π½ΠΎ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹, написанныС Π½Π° языкС shell. Π˜Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ происходит Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ shell-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’ SHELL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ…: set -v Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ строки ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… чтСния. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ примСняСтся ΠΏΡ€ΠΈ поискС синтаксичСских ошибок. Для Π΅Π³ΠΎ использования Π½Π΅ трСбуСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: sh -v proc... здСсь proc - имя ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠšΠ»ΡŽΡ‡ -v ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСстС с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -n, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π° Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΊΠΎΠΌΠ°Π½Π΄Π° set -n Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ вводится ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° EOF). Команда set -Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… выполнСния, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» выводятся строки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π½Π° мСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΡ… значСния. Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ -x ΠΈ -v ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ set - Π° для установки - ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡ€ΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. БРЕДА SHELL (ΠŸΠ•Π Π•ΠœΠ•ΠΠΠ«Π• И ΠŸΠΠ ΠΠœΠ•Π’Π Π«) На языкС shell ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "chmod" Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… выполняСмыми. ПослС этого ΠΎΠ½ΠΈ Π½ΠΈ Ρ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ОБ UNIX.

Shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Имя shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ - это Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с Π±ΡƒΠΊΠ²Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€ ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠΉ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ - строка символов. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π² shell всСго Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…: строка символов ΠΈ тСкстовый Ρ„Π°ΠΉΠ», с ΠΎΠ΄Π½ΠΎΠΉ стороны, позволяСт Π»Π΅Π³ΠΊΠΎ Π²ΠΎΠ²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π²ΡˆΠΈΡ…ΡΡ, Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ протСст Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… программистов, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΡˆΠΈΡ… ΠΊ сущСствСнно Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΡŽ ΠΈ большСй гибкости языковых срСдств. Однако интСрСсно Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ высококлассныС программисты, освоившись с "ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΠ³Ρ€Ρ‹" shell, ΠΏΠΈΡˆΡƒΡ‚ Π½Π° Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ Π½Π° Π‘ΠΈ, Π½ΠΎ, Ρ‡Ρ‚ΠΎ особСнно интСрСсно, Π² рядС случаСв эти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ быстрСС, Ρ‡Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Π‘ΠΈ. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΎΠ± ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅, Ρ‚.Π΅. ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€ ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠΉ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ»ΠΈ подчСркивания. Для присваивания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания "=".

Var_1=13 - "13" - это Π½Π΅ число, Π° строка ΠΈΠ· Π΄Π²ΡƒΡ… Ρ†ΠΈΡ„Ρ€. var_2="ОБ UNIX" - здСсь Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (" ") Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² строкС Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π».

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΈ ΠΈΠ½Ρ‹Π΅ способы присваивания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Π’Π°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ запись,

DAT=`date`

ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сначала выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° "date" (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ говорят ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сначала Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² Π½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°), Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π΅ выполнСния, вмСсто Π²Ρ‹Π΄Π°Ρ‡ΠΈ Π½Π° стандартный Π²Ρ‹Ρ…ΠΎΠ΄, приписываСтся Π² качСствС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС "DAT". МоТно ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "read", которая обСспСчиваСт ΠΏΡ€ΠΈΠ΅ΠΌ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с (ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹) дисплСя Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ "read" Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° "echo", которая позволяСт ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ сообщСниС Π½Π° экран. НапримСр:

Echo -n "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Ρ…Π·Π½Π°Ρ‡Π½ΠΎΠ΅ число:" read x

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, послС Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран сообщСния

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Ρ…Π·Π½Π°Ρ‡Π½ΠΎΠ΅ число:

ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ остановится ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄Π° значСния с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Если Π²Ρ‹ Π²Π²Π΅Π»ΠΈ, скаТСм, "753" Ρ‚ΠΎ это ΠΈ станСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "x". Одна ΠΊΠΎΠΌΠ°Π½Π΄Π° "read" ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ (ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ) значСния сразу для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Если ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² "read" большС, Ρ‡Π΅ΠΌ ΠΈΡ… Π²Π²Π΅Π΄Π΅Π½ΠΎ (Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹), ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΌΡΡ присваиваСтся пустая строка. Если ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ большС, Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ "read", Ρ‚ΠΎ лишниС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ "$". Π’Π°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo $var_2 echo var_2 Π²Ρ‹Π΄Π°Π΄ΡƒΡ‚ Π½Π° экран

ОБ UNIX var_2 Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Рассмотрим Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ экранирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² shell. Π’ качСствС срСдств экранирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (" "), ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (" ") ΠΈ бэк-слэш (\). Из ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΡ… дСйствиС: МоТно Π² ΠΎΠ΄Π½ΠΎΠΉ строкС Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΏΡ€ΠΈcΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΉ.

X=22 y=33 z=$x A="$x" B="$x" C=\$x D="$x + $y + $z" E="$x + $y + $z" F=$x\ +\ $y\ +\ $z

(присваиваниС G=$x+$y Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²) Π’ΠΎΠ³Π΄Π°

Echo A = $A B = $B C = $C echo D = $D E = $E F = $F eval echo evaluated A = $A eval echo evaluated B = $B eval echo evaluated C = $C

Π’Ρ‹Π΄Π°Π΄ΡƒΡ‚ Π½Π° экран

A = 22 B = $x C = $x D = 22 + 33 + 22 E = $x + $y + $z F = 22 + 33 + 22 evaluated A = 22 evaluated B = 22 evaluated C = 22

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, связанныС с экранированиСм ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки. ΠŸΡƒΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "string" присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "массива" 2x3: abc def ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ для избСТания присваивания Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² вторая строка массива Π½Π°Ρ‡Π°Ρ‚Π° с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки: string="abc def" Π’ΠΎΠ³Π΄Π° Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° записи ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ "echo" echo $string echo "$string" echo "$string" Π΄Π°Π΄ΡƒΡ‚ соотвСтствСнно Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°: abc def $string abc def Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ echo "str_1 str_2" > file_1 echo "str_1 str_2" > file_2 cat file_1 file_2 даст выдаст ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ file_1 ΠΈ file_2: str_1 str_2 str_1 str_2 Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ бэк-слэш (\) Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ экранируСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Π½ΠΈΠΌ символ, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы просто ΠΊΠ°ΠΊ символы, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ сами сСбя (ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ сам сСбя - \\), Π½ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ бэк-слэш позволяСт ΠΎΠ±"Π΅Π΄ΠΈΠ½ΡΡ‚ΡŒ строки Π² ΠΎΠ΄Π½Ρƒ (ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ† строки). НапримСр, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠΉΡΡ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

Cat file_1 | grep -h result | sort | cat -b > file_2

ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, скаТСм, ΠΊΠ°ΠΊ

Cat file_1 | grep -h \ result | sort | cat -b > file_2

ΠšΡΡ‚Π°Ρ‚ΠΈ, эффСкт продолТСния ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки обСспСчиваСт ΠΈ символ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ симпатичный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Cat file_1 | grep -h result | sort | cat -b > file_2

ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ строки, Ρ‚. Π΅. "35" - это Π½Π΅ число, Π° строка ΠΈΠ· Π΄Π²ΡƒΡ… символов "3" ΠΈ "5", Π² Ρ€Π°Π΄Π΅ случаСв ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Π°Ρ‡Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Ρ†Π΅Π»Ρ‹Π΅ числа. Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ возмоТности ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° "expr". ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…: Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°:

X=7 y=2 a=`expr $x + $y` ; echo a=$a a=`expr $a + 1` ; echo a=$a b=`expr $y - $x` ; echo b=$b c=`expr $x "*" $y` ; echo c=$c d=`expr $x / $y` ; echo d=$d e=`expr $x % $y` ; echo e=$e

выдаст Π½Π° экран

A=9 a=10 b=-5 c=14 d=3 e=1

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ умноТСния ("*") ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ заэкранирована, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² shell этот Π·Π½Π°Ρ‡ΠΎΠΊ воспринимаСтся, ΠΊΠ°ΠΊ спСцсимвол, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π½Π° это мСсто ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ подставлСна любая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов. Π‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ "expr" Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ (цСлочислСнныС) арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΈ строковыС:

A=`expr "cocktail" : "cock"` ; echo $A B=`expr "cocktail" : "tail"` ; echo $B C=`expr "cocktail" : "cook"` ; echo $C D=`expr "cock" : "cocktail"` ; echo $D

На экран Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ числа, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ число ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… символов Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ… (ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π°). Вторая ΠΈΠ· строк Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ:

4 0 0 0

Экспорт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π’ ОБ UNIX сущСствуСт понятиС процСсса. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° запускаСтся Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ какая-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°. НапримСр, ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ "Ρ€ " пороТдаСтся процСсс "Ρ€". Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ "Ρ€" ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы. Допустим, Ρ‡Ρ‚ΠΎ "Ρ€" Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ "Ρ€1" ΠΈ "Ρ€2", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ процСссы. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса Π΅ΡΡ‚ΡŒ своя срСда - мноТСство доступных Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, Π΄ΠΎ запуска "Ρ€" ΡƒΠΆΠ΅ сущСствовала срСда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Запуск "Ρ€" ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ срСду; ΡƒΠΆΠ΅ Π² Π½Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Ρ‹ "Ρ€1" ΠΈ "Ρ€2". ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… процСсса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, Ρ‚.Π΅. Π³Π΄Π΅ ΠΈΠΌ присвоСны значСния. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ доступны ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΌ процСссам, Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΡ… явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ встроСнная ΠΊΠΎΠΌΠ°Π½Π΄Π° "export".

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’ shell ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Ρ‚.Π΅. сущСствСнна ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ ΠΈΡ… слСдования). Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ) Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа "$", Π° Π΄Π°Π»Π΅Π΅ слСдуСт ΠΎΠ΄Π½Π° ΠΈΠ· Ρ†ΠΈΡ„Ρ€ ΠΎΡ‚ 0 Π΄ΠΎ 9: ΠŸΡƒΡΡ‚ΡŒ "examp-1" вызываСтся с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ "cock" ΠΈ "tail". Π­Ρ‚ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² Π½ΠΎΠ²ΡƒΡŽ срСду ΠΏΠΎΠ΄ стандартными ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ "1" ΠΈ "2". Π’ (стандартной) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ "0" Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ имя Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ расчСта. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ ставится символ Π΄ΠΎΠ»Π»Π°Ρ€Π° "$" (ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ): $0 соотвСтствуСт ΠΈΠΌΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°; $1 ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎ порядку ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€; $2 Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈ Ρ‚.Π΄. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ число ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ, Ρ‚.Π΅. 9-ю ("0", ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ особый смысл), Ρ‚ΠΎ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ большСго числа ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° "shift". Π‘Π²ΠΎΠ΅ΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ Π΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° "set". НапримСр, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚

Set a b с echo ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ=$1 Π²Ρ‚ΠΎΡ€ΠΎΠΉ=$2 Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ=$3

выдаст Π½Π° экран

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ=a Π²Ρ‚ΠΎΡ€ΠΎΠΉ=b Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ=c

Ρ‚.Π΅. ΠΊΠΎΠΌΠ°Π½Π΄Π° "set" устанавливаСт значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Π° "date" Π²Ρ‹Π΄Π°Π΅Ρ‚ Π½Π° экран Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ, скаТСм, "Mon May 01 12:15:10 2000", ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· пяти слов, Ρ‚ΠΎΠ³Π΄Π°

Set `date` echo $1 $3 $5

выдаст Π½Π° экран

Mon 01 2000

Команда "set" позволяСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: set -v Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» выводятся строки, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ shell. set +v отмСняСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ. set -x Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» выводятся ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. set +x отмСняСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ. Команда "set" Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» состояниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды.

ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ shell-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ нСпосрСдствСнной ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄, содСрТащихся Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, shell выполняСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ подстановок: 1. ΠŸΠžΠ”Π‘Π’ΠΠΠžΠ’ΠšΠ Π Π•Π—Π£Π›Π¬Π’ΠΠ’ΠžΠ’. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΈ Π½Π° ΠΈΡ… мСсто подставляСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. 2. ΠŸΠžΠ”Π‘Π’ΠΠΠžΠ’ΠšΠ Π—ΠΠΠ§Π•ΠΠ˜Π™ ΠŸΠΠ ΠΠœΠ•Π’Π ΠžΠ’ И ΠŸΠ•Π Π•ΠœΠ•ΠΠΠ«Π₯. Π’ΠΎ Π΅ΡΡ‚ΡŒ слова, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° "$", Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². 3. Π˜ΠΠ’Π•Π ΠŸΠ Π•Π’ΠΠ¦Π˜Π― ΠŸΠ ΠžΠ‘Π•Π›ΠžΠ’. ЗаэкранированныС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. 4. Π“Π•ΠΠ•Π ΠΠ¦Π˜Π― Π˜ΠœΠ•Π Π€ΠΠ™Π›ΠžΠ’. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ слова Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² Π½ΠΈΡ… спСцсимволов ("*", "?","") ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ срСда ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс ΠΈΠΌΠ΅Π΅Ρ‚ срСду, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ выполняСтся. Shell ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ряд ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… этой срСды. Если Π²Ρ‹ Π½Π°Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "set" Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ Π½Π° экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° информация ΠΎ рядС стандартных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, созданных ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму (ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π»Π΅Π΅ всСм вашим Π½ΠΎΠ²Ρ‹ΠΌ процСссам "ΠΏΠΎ наслСдству"), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, созданных ΠΈ экспортируСмых вашими процСссами. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈ содСрТаниС Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π½Π΅ΠΌΠ°Π»ΠΎΠΉ стСпСни зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, какая вСрсия UNIX ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ ΠΊΠ°ΠΊ инсталлирована систСма.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ set Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ):

HOME=/root PATH=/usr/local/bin:/usr/bin:/bin:.:/usr/bin/X11: IFS= LOGNAME=sae MAIL=/var/spool/mail/sae PWD=/home/sae/STUDY/SHELL PS1=${PWD}:" " PS2=> SHELL=/bin/bash

ΠŸΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. HOME=/root - это имя домашнСго дирСктория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ оказываСтся послС Π²Ρ…ΠΎΠ΄Π° Π² систСму. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°Π±Ρ€Π°Π² имя ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, я ΠΎΠΊΠ°ΠΆΡƒΡΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ "/root". PATH=/bin:/usr/bin:.:/usr/local/bin:/usr/bin/X11 - эта пСрСмСнная Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просматриваСт "shell" Π² поисках ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ИмСна Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ здСсь двоСточиями. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ просмотра соотвСтствуСт очСрСдности слСдования ΠΈΠΌΠ΅Π½ Π² Ρ‚Ρ€ΠΎΠΏΠ΅. Но ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ поиск происходит срСди Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… встроСнных ΠΊΠΎΠΌΠ°Π½Π΄. Π’ число встроСнных ΠΊΠΎΠΌΠ°Π½Π΄ входят Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "echo", "cd", "pwd", "date". ПослС этого систСма просматриваСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ "/bin", Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "sh", "cp", "mv", "ls" ΠΈ Ρ‚.ΠΏ. Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ "/usr/bin" с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ "cat", "сс", "expr", "nroff", "man" ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π”Π°Π»Π΅Π΅ поиск происходит Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (".", ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "пусто", Ρ‚.Π΅.""), Π³Π΄Π΅ скорСС всСго находятся написанныС Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ПослС Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ наТатия "shell" (послС выполнСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… подстановок) распознаСт имя, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈ осущСствляСт Π΅Π΅ поиск Π² дирСкториях, пСрСчислСнных Π² PATH. Если ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° Π²Π½Π΅ этих Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅Π², ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½Π°. Если присутствуСт нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚ΠΎ Π²Ρ‹Π·Π²Π°Π½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°, которая располоТСна Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, просматриваСмом ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. PATH, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ, добавляя, пСрСставляя ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. IFS= (Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ПолСй) пСрСчисляСт символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слуТат для раздСлСния слов (ΠΏΠΎΠ»Π΅ΠΉ). Π’Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ "ΠΏΡ€ΠΎΠ±Π΅Π»", "табуляция" ΠΈ "ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки", поэтому здСсь слСва ΠΎΡ‚ присваивания Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ ΠΈ занято Π΄Π²Π΅ строки. LOGNAME=root - имя Π²Ρ…ΠΎΠ΄Π° ("имя" ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ). MAIL=/var/spool/mail/root - имя Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поступаСт (элСктронная) ΠΏΠΎΡ‡Ρ‚Π°. PWD=/root - имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ дирСктория PS1=${PWD}:" " - Π²ΠΈΠ΄ ΠΏΡ€ΠΎΠΌΡ‚Π΅Ρ€Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π² ΠΏΡ€ΠΎΠΌΠΏΡ‚Π΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ дирСктория Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π». Π’ΠΎ Π΅ΡΡ‚ΡŒ здСсь Π±ΡƒΠ΄Π΅Ρ‚ "/root: ". PS2=> - этот ΠΏΡ€ΠΎΠΌΡ‚Π΅Ρ€ (здСсь ">") ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡŽ Π²Π²ΠΎΠ΄Π° (Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ строкС) Π½Π΅Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НапримСр, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ скобку "(" ΠΈ послС наТатия Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ этот ΠΏΡ€ΠΎΠΌΠΏΡ‚Π΅Ρ€. Если ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ дальшС Π΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ скобку ")" ΠΈ ΠΎΠ½ исчСзнСт. SHELL=/bin/sh - эта пСрСмСнная ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стандартный shell ("sh"). Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ срСда устанавливаСтся автоматичСски ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму с использованиСм Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚ΠΈΠΏΠ° "/etc/rc" ΠΈ "/etc/.profile". Один ΠΈΠ· способов просто ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ срСду (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Ρ€ΠΎΠΏΡƒ поиска ΠΊΠΎΠΌΠ°Π½Π΄, Π²ΠΈΠ΄ ΠΏΡ€ΠΎΠΌΡ‚Π΅Ρ€Π°, Π²ΠΈΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Ρ†Π²Π΅Ρ‚ экрана ΠΈ Ρ‚.ΠΏ.) ΠΌΠΎΠΆΠ½ΠΎ, размСстив эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² своСм домашнСм Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² спСциализированном Ρ„Π°ΠΉΠ»Π΅ ".profile" (${HOME}/.profile), присвоив Π½ΡƒΠΆΠ½Ρ‹Π΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ срСды. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ это Ρ„Π°ΠΉΠ» Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚Π΅). Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ вашСм Π²Ρ…ΠΎΠ΄Π΅ Π² систСму этот Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ срСду. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠžΠ‘Π―Π—ΠΠ’Π•Π›Π¬ΠΠž Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² вашСм Π”ΠžΠœΠΠ¨ΠΠ•Πœ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π²Ρ…ΠΎΠ΄Π°). Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ, Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ особый статус. Π’Π°ΠΊ, ΠΎΠ½ΠΈ Π½Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ Π½Π° экран простой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ "ls" - Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ с Ρ„Π»Π°Π³ΠΎΠΌ "-a". ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΈ Π½Π΅ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°ΡŽΡ‚ΡΡ ΠΎΠ³ΡƒΠ»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ "rm *". Π‘Π°ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ shell автоматичСски присваиваСт значСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ): ? Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠ΅ послСднСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ; $ Π½ΠΎΠΌΠ΅Ρ€ процСсса; ! Π½ΠΎΠΌΠ΅Ρ€ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ процСсса;

  1. число ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π² shell;
  • ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° строка;

@ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ слов; - Ρ„Π»Π°Π³ΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² shell. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ этим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ (Ρ‚.Π΅ ΠΏΡ€ΠΈ использовании ΠΈΡ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ - shell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅) слСдуСт Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ "$". Π’Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΏΡ€ΠΈ создании ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная "$$", Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт Π½ΠΎΠΌΠ΅Ρ€Ρƒ процСсса, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ расчСт. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ расчСт, выполняСмый ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько процСссов, автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΎ порядку. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½ΠΎΠΌΠ΅Ρ€ процСсса Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ имя (Π½Π΅ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π° мСсто ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ). Достоинство являСтся ΠΈ Π³Π»Π°Π²Π½Ρ‹ΠΌ нСдостатком Ρ‚Π°ΠΊΠΎΠ³ΠΎ способа имСнования Ρ„Π°ΠΉΠ»ΠΎΠ². НСизвСстно, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π±ΡƒΠ΄ΡƒΡ‚ присвоСны Ρ„Π°ΠΉΠ»Π°ΠΌ. И, Ссли Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ процСсса ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ„Π°ΠΉΠ» "Π½Π΅ глядя", Ρ‚.Π΅., ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ Π½Π΅ΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ $$, Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ создаСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Ρ‹Π·ΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€ΠΈΡ‚Π°Ρ‚ΠΎΡ€Π° ВслСд Π·Π° рСгистрациСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² систСмС (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ login) вызываСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ языка SHELL. Если рСгистрационный справочник ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ содСрТит Ρ„Π°ΠΉΠ».profile, Ρ‚ΠΎ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ принята хотя Π±Ρ‹ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ выполняСт этот Ρ„Π°ΠΉΠ» (подразумСваСтся, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ».profile содСрТит ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹). ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ: -c строка ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строки. -s ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΈΠ· стандартного Ρ„Π°ΠΉΠ»Π° Π²Π²ΠΎΠ΄Π°. БообщСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² стандартный Ρ„Π°ΠΉΠ» диагностик. -i Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ символом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° "0" являСтся Π·Π½Π°ΠΊ -, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.profile.

ΠŸΠ ΠžΠ“Π ΠΠœΠœΠΠ«Π• БВРУКВУРЫ===

Как Π²ΠΎ всяком языкС программирования Π² тСкстС Π½Π° языкС shell ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ "#". ВсС, Ρ‡Ρ‚ΠΎ находится Π² строкС (Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅) Π»Π΅Π²Π΅Π΅ этого символа, воспринимаСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. НапримСр,

# Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

Как Π²ΠΎ всяком ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌ языкС программирования Π² языкС shell Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. Ряд ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄. Π’ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия, которая ΠΈ опрСдСляСт Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ продолТСния вычислСний.

Команда test ("")

Команда test провСряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ условия. Π‘ использованиСм этой (встроСнной) ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ Ρ†ΠΈΠΊΠ»Π° языка shell. Π”Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Test условиС

[ условиС ]

ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, Ρ‚.Π΅. вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ условиСм слово "test", Π±ΡƒΠ΄Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ условиС Π² скобки, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎ для программистов. На самом Π΄Π΅Π»Π΅ shell Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкС "[", ΠΊΠ°ΠΊ слову, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ "test". ΠœΠ΅ΠΆΠ΄Ρƒ скобками ΠΈ содСрТащимся Π² Π½ΠΈΡ… условиСм ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями ΠΈ символом сравнСния ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π’ shell ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ условия Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… "Ρ‚ΠΈΠΏΠΎΠ²". Π£Π‘Π›ΠžΠ’Π˜Π― ΠŸΠ ΠžΠ’Π•Π ΠšΠ˜ Π€ΠΠ™Π›ΠžΠ’: -f file Ρ„Π°ΠΉΠ» "file" являСтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ; -d file Ρ„Π°ΠΉΠ» "file" - ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³; -с file Ρ„Π°ΠΉΠ» "file" - ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»; -r file имССтся Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° "file"; -w file имССтся Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° запись Π² Ρ„Π°ΠΉΠ» "file"; -s file Ρ„Π°ΠΉΠ» "file" Π½Π΅ пустой.

Π£Π‘Π›ΠžΠ’Π˜Π― ΠŸΠ ΠžΠ’Π•Π ΠšΠ˜ БВРОК: str1 = str2 строки "str1" ΠΈ "str2" ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚; str1 != str2 строки "str1" ΠΈ "str2" Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚; -n str1 строка "str1" сущСствуСт (нСпустая); -z str1 строка "str1" Π½Π΅ сущСствуСт (пустая). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

X="who is who"; export x; [ "who is who" = "$x" ]; echo $? 0 x=abc ; export x ; [ abc = "$x" ] ; echo $? 0 x=abc ; export x ; [ -n "$x" ] ; echo $? 0 x="" ; export x ; [ -n "$x" ] ; echo $? 1

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° стандартных значСния условия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСсто условия (для этого Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ скобки). Π£Π‘Π›ΠžΠ’Π˜Π― Π‘Π ΠΠ’ΠΠ•ΠΠ˜Π― Π¦Π•Π›Π«Π₯ Π§Π˜Π‘Π•Π›: x -eq y "x" Ρ€Π°Π²Π½ΠΎ "y", x -ne y "x" Π½Π΅Ρ€Π°Π²Π½ΠΎ "y", x -gt y "x" большС "y", x -ge y "x" большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ "y", x -lt y "x" мСньшС "y", x -le y "x" мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ "y". Π‘Π›ΠžΠ–ΠΠ«Π• Π£Π‘Π›ΠžΠ’Π˜Π―: Π Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: ! (not) ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. -o (or) соотвСтствуСт логичСскому "Π˜Π›Π˜". -a (and) соотвСтствуСт логичСскому "И".

Условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "if"

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "if" ΠΈΠΌΠ΅Π΅Ρ‚ структуру

If условиС then список

Π—Π΄Π΅ΡΡŒ "elif" сокращСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΡ‚ "else if" ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован наряду с ΠΏΠΎΠ»Π½Ρ‹ΠΌ, Ρ‚.Π΅. допускаСтся Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² "if" (ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²). РазумССтся "список" Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ случаС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ осмыслСнный ΠΈ допустимый Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС. Бамая усСчСнная структура этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

If условиС then список fi

Ссли Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ условиС (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ это ΠΊΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ "0", Ρ‚ΠΎ выполняСтся "список", ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ пропускаСтся. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. ΠŸΡƒΡΡ‚ΡŒ написан "if-1"

If [ $1 -gt $2 ]

then pwd else echo $0: Hello!

Π’ΠΎΠ³Π΄Π° Π²Ρ‹Π·ΠΎΠ² if-1 12 11 даст /home/sae/STUDY/SHELL Π° if-1 12 13 даст if-1: Hello!

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π·ΠΎΠ²Π° ("case")

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±ΠΎΡ€Π° "case" ΠΈΠΌΠ΅Π΅Ρ‚ структуру:

Case строка in

шаблон) список команд;; шаблон) список команд;; ... шаблон) список команд;;

Π—Π΄Π΅ΡΡŒ "case" "in" ΠΈ "esac" - слуТСбныС слова. "Π‘Ρ‚Ρ€ΠΎΠΊΠ°" (это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ ΠΎΠ΄ΠΈΠ½ символ) сравниваСтся с "шаблоном". Π—Π°Ρ‚Π΅ΠΌ выполняСтся "список ΠΊΠΎΠΌΠ°Π½Π΄" Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ строки. НСпривычно выглядят Π² ΠΊΠΎΠ½Ρ†Π΅ строк Π²Ρ‹Π±ΠΎΡ€Π° ";;", Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ здСсь ";" Π±Ρ‹Π»ΠΎ Π±Ρ‹ ошибкой. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄. Если эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ записаны Π² ΠΎΠ΄Π½Ρƒ строку, Ρ‚ΠΎ символ ";" Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ послСдняя строка Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ шаблон "*", Ρ‡Ρ‚ΠΎ Π² структурС "case" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ "любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅". Π­Ρ‚Π° строка выбираСтся, Ссли Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ совпадСниС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (здСсь $z) Π½ΠΈ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ€Π°Π½Π΅Π΅ записанных шаблонов, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… скобкой ")". ЗначСния ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² порядкС записи.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° с пСрСчислСниСм ("for")

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° "for" ΠΈΠΌΠ΅Π΅Ρ‚ структуру:

For имя

do список ΠΊΠΎΠΌΠ°Π½Π΄ done Π³Π΄Π΅ "for" - слуТСбноС слово ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Ρ‚ΠΈΠΏ Ρ†ΠΈΠΊΠ»Π°, "do" ΠΈ "done" - слуТСбныС слова, Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°. ΠŸΡƒΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° "lsort" прСдставлСна ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ

For i in file_1 file_2 file_3 do proc_sort $i done

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ имя "i" ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎ имя ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ shell-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ пСрСчислСнныС значСния (i=file_1, i=file_2, i=file_3), ΠΈ выполняСтся Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° "proc_sort". Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ° "for i in *", ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π°Ρ "для всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°". ΠŸΡƒΡΡ‚ΡŒ "proc_sort" Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ прСдставляСтся ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ

Cat $1 | sort | tee /dev/lp > ${1}_sorted

Ρ‚.Π΅. ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сортировки выводятся Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ("/dev/lp") ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Ρ‹ file_1_sorted file_2_sorted ΠΈ file_3_sorted

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° с истинным условиСм ("while")

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° "while", Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ расчСтов, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° нСизвСстСн Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ этот список Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вычислСний Π² Ρ†ΠΈΠΊΠ»Π΅. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° "while" ΠΈΠΌΠ΅Π΅Ρ‚ структуру:

While условиС

do список ΠΊΠΎΠΌΠ°Π½Π΄ done Π³Π΄Π΅ "while" - слуТСбноС слово ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Ρ‚ΠΈΠΏ Ρ†ΠΈΠΊΠ»Π° с истинным условиСм. Бписок ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° (ΠΌΠ΅ΠΆΠ΄Ρƒ "do" ΠΈ "done") повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° сохраняСтся ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ условия (Ρ‚.Π΅. ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ послСднСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° Ρ€Π°Π²Π΅Π½ "0") ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ» Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ("break", "continue" ΠΈΠ»ΠΈ "exit"). ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Ρ†ΠΈΠΊΠ» условиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Команда "break [n]" позволяСт Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°. Если "n" отсутствуСт, Ρ‚ΠΎ это эквивалСнтно "break 1". "n" ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ число Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Π΄ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "break 3" - Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "break" ΠΊΠΎΠΌΠ°Π½Π΄Π° "continue [n]" лишь ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π° ΠΠΠ§ΠΠ›Πž Ρ†ΠΈΠΊΠ»Π°. Она Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. НапримСр, "continue 2" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ (Ссли ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ· Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹) Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Команда "exit [n]" позволяСт Π²Ρ‹ΠΉΡ‚ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° "0" ΠΈΠ»ΠΈ "n" (Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ "n" ΡƒΠΊΠ°Π·Π°Π½). Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ†ΠΈΠΊΠ»Π°Ρ…. Π”Π°ΠΆΠ΅ Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ) расчСта Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° с Π»ΠΎΠΆΠ½Ρ‹ΠΌ условиСм ("until")

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° "until" ΠΈΠΌΠ΅Π΅Ρ‚ структуру:

Until условиС

do список ΠΊΠΎΠΌΠ°Π½Π΄ done Π³Π΄Π΅ "until" - слуТСбноС слово ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Ρ‚ΠΈΠΏ Ρ†ΠΈΠΊΠ»Π° с Π»ΠΎΠΆΠ½Ρ‹ΠΌ условиСм. Бписок ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° (ΠΌΠ΅ΠΆΠ΄Ρƒ "do" ΠΈ "done") повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° сохраняСтся Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ условия ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ» Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ("break", "continue" ΠΈΠ»ΠΈ "exit"). ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Ρ†ΠΈΠΊΠ» условиС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° "while" состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ условиС Ρ†ΠΈΠΊΠ»Π° провСряСтся Π½Π° Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ (Π½Π° Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ послСднСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°) провСряСтся ΠŸΠžΠ‘Π›Π• ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ (Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ!) выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

Until false do

read x if [ $x = 5 ] then echo enough ; break else echo some more fi

Π—Π΄Π΅ΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с бСсконСчным Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΆΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° слов (повторяя Π½Π° экранС Ρ„Ρ€Π°Π·Ρƒ "some more"), ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½ΠΎ "5". ПослС этого выдаСтся "enough" ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° "break" ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°.

ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚

:

НичСго Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "0".".

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² shell

Ѐункция позволяСт ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ список ΠΊΠΎΠΌΠ°Π½Π΄ shell для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ выполнСния. ОписаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

Имя() { список команд }

послС Ρ‡Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ происходит ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ создаСтся Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса. Она выполняСтся Π² срСдС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ процСсса. АргумСнты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ становятся Π΅Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ; имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - Π΅Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ "return [n]", Π³Π΄Π΅ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅) "n" - ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ("trap")

Π‘Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚ прСрывания. НаиболСС часто приходится Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ прСрываниями, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ сигналам: 0 Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, 1 ΠΎΡ‚Π±ΠΎΠΉ (ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π°), 2 ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ , 9 ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π΅ пСрСхватываСтся), 15 ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ выполнСния. Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ сущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° "trap", ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

Trap "список ΠΊΠΎΠΌΠ°Π½Π΄" сигналы

Если Π² систСмС Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ прСрывания, Ρ‡ΡŒΠΈ сигналы пСрСчислСны Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π» Π² "сигналы", Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ "список ΠΊΠΎΠΌΠ°Π½Π΄", послС Ρ‡Π΅Π³ΠΎ (Ссли Π² спискС ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° "exit") ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрнСтся Π² Ρ‚ΠΎΡ‡ΠΊΡƒ прСрывания ΠΈ продолТится Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. НапримСр, Ссли ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ прСрываниям выполнСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² "/tmp", Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ "trap":

Trap "rm /tmp/* ; exit 1" 1 2 15

которая ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Ρ„Π°ΠΉΠ»Π°. Π—Π΄Π΅ΡΡŒ, послС удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ осущСствлСн Π²Ρ‹Ρ…ΠΎΠ΄ "exit" ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

=====================================================

Π›ΠΠ‘ΠžΠ ΠΠ’ΠžΠ ΠΠΠ― Π ΠΠ‘ΠžΠ’Π β„– 1 (врСмя выполнСния -- 3 часа)

Π’Π΅ΠΌΠ°: ”ВвСдСниС Π² shell ”

1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² shell

Shell– это ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ процСссор), ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ интСрфСйса ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ ядром Unix. SolarisΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ основных ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… процСссора:

    ΠŸΡ€ΠΈΠ½ΡΡ‚Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ процСссор Bourne-- /sbin/sh

    ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ процСссор C -- /bin/csh

    ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ процСссор Korn-- ./bin/ksh

ΠšΡ€ΠΎΠΌΠ΅ пСрСчислСнных, SolarisпрСдоставляСт Π΅Ρ‰Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ:

    J-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° -- /sbin/jsh

    Restricted Korn l -- /usr/ bin/rsh

    T-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° -- /usr/bin/tcsh

    GNU Bourne Again -- /usr/bin/bash

    Z-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° – usr/bin/zsh

Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ процСссора являСтся вопросом ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ.

2. Запуск ΠΊΠΎΠΌΠ°Π½Π΄

Π›ΡŽΠ±Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² Unix состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ запускаСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹), ΠΎΠΏΡ†ΠΈΠΉ (ΠΊΠ»ΡŽΡ‡Π΅ΠΉ) ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС являСтся ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ»ΠΈ Π·Π½Π°ΠΊΠΈ табуляции.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

$ /bin/ping –t 10 192.168.2.13

Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚

ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ shell

Если ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ указываСтся ΠΏΡƒΡ‚ΡŒ ΠΊ исполняСмому Ρ„Π°ΠΉΠ»Ρƒ, Ρ‚ΠΎ ОБ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ просматриваСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH. Если Π² просматриваСмом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ находится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚ΠΎ ΠΎΠ½Π° запускаСтся Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΈ поискС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ просматриваСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ Π½Π΅ Π·Π°Π΄Π°Π½ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH.

! Π’ цСлях бСзопасности администратору Π½Π΅ рСкомСндуСтся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ домашниС (Π»ΠΈΡ‡Π½Ρ‹Π΅) ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH.

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

Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ

$ / usr / local / bin / my _ program

Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰Π΅Π³ΠΎ (Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ) ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

$ ../ local / bin / my _ program

Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

$ ./ my _ program

3. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы Π² shell

НСкоторыС символы Π² shell ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

3.1. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ²

? (Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ) соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΎΠ΄Π½ΠΎΠΌΡƒ символу, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ;

(ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π³Ρ€ΡƒΠΏΠΏΡƒ символов (выбираСтся ΠΎΠ΄ΠΈΠ½ символ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹);

- (Π·Π½Π°ΠΊ β€œΠΌΠΈΠ½ΡƒΡβ€) опрСдСляСт Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых символов;

! (Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ) ΠΎΡ‚Π²Π΅Ρ€Π³Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π° Π½ΠΈΠΌ Π³Ρ€ΡƒΠΏΠΏΡƒ символов;

* (символ β€œΠ·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ°β€) соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ количСству символов, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

3.2. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ пСрСнаправлСния Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°

< - ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°;

>, >> - ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π°;

2>, 2>> - ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…;

| - ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€.

3.3. Π‘ΠΈΠΌΠΎΠ»Ρ‹ подстановки

$имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ q - подстановка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…;

$(ΠΊΠΎΠΌΠ°Π½Π΄Π°) ΠΈΠ»ΠΈ `ΠΊΠΎΠΌΠ°Π½Π΄Π°` - подстановка ΠΊΠΎΠΌΠ°Π½Π΄;

~ - Ρ‚ΠΈΠ»ΡŒΠ΄Π°-подстановка.

4. Поиск

Для быстрого поиска Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° whereis, для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ – ΠΊΠΎΠΌΠ°Π½Π΄Π°find(поиск Ρ„Π°ΠΉΠ»ΠΎΠ², ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ трСбованиям;).

5. ВСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi

ВСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ viявляСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π² любом Unix. ΠšΡ€ΠΎΠΌΠ΅ рСдактирования тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для рСдактирования ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi ΠΈΠΌΠ΅Π΅Ρ‚ 3 Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ (см.рисунок).

Π’Ρ…ΠΎΠ΄ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi

Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· vi

Π—Π½Π°ΠΊΠΎΠΌ ”~” (Ρ‚ΠΈΠ»ΡŒΠ΄Π°) Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ пустыС (Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅) строки Ρ„Π°ΠΉΠ»Π°.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ являСтся ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ вводятся Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ клавиш (Π½Π° экранС Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ).

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ тСксту Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стрСлок ΠΈ клавиш (Π²Π»Π΅Π²ΠΎ), (Π²Π½ΠΈΠ·), (Π²Π²Π΅Ρ€Ρ…), (Π²ΠΏΡ€Π°Π²ΠΎ).

НСкоторыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ vi ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки Π² Π±ΡƒΡ„Π΅Ρ€

YΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ курсора

ЗанСсСниС ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… курсором символы Π² Π±ΡƒΡ„Π΅Ρ€

Вставка Π½ΠΎΠ²ΠΎΠΉ строки снизу

Вставка Π½ΠΎΠ²ΠΎΠΉ строки свСрху

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ послС курсора

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ послС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки

Вставка ΠΏΠ΅Ρ€Π΅Π΄ курсором

Вставка ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строкой

Π—Π°ΠΌΠ΅Π½Π° символа Π½Π° символ, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

Вставка тСкста ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π°

. (Ρ‚ΠΎΡ‡ΠΊΠ°)

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ послСднСй Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠžΡ‚ΠΌΠ΅Π½Π° послСднСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠžΡ‚ΠΌΠ΅Π½Π° всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строкС

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ символа Π½Π°Π΄ курсором

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Π²ΠΎΠ΄Π° всС Π½Π°Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ символы Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² тСкст.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ послСднСй строки вводимая ΠΊΠΎΠΌΠ°Π½Π΄Π° отобраТаСтся Π² послСднСй строкС экрана.

6. ΠŸΠΎΠΌΠΎΡ‰ΡŒ

Π’ Unix имССтся элСктронный справочник, содСрТащий описаниС прСдназначСния ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΡ… синтаксиса, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ΠΈ ΠΏΡ€. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ вызываСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ man:

7. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ shell

who – Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ…;

echo – Π²Ρ‹Π²ΠΎΠ΄ сообщСний Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»;

banner – Π²Ρ‹Π²ΠΎΠ΄ сообщСний Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ;

man – Π²Ρ‹Π·ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ справочной систСмы;

date – Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚Ρ‹;

write – ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ;

mesg – Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΡ€Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ;

mail – ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ°/ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‡Ρ‚Ρ‹;

news – знакомство с новостями систСмы;

pwd – Π²Ρ‹Π²ΠΎΠ΄ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°;

cd – ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°;

ls – Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ содСрТимом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°;

mkdir – созданиС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°;

rmdir – ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°;

touch – ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»Π°;

cp – ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²;

cat – объСдинСниС ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран содСрТимого Ρ„Π°ΠΉΠ»ΠΎΠ²;

more – постраничный просмотр содСрТимого Ρ„Π°ΠΉΠ»Π°.

mv – ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°;

rm – ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°;

alias – созданиС псСвдонима;

tr – ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ символов;

exit – Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎshell -Π°;

tee – ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°;

cut – Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ· строки;

grep – поиск ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ;

pr – Π²Ρ‹Π²ΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° Π½Π° стандартный Π²Ρ‹Π²ΠΎΠ΄ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅;

sort – сортировка;

head – Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… строк Ρ„Π°ΠΉΠ»Π°;

tail – Π²Ρ‹Π²ΠΎΠ΄ послСдних строк Ρ„Π°ΠΉΠ»Π°;

wc – подсчСт количСства символов, слов ΠΈ строк;

read , echo - Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…;

test - ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π½ΠΈΠ΅ значСния выраТСния;

expr , let - вычислСниС арифмСтичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ;

8. Shell -ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ShellпозволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с shell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€Π°Π²Π°ΠΌ доступа ΠΏΡ€Π°Π²ΠΎ Π½Π° исполнСниС:

$ chmod +x имя_Ρ„Π°ΠΉΠ»Π°_с_ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ

Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Π² shell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… организуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

if-then-else

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π°:

Π£ΠŸΠ ΠΠ–ΠΠ•ΠΠ˜Π―

1. КакиС ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ Π² Π²Ρ‹Π΄Π°Ρ‡Π΅ привСтствСнного сообщСния Π½Π° экран? КакиС Π½Π΅Ρ‚? ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

$ echo hello

$ Echo hello

$ echo HELLO, WORLD

$ banner hello

$ BANNER HELLO , WORLD

2. Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ echo ΠΈbanner.

3. Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Ρ‚Ρƒ Π² Π΄Π²Π΅ строки: Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ο‚ΎΠ΄Π΅Π½ΡŒ, мСсяц, Π³ΠΎΠ΄, Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉο‚ΎΡ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя, снабдив Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.

4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ write , ΠΏΠΎΡˆΠ»ΠΈΡ‚Π΅ сообщСниС Π½Π° консоль. ΠŸΠΎΡˆΠ»ΠΈΡ‚Π΅ сообщСния Π½Π° нСсколько Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ mesg , ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π»ΠΈ сообщСния Π½Π° Π’Π°Ρˆ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Π—Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚Π΅ сообщСния. Какова Π±ΡƒΠ΄Π΅Ρ‚ рСакция систСмы, Ссли ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ попытаСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π’Π°ΠΌ сообщСниС?

6. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ имя своСго HOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

7. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², начиная с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /export/homeс ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄cd, ls ΠΈpwd.

8.. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π² своСм HOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π²ΠΈΠ΄Π°:

fruits flowers

apple pear grapes rose violet dandelion

dark green

9. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² своСм HOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, создайтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку:

A/B/C/D

10. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² своСм HOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ всС ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°A.

11. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² HOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, создайтС Ρ„Π°ΠΉΠ»macintosh Π² ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡΡ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅apple ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…dark ΠΈgreen . Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³f lowers . ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅f lowers , скопируйтС всС ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈf ruits вмСстС с находящимися Π² Π½ΠΈΡ… Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³basket .

12. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ f lowers , ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³f ruits .

13. ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» .profile с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄cat ΠΈmore.

14. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π² HOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ тСкстовый Ρ„Π°ΠΉΠ»myfile ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹cat. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ тСкстовый Ρ„Π°ΠΉΠ»M y F ile, записав Π² Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ строки. Бколько Ρ„Π°ΠΉΠ»ΠΎΠ² Ρƒ Вас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ? ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

15. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ содСрТимоС созданного Π² Π·Π°Π΄Π°Ρ‡Π΅ 2.2 Ρ„Π°ΠΉΠ»Π° myfile . Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»myfile Π² Ρ„Π°ΠΉΠ»mycopy. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ содСрТимоС ΠΎΠ±ΠΎΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

16. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» mycopy Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³flowers.

17. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² HOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, создайтС ссылкуm y link Π½Π° Ρ„Π°ΠΉΠ»mycopy , находящийся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅flowers . ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»-ссылку.

18. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ строку ΠΊ Ρ„Π°ΠΉΠ»Ρƒ my link . КакиС ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²my link , my copy , my file измСнились? ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

19. Π‘ использованиСм ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ число ссылок? ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ число ссылок для Ρ„Π°ΠΉΠ»ΠΎΠ² my link , my copy , my file .

Π£Π΄Π°Π»ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» mycopy . Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ с Ρ„Π°ΠΉΠ»ΠΎΠΌ-ссылкой? ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ число ссылок для Ρ„Π°ΠΉΠ»ΠΎΠ²my link , my file .

20. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ псСвдоним dir , Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ содСрТимоС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

21. Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ сСанс Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ вновь Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ псСвдоним dir ? Π§Ρ‚ΠΎ слСдуСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ псСвдоним Β«Π½Π΅ тСрялся» ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами?

22. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ псСвдоним point , Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ список находящихся Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ.

23. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ touch , создайтС Ρ„Π°ΠΉΠ»Ρ‹ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ:

Π¨Π°Π±Π»ΠΎΠ½Ρƒ a * соотвСтствовало 5 Ρ„Π°ΠΉΠ»ΠΎΠ²;

Π¨Π°Π±Π»ΠΎΠ½Ρƒ * a соотвСтствовало 4 Ρ„Π°ΠΉΠ»Π°;

Π¨Π°Π±Π»ΠΎΠ½Ρƒ ??.? соотвСтствовало 3 Ρ„Π°ΠΉΠ»Π°;

Π¨Π°Π±Π»ΠΎΠ½Ρƒ * aa * соотвСтствовало 2 Ρ„Π°ΠΉΠ»Π°;

Π¨Π°Π±Π»ΠΎΠ½Ρƒ??? соотвСтствовал 1 Ρ„Π°ΠΉΠ».

24. ΠšΠ°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ слСдуСт ввСсти, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π°) вывСсти ΠΈΠΌΠ΅Π½Π° всСх Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ;

Π±) вывСсти ΠΈΠΌΠ΅Π½Π° всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° β€œ.txt” ;

Π²) вывСсти ΠΈΠΌΠ΅Π½Π° всСх Ρ„Π°ΠΉΠ»ΠΎΠ², содСрТащиС слово β€œmy” ;

25. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ всС строчныС Π±ΡƒΠΊΠ²Ρ‹ Π½Π° прописныС, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ – всС прописныС Π½Π° строчныС. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° всС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

26. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ * . Π£Π΄Π°Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот Ρ„Π°ΠΉΠ». Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΏΡ€ΠΈ использовании символов Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½ Ρ„ΠΏΠΉΠ»ΠΎΠ²!

27. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ», Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ символ Β«ΠΏΡ€ΠΎΠ±Π΅Π»Β». Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»?

28. Π‘ использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat ΡƒΠ΄Π²ΠΎΠΉΡ‚Π΅ содСрТимоС Ρ„Π°ΠΉΠ»Π°, приписав исходноС содСрТимоС ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ этого ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π°. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³flowers . Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„Π°ΠΉΠ»spisok список содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°flowers. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ содСрТимоС Ρ„Π°ΠΉΠ»Π°

29. ΠŸΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ». Какова рСакция систСмы? Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΠ² сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² Ρ„Π°ΠΉΠ»myerror . Π§Ρ‚ΠΎ Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π° экранС? ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»myerror .

30. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ для получСния списка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠΌΠ΅Π½ ΠΈ ΠΏΡ€Π°Π² доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ находятся Π² Π’Π°ΡˆΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

31. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ построСнный ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ список сохранялся Π² Ρ„Π°ΠΉΠ»Π΅ spisok Π’Π°ΡˆΠ΅Π³ΠΎHOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π° Π½Π° экран Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ число Ρ„Π°ΠΉΠ»ΠΎΠ² Π² спискС.

32. Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π° экран содСрТимоС Ρ„Π°ΠΉΠ»Π° /etc/passwd , упорядочСнноС ΠΏΠΎ полю с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

33. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ псСвдоним logged on , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран упорядочСнный Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС список ΠΈΠΌΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² систСмС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

33. Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ Π½Π° экран большими Π±ΡƒΠΊΠ²Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ date ΠΈbanner.

34. ΠŸΡ€ΠΈΡΠ²ΠΎΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ IAM Π’Π°ΡˆΠ΅ имя рСгистрации. ЗапуститС Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½shell . Π’ΠΈΠ΄ΠΈΡ‚Π΅ Π»ΠΈ Π’Ρ‹ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ? Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π΅ Π² ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΌshell ? Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉIAM Π² ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΌshell . Π’Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠ³ΠΎshell . ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² исходномshell . ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

35. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ shell -ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒinfo , которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти имя, адрСс, число, мСсяц ΠΈ Π³ΠΎΠ΄ роТдСния ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π²Π²ΠΎΠ΄Ρƒ порядкС

36. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ shell -ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π²ΠΎΠ΄ числа, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ число Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉY , ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅β€œY is greater than 7”, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Y большС 7, ΠΈβ€œY is not greater than 7” Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

37. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ shell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ статистику:

а) своС имя;

Π±) количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°;

Π²) ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ свой Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Π΄Π»ΠΈΠ½Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² символах;

38. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ shell -ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая опрСдСляСт количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС, Ссли количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ Ρ€Π°Π²Π½ΠΎ Ρ‚Ρ€Π΅ΠΌ, ΠΈΠ»ΠΈ сами Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ссли ΠΈΡ… количСство Ρ€Π°Π²Π½ΠΎ Ρ‚Ρ€Π΅ΠΌ.

39. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ shell -ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π²ΠΎΠ΄ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° соотвСтствиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² систСмС ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имяHOME -ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ, Π² случаС нСдопустимого ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ сообщСниС ΠΎΠ± ошибкС.

40. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ shell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ hello , ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

АргумСнт β€œ-d” - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒdate ;

АргумСнт β€œ-l” - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ содСрТимоС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°;

    ΠΏΡ€ΠΈ отсутствии Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ справку ΠΎ своих опциях.

41. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ words , которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π²ΠΎΠ΄ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ слову Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π²Π²Π΅Π΄Π΅Ρ‚ ΡΠ»ΠΎΠ²ΠΎβ€œ end ” . Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ всС Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ слова. ПослС Π²Π²ΠΎΠ΄Π° ΡΠ»ΠΎΠ²Π°β€œ end ” Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π° экран всС Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ слова.

42. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ систСмы Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ содСрТало ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π½ΠΎΠ΅ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

43. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ virus , которая ΡΠΎΠ·Π΄Π°ΡŽΡ‚ свою Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ копию с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ сама сСбя удаляСт.

44. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ virus 2 , которая ΠΈΡ‰Π΅Ρ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ языка ΠΈ добавляСт Π² ΠΈΡ… тСкст ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран ΡΠ»ΠΎΠ²Π°β€œ Infected !”.

45. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ virus 3 , которая добавляСт ΠΊ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ Сю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ языка свой ΠΊΠΎΠ΄ для зараТСния Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

46. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ virus 4 , ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π² ваш вирус Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π·Π°Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π·Π°Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ удалялся ΠΈΠ· Π·Π°Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

47. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ antivirus , которая Π±Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π° всС Π·Π°Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ вашим вирусомshell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

48. ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π° Π·Π°Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΅ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π½ΠΎ ΠΈ β€œΠ²Ρ‹Π»Π΅Ρ‡ΠΈΠ²Π°Π»Π°β€ Π±Ρ‹ ΠΈΡ…, сохраняя Π·Π°Ρ€Π°ΠΆΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π² Π½ΠΎΠ²ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ . vir , ΠΈ снимая с Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ выполнСния.

49. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ virus 5 , которая Π±Ρ‹:

Π°) Π·Π°Ρ€Π°ΠΆΠ°Π»Π° Π±Ρ‹ вирусом shell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Ρƒls ;

Π±) Π²Π΅Π»Π° Π±Ρ‹ сСбя ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° ls , Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ выдавая Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

50. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ virus6 Π½Π° основС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌvirus 2 -virus 5 , Π·Π°Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ нСльзя Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π’Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉantivirus , Π° Π·Π°Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ происходило Π±Ρ‹ ΠΏΡ€ΠΈ любом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉPATH .

51. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ supervirus , запуск ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π’Π°ΡˆΠΈ Ρ„Π°ΠΉΠ»Ρ‹ вирусом, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅, Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π’Π°ΡˆΠ΅ΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму дСлаСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π’Π°ΡˆΠΈΡ… Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Π΅ΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°supervirus стираСт сСбя послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запуска.

52. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ superantivirus , которая ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ β€œΠΈΠ·Π»Π΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚β€ (Ссли ΡƒΠΊΠ°Π·Π°Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ опция) всС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΠΎΡ‚ всСх Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… вирусов.

  • Tutorial

Π—Π°Ρ‡Π΅ΠΌ ΠΈ для ΠΊΠΎΠ³ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡ?

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ это Π±Ρ‹Π»Π° памятка для студСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ систСмами. Π˜Π½Ρ‹ΠΌΠΈ словами, ΡΡ‚Π°Ρ‚ΡŒΡ рассчитана Π½Π° Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² unix-ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π½ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ эффСктивно с нСю Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

Π—Π΄Π΅ΡΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ пСрСсказа ΠΌΠ°Π½ΠΎΠ² (Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ), ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ отмСняСт ΠΈ Π½Π΅ замСняСт ΠΈΡ… Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. ВмСсто этого я расскаТу ΠΎ Π³Π»Π°Π²Π½Ρ‹Ρ… Π²Π΅Ρ‰Π°Ρ… (ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…, ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ… ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ…), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ с самого Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² unix shell-Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π° происходила эффСктивно ΠΈ приятно.

Π‘Ρ‚Π°Ρ‚ΡŒΡ касаСтся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, с ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ шСллом (ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ zsh ΠΈΠ»ΠΈ bash)ΠΈ достаточно ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ стандартных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ шСлл

Shell (шСлл, ΠΎΠ½ ΠΆΠ΅ «командная строка», ΠΎΠ½ ΠΆΠ΅ CLI, ΠΎΠ½ ΠΆΠ΅ «консоль», ΠΎΠ½ ΠΆΠ΅ Β«Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Β», ΠΎΠ½ ΠΆΠ΅ Β«Ρ‡Π΅Ρ€Π½ΠΎΠ΅ окошко с Π±Π΅Π»Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠΎΠ²ΠΊΠ°ΠΌΠΈΒ») -- это тСкстовый интСрфСйс общСния с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой (Π½Ρƒ, строго говря, это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° , которая Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ интСрфСйс обСспСчиваСт, Π½ΠΎ сСйчас это Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ нСсущСствСнно).

Π’ Ρ†Π΅Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· шСлл выглядит Ρ‚Π°ΠΊ: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ (Ρ‚.Π΅. Π²Ρ‹) с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Enter, систСма выполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π° экран Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния, ΠΈ снова ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ шСлла:

Π¨Π΅Π»Π» - это основной способ для взаимодСйствия со всСми Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ сСрвСрными систСмами.

Π“Π΄Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ систСмы с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой?

Π“Π΄Π΅ вас ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΆΠΈΠ΄Π°Ρ‚ΡŒ unix-ΠΎΠ²Ρ‹ΠΉ шСлл, популярныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:
  • MacOS (bash);
  • ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ Π½Π° сСрвСр ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΠ»ΠΈ для Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;
  • домашний Ρ„Π°ΠΉΠ»-сСрвСр с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ доступом;
  • Ubuntu, PC-BSD Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅/дСсктопС - unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ систСмы сСгодня просты Π² установкС ΠΈ использовании.

КакиС Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ шСллом?

ЕстСствСнныС Π·Π°Π΄Π°Ρ‡ΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… шСлл ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½, ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌ:
  • интСрактивная Ρ€Π°Π±ΠΎΡ‚Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:
    • Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ компиляции, запуск Π·Π°Π΄Π°Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· make;
    • сравнСниС тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ²;
    • быстрый ad-hoc Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… (количСство ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ip Π² Π»ΠΎΠ³Π΅, распрСдСлСниС записСй ΠΏΠΎ часам/ΠΌΠΈΠ½ΡƒΡ‚Π°ΠΌ ΠΈ Ρ‚.ΠΏ.);
    • Ρ€Π°Π·ΠΎΠ²Ρ‹Π΅ массовыС дСйствия (ΠΏΡ€ΠΈΠ±ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ процСссов; Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с систСмой контроля вСрсий - Ρ€Π΅Π²Π΅Ρ€Ρ‚Π½ΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°Ρ€Π΅Π·ΠΎΠ»Π²ΠΈΡ‚ΡŒ ΠΊΡƒΡ‡Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²);
    • диагностика происходящСго Π² систСмС (сСмафоры, Π»ΠΎΠΊΠΈ, процСссы, дСскрипторы, мСсто Π½Π° дискС ΠΈ Ρ‚.ΠΏ.);
  • скриптованиС:
    • установочныС скрипты, для выполнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСльзя Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² - это Π½Π΅ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²;
    • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для кастомизации ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ шСлла (Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅, ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния) - Ρ‚ΠΎΠΆΠ΅ Π½Π΅ совсСм для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²;
    • ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅ скрипты Ρ‚ΠΈΠΏΠ° массового пСрСкодирования Ρ„Π°ΠΉΠ»ΠΎΠ²;
    • makefile-Ρ‹.

ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги

НачинаСм Ρ€Π°Π±ΠΎΡ‚Ρƒ: Π²ΠΎΠΉΡ‚ΠΈ ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ шСлл ΠΈ ΠΊΠ°ΠΊ ΠΈΠ· Π½Π΅Π³ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ.

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π·Π° машиной, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ установлСна Ubuntu, Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Terminal. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ просто Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ.

На MacOS - Ρ‚ΠΎΠΆΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Terminal.

Для доступа ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ сСрвСру - Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ssh (Ссли локально Ρƒ вас MacOS, Ubuntu ΠΈΠ»ΠΈ другая unix-like систСма) ΠΈΠ»ΠΈ putty (Ссли Ρƒ вас Windows).

ΠšΡ‚ΠΎ я, Π³Π΄Π΅ я?

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
  • hostname - Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ имя ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (сСрвСра), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ сСйчас Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ;
  • whoami - Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ваш Π»ΠΎΠ³ΠΈΠ½ (вашС имя Π² систСмС);
  • tree -d / |less - псСвдографичСскоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π½Π° машинС; Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· пролистывания - q ;
  • pwd - Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ сСйчас Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ; Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ «просто Ρ‚Π°ΠΊΒ», Π²Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (=Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³). ВСроятно, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ выводится Ρƒ вас Π² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΈ (prompt).
  • ls - список Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅; ls /home - список Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅;

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ (history)

Π’Π°ΠΆΠ½ΠΎΠ΅ свойство ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки - история ΠΊΠΎΠΌΠ°Π½Π΄.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄: hostname , ls , pwd , whoami . Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«Π²Π²Π΅Ρ€Ρ…Β». Π’ строкС Π²Π²ΠΎΠ΄Π° появилась прСдыдущая ΠΊΠΎΠΌΠ°Π½Π΄Π°. Клавишами Β«Π²Π²Π΅Ρ€Ρ…Β» ΠΈ Β«Π²Π½ΠΈΠ·Β» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Π½Π°Π·Π°Π΄ ΠΏΠΎ истории. Когда долистаСтС Π΄ΠΎ hostname , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter - ΠΊΠΎΠΌΠ°Π½Π΄Π° выполнится Π΅Ρ‰Π΅ Ρ€Π°Π·.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· истории ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Π° Π΅Ρ‰Π΅ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ДолистайтС ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls , Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ Π½Π΅ΠΉ ΠΊΠ»ΡŽΡ‡ -l (ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ls -l , ΠΏΠ΅Ρ€Π΅Π΄ минусом ΠΏΡ€ΠΎΠ±Π΅Π» Π΅ΡΡ‚ΡŒ, Π° послС - Π½Π΅Ρ‚). НаТмитС Enter - выполнится модифицированная ΠΊΠΎΠΌΠ°Π½Π΄Π°.

ΠŸΡ€ΠΎΠ»ΠΈΡΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ истории, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ - самыС Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ дСйствия ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ°ΠΉΡ‚Π΅.

Copy-paste

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

ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ тСкста являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, это Π²Π΅Ρ€Π½ΠΎ ΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ date +"%y-%m-%d, %A"
Π’Π²ΠΎΠ΄ΠΈΠ»ΠΈ Π»ΠΈ Π²Ρ‹ Π΅Π΅ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ скопировали ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ? Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ man "ΠΎΠΌ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ· справки. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² справкС ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ date Ρ€Π°Π·Π΄Π΅Π» EXAMPLES , скопируйтС ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (Π½Π° всякий случай: Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π° Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, это условноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρƒ).

Как ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» - зависит ΠΎΡ‚ вашСй систСмы ΠΈ ΠΎΡ‚ Π΅Π΅ настроСк, поэтому Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, ΠΊ соТалСнию, Π½Π΅ получится. На Ubuntu ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ‚Π°ΠΊ: ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ - просто Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΡŒΡŽ, вставка - срСдняя ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ. Если Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈΠ»ΠΈ Ссли Ρƒ вас другая систСма - ΠΏΠΎΠΈΡ‰ΠΈΡ‚Π΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ спроситС Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ….

ΠšΠ»ΡŽΡ‡ΠΈ ΠΈ ΠΎΠΏΡ†ΠΈΠΈ

ΠŸΡ€ΠΈ исслСдовании истории ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ‹ ΡƒΠΆΠ΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls Π΅ΡΡ‚ΡŒ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Если Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π΅ просто Ρ‚Π°ΠΊ, ΠΎΠ½Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ простой список:

Akira@latitude-e7240: ~/shell-survival-quide> ls Makefile shell-first-steps.md shell-first-steps.pdf shell-survival-quide.md shell-survival-quide.pdf
Если ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ -l , ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ выводится подробная информация:

Akira@latitude-e7240: ~/shell-survival-quide> ls -l total 332 -rw-rw-r-- 1 akira akira 198 Feb 13 11:48 Makefile -rw-rw-r-- 1 akira akira 15107 Feb 14 22:26 shell-first-steps.md -rw-rw-r-- 1 akira akira 146226 Feb 13 11:49 shell-first-steps.pdf -rw-rw-r-- 1 akira akira 16626 Feb 13 11:45 shell-survival-quide.md -rw-rw-r-- 1 akira akira 146203 Feb 13 11:35 shell-survival-quide.pdf
Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ типичная ситуация: Ссли ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΎΠΏΡ†ΠΈΠΈ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹), ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ мСняСтся. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅: tree / ΠΈ tree -d / , hostname ΠΈ hostname -f .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ просто тСкстовыС строки. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:

Ls -ld /home ls -l /home grep root /etc/passwd

man

man - справка ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, доступным Π½Π° вашСй машинС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ систСмным Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ ΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ C.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅: man grep , man atoi , man chdir , man man .

ΠŸΡ€ΠΎΠ»ΠΈΡΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Π½Π°Π·Π°Π΄ дСлаСтся ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Β«Π²Π²Π΅Ρ€Ρ…Β», Β«Π²Π½ΠΈΠ·Β», Β«PageUpΒ», Β«PageDownΒ», Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· просмотра справки - ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ q . Поиск ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ тСкста Π² справочной ΡΡ‚Π°Ρ‚ΡŒΠ΅: Π½Π°ΠΆΠΈΠΌΠΈΡ‚Π΅ / (прямой слСш), Π²Π²Π΅Π΄ΠΈΡ‚Π΅ тСкст для поиска, Π½Π°ΠΆΠΈΠΌΠΈΡ‚Π΅ Enter. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ вхоТдСниям - клавиша n .

ВсС справочныС ΡΡ‚Π°Ρ‚ΡŒΠΈ дСлятся Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Π‘Π°ΠΌΡ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅:

  • 1 - исполняСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΡˆΠ΅Π»Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (wc , ls , pwd ΠΈ Ρ‚.ΠΏ.);
  • 2 - систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ (fork , dup2 ΠΈ Ρ‚.ΠΏ.)
  • 3 - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (printf , scanf , cos , exec).
Π£ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π½Π°Π΄ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ справку, Π½ΡƒΠΆΠ½ΠΎ Π² случаях совпадСний ΠΈΠΌΠ΅Π½. НапримСр, man 3 printf описываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C, Π° man 1 printf - ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список всСх доступных Π½Π° машинС справочных статСй ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ man -k . (Ρ‚ΠΎΡ‡ΠΊΠ° - Ρ‚ΠΎΠΆΠ΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π΄Ρ‹).

less

Когда Π² нСбольшом ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ тСкст (содСрТимоС ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Π°, Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ man ΠΈ Ρ‚.ΠΏ.), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-Β«ΠΏΠ΅ΠΉΠ΄ΠΆΠ΅Ρ€Ρ‹Β» (ΠΎΡ‚ слова page/страница, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ постраничныС листатСли). Π‘Π°ΠΌΡ‹ΠΉ популярный Π»ΠΈΡΡ‚Π°Ρ‚Π΅Π»ΡŒ - less , ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ обСспСчиваСт Π²Π°ΠΌ пролистываниС, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ man-Ρ‹.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈ сравнитС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:

Cat /etc/bash.bashrc cat /etc/bash.bashrc |less

МоТно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ»ΠΈΡΡ‚Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ сразу Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ…:

Less /etc/bash.bashrc

ΠŸΡ€ΠΎΠ»ΠΈΡΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π²Π²Π΅Ρ€Ρ…ΠΈ ΠΈ Π²Π½ΠΈΠ· - ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Π²Π²Π΅Ρ€Ρ…Β», Β«Π²Π½ΠΈΠ·Β», Β«PageUpΒ», Β«PageDownΒ», Π²Ρ‹Ρ…ΠΎΠ΄ - ΠΊΠ½ΠΎΠΏΠΊΠ° q . Поиск ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ тСкста: Π½Π°ΠΆΠΈΠΌΠΈΡ‚Π΅ / (прямой слСш), Π²Π²Π΅Π΄ΠΈΡ‚Π΅ тСкст для поиска, Π½Π°ΠΆΠΈΠΌΠΈΡ‚Π΅ Enter. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ вхоТдСниям - клавиша n . (Π£Π·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΎ man ? НичСго ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ, для Π²Ρ‹Π²ΠΎΠ΄Π° справки Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ less .)

ΠŸΡ€Π°Π²Π°

Π‘ Π»ΡŽΠ±Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ связан Π½Π°Π±ΠΎΡ€ Β«ΠΏΡ€Π°Π²Β»: ΠΏΡ€Π°Π²ΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π°Π²ΠΎ Π½Π° запись Π² Ρ„Π°ΠΉΠ», ΠΏΡ€Π°Π²ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ». ВсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ дСлятся Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: Π²Π»Π°Π΄Π΅Π»Π΅Ρ† Ρ„Π°ΠΉΠ»Π°, Π³Ρ€ΡƒΠΏΠΏΠ° Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ρ„Π°ΠΉΠ»Π°, всС ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ls -l . НапримСр:

> ls -l Makefile -rw-r--r-- 1 akira students 198 Feb 13 11:48 Makefile
Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ (akira) ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», Π³Ρ€ΡƒΠΏΠΏΠ΅ (students) - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, всСм ΠΏΡ€ΠΎΡ‡ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ - Ρ‚ΠΎΠΆΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Если ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ сообщСниС permission denied , это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ вас нСдостаточно ΠΏΡ€Π°Π²Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² man chmod .

STDIN, STDOUT, ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ (ΠΏΠ°ΠΉΠΏΡ‹)

Π‘ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ связаны 3 стандартных ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…: ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… STDIN , ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… STDOUT , ΠΏΠΎΡ‚ΠΎΠΊ для Π²Ρ‹Π²ΠΎΠ΄Π° ошибок STDERR .

ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ wc , Π²Π²Π΅Π΄ΠΈΡ‚Π΅ тСкст Good day today , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter, Π²Π²Π΅Π΄Ρ‚ΠΈΠ΅ тСкст good day , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+d. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° wc ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ статистику ΠΏΠΎ количСству Π±ΡƒΠΊΠ², слов ΠΈ строк Π² вашСм тСкстС ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ:

> wc good day today good day 2 5 24
Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π²Ρ‹ ΠΏΠΎΠ΄Π°Π»ΠΈ Π² STDIN ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ двухстрочный тСкст, Π° Π² STDOUT ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ числа.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ head -n3 /etc/passwd , Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

> head -n3 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin
Π’ этом случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° head Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Ρ‡ΠΈΡ‚Π°Π»Π° ΠΈΠ· STDIN , Π° Π² STDOUT написала Ρ‚Ρ€ΠΈ строки.

МоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС Ρ‚Π°ΠΊ: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° - это Ρ‚Ρ€ΡƒΠ±Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ STDIN , Π° Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ STDOUT .

Π’Π°ΠΆΠ½Π΅ΠΉΡˆΠ΅Π΅ свойство юниксовой ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-Β«Ρ‚Ρ€ΡƒΠ±Ρ‹Β» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой: Π²Ρ‹Ρ…ΠΎΠ΄ (STDOUT) ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (STDIN) Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Вакая конструкция ΠΈΠ· соСдинСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ называСтся ΠΏΠΎ-английски pipe (Ρ‚Ρ€ΡƒΠ±Π°), ΠΏΠΎ-русски - ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈΠ»ΠΈ ΠΏΠ°ΠΉΠΏ.

ОбъСдинСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ дСлаСтся символом | (Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ Ρ‡Π΅Ρ€Ρ‚Π°)

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ head -n3 /etc/passwd |wc , получится ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

> head -n3 /etc/passwd |wc 3 3 117
ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° head Π²Ρ‹Π΄Π°Π»Π° Π² STDOUT Ρ‚Ρ€ΠΈ строки тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сразу ΠΆΠ΅ ΠΏΠΎΠΏΠ°Π»ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ wc , которая Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ подсчитала количСство символов, слов ΠΈ строк Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ тСкстС.

Π’ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ wc , которая подсчитаСт, сколько слов ΠΈ Π±ΡƒΠΊΠ² Π±Ρ‹Π»ΠΎ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ wc:

> head -n3 /etc/passwd |wc |wc 1 3 24

БоставлСниС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ² (ΠΏΠ°ΠΉΠΏΠΎΠ²) - ΠΎΡ‡Π΅Π½ΡŒ частоС Π΄Π΅Π»ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это дСлаСтся Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «БоставлСниС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°-однострочника».

ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

Π’Ρ‹Π²ΠΎΠ΄ (STDOUT) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ, Π½ΠΎ ΠΈ просто Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ». Π’Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ > (Π·Π½Π°ΠΊ «большС»):

Date > /tmp/today.txt
Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° дискС появится Ρ„Π°ΠΉΠ» /tmp/today.txt . ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π΅Π³ΠΎ содСрТимоС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cat /tmp/today.txt

Если Ρ„Π°ΠΉΠ» с Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡƒΠΆΠ΅ сущСствовал, Π΅Π³ΠΎ староС содСрТимоС Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΎ. Если Ρ„Π°ΠΉΠ» Π½Π΅ сущСствовал, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ создан. ΠšΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ создаСтся Ρ„Π°ΠΉΠ», Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Если Π½Π°Π΄ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π² Π΅Π³ΠΎ ΠΊΠΎΠ½Π΅Ρ†, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ >> :

Date >> /tmp/today.txt
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ записано Π² Ρ„Π°ΠΉΠ»Π΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ вмСсто STDIN ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ любой Ρ„Π°ΠΉΠ». ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:

Wc

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ нСпонятно

Если Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ систСмы, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС (кстати, это относится Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ шСллам):
  • насколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ сформулируйтС вопрос ΠΈΠ»ΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ - Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТнСС, Ρ‡Π΅ΠΌ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Β«Ρ‚ΠΎ, Π½Π΅ знаю Ρ‡Ρ‚ΠΎΒ»;
  • вспомнитС, ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ Π»ΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ - Π² этом случаС стоит ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сработало Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π·;
  • ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ подходящиС man-Ρ‹ (Ссли ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ man-Ρ‹ подходят Π² вашСм случаС) - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ подходящиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ΠΊΠΎΠΌΠ°Π½Π΄, Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹;
  • ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅: нСльзя Π»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ? - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² условия, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ;
  • Π·Π°Π΄Π°ΠΉΡ‚Π΅ свой Ρ‡Π΅Ρ‚ΠΊΠΎ сформулированный вопрос Π² поисковой систСмС - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΡ‚Π²Π΅Ρ‚ найдСтся Π½Π° Stack Overflow ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтах;
Если Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈΠ· пСрСчислСнного Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ - ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π·Π° совСтом ΠΊ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŽ, ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠΎΠ»Π»Π΅Π³Π΅ ΠΈΠ»ΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Ρƒ. И Π½Π΅ Π±ΠΎΠΉΡ‚Π΅ΡΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Β«Π³Π»ΡƒΠΏΡ‹Π΅Β» вопросы - Π½Π΅ стыдно Π½Π΅ Π·Π½Π°Ρ‚ΡŒ, стыдно Π½Π΅ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ.

Если Π²Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ со слоТной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ (ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй) -- Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ своС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° случай, Ссли такая ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° снова Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ Ρƒ вас ΠΈΠ»ΠΈ Π²Π°ΡˆΠΈΡ… Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Π΅ΠΉ. Π—Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π² простой тСкстовый Ρ„Π°ΠΉΠ», Π² Evernote, ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² соц.сСтях.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ-ΠΈ-Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ - ΠΈΠ· man-ΠΎΠ², ΠΈΠ· статСй Π½Π° StackOverflow ΠΈ Ρ‚.ΠΏ.Командная строка состоит ΠΈΠ· тСкста, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ этим: ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄,записывайтС ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΊΠΈ Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ ΠΈΡ… Π² Ρ‚Π²ΠΈΡ‚Ρ‚Π΅Ρ€Π°Ρ… ΠΈ Π±Π»ΠΎΠ³Π°Ρ….

Π’Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΈΠ· истории ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ .Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π» «БоставлСниС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°-однострочника».

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

  • ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³: cd ;
  • просмотр содСрТимого Ρ„Π°ΠΉΠ»ΠΎΠ²: саt , less , head , tail ;
  • манипуляции с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ: cp , mv , rm ;
  • просмотр содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²: ls , ls -l , ls -lS ;
  • структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²: tree , tree -d (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³);
  • поиск Ρ„Π°ΠΉΠ»ΠΎΠ²: find . -name ... ;

Аналитика

  • wc , wc -l ;
  • sort -k - сортировка ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ полю;
  • sort -n - числовая соритровка;
  • diff - сравнСниС Ρ„Π°ΠΉΠ»ΠΎΠ²;
  • grep , grep -v , grep -w , grep "\" , grep -E - поиск тСкста;
  • uniq , uniq -c - уникализация строк;
  • awk - Π² Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ awk "{print $1}" , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки, $1 ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° $2 , $3 ΠΈ Ρ‚.Π΄.;

Диагностика систСмы

  • ps axuww - информация ΠΎ процСссах (Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° машинС;
  • top - ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ просмотр самых рСсурсоСмких процСссов;
  • df - занятоС ΠΈ свободноС мСсто Π½Π° дискС;
  • du - суммарный Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (рСкурсивно с ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ);
  • strace , ktrace - ΠΊΠ°ΠΊΠΈΠ΅ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ выполняСт процСсс;
  • lsof - ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ процСсс;
  • netstat -na , netstat -nap - ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈ сокСты ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ Π² систСмС.

НСкоторых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ, ΠΈΡ… Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ этих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ (root "Ρƒ).

МассовоС ΠΈ полуавтоматичСскоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

На ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… пропускайтС этот Ρ€Π°Π·Π΄Π΅Π», эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ конструкции понадобятся Π²Π°ΠΌ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ Π΄ΠΎ нСслоТного шСлльного скриптинга.
  • test - ΠΏΡ€ΠΎΠ²Ρ€Π΅ΠΊΠ° условий;
  • while read - Ρ†ΠΈΠΊΠ» ΠΏΠΎ строчкам STDIN ;
  • xargs - подстановка строк ΠΈΠ· STDIN Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅;
  • seq - гСнСрация ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл;
  • () - ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄;
  • ; - Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ;
  • && - Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ условии ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹;
  • || - Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ условии Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹;
  • tee - ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² STDOUT ΠΈ Π² Ρ„Π°ΠΉΠ» Π½Π° дискС.

Π Π°Π·Π½ΠΎΠ΅

  • date - тСкущая Π΄Π°Ρ‚Π°;
  • curl - скачиваСт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎΠΌΡƒ url ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° STDOUT ;
  • touch - ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρƒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°;
  • kill - ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ процСссу сигнал;
  • true - Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ истину, ΠΏΠΎΠ»Π΅Π·Π½Π° для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Ρ‡Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ²;
  • sudo - Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ root "Π°.

БоставлСниС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°-однострочника

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ: трСбуСтся ΠΏΡ€ΠΈΠ±ΠΈΡ‚ΡŒ всС процСссы task-6-server , Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π¨Π°Π³ 1.
ΠŸΠΎΠ½ΡΡ‚ΡŒ, какая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, хотя Π±Ρ‹ ΠΈ Π½Π΅ Π² чистом Π²ΠΈΠ΄Π΅. Для нашСй Π·Π°Π΄Π°Ρ‡ΠΈ стоит ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх процСссов Π² систСмС: ps axuww . Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

Π¨Π°Π³ 2.
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π³Π»Π°Π·Π°ΠΌΠΈ, ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ΠΊΠΈΠ½Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Часто это grep ΠΈΠ»ΠΈ grep -v . КлавишСй Β«Π’Π²Π΅Ρ€Ρ…Β» Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΈΠ· истории ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΡ€ΠΈΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊ Π½Π΅ΠΉ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

Ps axuww |grep `whoami`
- Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссы Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π¨Π°Π³ 3.
ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ 2, ΠΏΠΎΠΊΠ° Π½Π΅ получатся чистыС Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

"
- всС процСссы с Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (плюс, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, лишниС Π²Ρ€ΠΎΠ΄Π΅ vim task-6-server.c ΠΈ Ρ‚.ΠΏ.),

Ps axuww |grep `whoami` | grep "\" | grep -v vim ps axuww |grep `whoami` | grep "\" | grep -v vim |grep -v less
- Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссы с Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ

Ps axuww |grep `whoami` | grep "\" | grep -v vim |grep -v less |awk "{print $2}"

Pid-Ρ‹ Π½ΡƒΠΆΠ½Ρ‹Ρ… процСссов, ΠΏ. 3 Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½

Π¨Π°Π³ 4.
ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ подходящий Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. КлавишСй Β«Π’Π²Π΅Ρ€Ρ…Β» вытаскиваСм ΠΈΠ· истории ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ добавляСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, которая Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

  • |wc -l Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство процСссов;
  • >pids Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ pid-Ρ‹ Π² Ρ„Π°ΠΉΠ»;
  • |xargs kill -9 ΡƒΠ±ΠΈΡ‚ΡŒ процСссы.

Задания для Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… умСниях? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ задания:
  • ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ список всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² вашСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅;
  • ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ список всСх man -статСй ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ 2 (систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹);
  • посчитайтС, сколько Ρ€Π°Π· Π² man-Π΅ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ grep встрСчаСтся слово grep;
  • посчитайтС, сколько процСссов Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root ;
  • Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅, какая ΠΊΠΎΠΌΠ°Π½Π΄Π° встрСчаСтся Π² максимальном количСствС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ справки (man);
  • подсчитайтС, сколько Ρ€Π°Π· встрСчаСтся слово var Π½Π° страницС ya.ru .
Подсказка: Π²Π°ΠΌ понадобится find , grep -o , awk "{print $1}" , рСгулярныС выраТСния Π² grep , curl -s .

Π§Ρ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ дальшС?

Если командная строка Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Π°ΠΌ Π½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ, Π½Π΅ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ.

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π²Π°ΠΌ пригодятся, Ссли Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΆΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

  • find со слоТными опциями
  • apropos
  • locate
  • telnet
  • netcat
  • tcpdump
  • rsync
  • screen
  • zgrep , zless
  • visudo
  • crontab -e
  • sendmail
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ стоит ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ скриптовый язык,Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, perl ΠΈΠ»ΠΈ python , ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡ… ΠΎΠ±Π°.

ΠšΠΎΠΌΡƒ это Π½Π°Π΄ΠΎ?

А стоит Π»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ сСгодня ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ ΡˆΠ΅Π»Π»ΡŒΠ½Ρ‹ΠΉ скриптинг? ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ стоит. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Facebook ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² FB.