[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น

์˜ค๋Š˜ ์šฐ๋ฆฌ๊ฐ€ ๋ฒˆ์—ญํ•œ ์ž๋ฃŒ๋Š” Linux ๋ช…๋ น์ค„์„ ๋งˆ์Šคํ„ฐํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋งŽ์€ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์—ฌ๊ธฐ์„œ๋Š” Bash ์…ธ๊ณผ 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ช…๋ น ํ”Œ๋ž˜๊ทธ์™€ Bash ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธด ๋ช…๋ น์˜ ์ž…๋ ฅ ์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น

โ†’ ๋˜ํ•œ ๋ธ”๋กœ๊ทธ์—์„œ bash ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฐ„ํ–‰๋ฌผ์„ ์ฝ์–ด๋ณด์‹ญ์‹œ์˜ค.

์•ฝ๊ด€

Linux ๋ช…๋ น์ค„๋กœ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋ฉด์„œ ํƒ์ƒ‰์— ๋„์›€์ด ๋˜๋Š” ๋งŽ์€ ๊ฐœ๋…์„ ์ ‘ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. "Linux"์™€ "Unix" ๋˜๋Š” "shell"๊ณผ "terminal"๊ณผ ๊ฐ™์€ ์ผ๋ถ€๋Š” ๋•Œ๋•Œ๋กœ ํ˜ผ๋™๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค๊ณผ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์šฉ์–ด์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ์‹œ๋‹ค.

์œ ๋‹‰์Šค 1970๋…„๋Œ€์— Bell Labs์—์„œ ๊ฐœ๋ฐœํ•œ ๋Œ€์ค‘์ ์ธ ์šด์˜ ์ฒด์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋…€์˜ ์ฝ”๋“œ๋Š” ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค.

Linux ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” Unix ๊ณ„์—ด ์šด์˜ ์ฒด์ œ์ž…๋‹ˆ๋‹ค. ์ด์ œ๋Š” ์ปดํ“จํ„ฐ๋ฅผ ํฌํ•จํ•œ ๋งŽ์€ ์žฅ์น˜์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹จ๋ง๊ธฐ (ํ„ฐ๋ฏธ๋„) ๋˜๋Š” ํ„ฐ๋ฏธ๋„ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ๋™์‹œ์— ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ป์งˆ (shell)์€ ํŠน์ˆ˜ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๋ช…๋ น์„ ์šด์˜ ์ฒด์ œ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

๊ฐ•ํƒ€ Bourne Again Shell์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์…ธ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Bash ์…ธ์€ macOS์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค (Command Line Interface, CLI)๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ์—์„œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ…์ŠคํŠธ ํ˜•์‹์˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์‚ฌ๋žŒ๊ณผ ์ปดํ“จํ„ฐ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. CLI์˜ ์ฃผ์š” ์šฉ๋„๋Š” ํŒŒ์ผ๊ณผ ๊ฐ™์€ ํŠน์ • ์—”ํ„ฐํ‹ฐ์— ๋Œ€ํ•œ ์ตœ์‹  ์ •๋ณด๋ฅผ ์–ป๊ณ  ํŒŒ์ผ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ฃผ๋กœ ๋งˆ์šฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(GUI)์™€ ๊ตฌ๋ณ„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ข…์ข… ๋‹จ์ˆœํžˆ ๋ช…๋ น์ค„์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ (์Šคํฌ๋ฆฝํŠธ)๋Š” ์ผ๋ จ์˜ ์‰˜ ๋ช…๋ น์„ ํฌํ•จํ•˜๋Š” ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋Š” ํŒŒ์ผ์— ๊ธฐ๋ก๋˜๋ฉฐ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ณ€์ˆ˜, ์กฐ๊ฑด๋ฌธ, ๋ฃจํ”„, ํ•จ์ˆ˜ ๋ฐ ๊ธฐํƒ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ค‘์š”ํ•œ ์šฉ์–ด๋ฅผ ๋‹ค๋ฃจ์—ˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์—์„œ "Bash", "shell" ๋ฐ "command line"์ด๋ผ๋Š” ์šฉ์–ด์™€ "๋””๋ ‰ํ† ๋ฆฌ" ๋ฐ "ํด๋”"๋ผ๋Š” ์šฉ์–ด๋ฅผ ๊ฐ™์€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•  ํ‘œ์ค€ ์ž…๋ ฅ(ํ‘œ์ค€ ์ž…๋ ฅ, stdin), ํ‘œ์ค€ ์ถœ๋ ฅ(ํ‘œ์ค€ ์ถœ๋ ฅ, stdout) ๋ฐ ํ‘œ์ค€ ์˜ค๋ฅ˜ ์ถœ๋ ฅ(ํ‘œ์ค€ ์˜ค๋ฅ˜, stderr).

์•„๋ž˜์— ์ฃผ์–ด์ง„ ์˜ˆ์ œ ๋ช…๋ น์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. my_whatever - ์ด๊ฒƒ์€ ์ด ์กฐ๊ฐ์„ ๋‹น์‹ ์˜ ๊ฒƒ์œผ๋กœ ๊ต์ฒดํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ด์ œ ์ด ์ž๋ฃŒ์˜ ์ „์šฉ ๋ช…๋ น ๋ถ„์„์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ํ•ด๋‹น ๋ชฉ๋ก๊ณผ ๊ฐ„๋žตํ•œ ์„ค๋ช…์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

21 ๋ฐฐ์‹œ ๋ช…๋ น

โ–์ •๋ณด ์–ป๊ธฐ

  • man: ๋ช…๋ น์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์„ค๋ช…์„œ(๋„์›€๋ง)๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • pwd: ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ls: ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ps: ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ–ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘

  • cd: ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • touch: ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • mkdir: ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • cp: ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  • mv: ํŒŒ์ผ์„ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • ln: ๋งํฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

โ–I/O ๋ฆฌ๋””๋ ‰์…˜ ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ

  • <: ๋ฆฌ๋””๋ ‰์…˜ stdin.
  • >: ๋ฆฌ๋””๋ ‰์…˜ stdout.
  • |: ํ•œ ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ๋‹ค๋ฅธ ๋ช…๋ น์˜ ์ž…๋ ฅ์œผ๋กœ ํŒŒ์ดํ”„ํ–ˆ์Šต๋‹ˆ๋‹ค.

โ–ํŒŒ์ผ ์ฝ๊ธฐ

  • head: ํŒŒ์ผ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์„ ์ฝ์Šต๋‹ˆ๋‹ค.
  • tail: ํŒŒ์ผ์˜ ๋์„ ์ฝ์Šต๋‹ˆ๋‹ค.
  • cat: ํŒŒ์ผ์„ ์ฝ๊ณ  ๊ทธ ๋‚ด์šฉ์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

โ–ํŒŒ์ผ ์‚ญ์ œ, ํ”„๋กœ์„ธ์Šค ์ค‘์ง€

  • rm: ํŒŒ์ผ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • kill: ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

โ–๊ฒ€์ƒ‰

  • grep: ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  • ag: ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ๊ณ ๊ธ‰ ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

โ–์•„์นด์ด๋น™

  • tar: ์•„์นด์ด๋ธŒ ์ƒ์„ฑ ๋ฐ ์ž‘์—….

์ด ๋ช…๋ น์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํŒ€ ์„ธ๋ถ€ ์ •๋ณด

์šฐ์„ , ๊ฒฐ๊ณผ๊ฐ€ ํ˜•์‹์œผ๋กœ ๋ฐœํ–‰๋˜๋Š” ๋ช…๋ น์„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. stdout. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋Š” ํ„ฐ๋ฏธ๋„ ์ฐฝ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

โ–์ •๋ณด ์–ป๊ธฐ

man command_name: ๋ช…๋ น ๊ฐ€์ด๋“œ, ์ฆ‰ ๋„์›€๋ง ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

pwd: ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ฒฝ๋กœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ค„๋กœ ์ž‘์—…ํ•˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ์ž๋Š” ์‹œ์Šคํ…œ์—์„œ ์ •ํ™•ํžˆ ์ž์‹ ์ด ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

ls: ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น๋„ ๊ฝค ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ls -a: ์ˆจ๊น€ ํŒŒ์ผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ ์šฉ๋œ ํ”Œ๋ž˜๊ทธ -a ํŒ€ ls. ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…๋ น์˜ ๋™์ž‘์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

ls -l: ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ls -al.

ps: ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ด…๋‹ˆ๋‹ค.

ps -e: ํ˜„์žฌ ์‚ฌ์šฉ์ž ์…ธ๊ณผ ๊ด€๋ จ๋œ ํ”„๋กœ์„ธ์Šค๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ ์ข…์ข… ์ด ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

โ–ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘

cd my_directory: ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ my_directory. ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ์—์„œ ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์ด๋™ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. my_directory ์ƒ๋Œ€ ๊ฒฝ๋กœ ../.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น
CD ๋ช…๋ น

touch my_file: ํŒŒ์ผ ์ƒ์„ฑ my_file ์ฃผ์–ด์ง„ ๊ธธ์„ ๋”ฐ๋ผ.

mkdir my_directory: ํด๋” ์ƒ์„ฑ my_directory ์ฃผ์–ด์ง„ ๊ธธ์„ ๋”ฐ๋ผ.

mv my_file target_directory: ํŒŒ์ผ ์ด๋™ my_file ํด๋”๋กœ target_directory. ๋Œ€์ƒ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•  ๋•Œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ์ด ์•„๋‹˜). ../).

