๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS

[Linux] ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด

by clolee 2025. 3. 27.

๐Ÿ”ง ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ จ ๋ช…๋ น์–ด

pwd

  • ์˜๋ฏธ: print working directory (ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์ถœ๋ ฅ)
  • ์˜ˆ์‹œ:
    • $ pwd
      /home/student/projects
  • ์„ค๋ช…:
    ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ์œ„์น˜ํ•œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์ถœ๋ ฅํ•จ.
    ์œˆ๋„์šฐ์˜ cd๋งŒ์œผ๋กœ ํ˜„์žฌ ์œ„์น˜๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌ.

mkdir [์˜ต์…˜] ๋””๋ ‰ํ† ๋ฆฌ๋ช…

  • ์˜๋ฏธ: make directory (๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ)
  • ์˜ต์…˜
    • -p: ๋ถ€๋ชจ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์ž๋™ ์ƒ์„ฑ (parent)
  • ์˜ˆ์‹œ
    • mkdir myFolder
    • mkdir -p School/{Science,Math,History}/{Assignments,Notes}
  • ์„ค๋ช…: ์ƒˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑ. -p๋Š” ์ค‘์ฒฉ๋œ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ƒ์„ฑ.

rmdir [๋””๋ ‰ํ† ๋ฆฌ๋ช…]

  • ์˜๋ฏธ: remove directory
  • ์˜ˆ์‹œ: rmdir ./test
  • ์„ค๋ช…: ๋น„์–ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ์‚ญ์ œ ๊ฐ€๋Šฅ. ์•ˆ์— ํŒŒ์ผ ์žˆ์œผ๋ฉด ์‚ญ์ œ ๋ถˆ๊ฐ€.

rm [์˜ต์…˜] ํŒŒ์ผ๋ช…/๋””๋ ‰ํ† ๋ฆฌ๋ช…

  • ์˜๋ฏธ: remove (ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ)
  • ์˜ต์…˜
    • -r: recursive, ์žฌ๊ท€์ ์œผ๋กœ ์‚ญ์ œ
    • -f: force, ๋ฌป์ง€ ์•Š๊ณ  ๊ฐ•์ œ๋กœ ์‚ญ์ œ
    • -i: interactive, ์‚ญ์ œ ์ „์— ํ™•์ธ ์š”์ฒญ
  • ์˜ˆ์‹œ
    • rm -rf ./test
    • rm -i a.txt
  • โš ๏ธ rm -rf / : ์ ˆ๋Œ€ ์‚ฌ์šฉ ๊ธˆ์ง€. ์‹œ์Šคํ…œ ์ „์ฒด ์‚ญ์ œ.

 

touch [ํŒŒ์ผ๋ช…]

  • ์˜๋ฏธ: touch (ํŒŒ์ผ ์ƒ์„ฑ ๋˜๋Š” ํƒ€์ž„์Šคํƒฌํ”„ ๋ณ€๊ฒฝ)
  • ์˜ˆ์‹œ:
    • touch a.txt โ†’ a.txt๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ๋จ
    • touch a.txt โ†’ a.txt๊ฐ€ ์žˆ์œผ๋ฉด ๋‚ด์šฉ์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์ตœ์ข… ์ˆ˜์ • ์‹œ๊ฐ„๋งŒ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋จ
  • ์‚ฌ์šฉ ์˜ˆ:
    • ๋นŒ๋“œ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ ๋ณ€๊ฒฝ ์—ฌ๋ถ€ ์ถ”์  ์‹œ
    • ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ตœ๊ทผ ์ ‘๊ทผ ๊ธฐ๋ก ๊ฐฑ์‹  ์‹œ
  • ์„ค๋ช…
    • ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ณ ,
    • ํŒŒ์ผ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด ๋‚ด์šฉ์€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ์ตœ์ข… ์ˆ˜์ • ์‹œ๊ฐ„(mtime)๋งŒ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
    • ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ๋‚ด์šฉ์„ ๋ฐ”๊พธ๋Š” ์—ญํ• ์€ ํ•˜์ง€ ์•Š์Œ

 

