๐Command-Line Interface
- ์ปดํจํฐ๋ฅผ ์กฐ์ํ๊ธฐ ์ํ ์
๋ ฅ๊ณผ ์ถ๋ ฅ์ ๊ฐ๋จํ๊ฒ I/O(Input/Output)๋ผ๊ณ ํ๊ธฐํ๋ฉฐ, "์์ด์ค"๋ผ๊ณ ์ฝ๋๋ค.
- ์
๋ ฅ ์์ค(Input source): ํค๋ณด๋, ๋ง์ฐ์ค ๋ฑ
- ์ถ๋ ฅ ์์ค(Output source): ๋ชจ๋ํฐ, ์คํผ์ปค ๋ฑ
- ๋ฆฌ๋
์ค์ ํฐ๋ฏธ๋์ ํค๋ณด๋์ ์
๋ ฅ๊ณผ ๋ชจ๋ํฐ์ ์ถ๋ ฅ์ผ๋ก ๋ชจ๋ ์์
์ ํ ์ ์๋ค.
- CLI๋ฅผ ์ด์ฉํด ์๋ฒ ์ปดํจํฐ๋ก ์ ์์ ์์ฒญํ๋ฉด, ์๋ฒ ์ปดํจํฐ๋ ์์ฒญํ ์ปดํจํฐ์ ์ถ๋ ฅ ์์ค(๋ชจ๋ํฐ)๋ฅผ ์ด์ฉํ๋ค. ์ด๋ฅผ ํตํด ์๋ฒ ์ปดํจํฐ์ ์ง์ ์ฐพ์๊ฐ ํ์ ์์ด, ์์ ์ ๋ชจ๋ํฐ๋ก ์๋ฒ ์ปดํจํฐ์ ์ํตํ ์ ์๋ค.
๐GUI
- ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(graphical user interface)
- ์ฌ์ฉ์๊ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์
์ถ๋ ฅ ๋ฑ์ ๊ธฐ๋ฅ์ ์๊ธฐ ์ฌ์ด ์์ด์ฝ ๋ฐ์์ ๊ทธ๋ํฝ์ผ๋ก ๋ํ๋ธ ๊ฒ
๐ํฐ๋ฏธ๋
- ํฐ๋ฏธ๋์ CLI(Command-Line Interface)์ด๋ค. ์
๋ ฅํ๋ ๊ธ์์ ์ถ๋ ฅ๋๋ ๊ธ์๋ก ์ปดํจํฐ์ ์ํตํ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ปดํจํฐ๊ฐ ์ถ๋ ฅํ๋ ๊ธ์๋ฅผ ์ฝ์ ์ ์์ด์ผ ํ๋ค.
- ํฐ๋ฏธ๋ ์คํ: ๋จ์ถํค: Ctrl(์ปจํธ๋กค ํค) + Alt(์ํธ ํค) + t(์๋ฌธ t)
- ํ๋กฌํํธ(Prompt): ํค๋ณด๋์ ์
๋ ฅ์ ํ์ธํ๊ณ ํธ์งํ ์ ์๋ ํ ์ค์ ๊ณต๊ฐ์ ํ๋กฌํํธ(Prompt)๋ผ๊ณ ํ๋ค. ์
๋ ฅํ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ ค๋ฉด, Enter(์ํฐ ํค)
๐ท๏ธ๊ธฐ๋ณธ์ ์ธ ๋ช
๋ น์ด
- pwd: ํ์ฌ ์์น ํ์ธํ๊ธฐ
pwd๋ print working directory์ ์ฝ์๋ก ์ฌ๊ธฐ์ ๋งํ๋ directory๋ ํด๋๋ฅผ ์๋ฏธํ๋ฉฐ ์ปดํจํฐ๋ ํ์ฌ ์์
์ค์ธ ํด๋์ ์์น๋ฅผ ์ถ๋ ฅํ๋ค.
- mkdir: ์๋ก์ด ํด๋ ์์ฑํ๊ธฐ
mkdir์ make directories์ ์ฝ์๋ก, ํด๋๋ฅผ ๋ง๋ค๋ผ๋ ๋ช
๋ น์ ์ปดํจํฐ์ ์ ๋ฌํ๋ค. ๋ช
๋ น์ด mkdir์ ์์ฑํ ํด๋์ ์ด๋ฆ์ ํจ๊ป ์
๋ ฅํด์ผ ํ๋ฉฐ CLI์์๋ ๋ช
๋ น์ด์ ํด๋์ ์ด๋ฆ์ Space(์คํ์ด์ค ํค)๋ก ๊ตฌ๋ถํ๋ค. mkdir helloWorld
- ls: ํน์ ํด๋์ ํฌํจ๋ ํ์ผ์ด๋ ํด๋ ํ์ธํ๊ธฐ
ls๋ list์ ์ฝ์๋ก, ํน์ ํด๋์ ํฌํจ๋ ํ์ผ์ด๋ ํ์ ํด๋์ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ค. ์์ฃผ ์ฌ์ฉํ๋ ์ต์
l๊ณผ a์ด๋ค.(-๋ฅผ ์ด์ฉํด์ ์ต์
์
๋ ฅ)
ls -l ls -a ls -al ๋๋ ls -la (์ต์
์ ์์๋ ๊ธฐ๋ฅ์ ์ํฅ์ ๋ฏธ์น์ง ์์)
a๋ "all"์ด๋ผ๋ ์๋ฏธ๋ก ์จ์ด์๋ ํด๋๋ ํ์ผ์ ํฌํจํ ๋ชจ๋ ํญ๋ชฉ์ ํฐ๋ฏธ๋์ ์ถ๋ ฅํ๋ค.
l ์ ํด๋๋ ํ์ผ์ ํฌ๋งท์ ์ ๋ถ ํํํ๋ผ๋ ์๋ฏธ์ด๋ค. ์ต์
l์ ์ฌ์ฉํ๋ฉด, ๊ฐ์ฅ ์ผ์ชฝ์ ์ถ๋ ฅ๋๋ ๋ ๊ธ์ d์ -๋ฅผ ํ์ธํ ์ ์๋ค. ์ฌ๊ธฐ์ d๋ก ์ถ๋ ฅ๋ ๊ฒฝ์ฐ๋ ํด๋๋ฅผ, -๋ก ์ถ๋ ฅ๋ ๊ฒฝ์ฐ๋ ํ์ผ์ ๋ํ๋ธ๋ค.
- nautilus: Ubuntu์์ ํ์ฌ ์์น๋ฅผ GUI๋ก ์คํํ๋ ๋ช
๋ น์ด
- cd: ํด๋์ ์ง์
ํ๊ธฐ
cd๋ change directory์ ์ฝ์๋ก, ํ๋กฌํํธ๋ก ์ํธ์์ฉํ๋ ํด๋๋ฅผ ๋ค๋ฅธ ํด๋๋ก ๋ณ๊ฒฝํ๋ค.
- touch: ํ์ผ ์์ฑํ๊ธฐ
touch hi.txt
- cat: ํ์ผ์ ๋ด์ฉ์ ํฐ๋ฏธ๋์ ์ถ๋ ฅํ๊ธฐ
๋ช
๋ น์ด cat์ ์ด์ฉํ์ฌ ํฐ๋ฏธ๋์ ์ถ๋ ฅํ๋ฉด, ํ์ผ์ ๋ชจ๋ ๋ด์ฉ์ ์ถ๋ ฅํ๋ค. cat hi.txt
- rm: ํด๋๋ ํ์ผ ์ญ์ ํ๊ธฐ
rm์ ๋ป์ remove(์ญ์ ํ๋ค)์ด๋ค. ๋ช
๋ น์ด rm์ผ๋ก ์ญ์ ํ ํด๋๋ ํ์ผ์, ํด์งํต์ ๊ฑฐ์น์ง ์๊ณ ์ญ์ ๋๋ค. rm์ ๋จ์ผ ํ์ผ์ ์ญ์ ํ ์ ์์ผ๋ฉฐ ํด๋๋ฅผ ์ญ์ ํ๋ ค๋ฉด ์ต์
์ ์ด์ฉํด์ผํ๋ค.
rm bye.txt
- ์ต์
r์ "recursive"๋ฅผ ๋ปํ๊ณ , ์ต์
f๋ "force"๋ฅผ ๋ปํ๋ค. ์ต์
r์ ํด๋๋ฅผ ์ง์ธ ๋ ์ฌ์ฉํ๊ณ , ์ต์
f๋ ์ง๋ฌธ์ ๋ฐ์ง ์๊ณ ์ง์ธ ๋ ์ฌ์ฉํ๋ค.
rm -rf bye
- mv: ํด๋๋ ํ์ผ์ ์ด๋ฆ์ ๋ณ๊ฒฝ, ๋๋ ํด๋๋ ํ์ผ์ ์์น ์ฎ๊ธฐ๊ธฐ
mv๋ move์ ์ฝ์๋ก, ํด๋๋ ํ์ผ์ ์ด๋ํ ๋ ์ฌ์ฉํ๋ค. mv ๋ค์๋ ์์๋๋ก [ํด๋๋ ํ์ผ์ ์ด๋ฆ] [๋์ฐฉ ํด๋์ ์ด๋ฆ]๋ฅผ ์
๋ ฅํ๋ค.
๋ช
๋ น์ด mv๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ [ํด๋๋ ํ์ผ์ ์ด๋ฆ]์๋, ๋ณ๊ฒฝํ ํด๋๋ ํ์ผ์ ์ด๋ฆ์ ์
๋ ฅํ๊ณ [๋์ฐฉ ํด๋์ ์ด๋ฆ]์ ๋์ ํด, ๋ณ๊ฒฝํ๊ณ ์ ํ๋ ํ์ผ์ ์ด๋ฆ์ ์
๋ ฅํ๋ฉด ํ์ผ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๋ค.

