ใDo it! ๊น & ๊นํ๋ธ ์ ๋ฌธใ 1์ฅ. ๊น ์์ํ๊ธฐ
๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค
๋ชฉ์ฐจ>1-1 ์ง์ฅ์์ ์จ ๋ฌธ์ ๊ด๋ฆฌ์, ๊น
1-1 ์ง์ฅ์์ ์จ ๋ฌธ์ ๊ด๋ฆฌ์, ๊น
๊น์ผ๋ก ํ ์ ์๋ ๊ฒ๋ค
- ๋ฒ์ ๊ด๋ฆฌํ๊ธฐ, ๋ฐฑ์ ํ๊ธฐ, ํ์ ํ๊ธฐ
- "๋ฒ์ ๊ด๋ฆฌ → ๋ฐฑ์ → ํ์ " ์์๋ก ๋ฐฐ์์ผ ํ๋ค.
๊น ํ๋ก๊ทธ๋จ์ ์ข ๋ฅ
- ๊นํ๋ธ ๋ฐ์คํฌํฑ(GitHub Desktop) ; ์จ๋ผ์ธ ์ ์ฅ์ ์๋น์ค์ธ ๊นํ๋ธ์์ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋จ.
์ฅ์ : ๋ณต์กํ ๊น ์ฌ์ฉ๋ฒ์ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(graphic user interface, GUI)๋ก ๊ตฌํํด์ ์ฌ์ฉ์ด ํธ๋ฆฌ.
๋จ์ : ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ ์์ฃผ์ฌ์ ๊ณ ๊ธ ์ฌ์ฉ์์๊ฒ ์์ฌ์
- ์ปค๋งจ๋ ๋ผ์ธ ์ธํฐํ์ด์ค(command line interface, CLI) ; ํฐ๋ฏธ๋ ์ฐฝ์ ์ง์ ๋ช ๋ น์ ์ ๋ ฅํด์ ๊น ์ฌ์ฉ.
๋จ์ : GUI ๊ธฐ๋ฐ ํ๋ก๊ทธ๋จ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ด๋ ค์. ๋ฆฌ๋ ์ค์ ๊ธฐ๋ณธ ๋ช ๋ น, ๊น ๋ช ๋ น์ ์ธ์์ผ ํจ.
์ฅ์ : ์ต์ํด์ง๋ฉด ํจ์ฌ ๋น ๋ฅด๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ. ๋ค์ํ๊ฒ ํ์ฉ ๊ฐ๋ฅ(๋ฐ๋ณตํ ์ผ ์๋ํ, ์๋ฒ ํ๊ฒฝ์์ ๊น ์ฌ์ฉ ๋ฑ)
https://git-scm.com/downloads/guis ; ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉํ ์ ์๋ ๊น ํ๋ก๊ทธ๋จ ์๊ฐ
1-2 ๋งฅ์ ๊น ์ค์นํ๊ธฐ
ํ๋ธ๋ฅ(Homebrew)๋ ๋งฅํฌํธ(MacPorts) ๊ฐ์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ด์ฉํด ๊น ์ค์น
* ๋งฅ์ฉ ํจํค์ง ๊ด๋ฆฌ์๋? ; ๋งฅ์์ ์ฌ์ฉํ ํ๋ก๊ทธ๋จ์ ์ค์น, ์ญ์ ํ๋ ๋ฑ์ ๊ด๋ฆฌ๋ฅผ ์ฝ๊ฒ ํด์ฃผ๋ ํ๋ก๊ทธ๋จ
step1. ํ๋ธ๋ฅ ์ค์นํ๊ธฐ
1. https://brew.sh/ ์ฌ์ดํธ ์ ์, ์ค์น ๋ช ๋ น ๋ณต์ฌ
2. ๋งฅ์์ ํฐ๋ฏธ๋ ์ด๊ณ Command + V ๋ก ๋ช ๋ น ๋ถ์ฌ๋ฃ๊ธฐ, Enter
step2. ํ๋ธ๋ฅ์์ ๊น ์ค์นํ๊ธฐ
1. ํฐ๋ฏธ๋์์ ์๋์ ๊ฐ์ด ์ ๋ ฅํ๊ณ Enter
$brew install git
2. ์ค์น ๋๋๋ฉด $ ํ์ ๋ํ๋จ
3. ๊น ์ค์น ํ์ธ๋ฒ
$ git
๊น๊ณผ ๊ด๋ จ๋ ๋ช ๋ น์ด ๋์ค๋ฉด ๊น ์ค์น ์ฑ๊ณต.
step3. ๊น ํ๊ฒฝ ์ค์ ํ๊ธฐ
$ git config --global user.name "์ด๋ฆ"
$ git config --global user.email "๋ฉ์ผ ์ฃผ์"
--global ์ต์ : ํ์ฌ ์ปดํจํฐ์ ์๋ ๋ชจ๋ ์ ์ฅ์์์ ๊ฐ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ .
* ๊นํ๋ธ ๊ณ์ ์ด ์ฌ๋ฌ ๊ฐ๋ผ๋ฉด ๊ฐ ๊ณ์ ๋ง๋ค ๊น ํ๊ฒฝ์ ๋ฐ๋ก ์ค์ ํด์ผ ํจ.
1-3 ๋ฆฌ๋ ์ค ๋ช ๋ น ์ฐ์ตํ๊ธฐ
๋๋ ํฐ๋ฆฌ(directory) ; ์๋์ฐ ํ์๊ธฐ์ 'ํด๋(folder)'๋ฅผ ๋ฆฌ๋ ์ค์์๋ '๋๋ ํฐ๋ฆฌ(directory)'๋ผ๊ณ ํ๋ค.
$ pwd
'print working directory'์ ์ฝ์ด.
ํ์ฌ ์์น๋ฅผ ์ ์ ์๋ค
$ ls
'list'
$ ls -์ต์
-a | ์จ๊ธด ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ๋ ํจ๊ป ํ์ |
-l | ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ์ ์์ธ ์ ๋ณด ํจ๊ป ํ์ |
-r | ํ์ผ์ ์ ๋ ฌ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ํ์ |
-t | ํ์ผ ์์ฑ ์๊ฐ ์์ผ๋ก (๋ด๋ฆผ์ฐจ์) ํ์ |
* ์ฐ์ํด์ ์ฌ์ฉ ๊ฐ๋ฅ. (์) ls -la
$ clear
ํฐ๋ฏธ๋ ์ฐฝ ์ง์ฐ๊ธฐ
$ cd ์ต์
'change directory'
~ | ํ์ฌ ์ ์ ์ค์ธ ์ฌ์ฉ์ ๋๋ ํฐ๋ฆฌ. 'c/Users/์ฌ์ฉ์ ์์ด๋'. ํฐ๋ฏธ๋ ์ฐฝ์์ $ ๊ธฐํธ ์์ค์ ์๋ ~๊ฐ ์ฌ์ฉ์ ๋๋ ํฐ๋ฆฌ. ์์ด๋๋ 5๊ธ์๊น์ง๋ง ๋์ด. |
. | ํ์ฌ ์ฌ์ฉ์๊ฐ ์์ ์ค์ธ ๋๋ ํฐ๋ฆฌ |
.. | ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ์์ ๋๋ ํฐ๋ฆฌ |
ํ์ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ | ex. $ cd Users |
$ mkdir test
test๋ผ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋ผ.
mkdir : 'make directory'
'test/'
์ด๋ฆ ๋ค์ \๊ฐ ๋ถ์ ๊ฒ์ ๋๋ ํฐ๋ฆฌ๋ผ๋ ๋ป
$ rm -r test
rm : 'remove'
'-r' : ํ์ ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ ํจ๊ป ์ญ์ ํ ์ ์๋ค
$ exit
ํฐ๋ฏธ๋ ์ข ๋ฃํ๊ธฐ. ์ฐฝ์ ์๋ x ํด๋ฆญํด๋ ๋์ง๋ง ์ด ๋ฐฉ๋ฒ๋ ์๋ค.
1-4 ๋น ํธ์ง๊ธฐ์์ ํ ์คํธ ๋ฌธ์ ๋ง๋ค๊ธฐ
๋น(Vim)
๋ฆฌ๋ ์ค์ ๊ธฐ๋ณธ ํธ์ง๊ธฐ.
ํฐ๋ฏธ๋์์ ์ฌ์ฉํ ์ ์๋ ํธ์ง๊ธฐ ์ค ๋ํ์ ์.
ํฐ๋ฏธ๋ ์ฐฝ์์ ํค๋ณด๋๋ง ์ด์ฉํด์ ํ ์คํธ ๋ฌธ์๋ฅผ ๋ง๋ค ์ ์์.
$ vim test.txt
์ฒ์์ ex ๋ชจ๋๋ก ์ด๋ฆฌ๋ฏ๋ก ํ ์คํธ๊ฐ ์ ๋๋ก ์ ๋ ฅ๋์ง ์์.
์ ๋ ฅ๋ชจ๋(ํ ์คํธ ์ ๋ ฅ, ์์ ) ์ ํ : I ๋ A ๋ฅผ ๋๋ฌ์ ์ ํ (insert / add)
ex ๋ชจ๋(์ ์ฅ, ์ข ๋ฃ ๋ฑ) ์ ํ : esc ๋๋ฌ์ ์ ํ.
๋น์ ex ๋ชจ๋ ๋ช ๋ น
์ฝ๋ก (:)์ผ๋ก ์์ํจ.
:w ๋๋ :write | ํธ์งํ๋ ๋ฌธ์๋ฅผ ์ ์ฅ |
:q ๋๋ :quit | ํธ์ง๊ธฐ๋ฅผ ์ข ๋ฃ |
:wq | ํธ์งํ๋ ๋ฌธ์๋ฅผ ์ ์ฅํ๊ณ ์ข ๋ฃ |
:q! | ํธ์งํ๋ ๋ฌธ์๋ฅผ ์ ์ฅํ์ง ์๊ณ ํธ์ง๊ธฐ๋ฅผ ์ข
๋ฃ. ํ์ฅ์๊ฐ .swp์ธ ์์ ํ์ผ์ด ์๊น |
:wq ํ์ผ๋ช | ํธ์งํ๋ ๋ฌธ์๋ฅผ ์ง์ ํ ํ์ผ ์ด๋ฆ์ผ๋ก ์ ์ฅ |
cat ๋ช ๋ น
'concatenate(์ฐ๊ฒฐ์ํค๋ค)'
ํฐ๋ฏธ๋ ์ฐฝ์์ ํ ์คํธ ๋ฌธ์์ ๋ด์ฉ์ ๊ฐ๋จํ ํ์ธํ ๋.
cat ๋ช ๋ น ๋ชจ์
$ cat file | file์ ๋ด์ฉ์ ํ๋ฉด์ ํ์ |
$ cat file(s) > Newfile | file(s)๋ฅผ ์ฐจ๋ก๋ก ์ฐ๊ฒฐํด์ ์๋ก์ด ํ์ผ์ธ Newfile์ ๋ง๋ฆ |
$ cat file1 >> file2 | file1์ ๋ด์ฉ์ file2์ ๋ด์ฉ ๋์ ์ฐ๊ฒฐ |