Computer Science/Basics

(basic) CLI & ๊ฐ„๋‹จ ๋ช…๋ น์–ด (linux) & python ๊ฐ€์ƒํ™˜๊ฒฝ

metamong 2022. 3. 31.

CLI vs. GUI

๐Ÿคธ๐Ÿฝ ๊ธฐ์ดˆ์ง€์‹์œผ๋กœ ์•Œ์•„์•ผ ํ•  ๋ถ€๋ถ„๋“ค ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค! ๐Ÿคธ๐Ÿฝ

 

1> CLI(Command Line Interface) = '๊ธ€์ž ๊ธฐ๋ฐ˜์œผ๋กœ ๋ช…๋ น๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ํ™˜๊ฒฝ'
* ํ„ฐ๋ฏธ๋„(terminal) โ‰ซ ๊ธ€์ž ๊ธฐ๋ฐ˜์œผ๋กœ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

→ CLI๋ฅผ ํ†ตํ•ด shell์ด ์‹คํ–‰๋จ
(The shell is basically a program that takes your commands from the keyboard and sends them to the operating system to perform)

→ ์šด์˜์ฒด์ œ OS๊ฐ€ ์ž‘๋™๋˜๊ฒŒ ํ•˜๋Š” shell program์€ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ ๋ช…๋ น์–ด๋กœ ์ž‘๋™๋˜๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” CLI์ธ ํ™˜๊ฒฝ์— ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•จ

→ ๋Œ€ํ‘œ์ ์ธ shell์€ bash shell

 

2> GUI(Graphic User Interface) = 'ํ‚ค๋ณด๋“œ๋ฅผ ๋‘๋“œ๋ ค ๊ธ€์ž๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฒŒ ์•„๋‹Œ, ๋งˆ์šฐ์Šค๋ฅผ ์ด์šฉํ•ด ๊ฒฐ๊ณผ๊ฐ€ ์ง„ํ–‰๋จ'

→ ์ฆ‰ ์šฐ๋ฆฌ๊ฐ€ ํ•ญ์ƒ ํ•ด์˜ค๋˜ ๋ฐฉ์‹!

 

โ€ป ์ด์   1> ๋ฐฉ์‹์— ๋” ์ต์ˆ™ํ•ด์ง€์ž โ€ป

 

(+) ์ถ”๊ฐ€ ๊ธฐ์ดˆ - ๋””๋ ‰ํ† ๋ฆฌ> ์—ฌ๋Ÿฌ file๋“ค์ด ๋ชจ์ธ ์ผ์ข…์˜ folder์ด๋‹ค

> ์ ˆ๋Œ€๊ฒฝ๋กœ) ๋””ํ…Œ์ผํ•˜๊ณ  ์ •ํ™•. ํ˜„์žฌ file์ด ์œ„์น˜ํ•ด ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ •ํ™•ํžˆ ํ‘œ์‹œํ•ด์คŒ

> ์ƒ๋Œ€๊ฒฝ๋กœ) ํ˜„์žฌ ์œ„์น˜ํ•œ ๊ณณ ๊ธฐ์ค€์œผ๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ์œ„์น˜๋ฅผ ํ‘œ์‹œ (๋ณธ์ธ์˜ ์œ„์น˜๋Š” . / ๋ถ€๋ชจ์˜ ์œ„์น˜๋Š” ..์œผ๋กœ ํ‘œ์‹œ)

 

- CLI ๊ธฐ๋ฐ˜ ํ™”๋ฉด - (Visual Studio Code)

 


๊ธฐ๋ณธ ๋ช…๋ น์–ด

1> pwd - ํ˜„์žฌ ๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋ƒ„

2> mkdir [ํด๋”๋ช…] - ํด๋”(๋””๋ ‰ํ† ๋ฆฌ) ์ƒ์„ฑ

3> cd [ํด๋”๋ช…] - ํ•ด๋‹นํ•˜๋Š” ํด๋”๋กœ ์ด๋™

4> ls - ํ˜„์žฌ ๊ฒฝ๋กœ์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ํŒŒ์ผ ์ •๋ณด ์ถœ๋ ฅ
→ ls -l) ์ƒ์„ธ ์ •๋ณด ์ถœ๋ ฅ

