[Docker๐Ÿณ] Linux Shell ์‚ฌ์šฉ๋ฒ•

Jeong SeongYunยท2022๋…„ 9์›” 22์ผ
0

Docker

๋ชฉ๋ก ๋ณด๊ธฐ
2/10
post-thumbnail

Docker๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„ ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์— Linux์˜ ์‚ฌ์šฉ๋ฒ•์„ ์•„์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋“ค๊ณผ VIM๊นŒ์ง€ ํ•œ๋ฒˆ ์•Œ์•„๋ด…์‹œ๋‹ค!

๊ธฐ๋ณธ ์ƒ์‹

  • root : ์œˆ๋„์šฐ์˜ ๊ด€๋ฆฌ์ž ์—ญํ• ์ž…๋‹ˆ๋‹ค.
    - Linux๋กœ ์ž‘์—…ํ•  ๋•Œ๋Š” ๋‹ค๋งŒ root๋กœ ์ž‘์—…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณต๊ตฌ๊ฐ€ ์–ด๋ ค์šด Linux ์ฒด๊ณ„์—์„œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด๋ฒ„๋ฆฌ๋ฉด ํ™•์ธํ•˜๋Š” ๊ฑฐ ์—†์ด ์‹น๋‹ค ์‹คํ–‰๋ผ๋ฒ„๋ฆด ํ…๋ฐ, ์ด๋Š”.. ๊ต‰์žฅํžˆ ์œ„ํ—˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ ..!!
  • shell : ์œ ์ €์™€ OS๋ฅผ ์ด์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. GUI๋‚˜ CLI.. ์ฒ˜๋Ÿผ ๋งˆ์ง€๋ง‰์— Interface๊ฐ€ ๋ถ™์œผ๋ฉด shell์˜ ํ•œ ์ข…๋ฅ˜๋ผ๊ณ  ๋ณด๋ฉด ๋  ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    - Linux๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ bash๋ฅผ ์ด์šฉํ•˜๋‚˜, shell์ด ๋‹ฌ๋ผ๋„ ๋ช…๋ น์–ด๊ฐ€ ๋‹ค ๋น„์Šทํ•ด์„œ ํ•˜๋‚˜๋งŒ ์ž˜ ๋ฐฐ์›Œ๋„ ๋ฉ๋‹ˆ๋‹ค!
  • ํŒŒ์ผ ๊ถŒํ•œ
    - drwxrwxrwx ํ˜•์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง.
    • ๋งจ ์•ž์˜ d : ํด๋”๋ฉด d, ์•„๋‹ˆ๋ฉด -
      ๊ทธ ์™ธ : ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ UNIX ๊ณ„์—ด์˜ ํŒŒ์ผ ๊ถŒํ•œ ์ฒด๊ณ„ ์ฐธ๊ณ !

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

whoami : ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์˜ ID ์ถœ๋ ฅ

clear : shell์— ์žˆ๋Š” ๊ธฐ๋ก๋“ค์„ ์‹น ์ง€์›Œ์ค๋‹ˆ๋‹ค.

sudo : ๋ช…๋ น์–ด์— root ๊ถŒํ•œ ๋ถ€์—ฌ ex) sudo apt-get update : ubuntu ์—…๋ฐ์ดํŠธ

pwd : ํ˜„์žฌ ์œ„์น˜ ํ‘œ์‹œ
cd : ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™! ex) cd home/ubuntu

ls : ํด๋” ๋‚ด์˜ ํŒŒ์ผ ๋ชฉ๋ก ์ถœ๋ ฅ
ls -a or ls -al : ์ˆจ๊น€ ํŒŒ์ผ๊นŒ์ง€ ๋ชจ๋‘ ์ถœ๋ ฅ! (์ž์ฃผ ์”€)