mv [์›๋ณธ] [๋Œ€์ƒ]

  • ์˜๋ฏธ: move (ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์ด๋™ ๋˜๋Š” ์ด๋ฆ„ ๋ณ€๊ฒฝ)
  • ์˜ˆ์‹œ
    • mv a.txt b.txt : a.txt ํŒŒ์ผ์„ b.txt๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ
    • mv ./test ./test2 : test ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ test2๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ
    • mv a.txt ./backup/ : a.txt ํŒŒ์ผ์„ backup ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
    • mv ./mydir ./archive/mydir : ๋””๋ ‰ํ† ๋ฆฌ mydir์„ archive ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„๋กœ ์ด๋™
  • ์„ค๋ช…:
    mv๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋จ:
    1. ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ
    2. ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ์œ„์น˜(๊ฒฝ๋กœ)๋กœ ์ด๋™
    ๋Œ€์ƒ์ด ๋””๋ ‰ํ† ๋ฆฌ์ผ ๊ฒฝ์šฐ, ์ด๋™์ด ์ด๋ฃจ์–ด์ง€๊ณ ,
    ๋Œ€์ƒ์ด ํŒŒ์ผ๋ช…์ผ ๊ฒฝ์šฐ, ์ด๋ฆ„ ๋ณ€๊ฒฝ์œผ๋กœ ๋™์ž‘ํ•จ.

cp [์˜ต์…˜] ์›๋ณธ ๋Œ€์ƒ

  • ์˜๋ฏธ: copy
  • ์˜ต์…˜
    • -r: ๋””๋ ‰ํ† ๋ฆฌ ๋ณต์‚ฌ ์‹œ ์žฌ๊ท€ ๋ณต์‚ฌ
    • -i: ๋ฎ์–ด์“ฐ๊ธฐ ์ „ ํ™•์ธ
  • ์˜ˆ์‹œ
    • cp a.txt b.txt
    • cp -r ./src ./backup
  • ์„ค๋ช…: ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณต์‚ฌ

๐Ÿ“‚ ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ํ™•์ธ ๋ฐ ๊ฒ€์ƒ‰

ls [์˜ต์…˜] [๊ฒฝ๋กœ]

  • ์˜๋ฏธ: list (๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์šฉ ํ™•์ธ)
  • ์˜ต์…˜
    • -a: ์ˆจ๊น€ ํŒŒ์ผ ํฌํ•จ (all)
    • -l: ์ƒ์„ธ ์ •๋ณด (long format)
  • ์˜ˆ์‹œ
    • ls -al
    • ll : ls -al์˜ ๋ณ„์นญ(alias)๋กœ ์ž์ฃผ ์‚ฌ์šฉ
  • ์„ค๋ช…: ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก ํ™•์ธ

 

cat [ํŒŒ์ผ๋ช…]

  • ์˜๋ฏธ: concatenate (์ด์–ด ๋ถ™์ด๋‹ค)
    โ†’ ์‹ค์ œ๋กœ๋Š” ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋จ
  • ํ˜•์‹: cat ํŒŒ์ผ๋ช…
  • ์˜ˆ์‹œ:
    • cat a.txt โ†’ a.txt์˜ ์ „์ฒด ๋‚ด์šฉ์„ ํ•œ ๋ฒˆ์— ์ถœ๋ ฅ
    • cat file1.txt file2.txt > combined.txt โ†’ ๋‘ ํŒŒ์ผ์„ ์ด์–ด๋ถ™์—ฌ combined.txt๋กœ ์ €์žฅ
  • ์„ค๋ช…:
    ํ…์ŠคํŠธ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ•œ ๋ฒˆ์— ๋ชจ๋‘ ์ถœ๋ ฅํ•จ.
    ๋‚ด์šฉ์ด ์งง๊ฑฐ๋‚˜ ์ „์ฒด๋ฅผ ๋‹ค ๋ณด๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ.

 

