μλμ°λ‘ κ°λ°μ νλ μ μ₯μμ ν°λ―Έλμ λ€λ£¨κΈ°λ μ‘°κΈ κΉλ€λ‘λ€. 리λ μ€λ OSX νκ²½μ λ§μΆ°μ§ νλ‘μ νΈμ μ°Έμ¬νλ©΄ λͺ λ Ήμ΄ λ€λ₯΄κ² λμν΄ μ½μ§νκ³ , OSXμ ν¨ν€μ§ 맀λμ μΈ Homebrewκ°μ κ²λ μμ΄μ λ μ½μ§μ νκ³€ νλ€.
λλ¬Έμ μλμ°μμ μ°λΆν¬λ₯Ό κ°μλ¨Έμ μΌλ‘ λ리거λ λ©ν°λΆν μ νλ λ± λ€μν λ°©λ²λ€μ μλνλλ°, μμ λ²κ±°λ‘κ³ λΆνΈνλ€. κ·Έλ¬λ μ€ WSLμ μκ²λλ€.
WSLμ Windows Subsystem for Linuxμ μ½μλ‘, μλμ° μλΈμμ€ν μ 리λ μ€λ₯Ό νμ¬νλ κ²μ΄λ€. λ§μ΄ν¬λ‘μννΈμμ 곡μμ μΌλ‘ μ§μνλ κ²μ΄κΈ° λλ¬Έμ μ΄λμ λ μμ μ±μ 보μ₯ν μ μλ€. κ·Έλ₯ μλμ° μ€ν μ΄μμ μ°λΆν¬λ₯Ό μ€μΉνλ©΄ λκΈ° λλ¬Έμ λ°©λ²λ κ°λ¨νλ€. Windows Subsystem for Linux Installation Guide for Windows 10μ μ°Έκ³ .
μ€μΉν μ°λΆν¬λ₯Ό μ€ννμ¬ UNIX μμ΄λμ ν¨μ€μλλ₯Ό μ€μ νκ³ λλ©΄ μλμ κ°μ νλ©΄μ΄ λνλλ€. μ΄μ μλμ°μμ μ°λΆν¬ bashλ₯Ό μ¬μ©ν μ μλ€!
μμ λλ ν 리 λ§ν¬νκΈ°
~
κ²½λ‘λ home λλ ν 리λ₯Ό μλ―Ένλ©°, μ²μ κ³μ μ μμ±νλ©΄ κΈ°λ³Έμ μΌλ‘ /home/{ID}
κ° home λλ ν λ¦¬λ‘ μ€μ λλ€. μ΄λμλ cd
λͺ
λ Ήμ΄λ₯Ό ν΅ν΄ μ΄κ³³μΌλ‘ μ΄λν μ μλ€. νμ§λ§ μ£Όλ‘ μμ
νλ λλ ν 리λ μ΄κ³³μ΄ μλλ―λ‘, μ€μ μ΄ νμνλ€.
home λλ ν 리 μ체λ λμ€μ λ λ€λ₯΄κ² μ¬μ©ν κ² κ°μμ home λλ ν 리μ κ²½λ‘λ₯Ό λ³κ²½νκΈ° 보λ€λ μ΄κ³³μ λ§ν¬ νμΌμ λκΈ°λ‘ κ²°μ νλ€. λ΄κ° μ£Όλ‘ μμ
νμΌμ λλ κ²½λ‘λ c/Bitnami/wampstack/apache2/htdocs
μ΄λ€. wslμμλ cλλΌμ΄λΈκ° \mnt
λλ ν 리μ νμ ν΄λλ‘ μ‘΄μ¬νλ―λ‘, μ°λΆν¬μμ μ λ κ²½λ‘λ /mnt/c/Bitnami/wampstack/apache2/htdocs
κ° λλ€. λ§μ½ home λλ ν 리 κ²½λ‘λ₯Ό λ³κ²½νλ€λ©΄ λ€μ λͺ
λ Ήμ μ¬μ©νλ©΄ λλ€.
# usermod -d {PATH} {ID}
$ usermod -d /mnt/c/Bitnami/wampstack/apache2/htdocs parksb
λ§ν¬ νμΌμ μλμ°μ λ°λ‘κ°κΈ° κ°μ κ²μ΄λ€. λ§ν¬λ symbolic linkμ hard linkλ‘ λλλλ°, μ μλ μλμ°μ λ°λ‘κ°κΈ°μ μμ ν λμΌνλ€. λ§μ½ μλ³Έ νμΌμ΄ μμ λλ€λ©΄ symbolic linkλ 무ν¨νλλ€. νμλ λμΌν λ΄μ©μ λ€λ₯Έ νμΌμ λ§λλ κ²μ΄λ€. μλ³Έ νμΌμ΄λ hard link λ μ€ νλκ° μμ λΌλ λ€λ₯Έ νλλ λ¨μμλ€. λ§μ½ μλ³Έ νμΌμ λ΄μ©μ΄ λ³κ²½λλ€λ©΄ hard linkμ νμΌ λ΄μ©λ λ³κ²½λλ€.
λ΄κ° μνλ κ²μ λ°λ‘κ°κΈ°μ΄λ―λ‘, symbolic link νμΌμ λ§λ€μ΄λ³΄κ² λ€.
# ln -s {OPTION} {ORIGIN} {TARGET}
$ ln -s /mnt/c/Bitnami/wampstack/apache2/htdocs /home/parksb/htdocs
μ΄λ κ² νλ©΄ /home/parksb
μ /mnt/c/Bitnami/wampstack/apache2/htdocs
λλ ν 리λ₯Ό λ§ν¬ν htdocs
νμΌμ΄ λ§λ€μ΄μ§λ€. λ°λΌμ cd ~/htdocs
λ₯Ό νλ©΄ /mnt/c/Bitnami/wampstack/apache2/htdocs
λ‘ μ΄λνλ κ²κ³Ό κ°μμ§λ€. -s
μ΅μ
μ symbolic link νμΌμ λ§λ€κ² λ€λ μλ―Έλ€. λ§μ½ hard link νμΌμ λ§λ λ€λ©΄ μλ¬΄λ° μ΅μ
μ μ£Όμ§ μμλ λλ€.
Git branch 보μ¬μ£ΌκΈ°
git bashλ₯Ό μ¬μ©νλ©΄ bashμ git branchκ° λνλλ€. νμ§λ§ wsl bashμμλ git branchκ° λνλμ§ μμΌλ―λ‘ λ°λ‘ μ€μ μ ν΄μ€μΌ νλ€. λ¨Όμ vimμΌλ‘ .bashrc
νμΌμ μ΄μ΄μ bash μ€μ μ λ³κ²½ν΄μ£Όμ. λλ vimμΌλ‘ μμ νλλ°, vimμ΄ μ΅μνμ§ μλ€λ©΄Β vim μ¬μ©λ²μ μ°Έκ³ ν΄λ³΄μ.Β μ λλ‘ λ¦¬λ
μ€ νμΌμ μλμ° ν΄λ‘ μμ ν΄μλ μ λλ€!Β μνν κ²°κ³Όλ₯Ό μ΄λν μ μμΌλ cli μλν°λ₯Ό μ¬μ©νμ§ λͺ»νκ² λ€λ©΄ μ°¨λΌλ¦¬Β μ°λΆν¬λ₯Ό guiλ‘ μ¬μ©νλ κ²μ κΆνλ€.
$ vim ~/.bashrc
맨 μλμ λ€μκ³Ό κ°μ ꡬ문μ μΆκ°ν΄μ€λ€. (Display git branch in bash promptλ₯Ό μ°Έκ³ ν΄ κΈ°μ‘΄ νμμ λ§κ² μ‘°κΈ μμ νλ€.)
# display git branch in bash prompt
git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \\(.*\\)/(\\1)/'
}
export PS1='\\[\\033[0;32m\\]\\[\\033[0m\\033[0;32m\\]\\u@\\h:\\[\\033[0;36m\\]\\w\\[\\033[0;32m\\]$(git_branch)\\[\\033[0;32m\\]\\[\\033[0m\\033[0;32m\\] \\$\\[\\033[0m\\033[0;32m\\]\\[\\033[0m\\]'
μ μ₯νκ³ , μμ ν κ²μ μ μ©μμΌμ€λ€.
$ source ~/.bashrc
git initμ΄ μ λ κ³³μλ branchκ° λμ€μ§ μκ³ , initμ΄ λ κ³³μλ λνλλ€.
npm μ¬μ©νκΈ°
κ°μ₯ λ¨Όμ ν°μ§ μ΄μλ vscodeμ ν΅ν© ν°λ―Έλμμ npm
μ΄ μ λ¨Ήνλ κ²μ΄μλ€.
$ npm -v
: not foundram Files/nodejs/npm: 3: /mnt/c/Program Files/nodejs/npm:
: not foundram Files/nodejs/npm: 5: /mnt/c/Program Files/nodejs/npm:
/mnt/c/Program Files/nodejs/npm: 6: /mnt/c/Program Files/nodejs/npm: Syntax error: word unexpected (expecting "in")
κ²μν΄λ³΄λ Issue running npm commandλΌλ κΉνλΈμ WSL μ μ₯μ μ΄μκ° κ°μ₯ λ¨Όμ λμλ€. WSLμ μλΈμμ€ν μ΄κΈ° λλ¬Έμ μλμ°μ nodeλ₯Ό μ€μΉνλλΌλ 리λ μ€μͺ½μ nodeλ₯Ό λ€μ μ€μΉν΄μ€μΌ νλ€.
$ curl -sL <https://deb.nodesource.com/setup_8.x> | sudo -E bash -
$ sudo apt-get install -y nodejs
κ·Έλ¦¬κ³ .profile νμΌμμ νκ²½λ³μλ₯Ό μ€μ ν΄μΌ νλ€.
$ vim ~/.profile
.profile νμΌμ PATH λΆλΆμ λ€μκ³Ό κ°μ΄ μμ νλ€.
PATH="$HOME/bin:$HOME/.local/bin:/usr/bin:$PATH"
μ μ₯νκ³ λμμ μ€μ μ λ°λ‘ μ μ©ν΄μ€λ€.
$ source ~/.profile
npmμ μμΉλ₯Ό νμΈν΄λ³΄λ©΄ μ°λΆν¬ κ²½λ‘κ° λμ¨λ€.
$ which npm
/usr/bin/npm
μ΄μ μλμ°μμλ 리λ μ€μ κ°μ νκ²½μμ μμ ν μ μλ€!