Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ bash Π² Linux? Π“Π°ΠΉΠ΄ ΠΏΠΎ созданию bash-скриптов

Обновл. 29 Июл 2021 |

bash (сокр. ΠΎΡ‚ Β«Bourne-Again shellΒ») β€” это командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° (ΠΈΠ»ΠΈ Β«ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки»), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах Π½Π° Π±Π°Π·Π΅ Unix ΠΈ Linux, созданная Π² 1989 Π³ΠΎΠ΄Ρƒ Π‘Ρ€Π°ΠΉΠ°Π½ΠΎΠΌ Ѐоксом с Ρ†Π΅Π»ΡŒΡŽ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ sh.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»?

Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для взаимодСйствия с шСллом. Π­Ρ‚ΠΎ просто интСрфСйс ΠΊ Π½Π΅ΠΌΡƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» (Konsole) Π² Debian 11 (ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола β€” KDE Plasma):

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π² Linux

Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ шСлла β€” имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ@имя_ΠΌΠ°ΡˆΠΈΠ½Ρ‹:

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π² bash

Команда Π² bash β€” это наимСньшая Π΅Π΄ΠΈΠ½ΠΈΡ†Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ bash ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΡ‹ сообщаСм ΡˆΠ΅Π»Π»Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ сдСлал. bash ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ возвращаСтся ΠΊ Π½Π΅ΠΌΡƒ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π² bash, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько простых ΠΊΠΎΠΌΠ°Π½Π΄.

Команда echo β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo

Команда date β€” ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя ΠΈ Π΄Π°Ρ‚Ρƒ:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ date

Команда pwd (сокр. ΠΎΡ‚ Β«print working directoryΒ») β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ шСлла Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹.

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pwd

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls

Команда cd (сокр. ΠΎΡ‚ Β«change directoryΒ») β€” измСняСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° Π·Π°Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

cd β€” мСняСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° Π·Π°Π΄Π°Π½Π½ΡƒΡŽ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ / ΠΈ ознакомимся с Π΅Π³ΠΎ содСрТимым. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой ; для записи Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС.

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ объСдинСния Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС

cd β€” Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Команда mkdir (сокр. ΠΎΡ‚ Β«make directoryΒ») β€” создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Команда mv (сокр. ΠΎΡ‚ Β«moveΒ») β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ²/ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСста Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ (Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ). Для этого Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ (Ρ‚.Π΅. источник), ΠΈ ΠΊΡƒΠ΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ (Ρ‚.Π΅. ΠΏΡƒΠ½ΠΊΡ‚ назначСния).

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я создам Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ravesli Π² своСй домашнСй Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Ρƒ Π² Π½Π΅Π³ΠΎ всС .txt-Ρ„Π°ΠΉΠ»Ρ‹ (Π½Ρƒ ΠΊΠ°ΠΊ «всС», Ρƒ мСня Ρ‚Π°ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» β€” АдрСса.txt) ΠΈΠ· /home/diego/Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹/ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΡ… Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ mv

Команда touch β€” создаСт Π½ΠΎΠ²Ρ‹Π΅ пустыС Ρ„Π°ΠΉΠ»Ρ‹ (Π° Ρ‚Π°ΠΊΠΆΠ΅ измСняСт Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…). Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустой Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ foo.txt Π² ΠΏΠ°ΠΏΠΊΠ΅ Ravesli ΠΈΠ· домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ touch

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΠΌ Ρ€Π°Π½Π΅Π΅ созданный Ρ„Π°ΠΉΠ» foo.txt:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rm

Команда rmdir (сокр. ΠΎΡ‚ Β«remove directoryΒ») β€” удаляСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΠΌ созданный Ρ€Π°Π½Π΅Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /home/diego/Ravesli:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rmdir