more [ํŒŒ์ผ๋ช…] ๋˜๋Š” [๋ช…๋ น์–ด] | more

  • ์˜๋ฏธ: ํŒŒ์ผ ๋‚ด์šฉ์„ ํŽ˜์ด์ง€ ๋‹จ์œ„ ์ถœ๋ ฅ (์Šคํฌ๋กค ๋ถˆ๊ฐ€, ์ฝ๊ธฐ ์ „์šฉ)
  • ํ˜•์‹: more ํŒŒ์ผ๋ช… ๋˜๋Š” [๋ช…๋ น์–ด] | more
  • ์˜ˆ์‹œ:
    • more long.txt
    • ps -ef | more
  • ์„ค๋ช…:
    • ํŒŒ์ผ์ด๋‚˜ ๋ช…๋ น์–ด ๊ฒฐ๊ณผ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด ํ•œ ํ™”๋ฉด์— ์•ˆ ๋‚˜์˜ฌ ๋•Œ
    • ํ•œ ์ค„ ๋˜๋Š” ํ•œ ํŽ˜์ด์ง€์”ฉ ์ถœ๋ ฅ, ์ฝ๊ธฐ ํŽธํ•˜๊ฒŒ ํ•ด์คŒ.                                                                                                                 
    • [๋ช…๋ น์–ด] | more์˜ ๊ฒฝ์šฐ ํŒŒ์ดํ”„(|)๋ฅผ ํ†ตํ•ด ๋ช…๋ น์–ด ๊ฒฐ๊ณผ๋ฅผ more๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹.

 

  • ํ‚ค ์กฐ์ž‘:
    • Enter: ํ•œ ์ค„ ์ด๋™
    • Space: ํ•œ ํŽ˜์ด์ง€ ์ด๋™
    • q: ์ข…๋ฃŒ (quit)

 

less [ํŒŒ์ผ๋ช…] ๋˜๋Š” [๋ช…๋ น์–ด] | less

  • ์˜๋ฏธ: less is more (๋” ๊ฐ•๋ ฅํ•œ more)
    โ†’ ํŽ˜์ด์ง€ ๋‹จ์œ„ ์ถœ๋ ฅ, ์–‘๋ฐฉํ–ฅ ์Šคํฌ๋กค, ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ ํ…์ŠคํŠธ ๋ทฐ์–ด
  • ์˜ˆ์‹œ:
    • less /var/log/syslog
    • dmesg | less
    • cat access.log | less
  • ์„ค๋ช…:
    less๋Š” more๋ณด๋‹ค ๊ฐœ์„ ๋œ ํŒŒ์ผ ์ถœ๋ ฅ ๋„๊ตฌ๋กœ,
    ์Šคํฌ๋กค, ๊ฒ€์ƒ‰, ๋ผ์ธ ์ด๋™ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
    ๋Œ€์šฉ๋Ÿ‰ ๋กœ๊ทธ ํŒŒ์ผ์ด๋‚˜ ์‹œ์Šคํ…œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ถ„์„ํ•  ๋•Œ ์œ ์šฉํ•จ
    ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ์‹œ๊ฐ„๋Œ€, ํŠน์ • ์—๋Ÿฌ ๋ฉ”์‹œ์ง€, ์‚ฌ์šฉ์ž ํ™œ๋™ ๋“ฑ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Œ
  • โŒจ๏ธ ํ‚ค ์กฐ์ž‘ ์š”์•ฝ
    ํ‚ค ๊ธฐ๋Šฅ
    โ†“, โ†‘ ํ•œ ์ค„์”ฉ ์•„๋ž˜/์œ„๋กœ ์ด๋™
    PgDn, PgUp ํ•œ ํŽ˜์ด์ง€์”ฉ ์•„๋ž˜/์œ„๋กœ ์ด๋™
    /๊ฒ€์ƒ‰์–ด ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ ์‹œ์ž‘
    n ๋‹ค์Œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ด๋™
    N ์ด์ „ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ด๋™
    g ํŒŒ์ผ ์ฒ˜์Œ์œผ๋กœ ์ด๋™
    G ํŒŒ์ผ ๋์œผ๋กœ ์ด๋™
    q ์ข…๋ฃŒ (quit)

 

