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

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

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

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

wait

Для Π½Π°Ρ‡Π°Π»Π° посмотрим, ΠΊΠ°ΠΊ дСйствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° wait. Для этого Π½Π°ΠΌ понадобятся Π΄Π²Π° сцСнария. НиТС приводится Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ сцСнарий:

#!/bin/bash

# async-parent : ΠΏΡ€ΠΈΠΌΠ΅Ρ€ асинхронного выполнСния (Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ)

echo "Parent: starting..."

echo "Parent: launching child script..."

async-child &

pid=$!

echo "Parent: child (PID= $pid) launched."

echo "Parent: continuing..."

sleep 2

echo "Parent: pausing to wait for child to finish..."

wait $pid

echo "Parent: child is finished. Continuing..."

echo "Parent: parent is done. Exiting."

ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ сцСнарий:

#!/bin/bash

# async-child : ΠΏΡ€ΠΈΠΌΠ΅Ρ€ асинхронного выполнСния (ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ)

echo "Child: child is running..."

sleep 5

echo "Child: child is done. Exiting."

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ сцСнарий Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ прост. ЀактичСская Ρ€Π°Π±ΠΎΡ‚Π° выполняСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ сцСнарий запускаСт Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ сцСнарий ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ выполнСния. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ процСсса сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ pid ΠΏΡƒΡ‚Π΅ΠΌ присваивания Π΅ΠΉ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° $!, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСгда содСрТит ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ процСсса послСднСго задания, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ.

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

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ сцСнарии производят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

[[email protected] ~]$ async-parent

Parent: starting...

Parent: launching child script...

Parent: child (PID= 6741) launched.

Parent: continuing...

Child: child is running...

Parent: pausing to wait for child to finish...

Child: child is done. Exiting.

Parent: child is finished. Continuing...

Parent: parent is done. Exiting.

Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСм сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ (named pipe). Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ двумя процСссами ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Они Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ большой ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚Π°ΠΊΠΎΠΉ возмоТности ΠΈ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Сю ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚/сСрвСр, основанная Π½Π° использовании ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² взаимодСйствий процСссов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈΠ»ΠΈ сСтСвыС соСдинСния.

НаиболСС ΡˆΠΈΡ€ΠΎΠΊΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚/сСрвСр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²Π΅Π±-прилоТСниях, Π³Π΄Π΅ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с Π²Π΅Π±-сСрвСрами. Π’Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ дСйствуСт ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, посылая запросы сСрвСру, Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСрвСр посылаСт Π²Π΅Π±-страницы.

Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сходство с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Π±ΡƒΡ„Π΅Ρ€Ρ‹, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ: ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π», ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅Π» (First-In, First-Out, FIFO). Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π² случаС с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ (Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ) ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ, Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

процСсс1 > ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΊΠ°Π½Π°Π»

ΠΈ

процСсс2 < ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΊΠ°Π½Π°Π»

ΠΈ такая ΠΏΠ°Ρ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ

процСсс1 | процСсс2

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π», Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ mkfifo:

[[email protected] ~]$ mkfifo pipe1

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

prw-r--r-- 1 meΒ Β Β meΒ Β Β Β 0 2012-07-17 06:41 pipe1

Π—Π΄Π΅ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ mkfifo создаСтся ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» с ΠΈΠΌΠ΅Π½Π΅ΠΌ pipe1. Командой ls ΠΌΡ‹ исслСдовали созданный Ρ„Π°ΠΉΠ», ΠΈ, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π² ΠΏΠΎΠ»Π΅ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ стоит Π±ΡƒΠΊΠ²Π° p, ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰Π°Ρ, Ρ‡Ρ‚ΠΎ это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» (pipe).

ИспользованиС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π΄Π²Π° ΠΎΠΊΠ½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° (ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ описанныС Π½ΠΈΠΆΠ΅ дСйствия Π² Π΄Π²ΡƒΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… консолях). Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:

[[email protected] ~]$ ls -l > pipe1

ПослС наТатия клавиши ENTER появится ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° «зависла». Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΊΠ°Π½Π°Π»Π° Π΄Π°Π½Π½Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹. Π’ Ρ‚Π°ΠΊΠΈΡ… ситуациях говорят, Ρ‡Ρ‚ΠΎ ΠΊΠ°Π½Π°Π» Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½. Π Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ автоматичСски, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ процСсс с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π½Π΅Π³ΠΎ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Β­ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

[[email protected] ~]$ cat < pipe1

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ появится список содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, созданный Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠΊΠ½Π΅, ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat. Команда ls Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎ разблокируСтся ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ.

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

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ нашС ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ, β€” это ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° своСм ΠΏΡƒΡ‚ΠΈ ΠΌΡ‹ ΠΎΡ…Π²Π°Ρ‚ΠΈΠ»ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΊΡ€ΡƒΠ³ вопросов, Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΡ‹ лишь Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΡƒ айсбСрга ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «командная строка». Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΅Ρ‰Π΅ тысячи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ прСдстоит ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ. НачнитС свои исслСдования с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /usr/bin, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈΡ…!