ํŒ€ mvํŒŒ์ผ์ด๋‚˜ ํด๋”์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: ํŒŒ์ผ ์‚ฌ๋ณธ ์ƒ์„ฑ my_source_file ๊ทธ๋ฆฌ๊ณ  ํด๋”์— ๋„ฃ์–ด์ฃผ์„ธ์š” target_directory.

ln -s my_source_file my_target_file: ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์ƒ์„ฑ my_target_file ํŒŒ์ผ๋‹น my_source_file. ๋งํฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์›๋ณธ ํŒŒ์ผ๋„ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ์ด my_source_file ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. my_target_file ๋‚จ์„ ๊ฒƒ์ด๋‹ค. ๊นƒ๋ฐœ -s ํŒ€ ln ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ I/O ๋ฆฌ๋””๋ ‰์…˜ ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โ–I/O ๋ฆฌ๋””๋ ‰์…˜ ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ

my_command < my_file: ํ‘œ์ค€ ์ž…๋ ฅ ํŒŒ์ผ ์„ค๋ช…์ž(stdin) ํŒŒ์ผ๋‹น my_file. ์ด๊ฒƒ์€ ๋ช…๋ น์ด ํ‚ค๋ณด๋“œ์˜ ์ผ๋ถ€ ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๊ณ  ์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ํŒŒ์ผ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

