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

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

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

[[email protected] ~]$ ls -l Π”Π²Π° слова.txt

ls: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ 'Π”Π²Π°': НСт Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

ls: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ 'слова.txt': НСт Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

Π”ΠΎΠ±Π°Π²ΠΈΠ² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ слов ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚; ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΌΡ‹ исправим ΠΎΡˆΠΈΠ±ΠΊΡƒ:

[[email protected] ~]$ ls -l "Π”Π²Π° слова.txt"

-rw-rw-r-- 1 me me 18 2012-02-20 13:03 Π”Π²Π° слова.txt

[[email protected] ~]$ mv "Π”Π²Π° слова.txt" Π”Π²Π°_слова.txt

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ эти ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅: подстановка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², подстановка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ арифмСтичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ подстановка ΠΊΠΎΠΌΠ°Π½Π΄ всС Π΅Ρ‰Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…:

[[email protected] ~]$ echo "$USER $((2+2)) $(cal)"

me 4Β Β Β February 2012

Su Mo Tu We Th Fr Sa

Β Β Β Β Β Β Β Β Β Β 1Β Β 2Β Β 3Β Β 4

5Β Β 6Β Β 7Β Β 8Β Β 9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29

Π”Π°Π²Π°ΠΉΡ‚Π΅ отвлСчСмся ΠΈ посмотрим, ΠΊΠ°ΠΊΠΎΠΉ эффСкт ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° подстановку ΠΊΠΎΠΌΠ°Π½Π΄. Π‘Π½Π°Ρ‡Π°Π»Π° рассмотрим дСйствиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° разбиСния Π½Π° слова. Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ разбиСния Π½Π° слова удаляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ· тСкста:

[[email protected] ~]$ echo this is aΒ Β Β Β Β test

this is a test

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, символы табуляции ΠΈ символы ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ слов. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Π½Π΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ упомянутыС символы Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ тСкста. Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ лишь раздСлитСлями. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ дСлят слова Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, получаСтся, Ρ‡Ρ‚ΠΎ Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ командная строка состоит ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Однако Ссли Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° слова Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ раздСлитСлями β€” ΠΎΠ½ΠΈ станут Ρ‡Π°ΡΡ‚ΡŒΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

[[email protected] ~]$ echo "this is aΒ Β Β Β Β test"

this is aΒ Β Β Β Β test

ПослС добавлСния Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ командная строка Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Π’ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ символы ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ разбиСния Π½Π° слова ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ интСрСсный ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡƒΠ»ΠΎΠ²ΠΈΠΌΡ‹ΠΉ эффСкт ΠΏΡ€ΠΈ подстановкС ΠΊΠΎΠΌΠ°Π½Π΄. ВзглянитС:

[[email protected] ~]$ echo $(cal)

February 2012 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

[[email protected] ~]$ echo "$(cal)"

Β Β Β February 2012

Su Mo Tu We Th Fr Sa

Β Β Β Β Β Β Β Β Β Β 1Β Β 2Β Β 3Β Β 4

5Β Β 6Β Β 7Β Β 8Β Β 9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29

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

ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ

Если Π²Π°ΠΌ трСбуСтся ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ всС подстановки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. НиТС для сравнСния приводятся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ нСэкранированной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΊΠΎΠΌΠ°Π½Β­Π΄Ρ‹, экранированной Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ:

[[email protected] ~]$ echo text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER

text /home/me/ls-output.txt a b foo 4 me

[[email protected] ~]$ echo "text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER"

