{"id":228921,"date":"2022-11-05T12:40:00","date_gmt":"2022-11-05T09:40:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228921"},"modified":"2022-11-09T04:48:45","modified_gmt":"2022-11-09T01:48:45","slug":"primer-w-bash-dla-programistow-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/primer-w-bash-dla-programistow-wordpress\/","title":{"rendered":"Primer w Bash dla programist\u00f3w WordPress"},"content":{"rendered":"\n<p>Od czasu do czasu instaluj\u0119 oprogramowanie przez <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> lub umieszczam niekt\u00f3re z jego plik\u00f3w binarnych w katalogach innych ni\u017c zwyk\u0142e miejsca, w kt\u00f3rych macOS spodziewa si\u0119 je znale\u017a\u0107.<\/p>\n<p>Oznacza to, \u017ce je\u015bli uruchamiasz aplikacj\u0119 z poziomu Terminala lub aplikacja z graficznym interfejsem u\u017cytkownika spodziewa si\u0119, \u017ce znajduje si\u0119 w okre\u015blonej lokalizacji na dysku, prawdopodobnie b\u0119dzie si\u0119 tego spodziewa\u0107 w jednym z pi\u0119ciu miejsc:<\/p>\n<ol>\n<li>\/usr\/bin<\/li>\n<li>\/kosz<\/li>\n<li>\/usr\/sbin<\/li>\n<li>\/sbin<\/li>\n<li>\/usr\/local\/bin<\/li>\n<\/ol>\n<p>Ale, jak powiedzia\u0142em, z czasem instalujemy rzeczy za pomoc\u0105 narz\u0119dzi innych firm lub instalujemy rzeczy, kt\u00f3re umieszczaj\u0105 pliki binarne poza jednym z tych katalog\u00f3w.<\/p>\n<p>Przyk\u0142ad: co si\u0119 stanie, je\u015bli chcesz zainstalowa\u0107 <a href=\"http:\/\/wp-cli.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP-CLI<\/a> globalnie? A co, je\u015bli chcesz u\u017cy\u0107 wersji MySQL, kt\u00f3ra jest dostarczana z <a href=\"https:\/\/www.mamp.info\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MAMP<\/a>? <\/p>\n<p>W takich przypadkach te pliki binarne nie b\u0119d\u0105 zawarte w \u017cadnym z wy\u017cej wymienionych katalog\u00f3w. Kiedy tak si\u0119 stanie, musisz zmodyfikowa\u0107 sw\u00f3j profil. Je\u015bli nigdy tego nie robi\u0142e\u015b, mo\u017ce to by\u0107 trudne. I mo\u017ce by\u0107 ba\u0142agan, je\u015bli nie robisz tego metodycznie z biegiem czasu.<\/p>\n<p>Oto elementarz Bash dla programist\u00f3w WordPress na temat tego, czym jest Tw\u00f3j <strong>profil bash<\/strong> i jak nim zarz\u0105dza\u0107 oprogramowaniem innych firm.<\/p>\n<h2>Bash dla programist\u00f3w WordPress<\/h2>\n<p>Zanim zaczniesz ustawia\u0107 \u015bcie\u017cki dla innego oprogramowania i tym podobnych, wa\u017cne jest, aby pami\u0119ta\u0107, \u017ce mo\u017cesz nie mie\u0107 <strong>bash_profile<\/strong>. Oznacza to, \u017ce je\u015bli u\u017cywasz terminala, mo\u017cesz u\u017cy\u0107 innego typu pow\u0142oki, a je\u015bli tak jest, jeste\u015b ju\u017c daleko przed tym postem.<\/p>\n<p>Je\u015bli z drugiej strony u\u017cywasz pow\u0142oki terminala bez zmian, kt\u00f3ra jest dostarczana z macOS. Ale najpierw, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Shell_(computing)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">czym jest muszla<\/a>? <\/p>\n<blockquote>\n<p>W informatyce pow\u0142oka jest interfejsem u\u017cytkownika umo\u017cliwiaj\u0105cym dost\u0119p do us\u0142ug systemu operacyjnego. Og\u00f3lnie pow\u0142oki systemu operacyjnego u\u017cywaj\u0105 interfejsu wiersza polecenia (CLI) lub graficznego interfejsu u\u017cytkownika (GUI), w zale\u017cno\u015bci od roli komputera i konkretnej operacji.<\/p>\n<\/blockquote>\n<p>A je\u015bli u\u017cywasz Terminala bez modyfikacji, prawdopodobnie u\u017cywasz <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bash_(Unix_shell)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bash<\/a>.<\/p>\n<p>Wreszcie, wszystkie ustawienia dla ka\u017cdego uruchomienia Terminala s\u0105 przechowywane w odpowiednim pliku profilu pow\u0142oki. W takim przypadku wszystko jest przechowywane w <strong>.bash_profile<\/strong>.<\/p>\n<p>Aby wszystko by\u0142o skonfigurowane dok\u0142adnie tak, jak tego potrzebujemy, musimy wprowadzi\u0107 pewne zmiany (lub nawet je zainicjowa\u0107), aby wszystko dzia\u0142a\u0142o.<\/p>\n<p><strong>Zauwa\u017c\u00a0<\/strong>, \u017ce po ka\u017cdej zmianie dokonanej w <strong>.bash_profile<\/strong> mo\u017cesz chcie\u0107 uruchomi\u0107:<\/p>\n<pre><code>$ source ~\/.bash_profile<\/code><\/pre>\n<p>Tak wi\u0119c wszystkie nowe zmiany, kt\u00f3re zosta\u0142y wprowadzone, s\u0105 \u0142adowane dla bie\u017c\u0105cej sesji terminala.<\/p>\n<h3>Profil pocz\u0105tkowy<\/h3>\n<p>Za ka\u017cdym razem, gdy konfiguruj\u0119 sw\u00f3j pocz\u0105tkowy profil, zawsze wygl\u0105da tak samo. Oznacza to, \u017ce zawiera pi\u0119\u0107 katalog\u00f3w, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c337af437e59084382597f57431db798#file-00-initial-bash-profile-sh\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kt\u00f3re wymieni\u0142em powy\u017cej<\/a> :<\/p>\n<pre><code>PATH=\"\/usr\/bin:\/bin:\/usr\/sbin:\/sbin:\/usr\/local\/bin:$PATH\"\nexport PATH<\/code><\/pre>\n<p>Zauwa\u017cysz jednak na ko\u0144cu\u00a0 zmiennej <strong>PATH<\/strong>, \u017ce jest co\u015b, co wygl\u0105da jak inna zmienna. W szczeg\u00f3lno\u015bci m\u00f3wi\u0119 o <strong>$PATH<\/strong>. I wa\u017cne jest, aby to zrozumie\u0107, poniewa\u017c wp\u0142ywa to na spos\u00f3b znajdowania program\u00f3w w terminalu.<\/p>\n<h4>Co to jest $PATH?<\/h4>\n<p>Po pierwsze, pomy\u015bl, \u017ce by\u0142 to spos\u00f3b na wyszukiwanie plik\u00f3w binarnych przez pow\u0142ok\u0119 lub system operacyjny. Wi\u0119c je\u015bli masz wszystkie pi\u0119\u0107 powy\u017cszych \u015bcie\u017cek, system operacyjny b\u0119dzie szuka\u0142 w tych katalogach okre\u015blonych plik\u00f3w binarnych.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166528-61e795683c64a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166528-61e795683c64a.png\" alt=\"Primer w Bash dla programist\u00f3w WordPress\" ><\/a><\/p>\n<p>Aby to wypr\u00f3bowa\u0107, uruchom terminal i wpisz:<\/p>\n<pre><code>$ which clear<\/code><\/pre>\n<p>A to poka\u017ce ci, gdzie znajduje si\u0119 <strong>czysty<\/strong> plik wykonywalny w twoim systemie (gdzie clear po prostu czy\u015bci ekran terminala \ud83d\ude42).<\/p>\n<p>Nast\u0119pnie zauwa\u017c, \u017ce <strong>$PATH\u00a0<\/strong> jest zdefiniowana na ko\u0144cu ci\u0105gu w powy\u017cszym przyk\u0142adzie. Gdy zmodyfikujesz sw\u00f3j profil, b\u0119dziesz chcia\u0142 z nim pracowa\u0107. W skr\u00f3cie okre\u015bla kolejno\u015b\u0107 przeszukiwania katalog\u00f3w.<\/p>\n<p>Tak wi\u0119c w powy\u017cszym skr\u00f3cie Terminal b\u0119dzie szuka\u0142 pliku binarnego pasuj\u0105cego do tego, co chcesz wykona\u0107, zaczynaj\u0105c od <strong>\/usr\/bin<\/strong> i ko\u0144cz\u0105c na <strong>\/usr\/local\/bin<\/strong>.<\/p>\n<h3>Co oznacza \u201eeksport&quot;?<\/h3>\n<p>Je\u015bli nie u\u017cywasz Basha, nie mog\u0119 komentowa\u0107 odpowiednika, ale w kontek\u015bcie Basha <strong>export<\/strong> to spos\u00f3b na jawne przypisanie warto\u015bci do\u00a0 zmiennej <strong>PATH<\/strong> zdefiniowanej w powy\u017cszym opisie.<\/p>\n<p>Oznacza to, \u017ce w programowaniu u\u017cywamy do tworzenia zmiennej i przypisywania jej warto\u015bci. To jest podobne do tego. Jednak jeste\u015bmy nieco bardziej jednoznaczni. M\u00f3wi\u0105c najpro\u015bciej, ustawiamy zmienn\u0105 po lewej stronie na warto\u015b\u0107 po prawej stronie. A to ustawia si\u0119 za pomoc\u0105 <strong>eksportu.<\/strong><\/p>\n<p>Wi\u0119c je\u015bli chcesz zobaczy\u0107, co\u00a0 zawiera <strong>$PATH<\/strong>, wpisz to do swojego terminala:<\/p>\n<pre><code>$ echo $PATH<\/code><\/pre>\n<p>Wtedy zobaczysz warto\u015b\u0107 pi\u0119ciu dotychczas zdefiniowanych \u015bcie\u017cek.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166528-61e7956b32b60.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166528-61e7956b32b60.png\" alt=\"Primer w Bash dla programist\u00f3w WordPress\" ><\/a><\/p>\n<p>Jednak z biegiem czasu naturalnie chcemy doda\u0107 do tego wi\u0119cej.<\/p>\n<h3>Pakiety kompozytorskie<\/h3>\n<p>M\u00f3wi\u0142em o instalacji Composera i jak instalowa\u0107 pakiety za jego pomoc\u0105 w poprzednich wpisach globalnie. Za\u0142\u00f3\u017cmy jednak, \u017ce ze wzgl\u0119du na argument, chcemy zainstalowa\u0107 WP-CLI, a nast\u0119pnie doda\u0107 go tak, aby mo\u017cna by\u0142o uzyska\u0107 do niego dost\u0119p za po\u015brednictwem terminala w dowolnym miejscu naszego systemu. A wszystko to mo\u017cna zrobi\u0107, korzystaj\u0105c z powy\u017cszych informacji profilowych.<\/p>\n<p>Zak\u0142adaj\u0105c, \u017ce masz zainstalowanego kompozytora, a <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c337af437e59084382597f57431db798#file-01-composer-example-json\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tw\u00f3j composer.json wygl\u0105da tak<\/a> (wraz z kilkoma innymi rzeczami, ale na razie je zignoruj):<\/p>\n<pre><code>{\n    \"require\": {\n        \"squizlabs\/php_codesniffer\": \"2.9.1\",\n        \"wp-cli\/wp-cli\": \"~1.2.1\",\n        \"psy\/psysh\": \"~0.8.6\"\n    }\n}\n<\/code><\/pre>\n<p>A ty biega\u0142e\u015b:<\/p>\n<pre><code>$ composer update<\/code><\/pre>\n<p>Nast\u0119pnie zainstalowano WP-CLI. Ale kiedy pr\u00f3bujesz wykona\u0107 go z terminala poza jego katalogiem instalacyjnym, nie dzia\u0142a. Wi\u0119c co daje?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166528-61e7956e399dc.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166528-61e7956e399dc.png\" alt=\"Primer w Bash dla programist\u00f3w WordPress\" ><\/a><\/p>\n<p>\u015acie\u017cka do plik\u00f3w binarnych zainstalowanych przez composer nie jest ustawiona w naszym <strong>.bash_profile<\/strong>. Aby to naprawi\u0107, dodaj now\u0105 lini\u0119 do <strong>.bash_profile<\/strong>, ale upewnij si\u0119, \u017ce nie przedefiniujesz czego\u015b, co ju\u017c istnieje.<\/p>\n<p>To znaczy, poniewa\u017c <strong>PATH<\/strong> istnieje, mo\u017cemy po prostu ustawi\u0107 <strong>$PATH<\/strong> na ko\u0144cu naszej nowej linii i do\u0142\u0105czy\u0107 do niej nasz katalog Composer. W ten spos\u00f3b nie powielamy katalog\u00f3w ani warto\u015bci w zmiennej za ka\u017cdym razem, gdy je eksportujemy i ustalamy priorytet, kt\u00f3re katalogi s\u0105 przeszukiwane.<\/p>\n<p><a href=\"https:\/\/gist.github.com\/tommcfarlin\/c337af437e59084382597f57431db798#file-02-adding-composer-packages-sh\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Na przyk\u0142ad<\/a> :<\/p>\n<pre><code>PATH=\"\/usr\/bin:\/bin:\/usr\/sbin:\/sbin:\/usr\/local\/bin\"\nPATH=\"$HOME\/.composer\/vendor\/bin:$PATH\"\n\nexport PATH<\/code><\/pre>\n<p>Nast\u0119pnie, gdy spr\u00f3bujesz uruchomi\u0107 <strong>wp<\/strong> z dowolnego miejsca w wierszu polece\u0144, powinno dzia\u0142a\u0107 i powiniene\u015b by\u0107 w stanie wpisa\u0107:<\/p>\n<pre><code>$ which wp<\/code><\/pre>\n<p>I zobacz, \u017ce pochodzi z katalogu <strong>composer\/vendor\/bin<\/strong>. Aha \u2013 i zauwa\u017c, \u017ce <strong>$HOME<\/strong> to zmienna, kt\u00f3ra odwo\u0142uje si\u0119 do katalogu domowego bie\u017c\u0105cego u\u017cytkownika. Mo\u017cna to zmieni\u0107, ale wykracza to poza zakres tego postu.<\/p>\n<h3>Oprogramowanie MAMP<\/h3>\n<p>W tym momencie zmieni si\u0119 wersja PHP, MySQL lub innych j\u0119zyk\u00f3w i narz\u0119dzi, z kt\u00f3rych zdecydujesz si\u0119 korzysta\u0107. Doda\u0142em kilka r\u00f3\u017cnych post\u00f3w dotycz\u0105cych MAMP (<a href=\"https:\/\/tommcfarlin.com\/mailcatcher-mamp-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">1<\/a>, <a href=\"https:\/\/tommcfarlin.com\/php-error-log\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">2<\/a>, <a href=\"https:\/\/tommcfarlin.com\/using-phpstorm-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">3<\/a> ), wi\u0119c to w\u0142a\u015bnie wybieram jako przyk\u0142ad.<\/p>\n<p>W szczeg\u00f3lno\u015bci chc\u0119 u\u017cywa\u0107 PHP i MySQL w wersji MAMP \u2013 a nie tego, co jest dostarczane z systemem. Ale w tym momencie mo\u017cesz uruchomi\u0107:<\/p>\n<pre><code>$ which php<\/code><\/pre>\n<p>I:<\/p>\n<pre><code>$ which mysql<\/code><\/pre>\n<p>I zobacz, \u017ce oba pochodz\u0105 z katalog\u00f3w systemowych. Nale\u017cy to zmieni\u0107, aby nasz dost\u0119p z wiersza polece\u0144 korzysta\u0142 z tej samej wersji oprogramowania, z kt\u00f3rej korzysta nasza aplikacja.<\/p>\n<p>Aby to zrobi\u0107, mo\u017cemy <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c337af437e59084382597f57431db798#file-03-adding-php7-sh\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">doda\u0107 nast\u0119puj\u0105ce wiersze<\/a> do naszego <strong>.bash_profile<\/strong> :<\/p>\n<pre><code>PATH=\"\/usr\/bin:\/bin:\/usr\/sbin:\/sbin:\/usr\/local\/bin\"\nPATH=\"$PATH:$HOME\/.composer\/vendor\/bin\"\nPATH=\"\/Applications\/MAMP\/bin\/php\/php7.1.0\/bin:$PATH\"\n\nexport PATH<\/code><\/pre>\n<p>Jest tu jednak co\u015b do zaimportowania: umie\u015bci\u0142em katalog binarny PHP MAMP przed warto\u015bciami <strong>$PATH<\/strong>. Dzieje si\u0119 tak, poniewa\u017c chc\u0119, aby system najpierw szuka\u0142 tutaj (nie w katalogach systemowych).<\/p>\n<p>Jest jednak drugie wyzwanie. MAMP jest dostarczany z kilkoma r\u00f3\u017cnymi wersjami PHP i szanse na to, \u017ce za ka\u017cdym razem b\u0119dziemy u\u017cywa\u0107 tej samej wersji s\u0105 niewielkie. Potrzebujemy wi\u0119c sposobu na u\u017cycie dowolnej wersji wybranej w MAMP, prawda?<\/p>\n<p>Jednym ze sposob\u00f3w na to jest u\u017cycie aliasu.<\/p>\n<h3>A co z aliasami?<\/h3>\n<p>Mo\u017cesz my\u015ble\u0107 o aliasach jako o skr\u00f3cie \u2014 to szybki spos\u00f3b na wykonanie okre\u015blonego polecenia lub programu bez konieczno\u015bci wpisywania w pe\u0142ni kwalifikowanej nazwy do programu.<\/p>\n<p>W przypadku MAMP i PHP istnieje kilka wersji PHP, kt\u00f3rych mo\u017cemy u\u017cywa\u0107. W chwili pisania tego tekstu mam:<\/p>\n<ul>\n<li>5.4.45<\/li>\n<li>5.5.38<\/li>\n<li>5.6.28<\/li>\n<li>7.0.13<\/li>\n<li>7.1.0<\/li>\n<\/ul>\n<p>Wszystko dost\u0119pne w moim systemie. Prawdopodobnie nie b\u0119d\u0119 chcia\u0142 ich wszystkich u\u017cywa\u0107 (ani mie\u0107 ich wszystkich w mojej <strong>$PATH<\/strong> ), ale mo\u017ce by\u0107 szansa, \u017ce \u200b\u200bzechc\u0119 wykona\u0107 poprzedni\u0105 wersj\u0119 PHP, aby co\u015b przetestowa\u0107.<\/p>\n<p>Jak wi\u0119c mo\u017cemy to zrobi\u0107? Mo\u017cemy u\u017cywa\u0107 alias\u00f3w. A je\u015bli przejdziesz do <strong>\/Applications\/MAMP\/bin\/php\u00a0<\/strong>, powiniene\u015b zobaczy\u0107 wszystkie wersje PHP, kt\u00f3re s\u0105 do\u0142\u0105czone do Twojej wersji MAMP.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166528-61e795712a3f6.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166528-61e795712a3f6.png\" alt=\"Primer w Bash dla programist\u00f3w WordPress\" ><\/a><\/p>\n<p>Teraz <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c337af437e59084382597f57431db798#file-04-aliases-sh\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">skonfigurujemy aliasy<\/a> dla ka\u017cdego z nich:<\/p>\n<pre><code>## Aliases to old versions of PHP.\nalias php54=\"\/Applications\/MAMP\/bin\/php\/php5.4.45\/bin\/php\"\nalias php55=\"\/Applications\/MAMP\/bin\/php\/php5.5.38\/bin\/php\"\nalias php56=\"\/Applications\/MAMP\/bin\/php\/php5.6.28\/bin\/php\"\nalias php70=\"\/Applications\/MAMP\/bin\/php\/php7.0.13\/bin\/php\"<\/code><\/pre>\n<p>I mo\u017cemy uruchomi\u0107 ka\u017cdy z nich niezale\u017cnie od drugiego w terminalu, uruchamiaj\u0105c polecenie takie jak:<\/p>\n<pre><code>$ php54 -v<\/code><\/pre>\n<p>Powinno to pokaza\u0107, kt\u00f3ra wersja PHP jest wykonywana na podstawie aliasu zdefiniowanego w <strong>.bash_profile<\/strong>.<\/p>\n<p>I na koniec zauwa\u017c, \u017ce w ko\u0144cowym skr\u00f3cie zobaczysz lini\u0119, kt\u00f3ra zosta\u0142a dodana do <strong>.bash_profile<\/strong> :<\/p>\n<pre><code>source ~\/.profile<\/code><\/pre>\n<p>Odbywa si\u0119 to automatycznie przez system, zw\u0142aszcza gdy zaczynasz prac\u0119 z interaktywn\u0105 pow\u0142ok\u0105. Mo\u017cesz go usun\u0105\u0107, ale zostanie ponownie dodany na g\u00f3rze pliku, wi\u0119c nie przejmuj si\u0119.<\/p>\n<p>I dla por\u00f3wnania ostateczna wersja mojego <strong>.bash_profile<\/strong> wygl\u0105da <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c337af437e59084382597f57431db798#file-05-bash-profile-sh\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tak<\/a> :<\/p>\n<pre><code>source ~\/.profile\n\nPATH=\"\/usr\/bin:\/bin:\/usr\/sbin:\/sbin:\/usr\/local\/bin\"     # The standard system binaries\nPATH=\"$HOME\/.composer\/vendor\/bin:$PATH\"                 # Composer binaries\nPATH=\"\/Applications\/MAMP\/bin\/php\/php7.1.0\/bin:$PATH\"    # MAMP's PHP7 loaded first\nPATH=\"\/Applications\/MAMP\/Library\/bin:$PATH\"             # MAMP's MySQL loaded first\n\n## Aliases to old versions of PHP.\nalias php54=\"\/Applications\/MAMP\/bin\/php\/php5.4.45\/bin\/php\"\nalias php55=\"\/Applications\/MAMP\/bin\/php\/php5.5.38\/bin\/php\"\nalias php56=\"\/Applications\/MAMP\/bin\/php\/php5.6.28\/bin\/php\"\nalias php70=\"\/Applications\/MAMP\/bin\/php\/php7.0.13\/bin\/php\"\n\nexport PATH<\/code><\/pre>\n<p>Zobaczysz, \u017ce doda\u0142em r\u00f3wnie\u017c wiersze dla MySQL i MySQLAdmin tu\u017c nad wierszem definiuj\u0105cym aliasy (chocia\u017c Tw\u00f3j prawdopodobnie b\u0119dzie wygl\u0105da\u0142 inaczej).<\/p>\n<p>Niezale\u017cnie od tego, jest to og\u00f3lny pomys\u0142, chocia\u017c Tw\u00f3j prawdopodobnie b\u0119dzie wygl\u0105da\u0142 inaczej.<\/p>\n<h2>Bardziej zaawansowany bash<\/h2>\n<p>S\u0105 ludzie, kt\u00f3rzy s\u0105 znacznie bardziej zaawansowani w Bash ni\u017c ja (i nawet przegl\u0105danie innych witryn wok\u00f3\u0142 tego, co niekt\u00f3rzy zrobili, mo\u017ce by\u0107 imponuj\u0105ce).<\/p>\n<p>Ale je\u015bli jeste\u015b programist\u0105 WordPress z niewielk\u0105 lub \u017cadn\u0105 wiedz\u0105 o Bash, narz\u0119dziach wiersza polece\u0144, ustawianiu \u015bcie\u017cek itp., To jest co\u015b, co powinno by\u0107 roboczym punktem odniesienia i przyzwoitym punktem wyj\u015bcia.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oto podstawa Bash dla programist\u00f3w WordPress na temat tego, czym jest Tw\u00f3j profil bash i jak nim zarz\u0105dza\u0107 oprogramowaniem innych firm.<\/p>\n","protected":false},"author":1,"featured_media":224039,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,919,897],"tags":[1169],"class_list":["post-228921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-inny","category-kod","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/228921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=228921"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/228921\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224039"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=228921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=228921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=228921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}