Команда cat (сокр. ΠΎΡ‚ Β«concatenateΒ») β€” считываСт Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ содСрТимоС. Она ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, объСдиняя ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄ Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ происходит Π΅Ρ‘ Π½Π°Π·Π²Π°Π½ΠΈΠ΅). Π£ мСня Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° untitled с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π‘++/Qt-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ Π½ΠΈΠΆΠ΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cat для просмотра содСрТимого Ρ„Π°ΠΉΠ»Π° main.cpp ΠΈΠ· untitled:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ справочной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ man

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ nano

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π“Π°ΠΉΠ΄ ΠΏΠΎ созданию bash-скриптов

Наш шСлл, это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ систСмой, Π½ΠΎ Π΅Ρ‰Π΅ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ язык программирования. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° языкС шСлла, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ shell-скриптами (ΠΈΠ»ΠΈ shell-сцСнариями) ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² β€” .sh. Π‘Π°ΠΌ язык содСрТит ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, доступных Π² *nix-систСмах, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹, условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€. Π’Π°ΠΊΠΈΠ΅ скрипты Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π΅ трСбуСтся использованиС ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… языков программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… администрирования ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ bash-скрипта

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» bash-скрипта, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² любом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ тСкстовый Ρ„Π°ΠΉΠ» ΠΈ сохранитС Π΅Π³ΠΎ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .sh. ВсС дальнСйшиС экспСримСнты я Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Debian Linux, с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° nano.

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ravesli.sh:

$ touch ravesli.sh
diego@debian:

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» bash-скрипта, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ исполняСмым. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ навСрняка ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠΎΠ², измСняСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ chmod +x :

$ chmod +x ravesli.sh
diego@debian:

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ bash-скрипта

Π€Π°ΠΉΠ» bash-скрипта ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ двумя способами:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

[Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ] Bash для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: 21 полСзная ΠΊΠΎΠΌΠ°Π½Π΄Π°

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ сСгодня, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Linux. Π£ΠΌΠ΅Π½ΠΈΠ΅ эффСктивно ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этим инструмСнтом позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ частности, Ρ€Π΅Ρ‡ΡŒ здСсь ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Bash ΠΈ ΠΎ 21 ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„Π»Π°Π³Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ псСвдонимами Bash, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… инструкций.

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹

Π’ Ρ…ΠΎΠ΄Π΅ освоСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Linux Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ мноТСство понятий, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. НСкоторыС ΠΈΠ· Π½ΠΈΡ…, Π²Ρ€ΠΎΠ΄Π΅ Β«LinuxΒ» ΠΈ Β«UnixΒ», ΠΈΠ»ΠΈ «командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Β» ΠΈ Β«Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Β», ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡƒΡ‚Π°ΡŽΡ‚. ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этих ΠΈ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ….

Unix β€” это популярная опСрационная систСма, которая Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Bell Labs Π² 1970-Ρ…. Π•Ρ‘ ΠΊΠΎΠ΄ Π±Ρ‹Π» Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ.

Linux β€” это самая популярная Unix-подобная опСрационная систСма. Она Π² наши Π΄Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° мноТСствС устройств, Π² Ρ‚ΠΎΠΌ числС β€” ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ….

Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» (terminal), ΠΈΠ»ΠΈ эмулятор Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΄Π°ΡŽΡ‰Π°Ρ доступ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΎΠΊΠΎΠ½ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° (shell) β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, написанныС Π½Π° особом языкС.