chmod : ํŒŒ์ผ ๊ถŒํ•œ ๋ณ€๊ฒฝ ex) chmod -R 777 directory : ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•ด ๋ชจ๋“  ๊ถŒํ•œ ๋ถ€์—ฌ

cat : ํŒŒ์ผ์˜ ๋‚ด์šฉ ํ™•์ธ ex) cat .somefile

rm : ํŒŒ์ผ ๋ฐ ํด๋” ์‚ญ์ œ
rm -r : ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊นŒ์ง€ ๋ชจ๋‘ ์‚ญ์ œ
rm -f : ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€ ๋ฌด์‹œํ•˜๊ณ  ๊ฑ ์‚ญ์ œ ex) rm -rf file : file์˜ ๋ชจ๋“  ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊นŒ์ง€ ๋ชจ๋‘ ๊ฐ•์ œ ์‚ญ์ œ

head : ํŒŒ์ผ์˜ ์ƒ์œ„ 10๊ฐœ์˜ ๋ผ์ธ๋งŒ ์ถœ๋ ฅ

grep : ํŒŒ์ผ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ!
grep -i : ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ x
grep -v : ๊ฒ€์ƒ‰ ๋‹จ์–ด๋ฅผ ์ œ์™ธํ•œ ํŒŒ์ผ ์ถœ๋ ฅ
grep -n : ์ถœ๋ ฅ๊ฐ’์— ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ์„œ ์ถœ๋ ฅ
grep -l : ํŒŒ์ผ ์ด๋ฆ„๋งŒ ์ถœ๋ ฅ
grep -c : ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ "์ˆ˜"๋งŒ ์ถœ๋ ฅ
grep -r : ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๋ฒ”์œ„๊นŒ์ง€ ๊ฒ€์ƒ‰

ps aux : ์‹คํ–‰์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ ์ถœ๋ ฅ

cp : ํŒŒ์ผ ๋ณต์‚ฌ ex) cp A B : AํŒŒ์ผ์„ BํŒŒ์ผ๋กœ ๋ณต์‚ฌ
cp -rf : ํ•˜์œ„ํด๋”๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ˜„์žฌํด๋”์™€ ํ•˜์œ„ํด๋”์˜ ๋‚ด์šฉ์„ ๋‹ค๋ฅธ ํด๋”์— ํ†ต์งธ๋กœ ๋ณต์‚ฌ ex) cp -rf * ํด๋”

Standard Stream

stdin : ํ‘œ์ค€์ž…๋ ฅ์ŠคํŠธ๋ฆผ, ์ž…๋ ฅ์— ๋Œ€ํ•œ ํ๋ฆ„
stdout : ํ‘œ์ค€์ถœ๋ ฅ์ŠคํŠธ๋ฆผ, ์ถœ๋ ฅ์— ๋Œ€ํ•œ ํ๋ฆ„
stderr : ์˜ค๋ฅ˜์ถœ๋ ฅ์ŠคํŠธ๋ฆผ, ์—๋Ÿฌ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ํ๋ฆ„

Redirection

ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ์˜ ํ๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ญํ• , >๋‚˜ <๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ls -al์„ ํ•˜๋ฉด ํด๋” ๋‚ด์˜ ํŒŒ์ผ๋“ค์˜ ๋ชฉ๋ก์„ ์šฐ๋ฆฌ shell์— ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํŠน์ • ํŒŒ์ผ์— ํ•ด๋‹น ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?

๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๊ธฐ์กด์— ์ •ํ•ด์ ธ ์žˆ๋Š” ์ŠคํŠธ๋ฆผ์˜ ๋ฐฉํ–ฅ์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ redirection์ž…๋‹ˆ๋‹ค.

ls -al > files.txt

cat files.txt

Output

ls -al๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๊ฐ€ files.txt์— ์ž˜ ๋“ค์–ด๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

>> or << : ๊ธฐ์กด ํŒŒ์ผ์— ๋ฎ์–ด์“ฐ๊ธฐ!

์ฃผ๋กœ Docker ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํŠน์ • ํŒŒ์ผ์— ์ €์žฅํ•ด๋‘๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Pipe

์–ด๋–ค ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ ์ถœ๋ ฅ์„ ๋˜ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ž…๋ ฅ์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
|๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์˜ ๋ฐฉํ–ฅ์„ ๋ฐ”๊พธ๋Š” redirection๊ณผ ์‚ด์ง ๋‹ค๋ฅด์ฃ ?

redirection : A์˜ Output์„ ๊ธฐ์กด๊ณผ ๋‹ค๋ฅธ ๊ณณ์— "์ถœ๋ ฅ"
pipe : A์˜ Output์„ B์˜ Input์œผ๋กœ "์ž…๋ ฅ"

์ •๋„์˜ ์ฐจ์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ls -al | grep bash

Output

ls -al๋กœ ํŒŒ์ผ์˜ ๋ชฉ๋ก์ด ์ถœ๋ ฅ๋˜๊ณ  ๊ทธ ์ถœ๋ ฅ ๊ฐ’์ด grep์œผ๋กœ ๋“ค์–ด๊ฐ€ ๊ฒ€์ƒ‰์–ด์ธ bash๊ฐ€ ๋“ค์–ด๊ฐ„ ํŒŒ์ผ๋งŒ ์ถœ๋ ฅํ•ด์ค€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค

ํ”„๋กœ์„ธ์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ํ”„๋กœ์„ธ์Šค์˜ ์ฐจ์ด๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”์ด๋„ˆ๋ฆฌ : ์ปดํ“จํ„ฐ๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ 0 ๊ณผ 1 ๋กœ ์ด๋ฃจ์–ด์ง„ ์‹คํ–‰ํŒŒ์ผ
ํ”„๋กœ์„ธ์Šค : ์šด์˜์ฒด์ œ๊ฐ€ ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ๋ฐ”๊พผ ํ˜•ํƒœ. (์ฃผ๋กœ Resource ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ง€์นญํ•ฉ๋‹ˆ๋‹ค.)

๋ฆฌ๋ˆ…์Šค ์ž์ฒด๊ฐ€ ๋‹ค์–‘ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ํ•จ์œผ๋กœ์จ ๋‹ค์–‘ํ•˜๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋กํ•ฉ๋‹ˆ๋‹ค. Python์—์„œ ๋ชจ๋“ˆํ™”๋ฅผ ์‹œํ‚ค๋Š” ์ด์œ ์™€ ๋น„์Šทํ•˜๊ฒ ๋„ค์š”.

foreground process

์ผ๋ฐ˜์ ์œผ๋กœ ๋ช…๋ น์ด ์‹คํ–‰๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋ณ„ ๋‹ค๋ฅธ ์ž…๋ ฅ์„ ๋„ฃ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ํ”„๋กœ์„ธ์Šค๋ฅผ foreground process๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๋ช…๋ น์–ด๊ฐ€ foreground process์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

Ctrl + C : ์ž‘์—… ์ทจ์†Œ, ์ค‘๋‹จ

pid : ํ”„๋กœ์„ธ์Šค์˜ ID (Process ID)

background process

๊ทธ๋Ÿผ ๋ช…๋ น์–ด์˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ๊ฒŒ ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ์‹คํ–‰๋˜๋Š” ๋„์ค‘์— ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”?

๋ฐ”๋กœ ํ•ด๋‹น ๋ช…๋ น์–ด ๋’ค์— &๋งŒ ๋ถ™์—ฌ์ฃผ๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

foreground ์˜ˆ์‹œ : find / -name * > list.txt
background ์˜ˆ์‹œ : find / -name * >list.txt &

์ด๋ ‡๊ฒŒ๋งŒ ํ•ด์ฃผ๋ฉด ํ„ฐ๋ฏธ๋„์ด ํ•˜๋‚˜๋ผ๋„ ๋ช…๋ น์„ ์—ฌ๋Ÿฌ๊ฐœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ ?

ํ˜„์žฌ ์ž‘๋™์ค‘์ธ ํ”„๋กœ์„ธ์Šค ํ™•์ธ

ํ˜„์žฌ ์ž‘๋™์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„  ps๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ps : ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค ์ถœ๋ ฅ
ps -a : ์‹œ์Šคํ…œ์„ ์ด์šฉ์ค‘์ธ ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ์ •๋ณด ์ถœ๋ ฅ
ps -u : ์†Œ์œ ์ž์— ๋Œ€ํ•œ ์ •๋ณด ์ถœ๋ ฅ
ps -x : ๋ฐ๋ชฌ ํ”„๋กœ์„ธ์Šค๊นŒ์ง€ ๋ชจ๋‘ ์ถœ๋ ฅ (Daemon Process : ๋ถ€ํŒ…๋  ๋•Œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค)
ps -l : ํ”„๋กœ์„ธ์Šค ์ƒ์„ธ ์ •๋ณด ์ถœ๋ ฅ
ps -e : ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋„ ๊ฐ™์ด ์ถœ๋ ฅ
ps -f : ๊ด€๊ณ„ ์ •๋ณด๋„ ๊ฐ™์ด ์ถœ๋ ฅ

๋ณดํ†ต ps -aux๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ ์ค‘ pid๊ฐ€ ๊ฒฐ๊ตญ ์ œ์ผ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•˜๋„ค์š”..!

์‚ฌ์šฉ ์˜ˆ์‹œ
์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค ์ค‘ bash๊ฐ€ ์‹คํ–‰์ค‘์ธ์ง€ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ

ps aux | grep bash

grep ๋ช…๋ น์–ด๋„ ํ•จ๊ป˜ ๋ณด์—ฌ์„œ 2๊ฐœ์ง€๋ฉด ์‹ค์งˆ์ ์œผ๋กœ๋Š” 1๊ฐœ๊ฐ€ ์‹คํ–‰์ค‘์ธ ๊ฒ๋‹ˆ๋‹ค!

ํŠน์ • ํ”„๋กœ์„ธ์Šค ์ค‘์ง€

ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จ์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ๋Š” kill ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

kill : ํ”„๋กœ์„ธ์Šค ์ค‘๋‹จ ex) kill 57 : 57๋ฒˆ pid ์ค‘์ง€
kill -9 : ํ”„๋กœ์„ธ์Šค ๊ฐ•์ œ ์ค‘๋‹จ

ํ•˜๋“œ ๋งํฌ์™€ ์†Œํ”„ํŠธ ๋งํฌ

์‹œ์Šคํ…œ ๋‚ด๋ถ€์˜ ํŒŒ์ผ๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์šฉ์–ด์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜ํ•˜๋‚˜ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ฃ .

ํ•˜๋“œ ๋งํฌ

ํ•˜๋“œ๋งํฌ๋Š” 2๊ฐœ์˜ ํŒŒ์ผ์„ ์ด์–ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. A์™€ B๋ผ๋Š” ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ, A์™€ B๋ฅผ ํ•˜๋“œ๋งํฌ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด, A์˜ ๋‚ด์šฉ์ด ๋ณ€ํ•  ๋•Œ B์˜ ๋‚ด์šฉ๋„ ๋ณ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด๋Š” ln A B์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ๋ฅผ ํ•œ๋ฒˆ ๋ณด์‹œ์ฃ .

files.txt์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ˆœ ๋ณต์‚ฌ์™€ ํ•˜๋“œ ๋งํฌ์˜ ์ฐจ์ด์ ์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด cp ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ files.txt ๋‚ด์šฉ์„ new_files.txt๋กœ ๋ณต์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
cp files.txt new_files.txt

์ด์ œ ln ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด link_files.txt๋ผ๋Š” ์ƒˆ๋กœ์šด ํŒŒ์ผ์— ํ•˜๋“œ ๋งํฌ๋ฅผ ๊ฑธ์–ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.
ln files.txt new_files.txt

์ด์ œ ์›๋ณธ ํŒŒ์ผ์ธ files.txt์˜ ๋‚ด์šฉ์„ ํ•œ๋ฒˆ ์ˆ˜์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

total 28 ์ด์—ˆ๋˜ ๊ฒƒ์„ total 100์œผ๋กœ ๋ฐ”๊ฟ”๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
vi files.txt -> i -> ์ˆ˜์ • -> ZZ
cat files.txt

๊ทธ๋Ÿผ ์ด์ œ ํ•˜๋“œ ๋งํฌ๊ฐ€ ์—ฐ๊ฒฐ ๋˜์–ด ์žˆ๋Š” link_files.txt์™€ ๋‹จ์ˆœ ๋ณต์‚ฌ๋งŒ ํ–ˆ๋˜ new_files.txt์˜ ๋‚ด์šฉ์„ ํ™•์ธ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

<link_files.txt> [ํ•˜๋“œ ๋งํฌ์˜ ๊ฒฝ์šฐ]

<new_files.txt> [๋‹จ์ˆœ ๋ณต์‚ฌ์˜ ๊ฒฝ์šฐ]

ํ•˜๋“œ ๋งํฌ๊ฐ€ ๊ฑธ๋ฆฐ ํŒŒ์ผ์€ ์›๋ณธ ํŒŒ์ผ์˜ ์ˆ˜์ •๊ณผ ํ•จ๊ป˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋์ง€๋งŒ, ๋‹จ์ˆœ ๋ณต์‚ฌ๋Š” ์ˆ˜์ • ์ „์˜ ๋‚ด์šฉ์ด ์œ ์ง€๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ ๋งํฌ (์ค‘์š”!)

์†Œํ”„ํŠธ ๋งํฌ๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด window์˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฑด ์•„๋‹ˆ๊ณ  ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ํ•ด๋‹น ํŒŒ์ผ๋กœ ์ด๋™์„ ์‹œ์ผœ์ค๋‹ˆ๋‹ค.

๋ช…๋ น์–ด๋Š” ln -s A B์ž…๋‹ˆ๋‹ค.

ln -s files.txt soft_files.txt๋กœ ์›๋ณธ ํŒŒ์ผ์ธ files.txt์— ๋ฐ”๋กœ๊ฐ€๊ธฐ๋ฅผ soft_files.txt๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ ๋งํฌ๋„ ๊ฒฐ๊ตญ ๋งํฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์›๋ณธ ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋ฉด soft link๋œ ํŒŒ์ผ์˜ ๋‚ด์šฉ๋„ ๋ฐ”๋€๋‹ˆ๋‹ค.

์œ„์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ๋‹ค์‹œ ์ด๋ฒˆ์—” total 100์„ total 50์œผ๋กœ ๋ฐ”๊พธ๊ฒ ์Šต๋‹ˆ๋‹ค.

cat soft_files.txt๋กœ ๋‚ด์šฉ์ด ํ•จ๊ป˜ ๋ฐ”๊ผˆ๋‚˜ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž˜ ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐจ์ด์ 

ํ•˜๋“œ ๋งํฌ์˜ ๊ฒฝ์šฐ ๋งํฌ๋œ ๋‘ ํŒŒ์ผ์ด ๊ฐ๊ฐ ๋…๋ฆฝ๋œ ๊ฐœ์ฒด๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์›๋ณธ ํŒŒ์ผ์ธ A๊ฐ€ ์‚ญ์ œ๋˜์–ด๋„ BํŒŒ์ผ์€ ๊ทธ๋Œ€๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์†Œํ”„ํŠธ ๋งํฌ์˜ ๊ฒฝ์šฐ์—” ๋ณต์ œ๋œ BํŒŒ์ผ์€ AํŒŒ์ผ๋กœ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๊ธฐ ์œ„ํ•œ ๋ฐ”๋กœ๊ฐ€๊ธฐ์— ๋ถˆ๊ณผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›๋ณธ ํŒŒ์ผ์ธ A๊ฐ€ ์‚ญ์ œ๋˜๋ฉด BํŒŒ์ผ์€ ์‹คํ–‰๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์šฐ๋ถ„ํˆฌ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ

์šฐ๋ฆฌ๊ฐ€ ๋งจ ์ฒ˜์Œ์— ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ sudo apt-get updade๋กœ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ํ•จ๋ถ€๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ์‹œํ‚ค๋ฉด ์ชผ๊ธˆ... ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์ฃ ? ํŒจํ‚ค์ง€ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋˜๋Š” ๊ฒŒ ์žˆ๊ณ  ์•ˆ ๋˜๋Š” ๊ฒŒ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„์ „์ด ๋‹ฌ๋ผ์ง€๋ฉด ๋˜๋˜ ๊ฒƒ๋„ ์•ˆ ๋˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๋“ฏ, ์šฐ๋ถ„ํˆฌ๋Š” ์ฃผ๋กœ apt ๋ช…๋ น์–ด๋กœ ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

apt : ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋ช…๋ น์–ด
sudo apt-get install {ํŒจํ‚ค์ง€๋ช…} : ํŒจํ‚ค์ง€ ์„ค์น˜
sudo apt-get remove {ํŒจํ‚ค์ง€๋ช…} : ํŒจํ‚ค์ง€ ์‚ญ์ œ

VIM

์—๋””ํ„ฐ(Editor)์ž…๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค์—์„  ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ์ด๋‹ค ๋ณด๋‹ˆ๊นŒ ๋งˆ์šฐ์Šค๋กœ ์„ค์ •์„ ๋ฐ”๊ฟ€ ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋•Œ๋ฌธ์— ํŒŒ์ผ์„ ์ˆ˜์ •ํ•  ๋•Œ, window์™€ ๋‹ค๋ฅด๊ฒŒ ์ข€ ๋ณต์žกํ•˜๊ฒŒ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊นƒํ—ˆ๋ธŒ ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค ๋•Œ VIM์œผ๋กœ rubyํŒŒ์ผ์„ ์ˆ˜์ •ํ–ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ๊ทธ๋•Œ ์ฒ˜์Œ VIM์„ ๋งŒ๋‚˜๊ณ  ๋„ˆ๋ฌด ๋จธ๋ฆฌ๊ฐ€ ์•„ํŒ ๋˜ ๊ธฐ์–ต์ด ์žˆ๋„ค์œ .. ใ…Žใ…Ž

๊ฐ„๋‹จํ•˜๊ฒŒ ๋ช…๋ น์–ด๋ถ€ํ„ฐ ๋‚˜์—ด ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

vi {์ƒˆ๋กœ์šด ํŒŒ์ผ์ด๋ฆ„} : ์ƒˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
i or a or o : ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
x : ์ปค์„œ์˜ ๋‚ด์šฉ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
: : ๊ฐ€์žฅ ์•„๋ž˜์—์„œ ๋ช…๋ น์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

:w : ํ˜„์žฌ ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
:q : ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค.
:wq or ZZ : ์ˆ˜์ • ๋‚ด์šฉ์„ ์ €์žฅํ•˜๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค.
:q! : ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

์ด์ƒ์œผ๋กœ ๋„์ปค์—์„œ ํ•„์š”ํ•œ Linux ๋ฌธ๋ฒ•์„ ์ตํ˜”์Šต๋‹ˆ๋‹ค! ์ด์ œ Docker๋กœ ๊ฐ€๋ณด์‹œ์ฃ !!!!!!

profile
๋ฌผ์–ด๋ณด๋ฉด ๋Œ€๋‹ตํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์Ÿ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€