- cp: ํด๋๋ ํ์ผ์ ๋ณต์ฌํ๊ธฐ
๋ช
๋ น์ด cp๋ copy์ ์ฝ์๋ก, ํด๋๋ ํ์ผ์ ๋ณต์ฌํ ๋ ์ฌ์ฉํ๋ฉฐ cp [์๋ณธ ํ์ผ ์ด๋ฆ] [๋ณต์ฌํ ํ์ผ ์ด๋ฆ] ์
๋ ฅ
๐ท๏ธํด๋ ์์น
- CLI์์
.์ ํ์ฌ ํด๋๋ฅผ ๋ํ๋ธ๋ค. ..์ ํ์ฌ ํด๋(.)์ ๊ธฐ์ค์ผ๋ก, ์์ .์ด ํ๋ ๋ ๋ถ๋๋ค. ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ..์ ํ์ฌ ํด๋๋ณด๋ค ์์ ์๋ ํด๋๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
~์ home directory๋ฅผ ์๋ฏธํ๋ค.
cd/์ root directory๋ฅผ ์๋ฏธํ๋ค.
๐๊ด๋ฆฌ์ ๊ถํ๊ณผ ๊ฒฝ๋ก
๐ท๏ธ์ฌ์ฉ์์ ๊ด๋ฆฌ์
- ์ปดํจํฐ์ ์ด์์ฒด์ ์๋ ์ฌ์ฉ์์ ๊ด๋ฆฌ์๊ฐ ์๋ค.
- ์ฌ์ฉ์๋ ์ฐ๋ฆฌ๊ฐ ์ผ์์ ์ผ๋ก PC๋ฅผ ์ผ์ ๋ฐํํ๋ฉด์ ์ง์
ํ๊ธฐ ์ํด ๋ก๊ทธ์ธํ๋ ๊ณ์
- ๊ด๋ฆฌ์๋ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋ ์์ญ์ ์ ๊ทผํ ์ ์๋ ๋์ ๊ถํ์ ๊ฐ์ง๋ค
- ๊ด๋ฆฌ์๋ ํ๋ก๊ทธ๋จ์ ์ค์นํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋๋ ์ญ์ ํ๋ ๊ถํ์ ๊ฐ์ง๊ณ ์๊ณ , ์ฌ์ฉ์๋ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ง๋ง, ๋ณ๊ฒฝํ ์ ์๋๋ก ์ ํ๋ ๊ถํ์ ๊ฐ์ง๊ณ ์๋ค.
- ์ฌ์ฉ์ ๊ณ์ ์ปจํธ๋กค์ ์ฌ์ฉ์๊ฐ ๋ชจ๋ฅด๋ ์ฌ์ด์ ์์คํ
์ค์ ์ ๋ณ๊ฒฝํ๋ ์
์ฑ์ฝ๋๊ฐ ์คํ๋ ๋, ์ ๊ทผ ๊ถํ์ ๋ง์ ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๋ค.
๐ท๏ธ์ ๋ ๊ฒฝ๋ก์ ์๋ ๊ฒฝ๋ก
- ๊ฒฝ๋ก๋ ๋ช
๋ น์ด pwd๋ก ํ์ธํ ์ ์๋ ์ ๋ ๊ฒฝ๋ก
- ์ ๋ ๊ฒฝ๋ก๋ ๊ธฐ์ค์ ์ผ๋ก๋ถํฐ์ ์ ๋์ ์ธ ์์น๋ฅผ ๋ํ๋ด๋๋ฐ, ์ด ๊ธฐ์ค์ ์ ๋ฃจํธ ํด๋(/)์ด๋ค.
/home/[username]/helloWorld/hello/
- ํ์ฌ ์์น๋ก๋ถํฐ ์๋์ ์ธ ์์น๋ฅผ ๋ํ๋ด๋ ์๋ ๊ฒฝ๋ก
- ์๋ ๊ฒฝ๋ก๋ ํน์ ํด๋ ๋๋ ํ์ผ์ ์์น๋ฅผ ํ์ฌ ์์น๋ฅผ ๊ธฐ์ค์ ์ผ๋ก ๋ํ๋ธ๋ค. ํ์ฌ ์์นํ ํด๋๋ ์ (.)์ผ๋ก ํํํ๊ณ , ์์ ํด๋๋ ๋ ๊ฐ์ ์ (..)์ผ๋ก ํํํ๋ค.
๐ท๏ธ๊ด๋ฆฌ์(root) ๊ถํ
- <์ฃผ์>๊ด๋ฆฌ์ ์์ญ์ ์ค์๋ก ๋ณ๊ฒฝํ๋ฉด, ์ด์์ฒด์ (Operating System)์ด ๋จนํต์ด ๋ ์ ์์ต๋๋ค. ์ด์์ฒด์ ๊ฐ ๋ง๊ฐ์ง๋ฉด, ์ด์์ฒด์ ๋ฅผ ์ฌ์ค์นํด์ผ ํ ์ ์๋ค.
- ๋ฃจํธํด๋๋ก ์ด๋ํ์ฌ ๋ช
๋ น์ด mkdir์ ์ด์ฉํด ํด๋ test๋ฅผ ์์ฑํ๋ฉด, "Read-only file system" ์ด๋ผ๋ ์๋ฌ๋ฅผ ๋ง๋๋ค. ์ฝ๊ธฐ ์ ์ฉ(Read-only)์ด๋ผ๋ ๋ง์, ํด๋๋ ํ์ผ์ ์์ฑ, ๋ณ๊ฒฝ ๋๋ ์ญ์ ํ ์ ์๋ค๋ ์๋ฏธ์ด๋ฉฐ, ๋ฃจํธํด๋๋ ๊ด๋ฆฌ์์ ์์ญ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ๊ถํ์ผ๋ก๋ ํ ์ ์๋ ์ผ์ด ์๋ค.
- sudo: ๊ด๋ฆฌ์ ๊ถํ์ ์ผ์์ ์ผ๋ก ํ๋ํ๋ ๋ช
๋ น์ด
- ์ฌ์ฉ์ ํด๋์ ๊ฒฝ๋ก(Path)๋ ~/๋ก ํ์๋ฉ๋๋ค. ๋ฌผ๊ฒฐ ๊ธฐํธ(~)๋ ๋ฃจํธํด๋(/)๋ก๋ถํฐ ์ฌ์ฉ์ ํด๋(username)๊น์ง์ ๊ฒฝ๋ก๋ฅผ ์ถ์ฝํ ํํ์ด๋ค.
๐ํ
์คํธ ์๋ํฐ nano
- CLI์์ ํ๊ฒฝ์์ ์ ๋ช
ํ ์๋ํฐ๋ vim(vi), emacs ๋ฑ์ด ์๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฅ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ์๋ํฐ๋ ๋ค๋ฆ ์๋ nano ์๋ํฐ์ด๋ค.
nano hello.js
nano