tail [์˜ต์…˜] [ํŒŒ์ผ๋ช…]

  • ์˜๋ฏธ: tail (๊ผฌ๋ฆฌ, ๋๋ถ€๋ถ„)
    โ†’ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์„ ์ถœ๋ ฅํ•˜๋Š” ๋ช…๋ น์–ด
    ๋กœ๊ทธ ํŒŒ์ผ์˜ ์ตœ๊ทผ ๋‚ด์šฉ์„ ํ™•์ธํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•จ
  • ํ˜•์‹:
    tail [์˜ต์…˜] ํŒŒ์ผ๋ช…
  • ์˜ˆ์‹œ:
    • tail a.txt โ†’ ๊ธฐ๋ณธ: ๋งˆ์ง€๋ง‰ 10์ค„ ์ถœ๋ ฅ
    • tail -n 50 log.txt โ†’ ๋งˆ์ง€๋ง‰ 50์ค„ ์ถœ๋ ฅ
    • tail -f /var/log/syslog โ†’ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ N์ค„(๊ธฐ๋ณธ 10์ค„) ์ถœ๋ ฅ + ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง
    • tail -n 100 -f /var/log/auth.log โ†’ ๋งˆ์ง€๋ง‰ 100์ค„๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์‹ค์‹œ๊ฐ„ ์ถœ๋ ฅ
  • ์„ค๋ช… :
    • tail์€ ๋กœ๊ทธ๋‚˜ ํ…์ŠคํŠธ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์„ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
    • -f ์˜ต์…˜์€ ๋กœ๊ทธ ํŒŒ์ผ์„ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ๋•Œ ๋งค์šฐ ๋งŽ์ด ์“ฐ์ž„
    • ๋กœ๊ทธ๊ฐ€ ๊ณ„์† ์ƒ์„ฑ๋˜๋Š” ์ƒํ™ฉ์—์„œ ์ถœ๋ ฅ ๋‚ด์šฉ์„ ์ž๋™์œผ๋กœ ์ถ”์  ๊ฐ€๋Šฅ
  •  ์ข…๋ฃŒ: Ctrl + C

๐Ÿงฐ ์ฃผ์š” ์˜ต์…˜ ์„ค๋ช…

์˜ต์…˜  ์˜๋ฏธ  ์„ค๋ช…
-n [์ˆซ์ž] number ๋งˆ์ง€๋ง‰ N์ค„ ์ถœ๋ ฅ (-n 20: ๋งˆ์ง€๋ง‰ 20์ค„)
-f follow ํŒŒ์ผ ๋์— ์ถ”๊ฐ€๋˜๋Š” ๋‚ด์šฉ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถœ๋ ฅ
-F follow + retry -f์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ํŒŒ์ผ์ด ์—†์–ด์กŒ๋‹ค ๋‹ค์‹œ ์ƒ๊ธฐ๋ฉด ์ž๋™ ์žฌ์—ฐ๊ฒฐ
--pid=[PID] -f ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚˜๋ฉด ์ž๋™ ์ข…๋ฃŒ ์ง€์ •๋œ PID ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚˜๋ฉด -f ์ข…๋ฃŒ

 

๐Ÿ“Œ ์ถ”๊ฐ€ Tip


  
tail -f /var/log/syslog | grep "error"

โ†’ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์ค‘ "error"๋งŒ ์‹ค์‹œ๊ฐ„ ํ•„ํ„ฐ๋งํ•ด์„œ ๋ณด์—ฌ์คŒ (์‹ค๋ฌด์—์„œ ์ž์ฃผ ์”€)

 

๐Ÿ“Š ๋ช…๋ น์–ด ๋น„๊ต: cat, more, less, tail

๊ธฐ๋Šฅ/๋ช…๋ น์–ด  cat  more  less tail
์ „์ฒด ์ถœ๋ ฅ ๐Ÿ”ต ๐Ÿ”ต (์Šคํฌ๋กค ์ œํ•œ) ๐Ÿ”ต (์–‘๋ฐฉํ–ฅ ์Šคํฌ๋กค) ๐Ÿ”ด
์Šคํฌ๋กค โŒ โฌ†๏ธ ์•„๋ž˜๋กœ๋งŒ โฌ†๏ธโฌ‡๏ธ ์–‘๋ฐฉํ–ฅ โŒ
๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ โŒ โŒ โœ… (/, n) โŒ
์‹ค์‹œ๊ฐ„ ์ถœ๋ ฅ โŒ โŒ โŒ โœ… (-f)
๊ธด ์ถœ๋ ฅ ์ฒ˜๋ฆฌ โŒ โœ… โœ… โŒ
์‹ค๋ฌด ํ™œ์šฉ ์งง์€ ํŒŒ์ผ ํ™•์ธ ๊ฐ„๋‹จํ•œ ๊ฒฐ๊ณผ ๋ณด๊ธฐ ๋กœ๊ทธ ๋ถ„์„/๊ฒ€์ƒ‰ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ๋ณด๊ธฐ

 