Bash Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Bourne Again SHell. Π­Ρ‚ΠΎ β€” самый распространённый язык ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для взаимодСйствия с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Bash ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² macOS.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (Command Line Interface, CLI) β€” это способ взаимодСйствия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΏΡ€ΠΈ использовании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, выполняя эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚, Π² тСкстовом Π²ΠΈΠ΄Π΅, сообщСния для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ основном CLI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния свСТСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π΅ΠΊΠΈΡ… сущностях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки слСдуСт ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (Graphical User Interface, GUI), ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ, Π² основном, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΡ‹ΡˆΡŒ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ просто ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ (script) β€” это нСбольшая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая содСрТит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π² Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. ΠŸΡ€ΠΈ написании скриптов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, условными конструкциями, Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ, функциями ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ возмоТностями.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ рассмотрСли Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹, Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ здСсь я Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ Β«BashΒ», Β«ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Β» ΠΈ «командная строка» ΠΊΠ°ΠΊ взаимозамСняСмыми, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ понятиями «дирСктория» (directory) ΠΈ Β«ΠΏΠ°ΠΏΠΊΠ°Β» (folder).

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ здСсь ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ β€” это стандартный Π²Π²ΠΎΠ΄ (standard input, stdin ), стандартный Π²Ρ‹Π²ΠΎΠ΄ (standard output, stdout ) ΠΈ стандартный Π²Ρ‹Π²ΠΎΠ΄ ошибок (standard error, stderr ).

Если Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½ΠΈΠΆΠ΅, Π²Ρ‹ встрСтитС Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ my_whatever β€” это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ вашим. НапримСр β€” ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Ρ€Π°Π·Π±ΠΎΡ€Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ посвящён этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΈΡ… список ΠΈ Π½Π° ΠΈΡ… ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ описания.

21 Bash-ΠΊΠΎΠΌΠ°Π½Π΄Π°

β–ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

β–ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой

β–ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹

▍ЧтСниС Ρ„Π°ΠΉΠ»ΠΎΠ²

▍УдалСниС Ρ„Π°ΠΉΠ»ΠΎΠ², остановка процСссов

β–ΠŸΠΎΠΈΡΠΊ

▍Архивация

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…

β–ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

man command_name : Π²Ρ‹Π²ΠΎΠ΄ руководства ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ β€” справочной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

pwd : Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ часто Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² систСмС ΠΎΠ½ находится.

ls : Π²Ρ‹Π²ΠΎΠ΄ содСрТимого Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вСсьма часто.

ps : просмотр Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ процСссов.

β–ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

touch my_file : созданиС Ρ„Π°ΠΉΠ»Π° my_file ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ.

mkdir my_directory : созданиС ΠΏΠ°ΠΏΠΊΠΈ my_directory ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°Ρ….

β–ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹

НапримСр, послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls > my_folder_contents.txt Π±ΡƒΠ΄Π΅Ρ‚ создан тСкстовый Ρ„Π°ΠΉΠ», содСрТащий список Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ находится Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ взглянСм Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ….

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, подаётся Π½Π° Π²Ρ…ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€ΡƒΠ±Ρ‹ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ

Π’ Linux ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм практичСски любой ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ составлСнной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Часто говорят, Ρ‡Ρ‚ΠΎ всё Π² Linux β€” это ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄. Выглядит это Ρ‚Π°ΠΊ:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с Ρ‚Ρ€ΡƒΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΈΡ… Π½Π° экран.

▍ЧтСниС Ρ„Π°ΠΉΠ»ΠΎΠ²

tail my_file : считываСт строки ΠΈΠ· ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅.

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Head (Π³ΠΎΠ»ΠΎΠ²Π°) находится спСрСди, Π° tail (хвост) β€” сзади

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pandas, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ head ΠΈ tail Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡ‹. Если это Π½Π΅ Ρ‚Π°ΠΊ β€” взглянитС Π½Π° Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ рисунок, ΠΈ Π²Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° ΠΈΡ… Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅.

Команда cat Π»ΠΈΠ±ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° Π½Π° экран, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½ΠΈΡ€ΡƒΠ΅Ρ‚ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅.

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Если ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΉ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ большСС количСство Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚ΠΎ ΠΎΠ½Π° Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ процСссы.

▍УдалСниС Ρ„Π°ΠΉΠ»ΠΎΠ², остановка процСссов

kill 012345 : останавливаСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ процСсс, давая Π΅ΠΌΡƒ врСмя Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

