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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«UNIX β€” ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ срСда программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 11

Автор Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½

МоТно ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠΌ сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НапримСр,

$ ls | pr -3 | lpr

создаСт список ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Ρ€ΠΈ столбца ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰Π΅Π΅ устройство, Π°

$ who | grep mary | wc -l

подсчитываСт, сколько Ρ€Π°Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠœΡΡ€ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΠ»Π° Π² систСму.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, связанныС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π° Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄Π½Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Π΄ΠΈΠ°Π»ΠΎΠ³; ядро выполняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ синхронизации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ такая схСма Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ, поэтому ΠΎΠ½ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π½Π΅ΠΌ Π½Π° любом мСстС. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ„Π»Π°Π³ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²

Если ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ стандартный Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ поступаСт с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° (Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для экспСримСнтирования), ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π». ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Π²Ρ‹Π΄Π°Ρ‡Π° ΠΈΠ΄Π΅Ρ‚ Π² стандартный Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Π½ΠΎ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π».

БообщСния ΠΆΠ΅ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, слСдуСт ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π·Π°Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ каТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ стандартный Ρ„Π°ΠΉΠ», Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠΌ диагностики, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ связан с вашим Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ:

Рис. 1.2: Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² UNIX


ΠŸΠΎΡ‡Ρ‚ΠΈ всС Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π²ΡˆΠΈΠ΅ΡΡ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² эту схСму; ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ who ΠΈ date, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ cmp ΠΈΠ»ΠΈ diff, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ число Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². (ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΈΡ… Ρ„Π»Π°Π³ '-'.)

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 1.7

ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ

$ who | sort

ΠΈ

$ who > sort

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ shell выполняСт ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠΌΠΈΠΌΠΎ связывания Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π». Рассмотрим ΠΊΡ€Π°Ρ‚ΠΊΠΎ вопрос ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎ Ρ‡Π΅ΠΌ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈ обсуТдСнии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ². НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ² ΠΈΡ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой; ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ shell распознаСт этот символ ΠΈ Ρ€Π°Π·ΠΎΠ±ΡŒΠ΅Ρ‚ строку Π½Π° Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ date; who

Tue Sep 27 01:03:17 EDT 1983

ken tty0 Sep 27 00:43

dmr tty1 Sep 26 23:45

rob tty2 Sep 26 23:59

bwk tty3 Sep 27 00:06

jj  tty4 Sep 26 23:31

you tty5 Sep 26 23:04

her tty7 Sep 26 23:34

ОбС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ (подряд) ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ вновь вСрнСтся с ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Π½ΡΡ‚ΡŒΡΡ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ вычислСниями, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ число слов Π² вашСй ΠΊΠ½ΠΈΠ³Π΅, Π½ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ окончания ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ wc для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅. Π’ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ:

$ wc ch* > wc.out &

6944 Shell Π΄Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ процСсса

$

АмпСрсанд (&) Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Ρ‚.Π΅. Π½Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π²Π»Π΅Ρ‡ΡŒΡΡ Π½Π° Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° Ρ„Π°ΠΉΠ» wc.out ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ смСшивания с Ρ‚ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, которая появится Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π² процСссС дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ называСтся процСссом. Число, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ shell Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ с &, являСтся Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ процСсса. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Π² качСствС ссылки Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ экзСмпляр выполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ процСссами. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, wc β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ wc создаСт Π½ΠΎΠ²Ρ‹ΠΉ процСсс. Если ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ выполняСтся нСсколько экзСмпляров ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ любой ΠΈΠ· Π½ΠΈΡ… считаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ процСссом с ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ.

Если ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ &

$ pr ch * | lpr &

6951 НомСр процСсса

$

Ρ‚ΠΎ всС процСссы этого ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ сразу, ΠΈ & относится ΠΊΠΎ всСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅. Однако выдаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠΌΠ΅Ρ€ процСсса, относящийся ΠΊ послСднСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅. Команда

$ wait

ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡΡ всС процСссы, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ &. Если ΠΎΠ½Π° Π½Π΅ возвращаСтся сразу, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ DELETE.

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ процСсса, сообщаСмый ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, для остановки процСсса, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ &:

$ kill 6944

Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π½ΠΎΠΌΠ΅Ρ€ процСсса, ΠΊΠΎΠΌΠ°Π½Π΄Π° ps Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ сообщСниС ΠΎΠ±ΠΎ всСх Π²Π°ΡˆΠΈΡ… процСссах. Π’ Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ΠΊΠΎΠ³Π΄Π°, ΠΊΠΎΠΌΠ°Π½Π΄Π° kill 0 ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ всС ваши процСссы, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Если ΠΆΠ΅ Π²Π°ΠΌ интСрСсно, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ps -ag сообщит ΠΎΠ±ΠΎ всСх выполняСмых процСссах. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:

$ ps -ag

 PID TTY TIME CMD

  36 со 6:29 /etc/cron