๐Ÿ“Œ ์‹ค๋ฌด ํŒ ์š”์•ฝ

  • ๐Ÿ” ๋กœ๊ทธ ํŒŒ์ผ ์ „์ฒด ๊ฒ€์ƒ‰/๋ถ„์„ โ†’ less
  • ๐Ÿ“ก ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง โ†’ tail -f
  • ๐Ÿ“„ ์งง์€ ํŒŒ์ผ ์ถœ๋ ฅ โ†’ cat (์ „์ฒด ๋‚ด์šฉ์„ ํ•œ ๋ฒˆ์— ์ถœ๋ ฅ)
  • ๐Ÿ“š ํŒŒ์ดํ”„ ์—ฐ๊ฒฐ ์ถœ๋ ฅ ๋ณด๊ธฐ โ†’ more ๋˜๋Š” less ( ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋ณด๊ธฐ)

ํŠนํžˆ /var/log/syslog, /var/log/auth.log ๋“ฑ์€ less๋กœ ๋ณด๋Š” ๊ฒƒ์ด ํ‘œ์ค€์ฒ˜๋Ÿผ ์“ฐ์ž„

์ข‹์•„! ๊ทธ๋Ÿผ ์ง€๊ธˆ๊นŒ์ง€ ์ •๋ฆฌํ•œ cat, more, less, tail ์™ธ์— ์‹ค๋ฌด์—์„œ ์ž์ฃผ ํ•จ๊ป˜ ์“ฐ์ด๋Š” ๋กœ๊ทธ ๋ฐ ํ…์ŠคํŠธ ๋ถ„์„ ๊ด€๋ จ ๋ช…๋ น์–ด๋“ค์„ ์†Œ๊ฐœํ•ด์ค„๊ฒŒ.
ํŠนํžˆ tail, less ๊ฐ™์€ ๋กœ๊ทธ ํ™•์ธ ๋ช…๋ น์–ด์™€ ์ž์ฃผ ์กฐํ•ฉํ•ด์„œ ์“ฐ๋Š” ๊ฒƒ๋“ค์ด์•ผ.


๐Ÿ“Œ ๋กœ๊ทธ ๋ถ„์„์— ์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด + ์กฐํ•ฉ ํŒ

โœ… head [์˜ต์…˜] [ํŒŒ์ผ๋ช…]

  • ์˜๋ฏธ: ํŒŒ์ผ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ N์ค„์„ ์ถœ๋ ฅ
  • ํ˜•์‹: head -n [์ˆซ์ž] ํŒŒ์ผ๋ช…
  • ์˜ˆ์‹œ:
    • head -n 20 a.txt โ†’ ์ฒ˜์Œ 20์ค„
  • ์‹ค๋ฌด ์šฉ๋„:
    • ๋กœ๊ทธ ํŒŒ์ผ์ด ์–ด๋–ป๊ฒŒ ์‹œ์ž‘๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
    • CSV ํŒŒ์ผ ํ—ค๋” ํ™•์ธํ•  ๋•Œ๋„ ์ž์ฃผ ์”€

โœ… grep [์˜ต์…˜] "ํŒจํ„ด" [ํŒŒ์ผ๋ช…]

  • ์˜๋ฏธ: ๋ฌธ์ž์—ด(ํŒจํ„ด) ๊ฒ€์ƒ‰
    global regular expression print
  • ์˜ˆ์‹œ:
    • grep "error" /var/log/syslog โ†’ ํŒŒ์ผ ๋‚ด "error" ํฌํ•จ๋œ ์ค„๋งŒ ์ถœ๋ ฅ
    • grep -i "fail" auth.log โ†’ ๋Œ€์†Œ๋ฌธ์ž ๋ฌด์‹œํ•˜๊ณ  ๊ฒ€์ƒ‰
    • tail -f syslog | grep "nginx" โ†’ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์ค‘ nginx ๊ด€๋ จ ์ค„๋งŒ ์ถœ๋ ฅ
  • ์„ค๋ช…: ํŠน์ • ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰
  • ์˜ต์…˜ ์š”์•ฝ:
    ์˜ต์…˜  ์˜๋ฏธ
    -i ๋Œ€์†Œ๋ฌธ์ž ๋ฌด์‹œ
    -w ๋‹จ์–ด ๋‹จ์œ„ ์ผ์น˜
    -r ๋””๋ ‰ํ† ๋ฆฌ ์žฌ๊ท€ ๊ฒ€์ƒ‰
    -n ์ค„ ๋ฒˆํ˜ธ ์ถœ๋ ฅ
    --color ๊ฒ€์ƒ‰์–ด ์ƒ‰์ƒ ํ‘œ์‹œ