(A) ํ์ผ ์ด๋ฆ ์๋ด
(B) ํ์ผ ํธ์ง ํ๋ฉด, ์ค์ ๋ก ์ฌ๊ธฐ์ ํ
์คํธ ํ์ผ์ ํธ์งํ ์ ์์ต๋๋ค.
(C) ์ฌ์ฉ์ ํ์ํ ๊ฐ์ข
๋จ์ถํค
์ฌ์ค์ ์ฌ๊ธฐ์ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋ํ ๋์์ ์ป์ ์ ์์ต๋๋ค. ํ๋ฉด์ ํ์๋ ^X ์ ๊ฐ์ ๋ด์ฉ์ Ctrl + X ํค ์กฐํฉ์ ์๋ฏธํฉ๋๋ค.
- ํ์ผ์ ์ฅ: Ctrl + X -> Y ๋๋ ^O WriteOut
๐ํจํค์ง์ ํจํค์ง ๋งค๋์
- ํจํค์ง๋ ์ฌ๋ฌ ํ์ผ์ ๋ชจ์ ํ๋์ ํ์ผ๋ก ์ ์ฅํ๊ณ ์๋ ์์ถํ์ผ์
๋๋ค. ํจํค์ง ์์ ๋ค์ด ์๋ ํ์ผ์ ๊ตฌ์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ๋ค
ํ๋ก๊ทธ๋จ ํ์ผ
ํ๋ก๊ทธ๋จ ์ค์น ํ์ผ
ํ๋ก๊ทธ๋จ ์ค์น ์ค๋ช
์
ํ๋ก๊ทธ๋จ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ํ์ผ
- ํจํค์ง ์์๋ ํ๋์ ํ๋ก๊ทธ๋จ์ด ์ ์์ ์ผ๋ก ์ค์น๋๊ณ ๋์ํ๊ธฐ ์ํ ๋ชจ๋ ํ์ผ์ด ์์ถ๋์ด ์๋ค. ๊ทธ์ค์๋ ํ๋ก๊ทธ๋จ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ํ์ผ์ด ์๋๋ฐ, ํ๋ก๊ทธ๋จ A๋ฅผ ์ค์นํ๊ธฐ ์ํด ํ๋ก๊ทธ๋จ B๊ฐ ํ์ํ๋ค๋ ์ ๋ณด๋ ํจ๊ป ๋ด๊ฒจ์์ต๋๋ค. ํจํค์ง๋ฅผ ์ด์ฉํด ํ๋ก๊ทธ๋จ์ ์ค์นํ๋ฉด, ํจํค์ง์ ํฌํจ๋ ์ ๋ณด๋ฅผ ์ด์ฉํด ํ๋ก๊ทธ๋จ B๋ฅผ ๋จผ์ ์ค์นํ๊ณ ๋์ ํ๋ก๊ทธ๋จ A๋ฅผ ์ค์นํ๋ค.
- ํจํค์ง ๋งค๋์ ๋ ํจํค์ง์ ์ค์น, ๋ณ๊ฒฝ, ์ญ์ ๋ฑ ๊ด๋ฆฌ๋ฅผ ํธ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋๊ตฌ์ด๋ค. ํจํค์ง ๋งค๋์ ๋ฅผ ์ค๋งํธํฐ์ผ๋ก ๋น์ ํ๋ฉด, ์ฑ ์คํ ์ด์ ๊ทธ ์ญํ ์ด ๋น์ทํ๋ค. ์ค๋งํธํฐ์ ์ฑ ์คํ ์ด๋ฅผ ์ด์ฉํด ํ์ํ ์ฑ์ ์ค์นํ๋ ๊ฒ์ฒ๋ผ, ๋ฆฌ๋
์ค ์ด์์ฒด์ ์ ์ฌ์ฉ์๋ ํจํค์ง ๋งค๋์ ๋ฅผ ์ด์ฉํด ํ์ํ ํจํค์ง๋ฅผ ์ค์นํ ์ ์๋ค. ํจํค์ง ๋งค๋์ ๋ ๋ชจ๋ ํจํค์ง์ ์ ์ฅ์ ์์น๋ฅผ ์ ์ฅํ๊ณ ์๋ค. ์ฌ์ฉ์๊ฐ ํจํค์ง ๋งค๋์ ์๊ฒ ํน์ ํ๋ก๊ทธ๋จ์ ์ค์น๋ฅผ ์์ฒญํ๋ฉด, ํจํค์ง ๋งค๋์ ๋ ํจํค์ง๊ฐ ์ ์ฅ๋ ์์น์์ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํด ์ค์น ํ๋ก๊ทธ๋จ์ ์คํํ๋ค. ํจํค์ง ๋งค๋์ ๋ ์ค์น๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ์
๋ฐ์ดํธ๋ฅผ ํ์ธํ๊ฑฐ๋, ํ์ ์๋ ํ๋ก๊ทธ๋จ์ ์ ๊ฑฐํ๋ ๋ฐ์๋ ์ฌ์ฉํ ์ ์๋ค.
๐ท๏ธ apt
- ์ฐ๋ถํฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก apt๋ผ๋ ํจํค์ง ๋งค๋์ ๊ฐ ๋ด์ฅ๋์ด ์๋ค.
- apt ํจํค์ง ๋งค๋์ ์ ์ฃผ์ ๋ช
๋ น์ด
- ํจํค์ง ๋ชฉ๋ก ๊ฐฑ์ : apt update(๊ด๋ฆฌ์ ๊ถํ ํ์)
- ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ ์ ์๋ ์ฌ๋ฌ ์ ์ฅ์์ ์ต์ ์ ๋ณด๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค. ์๋ก์ด ์ ์ฅ์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ํจํค์ง๋ฅผ ์ค์นํ๊ธฐ ์ , ์ต์ ์ ๋ณด๋ฅผ ๊ฐฑ์ ํ๋ค.
- ์ค์น๋ ํ๋ก๊ทธ๋จ์ด ์๋ก์ด ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝ๋์ง ์๋๋ค.
- ์
๊ทธ๋ ์ด๋ ๊ฐ๋ฅํ ํจํค์ง ๋ชฉ๋ก์ ์ถ๋ ฅ: apt list -โupgradable
- ์ ์ฒด ํจํค์ง ์
๊ทธ๋ ์ด๋(๋ฒ์ ์
): apt upgrade (๊ด๋ฆฌ์ ๊ถํ ํ์)
- ํน์ ํจํค์ง๋ง ์
๊ทธ๋ ์ด๋(๋ฒ์ ์
): apt --only-upgrade install ํจํค์ง ์ด๋ฆ (๊ด๋ฆฌ์ ๊ถํ ํ์)
- ํจํค์ง ์ค์น: apt install ํจํค์ง ์ด๋ฆ (๊ด๋ฆฌ์ ๊ถํ ํ์)
- ์ค์น๋ ํจํค์ง ๋ณด๊ธฐ: apt list --installed
- ํจํค์ง ๊ฒ์: apt search ๊ฒ์์ด
- ํจํค์ง ์ ๋ณด ํ์ธ: apt show ํจํค์ง ์ด๋ฆ
- ํจํค์ง ์ญ์ : apt remove ํจํค์ง ์ด๋ฆ(๊ด๋ฆฌ์ ๊ถํ ํ์)
- ํจํค์ง ์ค์น/์ญ์ ๋ฑ์ ์์
์ ์งํํ ๋ sudo ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด์ ๊ด๋ฆฌ์ ๊ถํ์ ํ๋ํด์ผ ํ๋ค.
๐Node.js
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๊ตฌ๋๋๋ ํ๊ฒฝ, ์ฆ ์ด๋ค ํ๋ก๊ทธ๋จ์ด ๋์ํ ๋, ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ๊ณณ์ด ๋ฐ๋ก ๋ฐํ์์ด๋ค. ํฌ๋กฌ, ์ฌํ๋ฆฌ์ ๊ฐ์ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ํ์ ์ธ JavaScript ๋ฐํ์์ด๋ค. ๊ทธ๋์ JavaScript์ ์ฃผ๋ ์ฉ๋๋ ์น ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด์์ต๋๋ค.
- ๊ทธ๋ฌ๋ Node.js๋ผ๋ ์๋ก์ด JavaScript ๋ฐํ์์ด ๋ฑ์ฅํ๊ฒ ๋๋ฉด์, ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ๊ณณ์์๋ JavaScript๋ฅผ ์คํ๋ ์ ์๊ฒ ๋์๋ค. JavaScript๋ฅผ ํตํด ์น ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋์ด ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ ๋ฑ ํ์ฉํญ์ด ํฌ๊ฒ ํ์ฅ๋์๋ค.
๐nvm
- nvm์ Node.js์ ๋ค์ํ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ด๋ค.
- ํจํค์ง ๋งค๋์ ์ฒ๋ผ node.js์ ๋ฒ์ ์ ๊ด๋ฆฌํ ์ ์๋๋ก nvm(Node Version Manager)์ผ๋ก Node.js๋ฅผ ์ค์นํ๋ค. nvm์ ์ฌ์ฉํ๋ฉด Node.js์ ๋ค์ํ ๋ฒ์ ์ ์ฝ๊ฒ ์ค์นํ๊ณ , ์ฌ์ฉํ ์ ์์ต๋๋ค.
nvm ls ํ์ฌ nvm์ ํตํด ์ค์นํ Node.js version๋ค์ด ๋์จ๋ค
nvm install 12.18.3 ์ด๋ ๊ฒ ํ๋ฉด ์ด๋ฏธ ์ค์น๋ ๋ฒ์ ์ ์ญ์ ํ์ง ์๊ณ , ์ฐ๋ฆฌ๊ฐ ์ํ๋ Node.js version์ ์ค์นํ ์ ์๋ค.
nvm use ๋ฒ์ ๋๋ฒ ์๋ฅผ ๋ค์ด nvm use 14.15.5 ์
๋ ฅํ๋ฉด ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
๐ท๏ธnvm์ Node.js ์ค์น
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash ํฐ๋ฏธ๋์ ์
๋ ฅ nvm์ค์น
- ์๋ฃ ํ
nvm --version์ผ๋ก ๋ฒ์ ํ์ธ ๊ฐ๋ฅ
nvm install --lts ํฐ๋ฏธ๋์ ์
๋ ฅ Node.js์ค์น
- ์๋ฃ ํ
node -v์ผ๋ก ๋ฒ์ ํ์ธ ๊ฐ๋ฅ
๐ท๏ธNode.js๋ก JavaScriptํ์ผ ์คํํ๊ธฐ
node helloWorld.js
๐npm๊ณผ package.json
- ๋จ์ด ๋ง๋ค์ด๋์ ๋ชจ๋์ node.js ์์๋ npm ๋ชจ๋์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ถ๋ฅด๋ฉฐ, ์ด์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์๋ ๊ณณ์ด ๋ฐ๋ก package.json์ด๋ค.
- node.js ํ๊ฒฝ์์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ๊ธฐ ์ํด ๋ค์ํ ๋ฐฉ๋ฒ์ด ์กด์ฌํ์ง๋ง, ๊ทธ์ค ๋ํ์ ์ธ ๊ฒ์ ๋ฐ๋ก npm์ด๋ค. npm์ Node Package Manager๋ก ์ผ์ข
์ ์ฑ์คํ ์ด์
๋๋ค. ํ์ํ ๋ชจ๋์ ๋ค์ด๋ก๋ํ ์ ์๋, ๋ชจ๋๋ค์ด ๋ชจ์ฌ์๋ ๋ชจ๋ ์คํ ์ด์
๋๋ค.
- package.json์๋ ์ด ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ ์ํด ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ธ์ง, ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ๋ฐฉ๋ฒ, ํ๋ก๊ทธ๋จ์ ํ
์คํธํ๋ ๋ฐฉ๋ฒ ๋ฑ์ด ๋ช
์๋์ด ์๋ค. (ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ ์ํด ํ์ํ ์ค์ ๋ชจ๋์ ๋ฐ๋ก node_modules์ด๋ผ๋ ํด๋์ ์ ์ฅ๋๋ค.)
- npm install ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ฉด, package.json์์ ํ์ํ๋ค๊ณ ํ๋ ๋ชจ๋์ ๋ค์ด๋ก๋ํ๋ค. npm install์ด ์๋ฃ๋๋ฉด node_modules ๋๋ ํ ๋ฆฌ๊ฐ ์๊ธด ๊ฑธ ํ์ธํ ์ ์๋ค.

