✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Посібник із Bash для розробників WordPress

3

Час від часу я зрештою встановлюю частину програмного забезпечення через Composer або розміщую деякі його двійкові файли в інших каталогах, ніж у звичайних місцях, де macOS очікує їх знайти.

Тобто, якщо ви запускаєте програму з терміналу або програма з графічним інтерфейсом очікує бути в певному місці на диску, тоді вона, швидше за все, очікуватиме це в одному з п’яти місць:

  1. /usr/bin
  2. /bin
  3. /usr/sbin
  4. /sbin
  5. /usr/local/bin

Але, як я вже сказав, з часом ми встановлюємо речі за допомогою інструментів сторонніх розробників або встановлюємо речі, які розміщують двійкові файли за межами одного з цих каталогів.

Приклад: що станеться, якщо ви захочете глобально встановити WP-CLI? Або що, якщо ви хочете використовувати версію MySQL, яка поставляється з MAMP?

У таких випадках ці двійкові файли не будуть включені до жодного з вищезгаданих каталогів. Коли це станеться, вам доведеться змінити свій профіль. Якщо ви ніколи цього не робили, це може бути страшно. І це може стати безладним, якщо ви не будете робити це методично з часом.

Отже, ось посібник із Bash для розробників WordPress про те, що таке ваш bash_profile і як за допомогою нього керувати програмним забезпеченням сторонніх розробників.

Bash для розробників WordPress

Перш ніж перейти до встановлення шляхів для іншого програмного забезпечення тощо, важливо зазначити, що у вас може не бути bash_profile. Тобто, якщо ви використовуєте термінал, ви можете використовувати інший тип оболонки, і якщо це так, ви вже значно попереду цієї публікації.

З іншого боку, ви використовуєте оболонку терміналу без змін, яка постачається з macOS. Але спочатку, що таке оболонка?

В обчислювальній техніці оболонка — це інтерфейс користувача для доступу до служб операційної системи. Загалом оболонки операційної системи використовують або інтерфейс командного рядка (CLI), або графічний інтерфейс користувача (GUI), залежно від ролі комп’ютера та конкретної операції.

І якщо ви використовуєте термінал без змін, то ви, швидше за все, використовуєте Bash.

Нарешті, усі налаштування для кожного запуску терміналу зберігаються у відповідному файлі профілю оболонки. У цьому випадку все зберігається в .bash_profile.

Щоб все було налаштовано саме так, як нам потрібно, нам потрібно внести деякі зміни (або навіть ініціалізувати), щоб усе запрацювало.

Зауважте , що після кожної зміни, внесеної до .bash_profile, ви можете запустити:

$ source ~/.bash_profile

Таким чином, усі нові зміни, які вводяться, завантажуються для поточного термінального сеансу.

Початковий профіль

Щоразу, коли я налаштовую свій початковий профіль, він завжди виглядає однаково. Тобто він включає п’ять каталогів, які я перерахував вище :

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" export PATH

Однак ви помітите, що в кінці  змінної PATH є щось схоже на іншу змінну. Зокрема, я говорю про $PATH. І це важливо розуміти, оскільки це впливає на те, як програми знаходяться в терміналі.

Що таке $PATH?

По-перше, подумайте, що це спосіб для оболонки чи операційної системи шукати двійкові файли. Отже, якщо у вас визначено всі п’ять шляхів, наведених вище, операційна система шукатиме в цих каталогах певні двійкові файли.

Посібник із Bash для розробників WordPress

Щоб спробувати, запустіть термінал і введіть:

$ which clear

І це покаже вам, де він знаходить  виконуваний файл clear у вашій системі (де clear просто стирає екран терміналу 🙂).

Далі зверніть увагу, що $PATH  визначено в кінці рядка у наведеному вище прикладі. Змінюючи свій профіль, вам сподобається працювати з ним. Коротше кажучи, він визначає порядок пошуку в каталогах.

Отже, згідно з наведеним вище, термінал шукатиме двійковий файл, який відповідає тому, що ви хочете виконати, починаючи з /usr/bin і закінчуючи /usr/local/bin.

Що означає «Експорт»?

Якщо ви не використовуєте Bash, я не можу коментувати еквівалент, але в контексті Bash експорт — це спосіб явно призначити значення змінній PATH, визначеній у наведеній вище суті.

Тобто в програмуванні ми використовуємо створення змінної та присвоєння їй значення. Це схоже на те. Однак ми трохи чіткіші. Простіше кажучи, ми встановлюємо змінну зліва на значення з правого боку. І це встановлюється за допомогою експорту.

Отже, якщо ви хочете побачити, що  містить $PATH, тоді введіть це у свій термінал:

$ echo $PATH

Тоді ви побачите значення п’яти шляхів, визначених на даний момент.

Посібник із Bash для розробників WordPress

Але з часом ми хочемо додати ще більше.

Композиторські пакети

Я говорив про встановлення Composer і як установлювати пакети за допомогою нього в попередніх публікаціях у всьому світі. Але припустімо, що заради аргументу ми хочемо встановити WP-CLI, а потім додати його так, щоб до нього можна було отримати доступ через термінал будь-де в нашій системі. І все це можна зробити, використовуючи дані профілю вище.

Припустимо, що ви встановили композитор і ваш composer.json виглядає так (разом із кількома іншими речами, але поки що ігноруйте їх):

{ "require": { "squizlabs/php_codesniffer": "2.9.1", "wp-cli/wp-cli": "~1.2.1", "psy/psysh": "~0.8.6" } }

І ви побігли:

$ composer update

Потім було встановлено WP-CLI. Але коли ви намагаєтесь виконати його з терміналу за межами каталогу встановлення, це не працює. Так що дає?

Посібник із Bash для розробників WordPress