text ~/*.txt {a,b} foo 4 me

[[email protected] ~]$ echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER'

text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ экранирования всС большС ΠΈ большС подавляСт подстановку.

Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ символов

Иногда Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ символ. Для этого достаточно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ символом ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слСш, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС называСтся ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ символом (escape character). Часто этот ΠΏΡ€ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ подстановку.

[[email protected] ~]$ echo "Баланс счСта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ $USER: \$5.00"

Баланс счСта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ me: $5.00

Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ символов Ρ‚Π°ΠΊΠΆΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся для подавлСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния символов Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². НапримСр, Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² допускаСтся использованиС символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. К ΠΈΡ… числу относятся: $, !, &, (ΠΏΡ€ΠΎΠ±Π΅Π») ΠΈ Π΄Ρ€. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ Π² имя Ρ„Π°ΠΉΠ»Π°, Π΅Π³ΠΎ достаточно ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

[[email protected] ~]$ mv bad\&filename good_filename

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сам ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ символ, Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ввСдя \\. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слСш тСряСт своС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ символ.

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

По ΠΌΠ΅Ρ€Π΅ накоплСния ΠΎΠΏΡ‹Ρ‚Π° использования ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΌΡ‹ всС Ρ‡Π°Ρ‰Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности подстановки ΠΈ экранирования, поэтому Π²Π°ΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ЀактичСски ΠΌΠΎΠΆΠ½ΠΎ смСло ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти Π΄Π²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ для изучСния аспСктами ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Π‘Π΅Π· Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ дСйствуСт подстановка, командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ источником нСпонимания ΠΈ домыслов, ΠΏΡ€ΠΈ этом ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΅Π΅ возмоТности останутся Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ.

ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слСш ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€ΠΎΠ»ΠΈ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ символа, Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ (control codes). ΠŸΠ΅Ρ€Π²Ρ‹Π΅ 32 символа Π² схСмС кодирования ASCII использовались для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π² устройствах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‚Π΅Π»Π΅Ρ‚Π°ΠΉΠΏ. НСкоторыС ΠΈΠ· этих ΠΊΠΎΠ΄ΠΎΠ² Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ Π²Π°ΠΌ (табуляция, Π·Π°Π±ΠΎΠΉ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” Π½Π΅Ρ‚ (пустой символ, ΠΊΠΎΠ½Π΅Ρ† ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‚Π°Π±Π». 7.2.

Π’Π°Π±Π»ΠΈΡ†Π° 7.2. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

\a

Π—Π²ΠΎΠ½ΠΎΠΊ (Β«ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅Β» β€” заставляСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал)

\b

Π—Π°Π±ΠΎΠΉ (backspace)

\n

Новая строка (Π² Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах этот символ выполняСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки)

\r

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

\t

Вабуляция

Π’ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ пСрСчислСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстныС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ИдСя использования ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слСша Π·Π°Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² языкС программирования C ΠΈ Π±Ρ‹Π»Π° заимствована ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ язык ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -e ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ $' '. НиТС дСмонстрируСтся использованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sleep, простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая всСго лишь ΠΆΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ число сСкунд ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, для создания элСмСнтарного Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.

sleep 10; echo -e "Time's up\a"

Π’ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

sleep 10; echo "Time's up" $'\a'

8. ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ

Π― часто ΡˆΡƒΡ‚Π»ΠΈΠ²ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽ Unix ΠΊΠ°ΠΊ Β«ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π»ΡŽΠ±ΠΈΡ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒΒ». Казалось Π±Ρ‹, сам Ρ„Π°ΠΊΡ‚ наличия ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ это. Но Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π΅ Π»ΡŽΠ±ΡΡ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ. Π—Π°Ρ‡Π΅ΠΌ, Ссли Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ cp, ls, mv ΠΈ rm?

ЀактичСски ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых Π·Π°Π²Π΅Ρ‚Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки являСтся ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ объСма Π²Π²ΠΎΠ΄Π° β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСго нСсколькими наТатиями клавиш. Другая Ρ†Π΅Π»ΡŒ β€” Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌ ΠΎΡ‚ΠΎΡ€Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΊΠΎΡΠ½ΡƒΡ‚ΡŒΡΡ ΠΌΡ‹ΡˆΠΈ. Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим возмоТности bash, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ использования ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ прСдставлСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

β€’ clear β€” ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ экран.

β€’ history β€” Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС истории ΠΊΠΎΠΌΠ°Π½Π΄.

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