my_command > my_file: ๋ช…๋ น์˜ ๊ฒฐ๊ณผ, ์ฆ‰ ์ผ๋ฐ˜์ ์œผ๋กœ ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ์„ ๋ฆฌ๋””๋ ‰์…˜ํ•ฉ๋‹ˆ๋‹ค. stdout ํ™”๋ฉด์œผ๋กœ, ํŒŒ์ผ๋กœ ์ถœ๋ ฅ my_file. ํŒŒ์ผ์ด my_file ์กด์žฌํ•˜์ง€ ์•Š์Œ - ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ๋ฎ์–ด์”๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ํ›„ ls > my_folder_contents.txt ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํ•ญ๋ชฉ์˜ ๋ชฉ๋ก์„ ํฌํ•จํ•˜๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๊ธฐํ˜ธ ๋Œ€์‹ ์— > ๊ณต์‚ฌ๋ฅผ ์ด์šฉํ•˜๋‹ค >>๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ช…๋ น ์ถœ๋ ฅ์ด ๋ฆฌ๋””๋ ‰์…˜๋˜๋Š” ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ์ด ํŒŒ์ผ์˜ ๋์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์ฒ˜๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น
ํ•œ ๋ช…๋ น์˜ ์ถœ๋ ฅ์€ ๋‹ค๋ฅธ ๋ช…๋ น์˜ ์ž…๋ ฅ์œผ๋กœ ๊ณต๊ธ‰๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํŒŒ์ดํ”„๋ฅผ ๋‹ค๋ฅธ ํŒŒ์ดํ”„์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