→ ls -a) ์ˆจ๊ธด ํŒŒ์ผ๊นŒ์ง€ ํ‘œ์‹œ

→ ls -al) ์ˆจ๊ธด ํŒŒ์ผ๊นŒ์ง€ ์ƒ์„ธ์ •๋ณด ํฌํ•จํ•ด์„œ ์ถœ๋ ฅ

5> cat [ํŒŒ์ผ๋ช…] - ํ•ด๋‹น ํŒŒ์ผ ๋‚ด์šฉ์„ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅ

6> echo '~' - ~ ๊ด€๋ จ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•ด์คŒ

7> touch [ํŒŒ์ผ๋ช…] - ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑ

8> file [ํŒŒ์ผ๋ช…] - ๊ด€๋ จ ํŒŒ์ผ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ด์คŒ

9> history & clear - ์‚ฌ์šฉํ–ˆ๋˜ ๋ช…๋ น์–ด ์ •๋ณด ์ถœ๋ ฅ & ์ฐฝ์— ๋ช…๋ น์–ด์™€ ๊ฒฐ๊ณผ๋“ค๋กœ ๊ฝ‰ ์ฐผ์„ ๋•Œ ํ™”๋ฉด ๋‚ด์šฉ ์ง€์šฐ๊ธฐ

10> cp A B - A์˜ ๋‚ด์šฉ์„ B๋กœ ๋ณต์‚ฌ

11> mv - ์›ํ•˜๋Š” ์œ„์น˜๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ

12> rm - ์›ํ•˜๋Š” ํŒŒ์ผ ์ œ๊ฑฐ

13> find - ์›ํ•˜๋Š” ๋‚ด์šฉ์ด๋‚˜ ํŒŒ์ผ ์ฐพ๊ธฐ

14> help/man - ๊ด€๋ จ ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

15> alias - ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด์˜ ๋ณต์žกํ•œ ์กฐํ•ฉ๋“ค์„ ํ•œ ๋ณ„๋ช…์œผ๋กœ ๋งŒ๋“ค์–ด ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

16> exit/logout - ๋‚˜๊ฐˆ ๋•Œ


python ๊ฐ€์ƒํ™˜๊ฒฝ

๐Ÿ‘€ ๋ณ„๋„์˜ ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” '๊ฐ€์ƒํ™˜๊ฒฝ(Virtual Environment)'์„ ์ œ๊ณตํ•ด์คŒ

→ ๊ฐœ๋ฐœํ•˜๋Š” ํ™˜๊ฒฝ์„ ๋…๋ฆฝ

→ ๋ฐฐํฌํ™˜๊ฒฝ์—์„œ๋„ ๋˜‘๊ฐ™์ด ํ–‰ํ•ด์ง€๊ฒŒ ๋” ๊ธฐ๋Šฅ ์ „๋‹ฌ

 

Q. ์™œ ๊ตณ์ด ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์„œ ์ž‘์—…ํ•ด์•ผ ํ• ๊นŒ์š”?

 

A. ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ package๋ฅผ ์‚ฌ์šฉํ• ํ…๋ฐ, ์ด ๋•Œ ํ•œ ์ข…๋ฅ˜์˜ package๋‹น ์ •ํ•ด์ง„ ํ•œ ๋ฒ„์ „์— ๋Œ€ํ•ด์„œ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘๋™์‹œํ‚ค๋ ค๋ฉด ๋ฒ„์ „์ด ์•ˆ๋งž์•„ package๊ฐ„ ์ถฉ๋Œ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ.

'ํ•˜๋‚˜์˜ python ํ™˜๊ฒฝ์—๋Š” package๋‹น ํ•˜๋‚˜์˜ ๋ฒ„์ „๋งŒ ์„ค์น˜ ๊ฐ€๋Šฅ'