- devDependencies: ํ๋ก๊ทธ๋จ ์คํ๊ณผ ๊ด๊ณ์๋ ์ค๋ก์ง ๊ฐ๋ฐ์ ์ํด ํ์ํ ์์กด์ฑ ๋ฌ๋
- --save-dev ์ต์
๊ณผ ํจ๊ป install ์คํ์ ์๋์ผ๋ก devDependencies์ ์ถ๊ฐ๋จ
- dependencies: ํ๋ก์ ํธ ์คํ์ ์ํด ๋ฐ๋์ ํ์ํ ๋ชจ๋
- --save ์ต์
๊ณผ ํจ๊ป (์๋ต ๊ฐ๋ฅ) install ์คํ์ ์๋์ผ๋ก dependencies์ ์ถ๊ฐ๋จ
- scripts ํญ๋ชฉ์ CLI์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ช
๋ น์ ๊ธฐ์ ํ๋ค.
- CLI์์ ์คํํ ๋์๋
npm run <์คํฌ๋ฆฝํธ ์ด๋ฆ> ์ผ๋ก ์คํ
๐๊ณผ์ ์ ์ถํ๋ ๋ฒ
npx codestates-assignment-manager login ์
๋ ฅ
- Github ์ธ์ฆ
npm run test
npm run submit
*1๋ฒ ๋ค์ ์
๋ ฅํ๋ฉด ๊ธฐ๋กํ์ธ ๊ฐ๋ฅ
๐ท๏ธpackage.json ์์ฑํ๊ธฐ
npm init ์๋ก์ด package.json ํ์ผ์ ์์ฑ
{ "name": "codestates",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"}
- ํ์ผ ์์ฑ ํ์ธ
ls
cat package.json
- ์ ๊ณผ์ ์ ๋ชจ๋ ์๋ตํ๋ฉด์ package.json์ ์์ฑํ๊ณ ์ถ๋ค๋ฉด
npm init -y๋ฅผ ์
๋ ฅ
๐git ์ค์
$ git config --global user.name "๋์ ์ฌ์ฉ์ ์ด๋ฆ"
$ git config --global user.email "๋ด ์ด๋ฉ์ผ ์ฃผ์"
$ git config --global core.editor nano
- SHHํค ์์ฑ
ssh๋ Secure shell์ ์ค์๋ง(Secure SHell)๋ก, ๋ณด์์ด ๊ฐํ๋ shell ์ ์์ ๋ปํ๋ค. CLI ํ๊ฒฝ(ํฐ๋ฏธ๋)์์ ๋ค๋ฅธ PC์ ์ ์ํ๊ฑฐ๋ ์์ฒญํ ๋ ์ฌ์ฉํ๋ฉฐ, ๋น๋์นญํค๋ฅผ ์ด์ฉํด ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๋ค.
-
ssh-keygen ์
๋ ฅ ํ ๋ช ๋ฒ ์ํฐ
ssh-keygen ๋ช
๋ น์ด๋ ๊ฒฝ๋ก ~/.ssh./ ์ ๋ ํ์ผ id_rsa ์ id_rsa.pub ๋ฅผ ์์ฑํ๋ค. ์ด ๋ ํ์ผ์ ssh ํค ํ์ด๋ผ๊ณ ํ๋ฉฐ, ์ด ์ค id_rsa.pub๋ ๋๊ตฌ์๊ฒ๋ ๊ณต๊ฐํด๋ ๋๋ ๊ณต๊ฐํค(Public Key) ๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ id_rsa๋ ๊ณต๊ฐ๋๋ฉด ์ ๋๊ณ ๋๋ง ๋ณด๊ดํ๊ณ ์์ด์ผ ํ๋ ํค๋ผ๊ณ ํ์ฌ ๊ฐ์ธํค(Private Key) ๋๋ ๋น๋ฐํค(Secret Key) ๋ผ๊ณ ํ๋ค.
-
cat ~/.ssh/id_rsa.pub ์
๋ ฅ ํ ๊ณต๊ฐํค ๋ณต์ฌ
github์์ ํ๋กํ ์ด๋ฏธ์ง->settings-> SSH and GPG keys->์ด๋ก์ ๋ฒํผ New SSH Key-> ์ฌ์ฉ์ ์์๋ก Title์ ์์ฑ, Key์๋ ๋ณต์ฌํด๋ ๊ณต๊ฐํค๋ฅผ ๋ถ์ฌ ๋ฃ๊ณ , Add SSH Key ๋ฒํผ์ ํด๋ฆญ