first_command | second_command: ์ปจ๋ฒ ์ด์–ด ๊ธฐํ˜ธ, |, ํ•œ ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ๋‹ค๋ฅธ ๋ช…๋ น์œผ๋กœ ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์„ค๋ช…๋œ ๊ตฌ์กฐ์˜ ์™ผ์ชฝ์— ์žˆ๋Š” ๋ช…๋ น์ด ๋ณด๋‚ด๋Š” ๋Œ€์ƒ stdout, ๋น ์ง€๋‹ค stdin ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐํ˜ธ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

Linux์—์„œ๋Š” ์ž˜ ๊ตฌ์„ฑ๋œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ดํ”„๋ผ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Linux์˜ ๋ชจ๋“  ๊ฒƒ์ด ํŒŒ์ดํ”„๋ผ์ธ์ด๋ผ๊ณ  ์ข…์ข… ๋งํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ช…๋ น์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

first_command | second_command | third_command

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น
์—ฌ๋Ÿฌ ๋ช…๋ น์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐํ˜ธ ์™ผ์ชฝ์— ์žˆ๋Š” ๋ช…๋ น์ด |, ๋ฌด์–ธ๊ฐ€๋ฅผ ์ถœ๋ ฅ stdout, ๊ทธ๋…€๊ฐ€ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์€ ์ฆ‰์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. stdin ๋‘ ๋ฒˆ์งธ ํŒ€. ์ฆ‰, ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์˜ ๋ณ‘๋ ฌ ์‹คํ–‰์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์Œ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์ด๋กœ ์ธํ•ด ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

์ด์ œ ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โ–ํŒŒ์ผ ์ฝ๊ธฐ

head my_file: ํŒŒ์ผ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ค„์„ ์ฝ์–ด์„œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ ๋‚ด์šฉ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ช…๋ น์ด ์ถœ๋ ฅํ•˜๋Š” ๋‚ด์šฉ๋„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. stdin์ด ๋ช…๋ น์„ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

tail my_file: ํŒŒ์ผ ๋์—์„œ ์ค„์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น
ํ—ค๋“œ(head)๊ฐ€ ์•ž์— ์žˆ๊ณ  ํ…Œ์ผ(tail)์ด ๋’ค์— ์žˆ์Šต๋‹ˆ๋‹ค.

pandas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ๋ช…๋ น head ะธ tail ๋‹น์‹ ์—๊ฒŒ ์นœ์ˆ™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์œ„์˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ์„ ์ฝ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•˜๊ณ  ๋ช…๋ น์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ด…์‹œ๋‹ค. cat.

ํŒ€ cat ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™”๋ฉด์— ์ธ์‡„ํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ถœ ์‹œ ์ด ๋ช…๋ น์— ์ „๋‹ฌ๋˜๋Š” ํŒŒ์ผ ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น
๊ณ ์–‘์ด ๋ช…๋ น

cat my_one_file.txt: ์ด ๋ช…๋ น์— ๋‹จ์ผ ํŒŒ์ผ์ด ์ „๋‹ฌ๋˜๋ฉด ๋‹ค์Œ์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. stdout.