β–ΠŸΠΎΠΈΡΠΊ

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π°Ρ€Ρ…ΠΈΠ²Π°ΠΌΠΈ.

▍Архивация

tar my_source_directory : ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ my_source_directory Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» tarball. Π’Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ большиС Π½Π°Π±ΠΎΡ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ².

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Bash-псСвдонимы

Для создания ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ псСвдонима достаточно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ„Π°ΠΉΠ»

Если Π² вашСй систСмС Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π°

/.bash_profile ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ псСвдонимы для Π»ΡŽΠ±Ρ‹Ρ… часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

β–Π˜Ρ‚ΠΎΠ³ΠΈ

Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ рассмотрСли 21 ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Bash ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ создании псСвдонимов для ΠΊΠΎΠΌΠ°Π½Π΄. Если Π²Π°ΠΌ эта Ρ‚Π΅ΠΌΠ° интСрСсна β€” Π²ΠΎΡ‚ Ρ†ΠΈΠΊΠ» ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ, посвящённый Bash. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ pdf-Π²Π΅Ρ€ΡΠΈΡŽ этих ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Bash, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы, Π²Π°ΠΆΠ½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! КакиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ, Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π±Ρ‹ ΠΊ Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ рассмотрСны Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Bash (Русский)

Bash (Bourne-again Shell) β€” командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°/язык программирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU. НазваниС прСдставляСт собой отсылку ΠΊ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΡƒ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ Π½Π΅ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Π‘ΠΎΡ€Π½Π° (Bourne shell). Bash Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π² GNU/Linux.

Π’ Arch Linux Bash являСтся ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Contents

Запуск

ПовСдСниС Bash зависит ΠΎΡ‚ способа, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½.

Π€Π°ΠΉΠ»Ρ‹ настроСк

Π’ зависимости ΠΎΡ‚ способа запуска Bash считываСт ΠΈ исполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. Ρ€Π°Π·Π΄Π΅Π» Bash Startup Files справочного руководства GNU Bash.

/.profile (Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ порядкС). Π€Π°ΠΉΠ»-ΠΎΠ±Ρ€Π°Π·Π΅Ρ† /etc/skel/.bash_profile содСрТит Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° исполнСниС Ρ„Π°ΠΉΠ»Π°

ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния

ПовСдСниС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Bash ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π² Π½Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ зависит ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния хранят значСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, располоТСниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с исполняСмыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. ΠŸΡ€ΠΈ запускС Π½ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ сцСнария ΠΎΠ½ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… исходной ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ [1].

Для создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния принято ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π°Ρ…

Командная строка

Командная строка Bash Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Readline. Readline позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш Π² стилС emacs ΠΈ vi для взаимодСйствия с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для пСрСмСщСния Π½Π°Π·Π°Π΄ ΠΈ Π²ΠΏΠ΅Ρ€Ρ‘Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ словами, удалСния слов ΠΈ Ρ‚.Π΄. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Readline ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ истории Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ макросы.

АвтодополнСниС