๋”ฐ๋ผ์„œ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋…๋ฆฝ์ ์ธ ๊ณต๊ฐ„๋“ค์„ ๋งŒ๋“ค์–ด ๋ณ„๋„์˜ ๊ณต๊ฐ„์—์„œ ์ž‘์—…ํ•จ! ์ด ๋ณ„๋„์˜ ๊ณต๊ฐ„์„ '๊ฐ€์ƒํ™˜๊ฒฝ'์ด๋ผ๊ณ  ๋ถ€๋ฆ„ ๊ฐœ๋ฐœ ๋‹น์‹œ์— ์ž‘์—…ํ–ˆ๋˜ ํ™˜๊ฒฝ๊ณผ ์ตœ๋Œ€ํ•œ ๋˜‘๊ฐ™์€ ํ™˜๊ฒฝ์ด์–ด์•ผ package๊ฐ„ ์ถฉ๋Œ ์—†์ด ๊ทธ๋Œ€๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ! ๊ฐ€์ƒํ™˜๊ฒฝ ์ค€๋น„๋Š” ๋งค์šฐ ์ค‘์š”

 

> ์ถ”๊ฐ€๋กœ ํ™˜๊ฒฝ์ด ์ค€๋น„๋ ๋•Œ ์ž๋™์œผ๋กœ ๊ฐ™์ด ์„ค์น˜๊ฐ€ ๋˜๋Š” package๋“ค์„ 'system package'๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ณ„๋„์˜ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•œ package๋“ค์„ 'site package'๋ผ๊ณ  ํ•œ๋‹ค.)

 

> ํฌ๊ฒŒ ๋‘ ๊ฐœ - vitrualenv + pip์™€ conda๊ฐ€ ์žˆ๋‹ค.

 

virtualenv + pip conda
๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๊ฐ€์ƒํ™˜๊ฒฝ ๊ด€๋ฆฌ ๋„๊ตฌ ์ƒ์šฉ ๊ฐ€์ƒํ™˜๊ฒฝ๋„๊ตฌ
(conda์—์„œ๋Š” pip compiled๋œ ์ฝ”๋“œ๋ฅผ ๊ฐ™์ด ๋ฟŒ๋ ค์คŒ)
miniconda ๊ธฐ๋ณธ ๋„๊ตฌ
๋ ˆํผ๋Ÿฐ์Šค + ํŒจํ‚ค์ง€ ๊ฐœ์ˆ˜ ์„ค์น˜์˜ ์šฉ์ด์„ฑ / windows์—์„œ ์žฅ์ 

 

> ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋‚˜์ฝ˜๋‹ค(conda)๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ€์ƒํ™˜๊ฒฝ(๋ฐ์ดํ„ฐ ๊ณผํ•™์— ์‚ฌ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ tool๋“ค์„ ๋ชจ์•„๋†“์Œ)์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Œ

 

https://www.anaconda.com/

 

conda env list) ์—ฌ๋Ÿฌ ๊ฐ€์ƒํ™˜๊ฒฝ ์ข…๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•ด์คŒ (์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ์— * / default๋Š” base)

→ 'conda activate ์ด๋ฆ„'์œผ๋กœ ์›ํ•˜๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ์‹œ์ž‘ / 'conda deactivate'๋กœ ํ˜„์žฌ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ์ข…๋ฃŒ

→ 'conda create --name 'xx' python==x.x' (xx๋ผ๋Š” ์ƒˆ๋กœ์šด ์ด๋ฆ„์„ ๊ฐ€์ง„, python ํ•ด๋‹น ๋ฒ„์ „์ด ๊ตฌ๋™๋˜๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ)

 

→ 'conda install <ํŒจํ‚ค์ง€๋ช…>' ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜๊ณ ์ž ํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ installํ•œ๋‹ค.

(์˜ˆ: conda install tqdm - ๋Œ€ํ˜• data๋ฅผ ๋Œ๋ฆด ๋•Œ ์–ด๋””๊นŒ์ง€ ๋Œ๋ ค์•ผ ํ•  ์ง€, ํ˜„์žฌ loop์˜ ์ง€์ , ์‹œ์ ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.) 


* ์ธ๋„ค์ผ ์ถœ์ฒ˜) https://thenounproject.com/icon/command-line-interface-133029/ 

* ์ถœ์ฒ˜) ๋„ค์ด๋ฒ„ AI-Tech

* ์ถœ์ฒ˜) https://realpython.com/python-virtual-environments-a-primer/

๋Œ“๊ธ€