๋‘ ๊ฐœ ์ด์ƒ์˜ ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋ฉด ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

cat my_file1.txt my_file2.txt: ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์ž…๋ ฅ์œผ๋กœ ์ˆ˜์‹ ํ•œ ํ›„ ์ด ๋ช…๋ น์€ ํ•ด๋‹น ๋‚ด์šฉ์„ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐœ์ƒํ•œ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. stdout.

ํŒŒ์ผ ์—ฐ๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ์ƒˆ ํŒŒ์ผ๋กœ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. >:

cat my_file1.txt my_file2.txt > my_new_file.txt

์ด์ œ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โ–ํŒŒ์ผ ์‚ญ์ œ, ํ”„๋กœ์„ธ์Šค ์ค‘์ง€

rm my_file: ํŒŒ์ผ ์‚ญ์ œ my_file.

rm -r my_folder: ํด๋” ์‚ญ์ œ my_folder ํฌํ•จ๋œ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ํด๋”. ๊นƒ๋ฐœ -r ๋ช…๋ น์ด ์žฌ๊ท€ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

ํŒŒ์ผ์ด๋‚˜ ํด๋”๊ฐ€ ์‚ญ์ œ๋  ๋•Œ๋งˆ๋‹ค ์‹œ์Šคํ…œ์—์„œ ํ™•์ธ์„ ์š”์ฒญํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. -f.

kill 012345: ์ง€์ •๋œ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒํ•  ์‹œ๊ฐ„์„ ์ค๋‹ˆ๋‹ค.

kill -9 012345: ์ง€์ •๋œ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ž˜๊ทธ ๋ณด๊ธฐ -s SIGKILL ํ”Œ๋ž˜๊ทธ์™€ ๊ฐ™์€ ์˜๋ฏธ -9.

โ–๊ฒ€์ƒ‰

๋‹ค์–‘ํ•œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ - grep, ag ะธ ack. ์ด ๋ช…๋ น์— ๋Œ€ํ•ด ์•Œ์•„ ๋ด…์‹œ๋‹ค. grep. ์ด๊ฒƒ์€ ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นœ ์•ˆ์ •์ ์ธ ๋ช…๋ น์ด์ง€๋งŒ ๋‹ค๋ฅธ ๋ช…๋ น๋ณด๋‹ค ๋Š๋ฆฌ๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น
grep ๋ช…๋ น

grep my_regex my_file: ๊ฒ€์ƒ‰ my_regex ะฒ my_file. ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด ๊ฐ ์ผ์น˜ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ „์ฒด ๋ฌธ์ž์—ด์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ my_regex ์ •๊ทœ ํ‘œํ˜„์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

grep -i my_regex my_file: ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

grep -v my_regex my_file: ๋‹ค์Œ์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ํ–‰์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. my_regex. ๊นƒ๋ฐœ -v ๋ฐ˜์ „์„ ์˜๋ฏธํ•˜๋ฉฐ ์—ฐ์‚ฐ์ž์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. NOT, ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹ค.

grep -c my_regex my_file: ํŒŒ์ผ์—์„œ ์ฐพ์€ ๊ฒ€์ƒ‰ ํŒจํ„ด์— ๋Œ€ํ•œ ์ผ์น˜ ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

grep -R my_regex my_folder: ์ง€์ •๋œ ํด๋”์™€ ๊ทธ ์•ˆ์— ์ค‘์ฒฉ๋œ ํด๋”์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์—์„œ ์žฌ๊ท€ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ํŒ€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ์‹œ๋‹ค ag. ๊ทธ๋…€๋Š” ๋‚˜์ค‘์— ์™”๋‹ค grep, ๋” ๋น ๋ฅด๊ณ  ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ๋” ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น
ag ๋ช…๋ น