АвтодополнСниС (tab completion) β€” Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ клавиши Tab (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅

ВывСсти список Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΉ для частично Π²Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ нСсколькими ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ наТатиями клавиши Tab β€” ΠΈΠ½ΠΎΠ³Π΄Π° двумя ΠΈΠ»ΠΈ трСмя. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Readline#БыстроС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ описано, ΠΊΠ°ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΠΏΡ†ΠΈΠΈ

Настройки для ΠΊΠΎΠΌΠ°Π½Π΄

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ автодополнСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² руководствС Bash.

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

АвтодополнСниС истории

Клавиши стрСлок «Π²Π²Π΅Ρ€Ρ…» ΠΈ «Π²Π½ΠΈΠ·» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ для поиска ΠΊΠΎΠΌΠ°Π½Π΄ Π² истории (см. Readline#Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Бинтаксис init-Ρ„Π°ΠΉΠ»ΠΎΠ² Readline):

Или ΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π²ΠΎ всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Readline:

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ истории

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ HISTCONTROL позволяСт ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, присвойтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ истории

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Bash:

ПослС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ старый Ρ„Π°ΠΉΠ» истории (ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ β€” ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½ΠΈΠΆΠ΅ удалят Π΅Π³ΠΎ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ):

run-help ΠΈΠ· Zsh

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ (стандартный) Ρ€Π΅ΠΆΠΈΠΌ рСдактирования Emacs.

ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹

alias (Π°Π½Π³Π». псСвдоним) β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° для Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ строки Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сокращСния систСмных ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€ ΠΈΠ»ΠΈ для добавлСния стандартных Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ псСвдонимы хранятся Π² Ρ„Π°ΠΉΠ»Π΅

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Bash ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π² Bash/Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

Настройка ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ

ΠŸΠΎΠ΄ΡΡ‚Π²Π΅Ρ‚ΠΊΠ° синтаксиса ΠΈ подсказки

blesh-git AUR β€” Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ написан Π½Π° чистом Bash ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Readline. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй Π²Ρ€ΠΎΠ΄Π΅ подствСтки синтаксиса, подсказок, Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ с Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌ мСню, Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€, Ρ€Π΅ΠΆΠΈΠΌΠ° рСдактирования Vim, Ρ…ΡƒΠΊ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ‚.Π΄.

ПослС установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ сСансС. Настройки ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅

Command not found

Π’ pkgfile Π΅ΡΡ‚ΡŒ Ρ…ΡƒΠΊ «command not found», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ нСизвСстной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ автоматичСски ΠΈΡ‰Π΅Ρ‚ подходящий исполняСмый Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… рСпозиториях.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ…ΡƒΠΊ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π», Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

ПослС этого ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ информация:

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ctrl+z

НаТатиС Ctrl+z Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ставит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΡƒΠ·Ρƒ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ. ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° экрана послС Π²Ρ‹Ρ…ΠΎΠ΄Π°

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° экрана Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° послС Π²Ρ‹Ρ…ΠΎΠ΄Π°:

Π‘ΠΌΠ΅Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΏΡƒΡ‚ΠΈ

Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Autojump

Π—Π°ΠΏΡ€Π΅Ρ‚ Π½Π° ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ пСрСзаписи Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пСрСнаправлСния Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° врСмя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса:

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ измСнСния постоянными:

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈ установлСнном noclobber :

РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ строк ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΊΠ½Π°

ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π΄Π°ΠΆΠ΅ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ ignoreeof

ПослС задания ΠΎΠΏΡ†ΠΈΠΈ ignoreeof Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Ctrl-d всё Ρ€Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ процСсса ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ эта опция позволяСт ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 10 Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш (Ссли Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ β€” 10 ситуаций EOF) ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

Π—Π°Π΄Π°Ρ‚ΡŒ большСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ IGNOREEOF. НапримСр:

Анализ сцСнария ΠΈ поиск ошибок

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° shellcheck провСряСт сцСнарии Bash (ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ) Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ошибок ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡΠ½ΠΎΠ²Ρ‹ Bash-скриптинга для нСпрограммистов

Π‘Ρ‚Π°Ρ‚ΡŒΡ рассчитана Π½Π° Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ°Π»ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой Unix/Linux, Π½ΠΎ ΠΆΠ΅Π»Π°Π΅Ρ‚ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ с Π½Π΅ΠΉ эффСктивно Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ скрипты для выполнСния своих Π·Π°Π΄Π°Ρ‡. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ справСдливы для выполнСния Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ bash ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ubuntu/Debian, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ… ΠΈ ОБ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΈΡ… спСцифики.

1. ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

БущСствуСт мноТСство дистрибутивов(Ρ„ΠΎΡ€ΠΊΠΎΠ²) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм(ОБ) сСмСйства Linux, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстныС срСди Π½ΠΈΡ…: Ubuntu, Debian, CentOS, Red Hat, Fedora, SuSE, FreeBSD, Mint.

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ большая схСма со всСми Ρ„ΠΎΡ€ΠΊΠ°ΠΌΠΈ Linux.

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ОБ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ (shell), ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ (администрированиС, автоматизация, вычислСния, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Ρ‚.Π΄.), ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ основных ΠΊΠΎΠΌΠ°Π½Π΄, Π½ΠΎ рСализация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ сравнСниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ всСми ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ.

Feature

Bourne

Korn

Bash

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

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠΠ²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°

Π‘Ρ‚Π΅ΠΊΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ (pushd and popd)

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибок Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

Бписок доступных ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

2. Настройка тСстовой срСды

Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ/Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ машина с установлСнным Linux, ΠΈΠ»ΠΈ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π΅Ρ‘ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· спойлСра Π½ΠΈΠΆΠ΅. Если Π΅ΡΡ‚ΡŒ доступ ΠΏΠΎ ssh ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ сСрвСру, Ρ‚ΠΎ Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ shell для Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ доступ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½Π΅ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Ρ…(ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ…) сСрвСрах ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… окруТСниях. Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ(Π’Πœ), Ρ‚ΠΎ для тСстов ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… особСнности ΠΈ ограничСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ²:
https://cocalc.com/app?anonymous=terminal
https://www.tutorialspoint.com/execute_bash_online.php
https://rextester.com/l/bash_online_compiler

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹

VirtualBox – ПО для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ОБ Β«Π²Π½ΡƒΡ‚Ρ€ΠΈΒ» Π΄Ρ€ΡƒΠ³ΠΎΠΉ. РазумССтся, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы развСртывания Π’Πœ, здСсь ΠΌΡ‹ рассмотрим лишь ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, прСдполагаСтся, Ρ‡Ρ‚ΠΎ Ρƒ вас ПК ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows ΠΈΠ»ΠΈ Mac. Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ VirtualBox ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π’Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· Π’Πœ с установлСнной ОБ Ubuntu ΠΎΡ‚ΡΡŽΠ΄Π°. ΠšΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΡΠ°ΠΌΡƒΡŽ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ скачиваСмый ΠΎΠ±Ρ€Π°Π· ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ VirtualBox (VDI).

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. Π‘Π½Π°Ρ‡Π°Π»Π° создаСм Π½Π° локальном дискС ΠΏΠ°ΠΏΠΊΡƒ для размСщСния Π² Π½Π΅ΠΉ Π’Πœ ΠΈ ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Ρƒ мСня C:\vmachines). РаспакуСм скачанный ΠΎΠ±Ρ€Π°Π· диска Π’Πœ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя Π’Πœ (Ρ‚ΠΈΠΏ ΠΈ вСрсия Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‚ΡΡ автоматичСски, Ссли это понятно ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π½Π°ΠΌΠΈ ΠΏΠ°ΠΏΠΊΡƒ. ОбъСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти устанавливаСтся автоматичСски, 1Π“Π± достаточно для выполнСния тСстов. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ТСсткий диск», Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π·Π½Π°Ρ‡ΠΎΠΊ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ±Ρ€Π°Π·Π° ТСсткого диска, Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΒ», Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ распакованный Ρ€Π°Π½Π΅Π΅ Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π’Πœ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΒ»:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

И Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ»:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² спискС ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π’Πœ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΒ»:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

ПослС запуска Π’Πœ появится ΠΎΠΊΠ½ΠΎ для Π²Ρ…ΠΎΠ΄Π° Π² ОБ:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись osboxes.org ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ osboxes.org. ПослС Π²Ρ…ΠΎΠ΄Π° Π² систСму Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Ctrl+Alt+T, Ρƒ нас откроСтся ΠΎΠΊΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ тСсты:

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π€Π°ΠΉΠ» bash Ρ‡Ρ‚ΠΎ это

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ тСстового ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

На Π΄Π°Π½Π½ΠΎΠΌ этапС ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ срСду, выполняя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ (Ctrl+Alt+T). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ssh ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, PuTTY), ΠΌΡ‹ рассмотрим это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

3. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ ΠΈ находимся Π² shell. Π”Π°Π²Π°ΠΉΡ‚Π΅ сориСнтируСмся Π² пространствС. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ имя ΠΌΠ°ΡˆΠΈΠ½Ρ‹(сСрвСра), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ находимся, Π²Π²Π΅Π΄Π΅ΠΌ hostname ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ Enter:

Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ отобраТаСтся Π² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (test@osboxes:

Команда cat Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° (Ρ‡Π°ΡΡ‚ΡŒ строк Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π° ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° …). Из Ρ„Π°ΠΉΠ»Π° Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ test ΡƒΠΊΠ°Π·Π°Π½Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° /bin/dash. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ(chsh – сокращСнноС ΠΎΡ‚ change shell):

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΌΡ‹ находимся, для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pwd :

Для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ синоним (alias), Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΅Ρ‘ Π²Π²ΠΎΠ΄. Бписок ΡƒΠΆΠ΅ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… синонимов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ alias :

Алиасы Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅

) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ домашнюю Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ нашСм случаС /home/test. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ„Π°ΠΉΠ»Π΅

/.bashrc. Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ слов ΠΎΠ± этих Ρ„Π°ΠΉΠ»Π°Ρ….

ΠŸΡ€ΠΈ запускС bash Π² качСствС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, сначала выполняСтся Ρ„Π°ΠΉΠ»Ρ‹ (Π² случаС ΠΈΡ… наличия), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ настройки профиля ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия Π² процСссС Π²Ρ…ΠΎΠ΄Π° Π΄ΠΎ появлСния ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки: сначала выполняСтся Ρ„Π°ΠΉΠ» /etc/profile, Π΄Π°Π»Π΅Π΅ bash ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ‰Π΅Ρ‚ ΠΈ выполняСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

/.profile. Из ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

./profile вызываСтся Ρ„Π°ΠΉΠ»

НСкоторыС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ bash Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ сдСлано, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипты ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НапримСр, сущСствуСт исполняСмый Ρ„Π°ΠΉΠ» /usr/bin/echo, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo. Команда help echo Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ справку ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° /usr/bin/echo –help Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ справку для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ исполняСмого Ρ„Π°ΠΉΠ»Π°. Π’Ρ‹Π²ΠΎΠ΄ справки для этих ΠΊΠΎΠΌΠ°Π½Π΄ отличаСтся, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° внутрСнняя ΠΊΠΎΠΌΠ°Π½Π΄Π° echo, скрипт, содСрТащий Π²Ρ‹Π·ΠΎΠ² echo, смоТСт ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ, Ρ‚.ΠΊ. для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Π±ΡƒΠ΄Π΅Ρ‚ использован исполняСмый Ρ„Π°ΠΉΠ» /usr/bin/echo. Для поиска Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ клавиши Β«Π’Π²Π΅Ρ€Ρ…Β» ΠΈ Β«Π’Π½ΠΈΠ·Β», ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· истории ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Если Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» интСрСсСн, Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠΈ ΡΡ‚Π°Ρ‚ΡŒΠΈ я расскаТу ΠΏΡ€ΠΎ скрипты ΠΈ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ условного выполнСния, Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π΄Π°Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *

Π€Π°ΠΉΠ»ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° (см. ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅)Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ (Π½Π΅ Π²Ρ…ΠΎΠ΄Π°)
/etc/profileБистСмный, считываСт ΠΈ исполняСт Ρ„Π°ΠΉΠ»Ρ‹ /etc/profile.d/*.sh ΠΈ /etc/bash.bashrc с настройками ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.ДаНСт