Шлях до двійкових файлів, встановлених через композитор, не встановлено в нашому .bash_profile. Щоб виправити це, додайте новий рядок до .bash_profile, але переконайтеся, що ви не перевизначаєте те, що вже існує.

Тобто, оскільки PATH існує, ми можемо просто встановити $PATH у кінці нашого нового рядка та додати до нього наш каталог Composer. Таким чином, ми не будемо дублювати каталоги чи значення у змінній кожного разу, коли ми їх експортуємо, і ми встановлюємо пріоритет каталогів, у яких здійснюється пошук.

наприклад :

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" PATH="$HOME/.composer/vendor/bin:$PATH" export PATH

Тоді, коли ви спробуєте запустити wp з будь-якого місця в командному рядку, це має працювати, і ви зможете ввести:

$ which wp

І подивіться, що він надходить із каталогу composer/vendor/bin . І зауважте, що $HOME — це змінна, яка посилається на домашній каталог поточного користувача. Це можна змінити, але це виходить за межі цієї публікації.

Програмне забезпечення MAMP

На цьому етапі версія PHP, MySQL або інших мов і інструментів, які ви виберете, зміниться. Я надав кілька різних дописів навколо MAMP (1, 2, 3 ), тому я вирішив використати це як приклад.

Зокрема, я хочу використовувати версію PHP і MySQL від MAMP, а не те, що постачається разом із системою. Але на цьому етапі ви можете запустити:

$ which php

і:

$ which mysql

І бачите, що вони обидва надходять із системних каталогів. Це потрібно змінити, щоб наш доступ до командного рядка використовував ту саму версію програмного забезпечення, яку використовує наша програма.

Для цього ми можемо додати наступні рядки до нашого .bash_profile :

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" PATH="$PATH:$HOME/.composer/vendor/bin" PATH="/Applications/MAMP/bin/php/php7.1.0/bin:$PATH" export PATH

Однак тут є щось імпортоване: я розмістив двійковий каталог PHP MAMP перед значеннями $PATH. Це тому, що я хочу, щоб система спочатку шукала тут (а не в системних каталогах).

Але є другий виклик. MAMP постачається з кількома різними версіями PHP, і ймовірність того, що ми захочемо використовувати ту саму версію кожного разу, невелика. Отже, нам потрібен спосіб використовувати будь-яку версію, вибрану в MAMP, чи не так?

Один із способів зробити це — використати псевдонім.

Що щодо псевдонімів?

Псевдоніми можна розглядати як ярлики – це швидкий спосіб виконати певну команду чи програму без необхідності вводити повне ім’я програми.

У випадку MAMP і PHP ми можемо використовувати деякі версії PHP. На момент написання цієї статті я мав:

  • 5.4.45
  • 5.5.38
  • 5.6.28
  • 7.0.13
  • 7.1.0

Усі доступні в моїй системі. Я навряд чи захочу використовувати всі з них (і мати їх усі в моєму $PATH ), але може бути ймовірність, коли я захочу виконати попередню версію PHP, щоб перевірити щось конкретне.

Отже, як ми можемо це зробити? Ми можемо використовувати псевдоніми. І якщо ви перейдете до /Applications/MAMP/bin/php , ви побачите всі версії PHP, які входять до вашої версії MAMP.

Посібник із Bash для розробників WordPress

Тепер ми налаштуємо псевдоніми для кожного з них:

## Aliases to old versions of PHP. alias php54="/Applications/MAMP/bin/php/php5.4.45/bin/php" alias php55="/Applications/MAMP/bin/php/php5.5.38/bin/php" alias php56="/Applications/MAMP/bin/php/php5.6.28/bin/php" alias php70="/Applications/MAMP/bin/php/php7.0.13/bin/php"

І ми можемо запускати кожен із них незалежно від іншого в терміналі, виконавши таку команду:

$ php54 -v

Це має показати вам, яка версія PHP виконується на основі псевдоніма, який ви визначили в .bash_profile.

І, нарешті, зауважте, що в останній частині ви побачите рядок, який було додано до .bash_profile :

source ~/.profile

Це робиться системою автоматично, коли ви починаєте працювати з інтерактивною оболонкою. Ви можете видалити його, але він знову буде доданий у верхній частині файлу, тож не хвилюйтеся.

І, для довідки, остаточна версія мого .bash_profile виглядає так :

source ~/.profile PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" # The standard system binaries PATH="$HOME/.composer/vendor/bin:$PATH" # Composer binaries PATH="/Applications/MAMP/bin/php/php7.1.0/bin:$PATH" # MAMP's PHP7 loaded first PATH="/Applications/MAMP/Library/bin:$PATH" # MAMP's MySQL loaded first ## Aliases to old versions of PHP. alias php54="/Applications/MAMP/bin/php/php5.4.45/bin/php" alias php55="/Applications/MAMP/bin/php/php5.5.38/bin/php" alias php56="/Applications/MAMP/bin/php/php5.6.28/bin/php" alias php70="/Applications/MAMP/bin/php/php7.0.13/bin/php" export PATH

Ви побачите, що я також додав рядки для MySQL і MySQLAdmin трохи вище рядка, що визначає псевдоніми (хоча ваш, ймовірно, виглядатиме інакше).

Незважаючи на це, це загальна ідея, хоча ваша, швидше за все, виглядатиме інакше.

Більш розширений Bash

Є люди, які набагато просунутіші в Bash, ніж я (і навіть перегляд інших сайтів щодо того, що зробили деякі люди, може бути вражаючим).

Але якщо ви розробник WordPress і майже не знаєте Bash, інструментів командного рядка, встановлення шляхів тощо, тоді це те, що має стати робочим довідником і гідною відправною точкою.

Джерело запису: tommcfarlin.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі