Skip to content

Soonbum/UnixLinuxShellScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

11 Commits
ย 
ย 

Repository files navigation

UNIX/Linux ๊ณ„๋ณด

image

UNIX/Linux ๊ธฐ๋ณธ ๋ช…๋ น์–ด์™€ ๊ฐœ๋…

์ž…์ถœ๋ ฅ ์žฌ์ง€์ • (Redirection)

fd (file descriptor) fd ์ด๋ฆ„ ์šฉ๋„ ํ‘œ์ค€ ์žฅ์น˜
0 stdin (ํ‘œ์ค€ ์ž…๋ ฅ) ๋ช…๋ น์–ด์— ์ž…๋ ฅํ•  ๋‚ด์šฉ์„ ์ €์žฅ ํ‚ค๋ณด๋“œ
1 stdout (ํ‘œ์ค€ ์ถœ๋ ฅ) ๋ช…๋ น์–ด์—์„œ ์ถœ๋ ฅํ•  ๋‚ด์šฉ์„ ์ €์žฅ ํ™”๋ฉด
2 stderr (ํ‘œ์ค€ ์˜ค๋ฅ˜) ๋ช…๋ น์–ด์—์„œ ์ถœ๋ ฅํ•  ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅ ํ™”๋ฉด
  • ํ•ญ์ƒ ๋ช…๋ น์–ด๋Š” ์ขŒ์ธก, ํŒŒ์ผ์€ ์šฐ์ธก์— ์˜จ๋‹ค๋Š” ๊ฒƒ์„ ๋ช…์‹ฌํ•˜์ž.

  • fd 0๊ณผ 1์€ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    • ํ‘œ์ค€ ์˜ค๋ฅ˜(2)๋Š” ๋ฐ˜๋“œ์‹œ ํ‘œ๊ธฐํ•ด์•ผ ํ•จ
  • ์˜ˆ์ œ: ํ‘œ์ค€ ์ž…๋ ฅ ๋ฆฌ๋””๋ ‰์…˜

    • ๋ช…๋ น์–ด < ํŒŒ์ผ
    • ๋ช…๋ น์–ด 0< ํŒŒ์ผ
$ cat sample.txt                    # sample.txt ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณด์—ฌ์คŒ
$ tr '[A-Z]' '[a-z]' < sample.txt   # sample.txt ํŒŒ์ผ์˜ ๋Œ€๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ณ  ๋‚ด์šฉ์„ ๋ณด์—ฌ์คŒ
  • ์˜ˆ์ œ: ํ‘œ์ค€ ์ถœ๋ ฅ ๋ฆฌ๋””๋ ‰์…˜
    • ๋ช…๋ น์–ด >> ํŒŒ์ผ ('>'๋Š” ๋ฎ์–ด์“ฐ๊ธฐ, '>>'๋Š” ์ด์–ด์“ฐ๊ธฐ)
    • ๋ช…๋ น์–ด 1>> ํŒŒ์ผ
$ date >> day-time  # date ๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๋ฅผ day-time ํŒŒ์ผ๋กœ ๊ธฐ๋ก
$ cat day_time      # day_time ํŒŒ์ผ ๋ณด๊ธฐ
  • ์˜ˆ์ œ: ํ‘œ์ค€ ์˜ค๋ฅ˜ ๋ฆฌ๋””๋ ‰์…˜
    • ๋ช…๋ น > ํŒŒ์ผa 2> ํŒŒ์ผe (๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผa์— ๊ธฐ๋กํ•˜๊ณ , ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์ผe์— ๊ธฐ๋กํ•จ)
    • ๋ช…๋ น 1> ํŒŒ์ผa 2> ํŒŒ์ผe
    • ๋ช…๋ น > ํŒŒ์ผ 2>&1 (๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ์™€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์ผ์— ๊ธฐ๋ก)
    • ๋ช…๋ น 1> ํŒŒ์ผ 2>&1

ํŒŒ์ดํ”„ (Pipe)

  • ๋ฌธ๋ฒ•: ๋ช…๋ น์–ด1 | ๋ช…๋ น์–ด2 | ๋ช…๋ น์–ด3
    • ํŒŒ์ดํ”„๋Š” ์žฌ์ง€์ •(Redirection)๊ณผ ๋‹ฌ๋ฆฌ ํŒŒ์ผ ์ž…์ถœ๋ ฅ์„ ํ•˜์ง€ ์•Š๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ฆ‰์‹œ ๋‹ค๋ฅธ ๋ช…๋ น์–ด์˜ ์ž…๋ ฅ์œผ๋กœ ๋„˜๊ธฐ๋ฏ€๋กœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

๋ช…๋ น์–ด ๋ชจ์Œ

๋””๋ ‰ํ† ๋ฆฌ, ํŒŒ์ผ ์ƒ์„ฑ/์‚ญ์ œ/์ด๋™

  • cd ๋ช…๋ น์–ด: ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•จ (Change Directory)

  • cp ๋ช…๋ น์–ด: ํŠน์ • ํŒŒ์ผ์„ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณต์‚ฌํ•จ

  • ls ๋ช…๋ น์–ด: ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•จ

  • lsof ๋ช…๋ น์–ด: list open files ๋ช…๋ น์–ด๋Š” ์‹œ์Šคํ…œ์—์„œ ์—ด๋ฆฐ ํŒŒ์ผ ๋ชฉ๋ก์„ ์•Œ๋ ค์ฃผ๊ณ  ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค, ๋””๋ฐ”์ด์Šค ์ •๋ณด, ํŒŒ์ผ์˜ ์ข…๋ฅ˜ ๋“ฑ์„ ํ‘œ์‹œํ•จ

  • mkdir ๋ช…๋ น์–ด: ์ƒˆ๋กœ์šด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•จ

  • mv ๋ช…๋ น์–ด: ํŠน์ • ํŒŒ์ผ์„ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™์‹œํ‚ค๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•จ

  • pwd ๋ช…๋ น์–ด: ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•จ (Print Work Directory)

  • rm ๋ช…๋ น์–ด: ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•จ

  • rmdir ๋ช…๋ น์–ด: ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•จ

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

  • env ๋ช…๋ น์–ด: ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

    • PATH ๋ณ€์ˆ˜์— ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ฒฝ๋กœ ์ด๋™ ์—†์ด๋„ ์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ (์˜ˆ: PATH=$PATH:$HOME/bin)
    • source ๋ช…๋ น์–ด๋กœ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ
  • export ๋ช…๋ น์–ด: ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•จ

  • set ๋ช…๋ น์–ด: ์…ธ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•จ

    • ๋งŒ์•ฝ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ์…ธ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ๋™์ผํ•˜๋ฉด, ํ•œ์ชฝ์ด ๋ฐ”๋€” ๋•Œ ๋‹ค๋ฅธ ํ•œ์ชฝ๋„ ๋ฐ˜์˜๋œ๋‹ค.
  • unset ๋ช…๋ น์–ด: ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ˜น์€ ์…ธ ๋ณ€์ˆ˜๋ฅผ ํ•ด์ œํ•จ

ํŒŒ์ผ ๋ณด๊ธฐ/์ฐพ๊ธฐ/์กฐ์ž‘

  • cat ๋ช…๋ น์–ด: ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณด์—ฌ์คŒ (conCATenate)

  • cmp ๋ช…๋ น์–ด: ํŒŒ์ผ์„ ๋น„๊ตํ•จ, diff์™€ ๋‹ฌ๋ฆฌ ์ฐจ์ด์ ์˜ ์œ ๋ฌด๋งŒ ์•Œ๋ ค์คŒ (Compare)

  • diff ๋ช…๋ น์–ด: ํŒŒ์ผ์„ ๋น„๊ตํ•จ, ์ฐจ์ด์ ์„ ์ž์„ธํ•˜๊ฒŒ ํ‘œ์‹œํ•จ

  • find ๋ช…๋ น์–ด: ์กฐ๊ฑด์— ๋งž๋Š” ํŒŒ์ผ์„ ์ฐพ์Œ

  • touch ๋ช…๋ น์–ด: 0๋ฐ”์ดํŠธ์˜ ๋นˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๊ธฐ์กด ํŒŒ์ผ์ด ์žˆ์„ ๊ฒฝ์šฐ ํŒŒ์ผ์˜ ์ˆ˜์ • ์‹œ๊ฐ„์„ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝํ•จ

  • ln ๋ช…๋ น์–ด: ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•จ

  • stat ๋ช…๋ น์–ด: ํŒŒ์ผ์˜ ๊ฐฑ์‹  ์ผ์‹œ, ์ ‘์† ์ผ์‹œ๋ฅผ ์•Œ๋ ค์คŒ

  • tar ๋ช…๋ น์–ด: ์—ฌ๋Ÿฌ ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ฌถ์Œ

    • ๋ฌถ๊ธฐ: tar -cvf [ํŒŒ์ผ๋ช….tar] [ํด๋”๋ช…]
    • ํ’€๊ธฐ: tar -xvf [ํŒŒ์ผ๋ช….tar]
    • ์••์ถ•: tar -zcvf [ํŒŒ์ผ๋ช….tar.gz] [ํด๋”๋ช…]
    • ์••์ถ•ํ•ด์ œ: tar -zxvf [ํŒŒ์ผ๋ช….tar.gz]
  • type ๋ช…๋ น์–ด: ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜๋ฅผ ์•Œ๋ ค์คŒ (alias, ์™ธ๋ถ€ ๋ช…๋ น, ๋‚ด๋ถ€ ๋ช…๋ น์ธ์ง€ ์—ฌ๋ถ€)

  • which ๋ช…๋ น์–ด: ๋ช…๋ น์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๊ทธ๊ฒƒ์˜ ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค์คŒ

  • whereis ๋ช…๋ น์–ด: ๋ช…๋ น์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ทธ๊ฒƒ์˜ ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค์ฃผ๊ณ  ๋งค๋‰ด์–ผ, ์†Œ์Šค์ฝ”๋“œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋„ ๊ฐ™์ด ํ‘œ์‹œํ•จ

๋””์Šคํฌ/๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ

  • df ๋ช…๋ น์–ด: ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ํ‘œ์‹œํ•จ

  • du ๋ช…๋ น์–ด: ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ํ‘œ์‹œํ•จ

  • free ๋ช…๋ น์–ด: ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ/๋น„์‚ฌ์šฉ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณด์—ฌ์คŒ

๊ถŒํ•œ ๊ด€๋ จ

  • chgrp ๋ช…๋ น์–ด: ์†Œ์œ  ๊ทธ๋ฃน์„ ๋ณ€๊ฒฝํ•จ (Change Group)

  • chmod ๋ช…๋ น์–ด: ํŒŒ์ผ, ๋””๋ ‰ํ† ๋ฆฌ, ์žฅ์น˜ ๋“ฑ์˜ ๊ถŒํ•œ ๋ณ€๊ฒฝ

    • '- rwx rwx rwx': ํŒŒ์ผ ํƒ€์ž…, ์†Œ์œ ์ž ํผ๋ฏธ์…˜, ์†Œ์œ ์ž ๊ทธ๋ฃน ํผ๋ฏธ์…˜, ๊ธฐํƒ€ ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ํผ๋ฏธ์…˜์„ ์˜๋ฏธํ•จ
    • ํƒ€์ž…: -(์ผ๋ฐ˜ํŒŒ์ผ), d(๋””๋ ‰ํ† ๋ฆฌ), l(์‹ฌ๋ณผ๋ฆญ ๋งํฌ), c(์บ๋ฆญํ„ฐํ˜• ๋””๋ฐ”์ด์Šค), b(๋ธ”๋กํ˜• ๋””๋ฐ”์ด์Šค)
    • 8์ง„์ˆ˜๋กœ ํผ๋ฏธ์…˜ ์ง€์ • ๊ฐ€๋Šฅ: r(4), w(2), x(1) (์ฆ‰, 7์€ rwx, 5๋Š” r-x๋ฅผ ์˜๋ฏธํ•จ)
    • ๊ธฐํ˜ธ๋ฅผ ํ†ตํ•ด ํผ๋ฏธ์…˜ ์ง€์ • ๊ฐ€๋Šฅ: [u(์†Œ์œ ์ž), g(์†Œ์œ ์ž ๊ทธ๋ฃน), o(๊ธฐํƒ€ ์†Œ์œ ์ž), a(ugo ์ „๋ถ€)]
    • ๊ทธ ์™ธ์—๋„ ์‹คํ–‰ ๊ถŒํ•œ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์ด ์žˆ์Œ: SetUID(s), SetGID(s), StickyBit(t)
  • chown ๋ช…๋ น์–ด: ํŒŒ์ผ ์†Œ์œ ์ž๋ฅผ ๋ณ€๊ฒฝํ•จ (root๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ) (Change Owner)

  • groupadd ๋ช…๋ น์–ด: ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•จ

  • groupdel ๋ช…๋ น์–ด: ๊ทธ๋ฃน์„ ์‚ญ์ œํ•จ

  • groups ๋ช…๋ น์–ด: ์ž์‹ ์ด ์†Œ์†๋œ ๊ทธ๋ฃน์˜ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•จ

  • id ๋ช…๋ น์–ด: ์ž์‹ ์˜ ๊ธฐ๋ณธ ๊ทธ๋ฃน์ด๋‚˜ ๊ทธ ์™ธ ์†Œ์†๋˜์–ด ์žˆ๋Š” ๊ทธ๋ฃน์„ ์•Œ๋ ค์คŒ

  • newgrp ๋ช…๋ น์–ด: ํ•˜์œ„ ๊ทธ๋ฃน์„ ๊ธฐ๋ณธ ๊ทธ๋ฃน์œผ๋กœ ๋งŒ๋“ฆ

  • useradd ๋ช…๋ น์–ด: ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ƒ์„ฑํ•จ

  • userdel ๋ช…๋ น์–ด: ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์‚ญ์ œํ•จ

  • usermod ๋ช…๋ น์–ด: ์‚ฌ์šฉ์ž๋ฅผ ๊ทธ๋ฃน์— ๋“ฑ๋กํ•จ (User Modify)

๊ณ„์ • ๊ด€๋ จ

  • passwd ๋ช…๋ น์–ด: ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•จ (Password)

  • su ๋ช…๋ น์–ด: ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์ „ํ™˜ํ•จ (Switch User)

  • w ๋ช…๋ น์–ด: ์‹œ์Šคํ…œ์— ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•จ

  • who ๋ช…๋ น์–ด: ์‚ฌ์šฉ์ž๋ช…๊ณผ ๋กœ๊ทธ์ธ ์ผ์‹œ๋ฅผ ํ‘œ์‹œํ•จ

ํ”„๋กœ์„ธ์Šค ๊ด€๋ จ

  • jobs ๋ช…๋ น์–ด: ํ˜„์žฌ ๊ฐ€๋™ ์ค‘์ธ ์ž‘์—…์„ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ ๋ชฉ๋ก์œผ๋กœ ํ‘œ์‹œํ•จ

  • kill ๋ช…๋ น์–ด: ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•จ

  • pmap ๋ช…๋ น์–ด: ์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋งต ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•จ

  • ps ๋ช…๋ น์–ด: ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•จ (Process Status)

    • ps aux: ํ”„๋กœ์„ธ์Šค ์ „์ฒด ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
    • top ๋˜๋Š” htop: ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋„คํŠธ์›Œํฌ ๊ด€๋ จ

  • ftp ๋ช…๋ น์–ด: FTP(File Transfer Protocol) ์„œ๋น„์Šค

  • ifconfig ๋ช…๋ น์–ด: ์šด์˜์ฒด์ œ์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์„ค์ •์„ ํ™•์ธ ๋ฐ ๋ณ€๊ฒฝํ•จ

  • netstat ๋ช…๋ น์–ด: ํ˜„์žฌ ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์ƒํƒœ ๋ฐ ํฌํŠธ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•จ

  • nslookup ๋ช…๋ น์–ด: ์ง€์ •ํ•œ ํ˜ธ์ŠคํŠธ๋ช…(DNS๋ช… ๋˜๋Š” IP์ฃผ์†Œ)์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ DNS ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์™€์„œ ๋ณด์—ฌ์คŒ

  • ntpdate ๋ช…๋ น์–ด: ์ง€์ •๋œ time ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ๋™๊ธฐํ™”์‹œํ‚ด

  • ping ๋ช…๋ น์–ด: ICMP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ํ˜ธ์ŠคํŠธ์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ , ํ˜ธ์ŠคํŠธ ๊ฐ„์— ํŒจํ‚ท์ด ์™•๋ณต๋œ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜์—ฌ ํ‘œ์‹œํ•จ

  • route ๋ช…๋ น์–ด: ๋„คํŠธ์›Œํฌ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ์„ค์ •ํ•จ

  • traceroute ๋ช…๋ น์–ด: ๋„คํŠธ์›Œํฌ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ‚ท์ด ๊ฑฐ์ณ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋ฅผ ์ถ”์ ํ•˜์—ฌ, ๊ฒฝ๋กœ ์ค‘์— ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ๊ณณ์„ ์ฐพ์„ ๋•Œ ํ™œ์šฉ๋จ

ํ•„ํ„ฐ๋ง ๊ด€๋ จ

  • col ๋ช…๋ น์–ด: ํ…์ŠคํŠธ ํŒŒ์ผ ๋‚ด ๊ฐœํ–‰(ํŠน์ˆ˜) ๋ฌธ์ž์™€ ๊ณต๋ฐฑ ๋“ฑ์„ ๋ณ€ํ™˜ํ•˜๋Š” ํ•„ํ„ฐ ์—ญํ• ์„ ํ•จ

    • ์˜ˆ: '\n\r' --> '\n', ' ' --> '\t' ๋“ฑ
  • colcrt ๋ช…๋ น์–ด: ๋ฐ‘์ค„(_)์„ ๊ฐ์ถ”๊ฑฐ๋‚˜ ๋ณ€ํ™˜ํ•จ

  • grep ๋ช…๋ น์–ด: ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ๋œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด๋‚˜ ๋ช…๋ น์–ด์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํŠน์ • ๋ฌธ์ž๋‚˜ ๋‹จ์–ด๋กœ ๊ฒ€์ƒ‰ํ•จ

    • ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ํ…์ŠคํŠธ ํŒŒ์ผ ๋˜๋Š” ๊ฒฐ๊ณผ์˜ ํŠน์ • ๋ฌธ์ž๋‚˜ ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ํ–‰์ด ์ถœ๋ ฅ๋จ
  • nl ๋ช…๋ น์–ด: ํ…์ŠคํŠธ ํ˜•ํƒœ์˜ ํŒŒ์ผ์„ ์ฝ์–ด ํ–‰ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•จ

  • sort ๋ช…๋ น์–ด: ํ…์ŠคํŠธ ํŒŒ์ผ์„ ํ–‰ ๋‹จ์œ„๋กœ ์ •๋ ฌํ•จ

  • tr ๋ช…๋ น์–ด: ํŠน์ • ๋ฌธ์ž๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•จ

๋‚ ์งœ/์‹œ๊ฐ„

  • date ๋ช…๋ น์–ด: ์‹œ์Šคํ…œ์˜ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์•Œ๋ ค์ฃผ๊ฑฐ๋‚˜ ์„ค์ •ํ•จ

  • time ๋ช…๋ น์–ด: ํŠน์ • ํ”„๋กœ์„ธ์Šค๋‚˜ ๋ช…๋ น์–ด์— ์‚ฌ์šฉ๋œ ์‹œ์Šคํ…œ ์ž์› ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•จ

ํ…์ŠคํŠธ ์ถœ๋ ฅ/๋ณ€ํ™˜

  • cut ๋ช…๋ น์–ด: ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋‚˜ ํŒŒ์ดํ”„๋œ ๊ฒฐ๊ณผ ์ค‘์— ์ง€์ •๋œ ๋ถ€๋ถ„๋งŒ ํ‘œ์‹œํ•จ (ํ…์ŠคํŠธ ํŒŒ์ผ ์ถœ๋ ฅ ํŽธ์ง‘)

  • echo ๋ช…๋ น์–ด: ์ง€์ •๋œ ๋ฌธ์ž์—ด์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•จ

  • logger ๋ช…๋ น์–ด: ์šด์˜์ฒด์ œ์˜ ์ฃผ์š” ๋กœ๊ทธ ์ €์žฅ ํŒŒ์ผ(/var/log/messages)์— ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•จ

  • pr ๋ช…๋ น์–ด: ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ธ์‡„๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ‘œ์ค€ ์ถœ๋ ฅ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•จ

  • script ๋ช…๋ น์–ด: ํ„ฐ๋ฏธ๋„์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…ํ•œ ๋ชจ๋“  ๋‚ด์šฉ์„ ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ์ €์žฅํ•จ

  • tail ๋ช…๋ น์–ด: ํ…์ŠคํŠธ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ํ–‰์˜ ๋‚ด์šฉ๋ถ€ํ„ฐ ์ถœ๋ ฅํ•จ

์‹œ์Šคํ…œ ์ƒํƒœ

  • domainname ๋ช…๋ น์–ด: ์šด์˜์ฒด์ œ์— ์„ค์ •๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„ ์ •๋ณด๋ฅผ ํ™•์ธํ•จ

  • uptime ๋ช…๋ น์–ด: ํ‰๊ท  ์‹œ์Šคํ…œ ๋ถ€ํ•˜ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•จ

  • vmstat ๋ช…๋ น์–ด: ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•จ

๋„์›€๋ง

  • man ๋ช…๋ น์–ด: ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ๋งค๋‰ด์–ผ์„ ๋ณด์—ฌ์คŒ
    • ๋ช…๋ น์–ด ์˜†์— "--help" ์˜ต์…˜์„ ํ†ตํ•ด์„œ๋„ ๊ฐ„๋žตํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์‹œ์Šคํ…œ ์ข…๋ฃŒ

  • halt ๋ช…๋ น์–ด: ์‹œ์Šคํ…œ์„ ์ข…๋ฃŒํ•จ (ํ†ต์ง€, ์‹œ๊ฐ„ ์„ค์ • ๊ถŒํ•œ์ด ์—†์Œ)

  • reboot ๋ช…๋ น์–ด: ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•จ (ํ†ต์ง€, ์‹œ๊ฐ„ ์„ค์ • ๊ถŒํ•œ์ด ์—†์Œ)

  • shutdown ๋ช…๋ น์–ด: ์‹œ์Šคํ…œ์„ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์žฌ์‹œ์ž‘ํ•จ

    • '-h': ์ข…๋ฃŒ, '-r': ๋ฆฌ๋ถ€ํŠธ
    • 'now': ์ง€๊ธˆ, '+5': 5๋ถ„ ํ›„

๊ธฐํƒ€

  • at ๋ช…๋ น์–ด: ๋ช…๋ น์–ด ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ด ํŠน์ • ์‹œ๊ฐ„์— ์‹คํ–‰๋˜๋„๋ก ์˜ˆ์•ฝ

    • /etc/at.allow, /etc/at.deny ์„ค์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ˆ์•ฝ ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ ๊ฐ€๋Šฅ
    • atd ๋ฐ๋ชฌ์„ ๊ตฌ๋™ ์ค‘์ด์–ด์•ผ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (/etc/init.d/atd)
  • sudo ๋ช…๋ น์–ด: ๋ช…๋ น์–ด๋ฅผ root ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•จ

์ŠคํŠธ๋ฆผ ํŽธ์ง‘๊ธฐ sed

  • grep์ฒ˜๋Ÿผ ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ํŒŒ์ดํ”„๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฐ๊ณผ๋กœ ์žฌ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
    • sed๋Š” ํŽธ์ง‘ํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค.
    • sed์˜ ์—ฐ์‚ฐ์ž๋“ค์€ ์ž…๋ ฅ ๋ฐ›์€ ๋ชจ๋“  ๋ผ์ธ์— ์ ์šฉ๋œ๋‹ค.

awk (Aho Weinberger Kernighan)

  • ํ…์ŠคํŠธ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋„๊ตฌ

vi ํŽธ์ง‘๊ธฐ

๋ชจ๋“œ์˜ ์ข…๋ฅ˜

  • ๋ช…๋ น ๋ชจ๋“œ

    • ๋‹ค๋ฅธ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์ƒํƒœ
    • ์‹คํ–‰ ์งํ›„, ๋˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“œ์—์„œ Esc ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋จ
    • h (์™ผ์ชฝ 1์นธ ์ด๋™), j (์•„๋ž˜๋กœ 1์นธ ์ด๋™), k (์œ„๋กœ 1์นธ ์ด๋™), l (์˜ค๋ฅธ์ชฝ์œผ๋กœ 1์นธ ์ด๋™)
    • '+ (๋‹ค์Œ ๋ผ์ธ์˜ ์ฒซ ๋ฌธ์ž๋กœ ์ด๋™), - (์œ„ ๋ผ์ธ์˜ ์ฒซ ๋ฌธ์ž๋กœ ์ด๋™)
    • ^ ๋˜๋Š” 0 (ํ˜„์žฌ ๋ผ์ธ์—์„œ ๋งจ ์•ž์˜ ์ฒซ ๋ฌธ์ž๋กœ ์ด๋™), $ (ํ˜„์žฌ ๋ผ์ธ์—์„œ ๋งจ ๋’ค์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋กœ ์ด๋™)
    • G (์ œ์ผ ๋งˆ์ง€๋ง‰ ๋ผ์ธ์˜ ๋งจ ์•ž์˜ ์ฒซ ๋ฌธ์ž๋กœ ์ด๋™)
    • r (์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ๋ฌธ์ž๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์ž๋กœ ์ˆ˜์ •)
    • cw, [์ˆซ์ž]cw (์ปค์„œ์˜ ์œ„์น˜๋ถ€ํ„ฐ ํ˜„์žฌ ๋‹จ์–ด์˜ ๋๊นŒ์ง€ ์ˆ˜์ •)
    • s, [์ˆซ์ž]s (์ปค์„œ์˜ ์œ„์น˜๋ถ€ํ„ฐ ์ง€์ •๋œ ๊ธ€์ž ์ˆ˜๊นŒ์ง€ ๋‚ด์šฉ์„ ๋Œ€์ฒดํ•จ)
    • cc (์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ํ–‰์˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ˆ˜์ •)
    • C (์ปค์„œ์˜ ์œ„์น˜๋ถ€ํ„ฐ ํ–‰์˜ ๋๊นŒ์ง€ ์ˆ˜์ •)
    • x, [์ˆซ์ž]x (์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ๋ฌธ์ž ๋ฐ ์ง€์ •๋œ ๊ธ€์ž ์ˆ˜๋งŒํผ ์‚ญ์ œ)
    • dw, [์ˆซ์ž]dw (์ปค์„œ ์œ„์น˜์˜ ๋‹จ์–ด ๋ฐ ์ง€์ •๋œ ๋‹จ์–ด ์ˆ˜๋งŒํผ ์‚ญ์ œ)
    • dd, [์ˆซ์ž]dd (์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ํ–‰ ๋ฐ ์ง€์ •๋œ ํ–‰ ์ˆ˜๋งŒํผ ์‚ญ์ œ)
    • u (๋ฐฉ๊ธˆ ์ˆ˜ํ–‰ํ•œ ๋ช…๋ น ์ทจ์†Œ)
    • yy, [์ˆซ์ž]yy (์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ํ–‰ ๋ฐ ์ง€์ •๋œ ํ–‰์˜ ์ˆ˜๋ฅผ ๋ณต์‚ฌ)
    • p (์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ํ–‰์˜ ์•„๋ž˜์ชฝ์— ๋ถ™์—ฌ๋„ฃ๊ธฐ)
    • P (์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ํ–‰์˜ ์œ„์ชฝ์— ๋ถ™์—ฌ๋„ฃ๊ธฐ)
  • ex ๋ชจ๋“œ

    • ์ €์žฅ, ์ข…๋ฃŒ, ๊ฒ€์ƒ‰, ์น˜ํ™˜ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ๋‚ด๋ฆฌ๊ธฐ ์œ„ํ•œ ์ƒํƒœ
    • :q (์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ข…๋ฃŒ)
    • :q! (์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ฐ•์ œ ์ข…๋ฃŒ)
    • :w (์ €์žฅ)
    • :w ํŒŒ์ผ๋ช… (๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ)
    • :wq (์ €์žฅํ•˜๊ณ  ์ข…๋ฃŒ)
    • :set nu (ํŒŒ์ผ ๋‚ด์šฉ์˜ ๊ฐ ํ–‰์— ํ–‰ ๋ฒˆํ˜ธ๋ฅผ ํ‘œ์‹œํ•จ)
    • :set nonu (ํ–‰ ๋ฒˆํ˜ธ ๊ฐ์ถ”๊ธฐ)
    • :set list (๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š” ํŠน์ˆ˜(๊ฐœํ–‰) ๋ฌธ์ž๋ฅผ ํ‘œ์‹œํ•จ)
    • :set nolist (ํŠน์ˆ˜(๊ฐœํ–‰) ๋ฌธ์ž ๊ฐ์ถ”๊ธฐ)
    • :set showmode (ํ˜„์žฌ ๋ชจ๋“œ ํ‘œ์‹œ)
    • :set noshowmode (ํ˜„์žฌ ๋ชจ๋“œ ๊ฐ์ถ”๊ธฐ)
    • /ํ‚ค์›Œ๋“œ (ํ˜„์žฌ ์ปค์„œ๋กœ๋ถ€ํ„ฐ ๋’ค๋กœ ๊ฒ€์ƒ‰), n (๋’ค๋กœ ๊ณ„์† ์ฐพ๊ธฐ)
    • ?ํ‚ค์›Œ๋“œ (ํ˜„์žฌ ์ปค์„œ๋กœ๋ถ€ํ„ฐ ์•ž์œผ๋กœ ๊ฒ€์ƒ‰), N (์•ž์œผ๋กœ ๊ณ„์† ์ฐพ๊ธฐ)
    • :s/ํ‚ค์›Œ๋“œ1/ํ‚ค์›Œ๋“œ2/์˜ต์…˜ (ํ‚ค์›Œ๋“œ1์„ ํ‚ค์›Œ๋“œ2๋กœ ์น˜ํ™˜)
    • (์น˜ํ™˜) s ์•ž์— %๋Š” ํŒŒ์ผ ์ „์ฒด์ด๊ณ  m,n์€ mํ–‰๋ถ€ํ„ฐ nํ–‰๊นŒ์ง€ ์ ์šฉํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.
    • (์˜ต์…˜) g๋ฅผ ๋ถ™์ด๋ฉด ์ „์—ญ ์น˜ํ™˜, ๋ถ™์ด์ง€ ์•Š์œผ๋ฉด 1๋ฒˆ์งธ๋งŒ ์น˜ํ™˜
    • (์˜ต์…˜) i๋ฅผ ๋ถ™์ด๋ฉด ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ
    • (์˜ต์…˜) c๋ฅผ ๋ถ™์ด๋ฉด ์น˜ํ™˜ํ•  ๋•Œ ๋ฌผ์–ด๋ด„
  • ์ž…๋ ฅ ๋ชจ๋“œ

    • ํŽธ์ง‘๊ธฐ์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ
    • ๋ช…๋ น ๋ชจ๋“œ์—์„œ i, I, a, A, o, O๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋จ
    • i๋Š” ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์•ž์ž๋ฆฌ๋ถ€ํ„ฐ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
    • I๋Š” ์ปค์„œ๊ฐ€ ์žˆ๋Š” ํ–‰์˜ ๋งจ ์•ž๋ถ€ํ„ฐ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
    • a๋Š” ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ๋’ท์ž๋ฆฌ๋ถ€ํ„ฐ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
    • A๋Š” ์ปค์„œ๊ฐ€ ์žˆ๋Š” ํ–‰์˜ ๋งจ ๋์—์„œ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
    • o๋Š” ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ๋‹ค์Œ ํ–‰์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ž…๋ ฅ์„ ์‹œ์ž‘ํ•œ๋‹ค.
    • O๋Š” ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ด์ „ ํ–‰์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ž…๋ ฅ์„ ์‹œ์ž‘ํ•œ๋‹ค.
  • ๋น„์ฃผ์–ผ ๋ชจ๋“œ

    • ํŽธ์ง‘ํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์„œ๋ฅผ ๋ณด๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ
    • ๋ช…๋ น ๋ชจ๋“œ์—์„œ v๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋จ
    • ๋ช…๋ น ๋ชจ๋“œ์™€ ๋น„์Šทํ•˜๋‚˜ ํŽธ์ง‘์ด ์•ˆ๋จ

image

๊ทธ ์™ธ์—๋„ ๋งŽ์€ ๋ช…๋ น์–ด ๋ฐ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฏ€๋กœ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์•Œ๋ ค๋ฉด ๊ฒ€์ƒ‰์„ ํ•ด๋ณด์‹ญ์‹œ์˜ค.

์‰˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ๋ฒ•

์‰˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ์ž‘ํ•˜๊ธฐ

์‰˜ ์Šคํฌ๋ฆฝํŠธ์˜ ์ผ๋ฐ˜์ ์ธ ๊ตฌ์กฐ

  • ์‰˜ ๋ช…๋ น์–ด ๋’ค์— ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์˜ต์…˜์œผ๋กœ ์ œ๊ณตํ•˜์—ฌ ์‹คํ–‰ํ•จ: sh ./script.sh

    • ๋งŒ์•ฝ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์—๊ฒŒ ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ: ./script.sh
  • ์ฒซ ๋ผ์ธ์— ๋‹ค์Œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€: #!/bin/sh

    • ์ž‘์„ฑ๋œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ Bourne Shell์ž„์„ ์ปค๋„์—๊ฒŒ ์•Œ๋ ค์คŒ
  • ๋ณ€์ˆ˜๋ช… ์•ž์—๋Š” $ ๊ธฐํ˜ธ๋ฅผ ๋ถ™์ž„

  • ์ฃผ์„ ์•ž์—๋Š” # ๊ธฐํ˜ธ๋ฅผ ๋ถ™์ž„

๋ณ€์ˆ˜

  • ์ฃผ์˜์‚ฌํ•ญ
    • "๋ณ€์ˆ˜๋ช…=๊ฐ’" ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๋ฉฐ, ์ˆซ์ž์™€ ๋ฌธ์ž์—ด ์•„๋ฌด ํ˜•ํƒœ๊ฐ€ ๊ฐ€๋Šฅํ•จ
    • "=" ๋ฌธ์ž ์ขŒ์šฐ์— ๊ณต๋ฐฑ์ด ์—†์–ด์•ผ ํ•จ
    • ๋ณ€์ˆ˜์˜ ๊ฐ’์— ๊ณต๋ฐฑ์ด ์žˆ์œผ๋ฉด ""๋กœ ๊ฐ์‹ธ์•ผ ํ•จ
    • ๋ณ€์ˆ˜๋ช…์€ ์˜๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋ฉฐ, ์˜๋ฌธ์ž์™€ ์ˆซ์ž์™€ ๋ฐ‘์ค„๋ฌธ์ž๊ฐ€ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Œ
  • ์ „์—ญ ๋ณ€์ˆ˜
    • ํ˜„์žฌ ์‰˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์‰˜์—์„œ ํŒŒ์ƒ๋˜๋Š” ์ž์‹ ํ”„๋กœ์„ธ์Šค์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    • export ๋ช…๋ น์–ด๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Œ
    • env ๋˜๋Š” printenv ๋ช…๋ น์–ด๋กœ ๋“ฑ๋ก๋œ ์ „์—ญ ๋ณ€์ˆ˜ ํ™•์ธ ๊ฐ€๋Šฅ
  • ์ง€์—ญ ๋ณ€์ˆ˜
    • ํ˜„์žฌ์˜ ์‰˜์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜
    • set ๋ช…๋ น์–ด๋กœ ๋“ฑ๋ก๋œ ์ง€์—ญ ๋ณ€์ˆ˜ ํ™•์ธ ๊ฐ€๋Šฅ
    • unset ๋ช…๋ น์–ด๋กœ ์ƒ์„ฑ๋œ ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Œ

์ฃผ์š” ๋ฌธ๋ฒ•

  • ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ›๊ธฐ: read <๋ณ€์ˆ˜๋ช…>

    • ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด, ๋ณ€์ˆ˜์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์ด ์ €์žฅ๋จ (Python์˜ input() ํ•จ์ˆ˜ ์—ญํ• )
  • ์ˆ˜์น˜ ์—ฐ์‚ฐ: expr <์ˆ˜์‹>

    • ์—ฐ์‚ฐ์ž: +, -, *, /, %
    • ์—ฐ์‚ฐ์ž์™€ ์ˆซ์ž ๋˜๋Š” ์ˆซ์žํ˜• ๋ณ€์ˆ˜ ์‚ฌ์ด์—๋Š” ๋ฐ˜๋“œ์‹œ ๊ณต๋ฐฑ์ด ์žˆ์–ด์•ผ ํ•จ
    • ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋‚˜ * ๋ฐ / ์—ฐ์‚ฐ ์‹œ์—๋Š” \๋ฅผ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
$ CALC='expr 20 + 20'
$ CALC2='expr 205 + \( 3 \* 4 \)'
$ echo $CALC
40
$ echo $CALC2
217
  • if๋ฌธ
    • if์˜ ๊ฐœ์ˆ˜๋งŒํผ fi๋กœ ๋ฐ˜๋“œ์‹œ ์กฐ๊ฑด๋ฌธ์„ ์ข…๊ฒฐ์‹œ์ผœ์•ผ ํ•จ
    • ๋‹จ, elif๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋Š” ์ข…๊ฒฐ์„ ์œ„ํ•œ ๊ฐœ์ˆ˜์— ๊ตฌ์•  ๋ฐ›์ง€ ์•Š์Œ
if ์กฐ๊ฑด๋ฌธ
  then ๋ช…๋ น์–ด
    elif ์กฐ๊ฑด๋ฌธ
      then ๋ช…๋ น์–ด
  else ๋ช…๋ น์–ด
if

์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. (์ฝ”๋“œ์˜ ๊ฐ ๋ผ์ธ์€ ;์„ ์ด์šฉํ•˜์—ฌ ํ•ฉ์น  ์ˆ˜๋„ ์žˆ์Œ)

#!/bin/sh

echo -n "์ˆซ์ž A๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: "
read VAR1
echo -n "์ˆซ์ž B๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: "
read VAR2

if [ $VAR1 -eq $VAR2 ]
  then echo " ์ˆซ์ž A์™€ B๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค."
    elif [ $VAR1 -ge $VAR2 ]
      then echo " ์ˆซ์ž A๋Š” B๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค."
    elif [ $VAR1 -le $VAR2 ]
      then echo " ์ˆซ์ž A๋Š” B๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค."
fi
  • test๋ฌธ
    • '[' ๋’ค์™€ ']' ์•ž์—๋Š” ๊ณต๋ฐฑ์ด ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•จ
    • ๋ฌธ์ž์—ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ""๋กœ ๊ฐ์‹ธ์•ผ ํ•จ
test ํ‘œํ˜„์‹
[ ํ‘œํ˜„์‹ ]
  1. ์ˆ˜์น˜ ๋น„๊ต (์†Œ์ˆ˜์  ์ดํ•˜์˜ ์ˆซ์ž๋Š” ๋ฌด์‹œํ•จ)
ํ‘œํ˜„์‹ true์ธ ๊ฒฝ์šฐ
[ $A -eq $B ] A์™€ B์˜ ๊ฐ’์ด ๊ฐ™์€ ๊ฒฝ์šฐ
[ $A -ne $B ] A์™€ B์˜ ๊ฐ’์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ
[ $A -gt $B ] A๊ฐ€ B๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ
[ $A -lt $B ] A๊ฐ€ B๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ
[ $A -ge $B ] A๊ฐ€ B๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ
[ $A -le $B ] A๊ฐ€ B๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ
  1. ํŒŒ์ผ ๋น„๊ต
ํ‘œํ˜„์‹ true์ธ ๊ฒฝ์šฐ
[ -s ] ํŒŒ์ผ์ด ์กด์žฌํ•˜๋ฉด์„œ ํฌ๊ธฐ๊ฐ€ 0๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ
[ -f ] ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ํŒŒ์ผ์ผ ๊ฒฝ์šฐ
[ -d ] ํŒŒ์ผ์„ ์ œ์™ธํ•œ ๋””๋ ‰ํ† ๋ฆฌ์ผ ๊ฒฝ์šฐ
[ -w ] ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ
[ -r ] ์ฝ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ
[ ! -์˜ต์…˜ ] ์˜ต์…˜์˜ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด ๋˜๋Š” ๊ฒฝ์šฐ
  1. ๋ฌธ์ž์—ด ๋น„๊ต
ํ‘œํ˜„์‹ true์ธ ๊ฒฝ์šฐ
["๋ฌธ์ž์—ด1" = "๋ฌธ์ž์—ด2" ] ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์€ ๊ฒฝ์šฐ
["๋ฌธ์ž์—ด1" != "๋ฌธ์ž์—ด2" ] ๋‘ ๋ฌธ์ž์—ด์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ
[ -z "๋ฌธ์ž์—ด ] ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ธ ๊ฒฝ์šฐ
[ -n "๋ฌธ์ž์—ด ] ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ
#!/bin/sh
# ๋ฌธ์ž์—ด ๋น„๊ต ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.
# X$n ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ X๋Š” NULL์ด ์ž…๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์•ˆ์ „์žฅ์น˜์ž…๋‹ˆ๋‹ค.

if [ X$1 = X$2 ]
  then
    echo "์ž…๋ ฅ๋œ ๋‘ ์ธ์ˆ˜๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค."
  elif [ X$1 != X$2 ]
    then
      echo "์ž…๋ ฅ๋œ ๋‘ ์ธ์ˆ˜๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค."
fi
  • Bourne Shell์˜ ํŠน์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ: $1๋Š” 1๋ฒˆ์งธ ์ธ์ˆ˜, $2๋Š” 2๋ฒˆ์งธ ์ธ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” ํŠน์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์š”์•ฝํ•œ ๊ฒƒ์ด๋‹ค.
ํŠน์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๋ช…
$* ๋ชจ๋“  ์ธ์ˆ˜
$# ์ธ์ˆ˜์˜ ๊ฐœ์ˆ˜
$? ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‹คํ–‰ํ•œ ํฌ๊ทธ๋ผ์šด๋“œ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ข…๋ฃŒ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๊ฐ€ error์ด๋ฉด 1, ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด 0์ด๋‹ค.
$$ ํ˜„์žฌ ์‰˜์˜ ํ”„๋กœ์„ธ์Šค ID๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
$! ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰๋œ ํ”„๋กœ์„ธ์Šค์˜ ID๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
$0 ์‰˜ ๋˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ์˜ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
$_ ์‰˜์ด ์‹œ์ž‘๋˜๋ฉด์„œ ์„ค์ •๋˜๋ฉฐ, ์‹คํ–‰๋œ ์‰˜ ์Šคํฌ๋ฆฝํŠธ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•œ๋‹ค.
  • for๋ฌธ
    • ์›์†Œ ๋ชฉ๋ก์˜ ์œ ํ•œํ•œ ์ˆ˜๋งŒํผ์˜ ๋ช…๋ น์„ ๋ฐ˜๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ
    • in ๋’ค์˜ ์›์†Œ๋“ค์„ for ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ๋ณ€์ˆ˜ ๊ฐ’์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋Œ€์น˜์‹œ์ผœ ๋ช…๋ น์–ดA๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , in ๋’ค์˜ ์›์†Œ ๊ฐœ์ˆ˜๋งŒํผ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜์„œ done ๋’ค์˜ ๋ช…๋ น์–ดB๋ฅผ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ˜๋ณต์„ ์ข…๋ฃŒํ•œ๋‹ค.
for ๋ณ€์ˆ˜ in ์›์†Œ1 ์›์†Œ2 ์›์†Œ3 ...
do
  ๋ช…๋ น์–ดA
done
  ๋ช…๋ น์–ดB
  • while๋ฌธ
    • ์กฐ๊ฑด์ด ๋งŒ์กฑํ•˜๋ฉด do์™€ done ์‚ฌ์ด์˜ ๋ช…๋ น์–ด๋“ค์„ ๋ฐ˜๋ณตํ•ด ์‹คํ–‰ํ•œ๋‹ค.
    • ์กฐ๊ฑด๋ฌธ์ด ํ•ญ์ƒ ์ฐธ์ด๊ฑฐ๋‚˜ 0๋ณด๋‹ค ํฌ๋ฉด ๋ฌดํ•œ ๋ฐ˜๋ณต๋ฌธ์ด ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์œ ์˜ํ•˜๋ผ. (Ctrl+C๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ฌดํ•œ๋ฐ˜๋ณต์„ ์ค‘๋‹จํ•จ)
while [ ์กฐ๊ฑด ]
do
  ๋ช…๋ น์–ด
done
  • until๋ฌธ
    • while๋ฌธ๊ณผ ๋‹ฌ๋ฆฌ ๋ฐ˜๋Œ€๋กœ ์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง“์ด๋ฉด do์™€ done ์‚ฌ์ด์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์ฐธ์ด๋ฉด ๋ฐ˜๋ณต์„ ์ข…๋ฃŒํ•œ๋‹ค.
until [ ์กฐ๊ฑด ]
do
  ๋ช…๋ น์–ด
done
  • continue๋ฌธ๊ณผ break๋ฌธ

    • continue๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ ์ˆ˜ํ–‰ ์ค‘๊ฐ„์—์„œ continue ์ดํ•˜์˜ ๋‚ด์šฉ๋“ค์„ ๋ฌด์‹œํ•˜๊ณ  ์กฐ๊ฑด ๊ฒ€์‚ฌ๋ฅผ ๋‹ค์‹œ ์ง„ํ–‰ํ•œ๋‹ค.
    • break๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  ๊ฐ•์ œ๋กœ ๋น ์ ธ๋‚˜์˜ฌ ๋•Œ ํ™œ์šฉํ•œ๋‹ค.
    • ๋‹จ ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ์˜ ๊ฒฝ์šฐ, continue n์„ ์ด์šฉํ•ด continue ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ (์ˆซ์ž 1์€ ์ธ์ ‘ํ•œ 1๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ, 2๋Š” ์ธ์ ‘ํ•œ 2๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ...)
  • case๋ฌธ

    • ์ง€์ •๋œ ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ์‚ฌ์ „ ๋ณ€์ˆ˜์— ์ง€์ •๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ํ™œ์šฉ๋˜๋ฉฐ, ๋ณดํ†ต ์‰˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ ๋ฉ”๋‰ด๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.
    • case์˜ ๊ฐ ํ•ญ๋ชฉ์„ ๋๋‚ผ ๋•Œ๋Š” ;;๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ„ด์„ ์ข…๊ฒฐ์ง“๋„๋ก ํ•œ๋‹ค.
    • ์•ž์˜ ํŒจํ„ด์—์„œ ์ง€์ •๋˜์ง€ ์•Š์€ ์ž…๋ ฅ ๊ฐ’์ด ์ž…๋ ฅ๋  ๋•Œ๋Š” *) ๋ถ€๋ถ„์— ๊ธฐ์ˆ ๋œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
case ๋ณ€์ˆ˜ in
  ํŒจํ„ด1)
    ๋ช…๋ น;;
  ํŒจํ„ด2)
    ๋ช…๋ น;;
  ํŒจํ„ด3)
    ๋ช…๋ น;;
  *)
    ๋ช…๋ น;;
esac
  • ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ
ํ•จ์ˆ˜๋ช…()
{
  ๋ช…๋ น
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published