โœ… journalctl [์˜ต์…˜]

  • ์˜๋ฏธ: systemd ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ๋กœ๊ทธ ๋ทฐ์–ด
    (/var/log/messages, /var/log/syslog ๋“ฑ ํ†ตํ•ฉ)
  • ์˜ˆ์‹œ:
    • journalctl -xe โ†’ ์ตœ๊ทผ ์—๋Ÿฌ ์ค‘์‹ฌ ๋กœ๊ทธ ๋ณด๊ธฐ
    • journalctl -u ssh โ†’ ssh ์„œ๋น„์Šค ๋กœ๊ทธ๋งŒ ๋ณด๊ธฐ
    • journalctl -f โ†’ tail -f์ฒ˜๋Ÿผ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ
  • ์‹ค๋ฌด ์šฉ๋„:
    • systemctl๋กœ ์‹คํ–‰ ์ค‘์ธ ์„œ๋น„์Šค ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ๋•Œ ํ•„์ˆ˜
    • ๋ถ€ํŒ… ๋กœ๊ทธ, ์ปค๋„ ๋กœ๊ทธ, ์„œ๋น„์Šค ์˜ค๋ฅ˜ ํ™•์ธ ๋“ฑ

โœ… awk

  • ์˜๋ฏธ: ํ…์ŠคํŠธ์˜ ํ•„๋“œ/์—ด ๋‹จ์œ„ ์ฒ˜๋ฆฌ
  • ์˜ˆ์‹œ:
    • awk '{print $1, $3}' a.txt โ†’ ๊ฐ ์ค„์˜ 1์—ด, 3์—ด๋งŒ ์ถœ๋ ฅ
    • ps -ef | awk '{print $1, $8}' โ†’ ํ”„๋กœ์„ธ์Šค ์‚ฌ์šฉ์ž + ์‹คํ–‰๋ช…๋ น๋งŒ ์ถœ๋ ฅ
  • ์‹ค๋ฌด ์šฉ๋„:
    • ๋กœ๊ทธ์˜ ํŠน์ • ์—ด๋งŒ ์ถ”์ถœํ•˜๊ณ  ์‹ถ์„ ๋•Œ
    • CPU, ๋ฉ”๋ชจ๋ฆฌ, ์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ ์ปฌ๋Ÿผ๋ณ„๋กœ ๋ถ„๋ฆฌํ•  ๋•Œ

 

โœ… cut

  • ์˜๋ฏธ: ํŠน์ • ํ•„๋“œ๋‚˜ ๋ฌธ์ž ์œ„์น˜ ์ž๋ฅด๊ธฐ
  • ์˜ˆ์‹œ:
    • cut -d':' -f1 /etc/passwd โ†’ ์ฝœ๋ก  ๊ธฐ์ค€ ์ฒซ ๋ฒˆ์งธ ํ•„๋“œ(์‚ฌ์šฉ์ž๋ช…) ์ถ”์ถœ
    • cut -c 1-10 access.log โ†’ ๊ฐ ์ค„์˜ ์ฒซ 10๊ธ€์ž๋งŒ ์ถœ๋ ฅ

๐Ÿ”— ์‹ค์ „ ๋ช…๋ น์–ด ์กฐํ•ฉ ์˜ˆ์‹œ


  
# ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ์—์„œ ์—๋Ÿฌ๋งŒ ๋ณด๊ธฐ
tail -f /var/log/syslog | grep "error"
# ssh ์„œ๋น„์Šค์˜ ์ตœ๊ทผ ๋กœ๊ทธ ๊ฒ€์ƒ‰
journalctl -u ssh | grep "fail"
# ๋กœ๊ทธ์ธ ์‹คํŒจ ์ด๋ ฅ ํ™•์ธ
grep "Failed password" /var/log/auth.log
# nginx ๋กœ๊ทธ์—์„œ IP๋งŒ ์ถ”์ถœ
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

 

๐Ÿ“Œ๋งˆ๋ฌด๋ฆฌ ํŒ