ag my_regex my_file: ํ–‰ ๋ฒˆํ˜ธ์— ๋Œ€ํ•œ ์ •๋ณด์™€ ์ผ์น˜ ํ•ญ๋ชฉ์ด ๋ฐœ๊ฒฌ๋œ ํ–‰ ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. my_regex.

ag -i my_regex my_file: ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

ํŒ€ ag ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ .gitignore ํ•ด๋‹น ํŒŒ์ผ์— ๋‚˜์—ด๋œ ํด๋” ๋˜๋Š” ํŒŒ์ผ์—์„œ ๋ฐœ๊ฒฌ๋œ ๋‚ด์šฉ์„ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ํŽธ์•ˆํ•ฉ๋‹ˆ๋‹ค.

ag my_regex my_file -- skip-vcs-ignores: ์ž๋™ ๋ฒ„์ „ ์ œ์–ด ํŒŒ์ผ์˜ ๋‚ด์šฉ(์˜ˆ: .gitignore)๋Š” ๊ฒ€์ƒ‰์—์„œ ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํŒ€์—๊ฒŒ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ag ๊ฒ€์ƒ‰์—์„œ ์ œ์™ธํ•˜๋ ค๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .agignore.

์ด ์„น์…˜์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ๋ช…๋ น์„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ack. ํŒ€ ack ะธ ag ๋งค์šฐ ์œ ์‚ฌํ•˜์—ฌ 99% ์ƒํ˜ธ ๊ตํ™˜ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ํŒ€ ag ๋” ๋นจ๋ฆฌ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์•„์นด์ด๋ธŒ ์ž‘์—…์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โ–์•„์นด์ด๋น™

tar my_source_directory: ํด๋”์—์„œ ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. my_source_directory ํ•˜๋‚˜์˜ tarball ํŒŒ์ผ๋กœ. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์„ธํŠธ๋ฅผ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ „์†กํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น
ํƒ€๋ฅด ๋ช…๋ น

์ด ๋ช…๋ น์œผ๋กœ ์ƒ์„ฑ๋œ tarball ํŒŒ์ผ์€ ํ™•์žฅ์ž๊ฐ€ .tar (ํ…Œ์ดํ”„ ์•„์นด์ด๋ธŒ). "tape"(ํ…Œ์ดํ”„)๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋ช…๋ น ์ด๋ฆ„๊ณผ ๋ช…๋ น์ด ์ƒ์„ฑํ•˜๋Š” ํŒŒ์ผ ์ด๋ฆ„์˜ ํ™•์žฅ์ž์— ์ˆจ๊ฒจ์ ธ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ด ๋ช…๋ น์ด ์กด์žฌํ•œ ๊ธฐ๊ฐ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

tar -cf my_file.tar my_source_directory:๋ผ๋Š” ์ด๋ฆ„์˜ tarball ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. my_file.tar ํด๋” ๋‚ด์šฉ ํฌํ•จ my_source_directory. ๊นƒ๋ฐœ -c "create"(๋งŒ๋“ค๊ธฐ)๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ํ”Œ๋ž˜๊ทธ๋Š” -f "ํŒŒ์ผ"(ํŒŒ์ผ)๋กœ.

ํŒŒ์ผ์„ ์ถ”์ถœํ•˜๋ ค๋ฉด .tar-ํŒŒ์ผ, ๋ช…๋ น ์‚ฌ์šฉ tar ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ -x ("์ถ”์ถœ", ์ถ”์ถœ) ๋ฐ -f ("ํŒŒ์ผ", ํŒŒ์ผ).

tar -xf my_file.tar:์—์„œ ํŒŒ์ผ์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. my_file.tar ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋กœ.

์ด์ œ ์••์ถ• ๋ฐ ์••์ถ• ํ•ด์ œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. .tar-ํŒŒ์ผ.