6423 5  0:02 -sh

6704 1  0:04 -sh

6722 1  0:12 vi paper

4430 2  0:03 -sh

6612 7  0:03 -sh

6628 7  1:13 rogue

6643 2  0:02 write dmr 6949 4 0:01 login bimmler

6952 5  0:08 pr ch1.1 ch1.2 ch1.3 ch1.4

6951 5  0:03 lpr

6959 5  0:02 ps -ag

6844 1  0:02 write rob

$

Π—Π΄Π΅ΡΡŒ PID β€” Π½ΠΎΠΌΠ΅Ρ€ процСсса; TTY β€” Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», связанный с процСссом (ΠΊΠ°ΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ who); TIME β€” Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ врСмя процСссора Π² ΠΌΠΈΠ½ΡƒΡ‚Π°Ρ… ΠΈ сСкундах, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ строки β€” выполняСмая ΠΊΠΎΠΌΠ°Π½Π΄Π°. Команда ps β€” ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‚Π΅Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎ- Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсиях систСмы, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Π² вашСй систСмС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π”Π°ΠΆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ β€” см. Π² своСм справочном руководствС страницу ps(1).

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру: Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса Π΅ΡΡ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ. Π’Π°ΡˆΠ° копия ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° shell Π±Ρ‹Π»Π° создана процСссом, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ связь Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» с систСмой. Когда Π²Ρ‹ запускаСтС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈΡ… процСссы становятся прямыми ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ вашСй ΠΊΠΎΠΏΠΈΠΈ shell. Если Π²Ρ‹ запускаСтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ "Π²Π½ΡƒΡ‚Ρ€ΠΈ" ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· этих ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ '!' для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ed, Ρ‚ΠΎ создаСтся Π½ΠΎΠ²Ρ‹ΠΉ процСсс-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡƒΠΆΠ΅ Π²Π½ΡƒΠΊΠΎΠΌ для shell.

Иногда процСсс выполняСтся ΡΡ‚ΠΎΠ»ΡŒ Π΄ΠΎΠ»Π³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠΆΠ΅ ΠΆΠ°Π»Π΅Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ запустили Π΅Π³ΠΎ. Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ ΠΈΠ΄ΠΈΡ‚Π΅ Π΄ΠΎΠΌΠΎΠΉ, Π½Π΅ доТидаясь Π΅Π³ΠΎ окончания. Но Ссли Π²Ρ‹ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ отсоСдинитС Π΅Π³ΠΎ ΠΎΡ‚ сСти, Ρ‚ΠΎ процСсс Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ &. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ случая прСдусмотрСна ΠΊΠΎΠΌΠ°Π½Π΄Π° nohup ("no hangup" β€” Π±Π΅Π· отбоя).

Π’Π²Π΅Π΄ΠΈΡ‚Π΅

$ nohup ΠΊΠΎΠΌΠ°Π½Π΄Π° &

ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· систСмы. Π›ΡŽΠ±ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Π² Ρ„Π°ΠΉΠ»Π΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ nohup.out. ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ никакая ΠΊΠΎΠΌΠ°Π½Π΄Π° nohup ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚.

Если ваш процСсс Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΡƒΡ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ вмСстС с Π²Π°ΠΌΠΈ, запустив Π΅Π³ΠΎ с ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ nice:

$ nice большая-команда &

Команда nohup автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ nice, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π· ΡƒΠΆ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· систСмы, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ дольшС.

НаконСц, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ систСмС Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ваш процСсс Π² Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ врСмя, скаТСм, ΡƒΡ‚Ρ€ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ люди снят, Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° машинС. Команда называСтся at(1):

$ at

врСмя Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠΊΠ°ΠΊΠΈΠ΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ...

ctl-d

$

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ at, Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ€Π°Ρ‚ΡŒ ΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°:

$ at 3am < Ρ„Π°ΠΉΠ»

$

ВрСмя ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ исходя ΠΈΠ· 24-часового Ρ†ΠΈΠΊΠ»Π° ΠΊΠ°ΠΊ 2130 ΠΈΠ»ΠΈ 12-часового ΠΊΠ°ΠΊ 930pm.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ срСды

Одним ΠΈΠ· достоинств систСмы UNIX являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎ своСму вкусу Π»ΠΈΠ±ΠΎ Π² соотвСтствии с мСстными традициями программистского ΠΌΠΈΡ€Π°. НапримСр, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ стандарты для символов стирания ΠΈ удалСния; ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ # ΠΈ @ . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

$ stty erase Π΅ kill k

Π³Π΄Π΅ 'e' ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°ΠΌ символ стирания, Π° 'k' β€” символ удалСния. Однако Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ эти символы ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму β€” довольно Π½ΡƒΠ΄Π½ΠΎΠ΅ занятиС.