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

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

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

PS1

Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρƒ β„– 1. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ содСрТимоС строки ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅. Как Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅, эту строку ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ вСсьма сущСствСнно

PWD

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

TERM

Π’ΠΈΠΏ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ систСмы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ мноТСство ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ; эта пСрСмСнная опрСдСляСт ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с эмулятором Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°

TZ

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ часовой пояс. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСм Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ часы ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ врСмя (Coordinated Universal Time, UTC), Π° ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ значСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊ Π½Π΅ΠΌΡƒ добавляСтся смСщСниС, опрСдСляСмоС этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

USER

Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

НС Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ, Ссли ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρƒ вас ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… дистрибутивах.

Как устанавливаСтся ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅?

Когда ΠΌΡ‹ Π²Ρ…ΠΎΠ΄ΠΈΠΌ Π² систСму, запускаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° bash ΠΈ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ содСрТимоС сСрии ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сцСнариСв, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ запуска (startup files), Π³Π΄Π΅ опрСдСляСтся ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΎΠ±Ρ‰Π΅Π΅ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ запуска Π² вашСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π³Π΄Π΅ опрСдСляСтся Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. Вочная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° запускаСмого сСанса ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° ΠΈ простая ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°

БСансы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²: сСанс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° (login shell session) ΠΈ сСанс простой ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ (non-login shell session).

БСанс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° (login shell session) β€” это сСанс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° Π²Ρ…ΠΎΠ΄ выполняСтся Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ консоли. БСанс простой ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ (non-login shell session) ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ начинаСтся, ΠΊΠΎΠ³Π΄Π° запускаСтся Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π² графичСском ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² запуска, пСрСчислСнных Π² Ρ‚Π°Π±Π». 11.2.

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ сСансы ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹, пСрСчислСнныС Π² Ρ‚Π°Π±Π». 11.3.

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

Π’Π°Π±Π»ΠΈΡ†Π° 11.2. Π€Π°ΠΉΠ»Ρ‹ запуска для сСансов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°

Π€Π°ΠΉΠ»

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚

/etc/profile

ΠžΠ±Ρ‰Π΅ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ сцСнарий, настройки ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

~/.bash_profile

Π›ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ„Π°ΠΉΠ» запуска. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ/ΠΈΠ»ΠΈ пСрСопрСдСлСния общСсистСмных настроСк

~/.bash_login

Если Ρ„Π°ΠΉΠ» ~/.bash_profile присутствуСт Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, bash пытаСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ

~/.profile

Если Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π½Π΅Ρ‚ Π½ΠΈ ~/.bash_profile, Π½ΠΈ ~/.bash_login, bash пытаСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ». Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² дистрибутивах Π½Π° основС Debian, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ubuntu

Π’Π°Π±Π»ΠΈΡ†Π° 11.3. Π€Π°ΠΉΠ»Ρ‹ запуска для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… сСансов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

Π€Π°ΠΉΠ»

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚

/etc/bash.bashrc

ΠžΠ±Ρ‰Π΅ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ сцСнарий, настройки ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

~/.bashrc

Π›ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ„Π°ΠΉΠ» запуска. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ/ΠΈΠ»ΠΈ пСрСопрСдСлСния общСсистСмных настроСк

ЗаглянитС Π² свою систСму ΠΈ посмотритС, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ запуска Ρƒ вас ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅: ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· пСрСчислСнных Π²Ρ‹ΡˆΠ΅ начинаСтся с Ρ‚ΠΎΡ‡ΠΊΠΈ (Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ скрытыми), ΠΏΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -a.

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

Π§Ρ‚ΠΎ находится Π² Ρ„Π°ΠΉΠ»Π°Ρ… запуска?

Если Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° .bash_profile (взятого ΠΈΠ· систСмы CentOS-4), ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

# .bash_profile

# Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ псСвдонимы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

if [ -f ~/.bashrc ]; then

Β Β Β Β Β Β Β Β . ~/.bashrc

fi

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ окруТСния ΠΈ запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

PATH=$PATH:$HOME/bin

export PATH

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с #, β€” это ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΎΠ½ΠΈ Π½Π΅ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ, Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ интСрСсный Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ начинаСтся Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ строкС:

if [ -f ~/.bashrc ]; then

Β Β Β Β Β Β Β Β . ~/.bashrc

fi

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ называСтся составной условной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π½ΠΎ Π² части IV ΠΊΠ½ΠΈΠ³ΠΈ, Π³Π΄Π΅ обсуТдаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° языкС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π° ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° чСловСчСский язык:

Если Ρ„Π°ΠΉΠ» "~/.bashrc" сущСствуСт, Ρ‚ΠΎΠ³Π΄Π°

Β Β Β Β Β ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» "~/.bashrc" file.

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

ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π»ΠΈ Π²Π°ΠΌ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Β­Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вводятся Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС? НапримСр, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ ls, командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π΅ обыскиваСт вСсь ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ /bin/ls (ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ls), Π° просматриваСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, пСрСчислСнныС Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ PATH часто (Π½ΠΎ Π½Π΅ всСгда, Π² зависимости ΠΎΡ‚ дистрибутива) устанавливаСтся Π² Ρ„Π°ΠΉΠ»Π΅ запуска /etc/profile, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

PATH=$PATH:$HOME/bin

Π—Π΄Π΅ΡΡŒ Π² ΠΊΠΎΠ½Π΅Ρ† списка Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH добавляСтся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ $HOME/bin. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ использования ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° подстановки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ познакомились Π² Π³Π»Π°Π²Π΅ 7. Для дСмонстрации ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

[[email protected] ~]$ foo="This is some"

[[email protected] ~]$ echo $foo

This is some

[[email protected] ~]$ foo=$foo" text."

[[email protected] ~]$ echo $foo

This is some text.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ тСкст Π² ΠΊΠΎΠ½Π΅Ρ† содСрТимого ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ строки $HOME/bin Π² ΠΊΠΎΠ½Π΅Ρ† содСрТимого ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH происходит Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° $HOME/bin Π² список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ поиск Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² своСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ для хранСния Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ этому. Нам останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Ρ‚ΡŒ имя bin этому ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

МногиС дистрибутивы ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ настройки PATH ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. НСкоторыС дистрибутивы Π½Π° основС Debian, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ubuntu, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ~/bin Π²ΠΎ врСмя Π²Ρ…ΠΎΠ΄Π°, ΠΈ Ссли ΠΎΠ½ имССтся, динамичСски Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH.

НаконСц, Ρƒ нас ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° строка:

export PATH

Команда export ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH доступным Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ процСссам этой ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

ИзмСнСниС окруТСния

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, зная, Π³Π΄Π΅ находятся Ρ„Π°ΠΉΠ»Ρ‹ запуска ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ содСрТат, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

КакиС Ρ„Π°ΠΉΠ»Ρ‹ слСдуСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ?

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ содСрТимого ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½ΠΎΠΉ PATH ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ .bash_profile (ΠΈΠ»ΠΈ эквивалСнтном Π΅ΠΌΡƒ, Π² зависимости ΠΎΡ‚ дистрибутива, β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ubuntu ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„Π°ΠΉΠ» .profile). Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях измСнСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² .bashrc. Если Π²Ρ‹ Π½Π΅ систСмный администратор ΠΈ Π²Π°ΠΌ Π½Π΅ трСбуСтся Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ систСмы, измСняйтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π² своСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² /etc, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ profile, ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях Π² этом Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ смысл, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ° ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ рискованных дСйствий.