tar -cfz my_file.tar.gz my_source_directory: ์—ฌ๊ธฐ์„œ ํ”Œ๋ž˜๊ทธ ์‚ฌ์šฉ -z ("zip", ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜) ํŒŒ์ผ์„ ์••์ถ•ํ•˜๋Š” ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. gzip (๊ทธ๋ˆ„์ง‘). ํŒŒ์ผ ์••์ถ•์€ ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์†กํ•  ๊ณ„ํš์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ํŒŒ์ผ์„ ๋” ๋น ๋ฅด๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ์••์ถ• ํ•ด์ œ .tar.gz ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -z ์ฝ˜ํ…์ธ  ์ถ”์ถœ ๋ช…๋ น์œผ๋กœ .tar-์œ„์—์„œ ๋…ผ์˜ํ•œ ํŒŒ์ผ. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค.

tar -xfz my_file.tar.gz
์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ ์€ ํŒ€ tar ๋” ๋งŽ์€ ์œ ์šฉํ•œ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Bash ๋ณ„์นญ

Bash ๋ณ„์นญ(๋ณ„์นญ ๋˜๋Š” ์•ฝ์–ด๋ผ๊ณ ๋„ ํ•จ)์€ ๋ช…๋ น์˜ ์ถ•์•ฝ๋œ ์ด๋ฆ„ ๋˜๋Š” ํ•ด๋‹น ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ์ผ๋ฐ˜ ๋ช…๋ น ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—… ์†๋„๊ฐ€ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค. ๋ณ„์นญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ bu, ๋ช…๋ น์„ ์ˆจ๊น๋‹ˆ๋‹ค. python setup.py sdist bdist_wheel๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ๋ช…๋ น์„ ํ˜ธ์ถœํ•˜๋ ค๋ฉด ์ด ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ณ„์นญ์„ ๋งŒ๋“ค๋ ค๋ฉด ํŒŒ์ผ์— ๋‹ค์Œ ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

์‹œ์Šคํ…œ์— ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ ~/.bash_profile๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. touch. ๋ณ„์นญ์„ ๋งŒ๋“  ํ›„ ํ„ฐ๋ฏธ๋„์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ด ๋ณ„์นญ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‘ ๋ฌธ์ž์˜ ์ž…๋ ฅ์€ ๋ช…๋ น์˜ XNUMX์ž ์ด์ƒ์˜ ๋ฌธ์ž ์ž…๋ ฅ์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์กฐ๋ฆฝ ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€.

ะ’ ~/.bash_profile ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์— ๋ณ„์นญ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ–๊ฒฐ๊ณผ

์ด ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” 21๊ฐœ์˜ ์ธ๊ธฐ ์žˆ๋Š” Bash ๋ช…๋ น์„ ๋‹ค๋ฃจ๊ณ  ๋ช…๋ น ๋ณ„์นญ ์ƒ์„ฑ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด - ์—ฌ๊ธฐ์— Bash ์ „์šฉ ์ถœํŒ๋ฌผ ์‹œ๋ฆฌ์ฆˆ. ์—ฌ๊ธฐ์— ์ด ๊ฐ„ํ–‰๋ฌผ์˜ PDF ๋ฒ„์ „์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Bash๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ์Šคํ…œ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์—ฐ์Šต์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค.

๋…์ž ์—ฌ๋Ÿฌ๋ถ„! ์ด ๊ธฐ์‚ฌ์—์„œ ๋…ผ์˜๋œ ๋ช…๋ น์— ์ดˆ๋ณด์ž์—๊ฒŒ ์œ ์šฉํ•œ ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

โ†’ ๋˜ํ•œ ๋ธ”๋กœ๊ทธ์—์„œ bash ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฐ„ํ–‰๋ฌผ์„ ์ฝ์–ด๋ณด์‹ญ์‹œ์˜ค.

[์ฑ…๊ฐˆํ”ผ] ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Bash: 21๊ฐ€์ง€ ์œ ์šฉํ•œ ๋ช…๋ น

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€