์ƒํ™ฉ  ์ถ”์ฒœ ๋ช…๋ น์–ด ์กฐํ•ฉ
์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ + ํ‚ค์›Œ๋“œ ํ•„ํ„ฐ `tail -f ...
์„œ๋น„์Šค ๋กœ๊ทธ ํ™•์ธ journalctl -u ์„œ๋น„์Šค๋ช…
๋กœ๊ทธ์—์„œ ํŠน์ • ์—ด ์ถ”์ถœ awk, cut
ํŒŒ์ผ ๋‚ด ํŒจํ„ด ๊ฒ€์ƒ‰ grep, less
๋กœ๊ทธ ํŒŒ์ผ ์ „์ฒด ๋ถ„์„ less, /๊ฒ€์ƒ‰

 

 


๐Ÿง  ๋ช…๋ น์–ด ์ด๋ ฅ ๋ฐ ์žฌํ™œ์šฉ (Command Recall)

history

  • ์˜๋ฏธ: history (๊ณผ๊ฑฐ ์‹คํ–‰ํ•œ ๋ช…๋ น์–ด ๋ชฉ๋ก ์ถœ๋ ฅ)
  • ํ˜•์‹: history
  • ์˜ˆ์‹œ ์ถœ๋ ฅ:
    • 10 ls -al 11 cd /home/user 12 mkdir test 13 rm -rf test
  • ํ•œ๊ธ€ ์„ค๋ช…:
    ์ง€๊ธˆ๊นŒ์ง€ ํ„ฐ๋ฏธ๋„์—์„œ ์ž…๋ ฅํ–ˆ๋˜ ๋ชจ๋“  ๋ช…๋ น์–ด์˜ ๊ธฐ๋ก์„ ๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ ์ถœ๋ ฅ
    โ†’ ๋ช…๋ น์–ด ์ด๋ ฅ ๊ธฐ๋ฐ˜์œผ๋กœ ๋น ๋ฅธ ์žฌ์‹คํ–‰ ๊ฐ€๋Šฅ

โœ… !๋ฒˆํ˜ธ

  • ์˜๋ฏธ: history ๋ช…๋ น ์ค‘ ํŠน์ • ๋ฒˆํ˜ธ์˜ ๋ช…๋ น์–ด ์‹คํ–‰
  • ํ˜•์‹: !๋ฒˆํ˜ธ
  • ์˜ˆ์‹œ:
    • !12 โ†’ mkdir test ์žฌ์‹คํ–‰

โœ… !ํ‚ค์›Œ๋“œ

  • ์˜๋ฏธ: ํ•ด๋‹น ํ‚ค์›Œ๋“œ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋ช…๋ น ์‹คํ–‰
  • ํ˜•์‹: !๋ฌธ์ž์—ด
  • ์˜ˆ์‹œ:
    • !ls โ†’ ์ตœ๊ทผ ์‹คํ–‰๋œ ls๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด ์‹คํ–‰
    • !mkdir โ†’ ์ตœ๊ทผ ์‹คํ–‰๋œ mkdir ๋ช…๋ น ์‹คํ–‰

โœ… !!

  • ์˜๋ฏธ: ๋งˆ์ง€๋ง‰ ๋ช…๋ น์–ด ์žฌ์‹คํ–‰
  • ํ˜•์‹: !!
  • ์˜ˆ์‹œ:
    • !! โ†’ ์ง์ „์— ์ž…๋ ฅํ•œ ๋ช…๋ น ๋‹ค์‹œ ์‹คํ–‰

โœ… !$

  • ์˜๋ฏธ: ๋งˆ์ง€๋ง‰ ๋ช…๋ น์–ด์˜ ๋งˆ์ง€๋ง‰ ์ธ์ž ์‚ฌ์šฉ
  • ํ˜•์‹: !$
  • ์˜ˆ์‹œ:โ†’ ์œ„์—์„œ !$๋Š” /home/user/docs๋กœ ์น˜ํ™˜๋จ
  • cp a.txt /home/user/docs cd !$

 


๐Ÿ–ฅ๏ธ ํ”„๋กœ์„ธ์Šค ๋ฐ ๋„คํŠธ์›Œํฌ ์ƒํƒœ

ps -ef

  • ์˜๋ฏธ: process status (๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ์ถœ๋ ฅ, full format)
  • ์˜ˆ์‹œ: ps -ef | more
  • ํ•œ๊ธ€ ์„ค๋ช…: ์œˆ๋„์šฐ์˜ ์ž‘์—… ๊ด€๋ฆฌ์ž์™€ ๋น„์Šท. ์ „์ฒด ํ”„๋กœ์„ธ์Šค ํ™•์ธ

netstat [์˜ต์…˜]

  • ์˜๋ฏธ: network statistics
  • ์˜ต์…˜
    • -a: ๋ชจ๋“  ์—ฐ๊ฒฐ ํ‘œ์‹œ
    • -n: ์ˆซ์žํ˜• IP/ํฌํŠธ๋กœ ํ‘œ์‹œ
    • -t: TCP ์—ฐ๊ฒฐ๋งŒ
    • -p: ํ”„๋กœ์„ธ์Šค ID ํ‘œ์‹œ
    • -l: ๋ฆฌ์Šค๋‹ ํฌํŠธ๋งŒ ํ‘œ์‹œ
  • ์˜ˆ์‹œ
    • netstat -an
    • netstat -antp
    • netstat -nltp
  • ํ•œ๊ธ€ ์„ค๋ช…: ํฌํŠธ/์—ฐ๊ฒฐ ์ƒํƒœ ํ™•์ธ

findstr (Windows ๋ช…๋ น์–ด)

  • ์˜๋ฏธ: ๋ฌธ์ž์—ด ์ฐพ๊ธฐ (find string)
  • ์˜ˆ์‹œ: netstat -an | findstr 22
  • ํ•œ๊ธ€ ์„ค๋ช…: ํŠน์ • ํฌํŠธ๊ฐ€ ์—ด๋ ค์žˆ๋Š”์ง€ ํ•„ํ„ฐ๋ง

systemctl [๋ช…๋ น์–ด] ์„œ๋น„์Šค๋ช…

  • ์˜๋ฏธ: system control (์„œ๋น„์Šค ๊ด€๋ฆฌ)
  • ๋ช…๋ น์–ด
    • start: ์‹œ์ž‘
    • stop: ์ •์ง€
    • restart: ์žฌ์‹œ์ž‘
    • status: ์ƒํƒœํ™•์ธ
  • ์˜ˆ์‹œ
    • systemctl start ssh
    • systemctl status ssh
  • ํ•œ๊ธ€ ์„ค๋ช…: ๋ฐ๋ชฌ/์„œ๋น„์Šค๋ฅผ ์ œ์–ด

๐Ÿ” ์›๊ฒฉ ์ ‘์† ๋ฐ ํฌํŠธ ๊ด€๋ จ

ssh [์‚ฌ์šฉ์ž๋ช…]@[ํ˜ธ์ŠคํŠธ/IP์ฃผ์†Œ]

  • ์˜๋ฏธ: secure shell (๋ณด์•ˆ ์…ธ ์ ‘์†, ์›๊ฒฉ ๋กœ๊ทธ์ธ)
  • ์˜ˆ์‹œ:
    • ssh ubuntu@192.168.0.10 โ†’ ubuntu ๊ณ„์ •์œผ๋กœ ํ•ด๋‹น ์„œ๋ฒ„ ์ ‘์†
    • ssh student@localhost โ†’ ๋กœ์ปฌ ๋จธ์‹ ์—์„œ student ๊ณ„์ •์œผ๋กœ SSH ์ ‘์†
  •  ํ•œ๊ธ€ ์„ค๋ช…:
    • ๋‹ค๋ฅธ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„๋‚˜ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ํ„ฐ๋ฏธ๋„๋กœ ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์›๊ฒฉ ์„œ๋ฒ„ ๊ด€๋ฆฌ๋‚˜ ๊ฐœ๋ฐœ์šฉ ์„œ๋ฒ„ ์ ‘์†์— ์‚ฌ์šฉ

๐Ÿ“ echo๋กœ ํŒŒ์ผ ์ž‘์„ฑ/์ถ”๊ฐ€

echo "๋‚ด์šฉ" > ํŒŒ์ผ๋ช…

  • ์„ค๋ช…: ๋ฎ์–ด์“ฐ๊ธฐ (overwrite)
  • ์˜ˆ์‹œ: echo "hello" > file.txt

echo "๋‚ด์šฉ" >> ํŒŒ์ผ๋ช…

  • ์„ค๋ช…: ์ถ”๊ฐ€ํ•˜๊ธฐ (append)
  • ์˜ˆ์‹œ: echo "hello again" >> file.txt

 

'CS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„  (0) 2025.03.18
์†Œํ”„ํŠธ์›จ์–ด ์šฉ์–ด ์ •๋ฆฌ  (0) 2025.03.05
์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค  (0) 2025.03.05

๋Œ“๊ธ€