Transcript
Page 1: 04 (Linux) (Fundamental) Editor Text

GNU/Linux

ํŽธ์ง‘๊ธฐ์™€ ํ…์ŠคํŠธ ์กฐ์ž‘(Editor and Text Manipulation)

GNU/Linux

ํŽธ์ง‘๊ธฐ์™€ ํ…์ŠคํŠธ ์กฐ์ž‘(Editor and Text Manipulation)

Seo, Doo-Ok

[email protected]

Page 2: 04 (Linux) (Fundamental) Editor Text

๋ชฉ ์ฐจ

ํŽธ์ง‘๊ธฐ

ํ…์ŠคํŠธ ์กฐ์ž‘๊ณผ ํ•„ํ„ฐ

๋ฌธ์ž์—ด ํŒจํ„ด ๋ฐ ํŒŒ์ผ ๊ฒ€์ƒ‰

2

Page 3: 04 (Linux) (Fundamental) Editor Text

ํŽธ์ง‘๊ธฐ

ํŽธ์ง‘๊ธฐ

Vim ํŽธ์ง‘๊ธฐ

ํ…์ŠคํŠธ ์กฐ์ž‘๊ณผ ํ•„ํ„ฐ

๋ฌธ์ž์—ด ํŒจํ„ด ๋ฐ ํŒŒ์ผ ๊ฒ€์ƒ‰

3

Page 4: 04 (Linux) (Fundamental) Editor Text

๊ฐœ๋ฐœ ํ™˜๊ฒฝ (1/2)

Stack Overflow

๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ํˆด

4

[ ์ถœ์ฒ˜ : โ€œDeveloper Survey Results 2019โ€, Stack Overflow, 2019. ]

Page 5: 04 (Linux) (Fundamental) Editor Text

๊ฐœ๋ฐœ ํ™˜๊ฒฝ (2/2)

PYPL Index

Top IDE index

5[ ์ถœ์ฒ˜ : โ€œPYPL Indexโ€, Pierre Carbonnelle, April 2020. ]

Page 6: 04 (Linux) (Fundamental) Editor Text

ํŽธ์ง‘๊ธฐ (1/6)

vi(visual edit) ํŽธ์ง‘๊ธฐ : ex-vi.sourceforge.net 1976๋…„ 03์›”, ๋นŒ ์กฐ์ด(Billy Joy) ๊ฐ€ ๋งŒ๋“  ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ

โ€ข ์ตœ์ดˆ์˜ UNIX ์‹œ์Šคํ…œ์šฉ ํ™”๋ฉด ํŽธ์ง‘๊ธฐโ€“ UNIX ๊ณ„์—ด ์šด์˜์ฒด์ œ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐโ€“ BSD 3.0 ์— C Shell ๊ณผ ํ•จ๊ป˜ ์ถ”๊ฐ€๋œ ํ”„๋กœ๊ทธ๋žจ

โ€ข ๋ผ์ธ ํŽธ์ง‘๊ธฐ์ธ ed ์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅ์‹œํ‚จ ex ํŽธ์ง‘๊ธฐ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์ด๋ฅผ ํ™•์žฅํ•˜์—ฌ ๊ฐœ๋ฐœ

vi ํ˜ธํ™˜ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ : Vim(vi improved)โ€ข 1992๋…„, 386BSD ๋ฐฐํฌํŒ(FreeBSD, NetBSD)์—์„œ Elvis ๋ฅผ vi ๋Œ€์ฒด ํŽธ์ง‘๊ธฐ๋กœ ์ฑ„ํƒโ€ข FreeBSD์™€ NetBSD 4.4-Lite2 ์—์„œ 1994๋…„ ๊ฐœ๋ฐœ๋œ nvi ๋กœ ์ „ํ™˜

vi ๋ฆด๋ฆฌ์ฆˆโ€ข 1978๋…„ 03์›”, ex 1.1 -- BSD UNIX releaseโ€ข 1979๋…„ 05์›”, ex 2.0โ€ข 1979๋…„ 12์›”, ex 3.1

๋ผ์ด์„ ์Šค : BSD License ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : C

6

(read-only) ex-vi Project : sourceforge.net

http://ex-vi.cvs.sourceforge.net/

Page 7: 04 (Linux) (Fundamental) Editor Text

ํŽธ์ง‘๊ธฐ (2/6)

Vim(Vi improved) ํŽธ์ง‘๊ธฐ : vim.org

1991๋…„ 11์›”, vi ํ˜ธํ™˜ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐโ€ข gVim : GUI Vim

Vim ๋ฆด๋ฆฌ์ฆˆโ€ข 1991๋…„ 11์›”, vim 1.14 -- Vi imitation

โ€ข 1993๋…„ 12์›”, Vim 2.0 -- Vi improved

โ€ข 2019๋…„ 12์›”, Vim 8.2

๋ผ์ด์„ ์Šค : Vim License, Careware License

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : C, Vim script

7

Vim GitHub : github.com

https://github.com/vim/vim

Vim Mercurial : https://bitbucket.org/

https://bitbucket.org/vim-mirror/vim/src/default/ -- GitHub mirror

Page 8: 04 (Linux) (Fundamental) Editor Text

ํŽธ์ง‘๊ธฐ (3/6)

neovim ํŽธ์ง‘๊ธฐ : neovim.io

2014๋…„, ํ™•์žฅ ๊ฐ€๋Šฅํ•œ Vim ๊ธฐ๋ฐ˜ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐโ€ข 2015๋…„ 12์›”, neovim 0.1 ๋ถ€ํ„ฐ ๊ฑฐ์˜ ๋ชจ๋“  Vim ์˜ ๊ธฐ๋Šฅ๊ณผ ํ˜ธํ™˜๋œ๋‹ค.

neovim ๋ฆด๋ฆฌ์ฆˆโ€ข 2015๋…„ 11์›”, neovim 0.1.0

โ€ข 2020๋…„ 04์›”, neovim 0.5.0

๋ผ์ด์„ ์Šค : Apache 2.0 License

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : C, Lua, Vim script

8

neovim GitHub : github.com

https://github.com/neovim/neovim

Page 9: 04 (Linux) (Fundamental) Editor Text

ํŽธ์ง‘๊ธฐ (4/6)

Emacs(Editor MACroS) ํŽธ์ง‘๊ธฐ 1976๋…„, ๋ฆฌ์ฐจ๋“œ ์Šคํ†จ๋งŒ(Richard Stallman)์ด ๊ฐœ๋ฐœํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ

โ€ข ๊ฐ„๋‹จํ•œ ๋ฌธ์„œ ํŽธ์ง‘์œผ๋กœ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊นŒ์ง€ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉ

Gosling Emacs : Java ์–ธ์–ด๋ฅผ ๊ฐœ๋ฐœํ•œ ์ œ์ž„์Šค ๊ณ ์Šฌ๋ง(James Gosling)

1984๋…„, GNU Emacs(FSF Emacs) : gnu.org/software/emacsโ€ข Gosling Emacs๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ˆ์ง€๋งŒ, Lisp ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์žฌ์ž‘์„ฑโ€ข XEmacs : 1991๋…„ GNU Emacs์—์„œ ๋ถ„๊ธฐ ๋œ ๋ณ€ํ˜•

GNU Emacs ๋ฆด๋ฆฌ์ฆˆโ€ข 2001๋…„ 10์›”, GNU Emacs 21.1โ€ข 2018๋…„ 05์›”, GNU Emacs 26.1

๋ผ์ด์„ ์Šค : GNU GPL v3 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : C, Lisp

9

GNU Emacs GNU Savannah : savannah.gnu.org

http://savannah.gnu.org/projects/emacs/

Page 10: 04 (Linux) (Fundamental) Editor Text

ํŽธ์ง‘๊ธฐ (5/6)

Emacs ํŽธ์ง‘๊ธฐ : GNU Emacs

10

Page 11: 04 (Linux) (Fundamental) Editor Text

ํŽธ์ง‘๊ธฐ (6/6)

gedit ํŽธ์ง‘๊ธฐ : wiki.gnome.org/Apps/Gedit

1999๋…„ 02์›”, GNOME ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ์˜ ๊ณต์‹ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐโ€ข ๋ชฉํ‘œ : ๋‹จ์ˆœ์„ฑ๊ณผ ์‚ฌ์šฉ ํŽธ์˜์„ฑ

โ€“ ๋“œ๋ž˜๊ทธ ์•ฑ ๋“œ๋กญ(DnD, Dorg and Drop)์„ ์ง€์›

โ€ข GTK+ 3.x ๋ฐ GNOME 3.x ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉ

โ€ข 2017๋…„ 07์›”๊นŒ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๋‹ค๊ฐ€, 2017๋…„ 08์›”๋ถ€ํ„ฐ ๋‘ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‹ค์‹œ ์ž‘์—… ์‹œ์ž‘

gedit ๋ฆด๋ฆฌ์ฆˆโ€ข 2020๋…„ 04์›”, gedit 3.36.1

๋ผ์ด์„ ์Šค : GNU GPL v2.0+

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : C, Python

11

gedit GNOME GitLab : gitlab.gnome.org

https://gitlab.gnome.org/GNOME/gedit

Page 12: 04 (Linux) (Fundamental) Editor Text

12

ํŽธ์ง‘๊ธฐ

Vim ํŽธ์ง‘๊ธฐ

Page 13: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ

Vim ํŽธ์ง‘๊ธฐ : ๋™์ž‘ ๋ชจ๋“œ

๋‘ ๊ฐ€์ง€ ๋™์ž‘ ๋ชจ๋“œโ€ข ์ž…๋ ฅ ๋ชจ๋“œ(Insert mode)

โ€ข ๋ช…๋ น ๋ชจ๋“œ(Command mode)

13

Page 14: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์‹คํ–‰๊ณผ ์ข…๋ฃŒ (1/4)

Vim ํŽธ์ง‘๊ธฐ ์‹คํ–‰

view file

โ€ข ํŒŒ์ผ์„ ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ๋กœ ์‹œ์ž‘ํ•ด์„œ ํŽธ์ง‘ํ•œ ํ›„ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ

14

์ผ๋ฐ˜ ํ˜•์‹ vi [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜ -R (read-only) ํŒŒ์ผ์„ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์—ด ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

$ view ํŒŒ์ผ๋ช…

Page 15: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์‹คํ–‰๊ณผ ์ข…๋ฃŒ (2/4)

Vim ํŽธ์ง‘๊ธฐ ์‹คํ–‰

๋ถˆํ™•์‹คํ•œ ์ข…๋ฃŒ ์‹œ ๋˜์‚ด๋ฆฌ๊ธฐ

15

๋ช…๋ น์–ด ๋‚ด ์šฉ

vi -r ๋˜์‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ณด์—ฌ์ค€๋‹ค.

vi -r filename Vim ํŽธ์ง‘๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋‚˜์„œ ์ง€์ •ํ•œ ํŒŒ์ผ์„ ๋˜์‚ด๋ ค ์ค€๋‹ค.

Page 16: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์‹คํ–‰๊ณผ ์ข…๋ฃŒ (3/4)

16

ํŒŒ์ผ ์ €์žฅ ๋ช…๋ น์–ด

ํŒŒ์ผ ์ €์žฅ๊ณผ ์ข…๋ฃŒ

๋ช…๋ น์–ด ๋‚ด ์šฉ

:w(write) ๋ฒ„ํผ์— ๋‚ด์šฉ์„ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋Š” ๋ช…๋ น

๋‹จ, Vim ํŽธ์ง‘๊ธฐ๋Š” ์ข…๋ฃŒํ•˜์ง€ ์•Š๋Š”๋‹ค.

:w filename ๋ฌธ์„œ์˜ ๋‚ด์šฉ์„ ์ง€์ •ํ•œ ํŒŒ์ผ์— ์ €์žฅํ•œ๋‹ค.

:w! filename๋ฌธ์„œ์˜ ๋‚ด์šฉ์„ ์ง€์ •ํ•œ ํŒŒ์ผ์— ์ €์žฅํ•œ๋‹ค.

๋‹จ, ๊ธฐ์กด ํŒŒ์ผ์ด ์กด์žฌํ•˜๋ฉด ์‚ญ์ œ ํ›„์— ์ €์žฅํ•œ๋‹ค.

๋ช…๋ น์–ด ๋‚ด ์šฉ

:q(quit) ๋ฒ„ํผ์— ์ˆ˜์ • ์‚ฌํ•ญ์ด ์—†์„ ์‹œ Vim ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒ

(์ˆ˜์ • ์‚ฌํ•ญ์„ ์ด๋ฏธ ์ €์žฅํ•œ ์ƒํƒœ์—์„œ๋งŒ ์ข…๋ฃŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.)

:wq ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ณ , Vim ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

:q! ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ณ , Vim ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

:x ๋ฒ„ํผ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •๋œ ๋‚ด์šฉ์„ ์ €์žฅํ•˜๊ณ , Vim ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

Page 17: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์‹คํ–‰๊ณผ ์ข…๋ฃŒ (4/4)

ํŒŒ์ผ ์ €์žฅ ๋ช…๋ น์–ด

17

๋ช…๋ น์–ด ๋‚ด ์šฉ

:begin,end w filename begin ํ–‰๋ถ€ํ„ฐ end ํ–‰๊นŒ์ง€ filename ์œผ๋กœ ์ €์žฅ

:1,. w filename 1ํ–‰๋ถ€ํ„ฐ ํ˜„์žฌ ํ–‰๊นŒ์ง€ filename ์œผ๋กœ ์ €์žฅ

:1,. w >> filename 1ํ–‰๋ถ€ํ„ฐ ํ˜„์žฌ ํ–‰๊นŒ์ง€ filename ์œผ๋กœ ์ถ”๊ฐ€

Page 18: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์ž…๋ ฅ ๋ฐ ์‚ญ์ œ (1/3)

์ž…๋ ฅ ๋ช…๋ น์–ด

18

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

i ์ž…๋ ฅ๋ชจ๋“œ๋กœ ์ „ํ™˜, ์ปค์„œ ์œ„์น˜ ์•ž์— ์‚ฝ์ž…

a ์ž…๋ ฅ๋ชจ๋“œ๋กœ ์ „ํ™˜, ์ปค์„œ ์œ„์น˜ ๋’ค์—์„œ ์‚ฝ์ž…

I ์ž…๋ ฅ๋ชจ๋“œ๋กœ ์ „ํ™˜, ํ˜„์žฌ ์ค„์˜ ์•ž์— ์‚ฝ์ž…

A ์ž…๋ ฅ๋ชจ๋“œ๋กœ ์ „ํ™˜, ํ˜„์žฌ ์ค„์˜ ๋์— ์‚ฝ์ž…

o ์ž…๋ ฅ๋ชจ๋“œ๋กœ ์ „ํ™˜, ํ˜„์žฌ ์ค„์˜ ์•„๋ž˜์— ์ƒˆ๋กœ์šด ํ–‰์„ ์—ด๊ณ  ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ

O ์ž…๋ ฅ๋ชจ๋“œ๋กœ ์ „ํ™˜, ํ˜„์žฌ ์ค„์˜ ์œ„์— ์ƒˆ๋กœ์šด ํ–‰์„ ์—ด๊ณ  ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ

Page 19: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์ž…๋ ฅ ๋ฐ ์‚ญ์ œ (2/3)

์‚ญ์ œ ๋ช…๋ น์–ด

19

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

x ํ˜„์žฌ ์ปค์„œ ์œ„์น˜์˜ ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

X ํ˜„์žฌ ์ปค์„œ ์œ„์น˜์˜ ์™ผ์ชฝ ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

dd ํ˜„์žฌ ์ค„์˜ ์ „์ฒด๋ฅผ ์‚ญ์ œํ•œ๋‹ค(์ปค์„œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ผ์ธ ์ „์ฒด ์‚ญ์ œ).

D ํ˜„์žฌ ์ปค์„œ ์œ„์น˜๋ถ€ํ„ฐ ์ค„์˜ ๋๊นŒ์ง€ ์‚ญ์ œํ•œ๋‹ค(์˜ค๋ฅธ์ชฝ ๋ผ์ธ).

dw ์ปค์„œ๊ฐ€ ์žˆ๋Š” ํ•œ ๋‹จ์–ด๋ฅผ ์‚ญ์ œ

db ์ปค์„œ ์•ž์— ์žˆ๋Š” ํ•œ ๋‹จ์–ด๋ฅผ ์‚ญ์ œ

dG ํ˜„์žฌ ์ปค์„œ ์œ„์น˜๋ถ€ํ„ฐ ํŽธ์ง‘ ๋ฒ„ํผ์˜ ๋๊นŒ์ง€ ์‚ญ์ œํ•œ๋‹ค(ํŒŒ์ผ์˜ ๋๊นŒ์ง€).

d1G ํ˜„์žฌ ์ปค์„œ ์œ„์น˜๋ถ€ํ„ฐ ํŽธ์ง‘ ๋ฒ„ํผ์˜ ๋งจ ์•ž๊นŒ์ง€ ์‚ญ์ œํ•œ๋‹ค.

d) ๋ฌธ์žฅ์˜ ๋‚˜๋จธ์ง€ ์‚ญ์ œ

d} ๋ฌธ๋‹จ์˜ ๋‚˜๋จธ์ง€ ์‚ญ์ œ

dH ํ™”๋ฉด์˜ ์‹œ์ž‘๊นŒ์ง€ ์‚ญ์ œ

Page 20: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์ž…๋ ฅ ๋ฐ ์‚ญ์ œ (3/3)

๋ณต์› ๋ช…๋ น์–ด

๋งˆ์ง€๋ง‰์œผ๋กœ ์ง€์šด ๋‚ด์šฉ ๋ณต์‚ฌํ•˜๊ธฐ

20

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

p ๋งˆ์ง€๋ง‰์œผ๋กœ ์ง€์›Œ์ง„ ๋‚ด์šฉ์„ ์ปค์„œ์˜ ๋’ค์— ์‚ฝ์ž…ํ•œ๋‹ค.

P ๋งˆ์ง€๋ง‰์œผ๋กœ ์ง€์›Œ์ง„ ๋‚ด์šฉ์„ ์•ž์— ์‚ฝ์ž…ํ•œ๋‹ค.

xp ๋‘ ๋ฌธ์ž๋ฅผ ๋ฐ”๊พผ๋‹ค.

deep ๋‘ ๋‹จ์–ด๋ฅผ ๋ฐ”๊พผ๋‹ค.

ddp ๋‘ ์ค„์„ ๋ฐ”๊พผ๋‹ค.

u ์ž‘์—… ๋‚ด์šฉ์„ ์ด์ „์œผ๋กœ ๋˜๋Œ๋ฆฐ๋‹ค(๋งˆ์ง€๋ง‰ ๋ณ€๊ฒฝ๋งŒ ์ทจ์†Œํ•œ๋‹ค).

Page 21: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์ด๋™ (1/4)

์ด๋™ ๋ช…๋ น์–ด

๊ธฐ๋ณธ์ ์ธ ์ปค์„œ์˜ ์ด๋™ : ํ™”์‚ดํ‘œ ํ‚ค(๋ฐฉํ–ฅ ํ‚ค)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค์„œ ์ด๋™

21

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

h ์ปค์„œ๋ฅผ ํ•œ ์นธ ์™ผ์ชฝ์œผ๋กœ ์ด๋™

j ์ปค์„œ๋ฅผ ํ•œ ์ค„ ์•„๋ž˜๋กœ ์ด๋™

k ์ปค์„œ๋ฅผ ํ•œ ์ค„ ์œ„๋กœ ์ด๋™

l ์ปค์„œ๋ฅผ ํ•œ ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™

<Backspace> ์ปค์„œ๋ฅผ ํ•œ ์นธ ์™ผ์ชฝ์œผ๋กœ ์ด๋™

<Space> ์ปค์„œ๋ฅผ ํ•œ ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™

k

jh l

Page 22: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์ด๋™ (2/4)

์ด๋™ ๋ช…๋ น์–ด : ํŠน์ • ํ–‰ ๋ฒˆํ˜ธ ๋ฐ ํŒจํ„ด

ํŠน์ • ํ–‰ ๋ฒˆํ˜ธ๋กœ ์ด๋™

ํŒจํ„ด(์ •๊ทœ ํ‘œํ˜„์‹)์„ ์ด์šฉํ•œ ์ด๋™

22

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

:n n ๋ฒˆ์งธ ํ–‰์œผ๋กœ ์ด๋™

:$ ๋งˆ์ง€๋ง‰ ํ–‰์œผ๋กœ ์ด๋™

:$= ํ˜„์žฌ ๋ฌธ์„œ์˜ ์ด ์ค„(ํ–‰) ์ˆ˜

:.= ํ˜„์žฌ ์œ„์น˜์˜ ํ–‰ ๋ฒˆํ˜ธ

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

/patterns ํŠน์ • patterns ๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ณณ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

?patterns ๊ฒ€์ƒ‰์˜ ๋ฐฉํ–ฅ์„ ๋’ค์ชฝ(backward)์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.

Page 23: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์ด๋™ (3/4)

์ด๋™ ๋ช…๋ น์–ด : ๋ผ์ธ ๋‹จ์œ„

๋ผ์ธ ๋‹จ์œ„ ์ปค์„œ ์ด๋™

๋‹จ์–ด ๋‹จ์œ„ ์ปค์„œ ์ด๋™

23

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

- ์ปค์„œ๋ฅผ ์ด์ „ ์ค„์˜ ์ฒ˜์Œ์œผ๋กœ ์ด๋™

+ ์ปค์„œ๋ฅผ ๋‹ค์Œ ์ค„์˜ ์ฒ˜์Œ์œผ๋กœ ์ด๋™

Enter ์ปค์„œ๋ฅผ ๋‹ค์Œ ์ค„์˜ ์ฒ˜์Œ์œผ๋กœ ์ด๋™

0 ์ปค์„œ๋ฅผ ํ˜„์žฌ ์ค„์˜ ๋งจ ์•ž์œผ๋กœ ์ด๋™

$ ์ปค์„œ๋ฅผ ํ˜„์žฌ ์ค„์˜ ๋งจ ๋์œผ๋กœ ์ด๋™

^ ์ปค์„œ๋ฅผ ํ˜„์žฌ ์ค„์˜ ์ฒซ ๊ธ€์ž (๊ณต๋ฐฑ์ด๋‚˜ ํƒญ์ด ์•„๋‹Œ)๋กœ ์ด๋™

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

e ๋˜๋Š” E ์ปค์„œ๋ฅผ ๋‹ค์Œ ๋‹จ์–ด์˜ ๋ ๊ธ€์ž๋กœ ์ด๋™

w ๋˜๋Š” W ์ปค์„œ๋ฅผ ๋‹ค์Œ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋กœ ์ด๋™

b ๋˜๋Š” B ์ปค์„œ๋ฅผ ์ด์ „ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋กœ ์ด๋™

Page 24: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ์ด๋™ (4/4)

์ด๋™ ๋ช…๋ น์–ด : ๋ฌธ๋‹จ ๋‹จ์œ„

๋ฌธ๋‹จ ๋‹จ์œ„ ์ปค์„œ ์ด๋™

24

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

( ๋ฌธ์žฅ์˜ ์‹œ์ž‘์œผ๋กœ ์ด๋™

) ๋ฌธ์žฅ ๋์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์Œ ๋‹จ์–ด์˜ ์‹œ์ž‘ ์ฒซ ์นธ์œผ๋กœ ์ปค์„œ ์ด๋™

{ ๋ฌธ๋‹จ์˜ ์‹œ์ž‘์œผ๋กœ ์ด๋™

} ๋ฌธ๋‹จ ๋์œผ๋กœ ์ด๋™

G ๋ฌธ์„œ์˜ ๋งˆ์ง€๋ง‰ ์ค„๋กœ ์ด๋™

nG n๋ฒˆ์งธ ์ค„๋กœ ์ด๋™

M ํ™”๋ฉด ์ค‘๊ฐ„ ์ค„์— ์ปค์„œ ์ด๋™

Page 25: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ํŽธ์ง‘ (1/4)

๋ฌธ์ž ๋‹จ์œ„ ์น˜ํ™˜ ๋ช…๋ น์–ด

โ€ข (์ฃผ์˜) r ๋ช…๋ น ๋Œ€์‹  R ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ

โ€“ ESC ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๋ช…๋ น ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•œ ํ›„์— u ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ๋‚ด์šฉ ์ทจ์†Œ

25

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

R์ปค์„œ๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ถ€ํ„ฐ ๋ฎ์–ด์“ฐ๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.

๋‹จ, ESC ํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๊นŒ์ง€ ๋ฎ์–ด์“ด๋‹ค.

r ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์˜ ํ•œ ๊ธ€์ž๋งŒ ์น˜ํ™˜ํ•œ๋‹ค(๋ฎ์–ด ์“ด๋‹ค).

s ์ปค์„œ๊ฐ€ ์žˆ๋Š” ๋ฌธ์ž ์‚ญ์ œ ํ›„ ์ž…๋ ฅ๋ชจ๋“œ๋กœ ์ „ํ™˜

S ์ปค์„œ๊ฐ€ ์žˆ๋Š” ์ค„์„ ์‚ญ์ œํ•œ ํ›„ ์ž…๋ ฅ๋ชจ๋“œ๋กœ ์ „ํ™˜

cb ์ปค์„œ๊ฐ€ ์žˆ๋Š” ์•ž ๋ฌธ์ž ์‚ญ์ œ ํ›„ ์ž…๋ ฅ๋ชจ๋“œ

Page 26: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ํŽธ์ง‘ (2/4)

๋ฌธ์ž์—ด ๋‹จ์œ„ ์น˜ํ™˜ ๋ช…๋ น์–ด

๋ฒ„ํผ์˜ x ํ–‰๊ณผ y ํ–‰ ์‚ฌ์ด์—์„œ ํŒจํ„ด์„ ์ฐพ์•„ ์น˜ํ™˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พผ๋‹ค.โ€ข ํ–‰ ๋ฒˆํ˜ธ ์ง€์‹œ ๋Œ€์‹  % ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ํŒŒ์ผ์„ ์ง€์นญํ•  ์ˆ˜ ์žˆ๋‹ค.

โ€“ $๋Š” ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ํ–‰์„ ๋œปํ•œ๋‹ค.

โ€“ x, y๋ฅผ ์ ์ง€ ์•Š์œผ๋ฉด ํ˜„์žฌ ํ–‰์— ์ ์šฉํ•œ๋‹ค.

ํ”Œ๋ž˜๊ทธโ€ข g : ์ผ์น˜ํ•˜๋Š” ํŒจํ„ด ๋ชจ๋‘๋ฅผ ์น˜ํ™˜ํ•˜๋ผ๋Š” ์ง€์‹œ ์‚ฌํ•ญ

โ€ข c : ์น˜ํ™˜ํ•  ๋•Œ๋งˆ๋‹ค ๋ฌผ์–ด ๋ณด๋ผ๋Š” ์ง€์‹œ ์‚ฌํ•ญ

โ€ข ์˜ˆ) 1,10s/Doo-Ok/Clickseoโ€“ 1ํ–‰๊ณผ 10ํ–‰(10ํ–‰๋„ ํฌํ•จ) ์‚ฌ์ด์—์„œ Doo-Ok ์„ ์ฐพ์•„ Clickseo ๋กœ ๋ฐ”๊พผ๋‹ค.

26

:[ x, y ]s/ํŒจํ„ด/์น˜ํ™˜๋ฌธ์ž์—ด/ํ”Œ๋ž˜๊ทธ

Page 27: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ํŽธ์ง‘ (3/4)

๋‹ค๋ฅธ ํŒŒ์ผ ํฌํ•จ์‹œํ‚ค๊ธฐ

์—ฌ๋Ÿฌ ํŒŒ์ผ ํŽธ์ง‘

์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ๋™์‹œ์— ๊ฐœ๋ฐฉํ•œ ํ›„์— ์ž‘์—…ํ•œ๋‹ค.โ€ข ์ฒ˜์Œ Vim ํŽธ์ง‘๊ธฐ ์‹คํ–‰ํ•  ๋•Œ ํŒŒ์ผ๋ช…์„ ํ•˜๋‚˜ ์ด์ƒ ์ง€์ •ํ•œ ํ›„์—, ex ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ

ํŒŒ์ผ ์‚ฌ์ด๋ฅผ ์ด๋™ํ•˜๋ฉด์„œ ์ž‘์—… ํ•  ์ˆ˜ ์žˆ๋‹ค.

โ€ข :w ๋กœ file1 ์„ ์ €์žฅํ•˜๊ณ  :n ์œผ๋กœ ๋‹ค์Œ ํŒŒ์ผ(file2)์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋ฅธ ํŒŒ์ผ ํŽธ์ง‘

๋ช…๋ น์–ด ๋‚ด ์šฉ

:r filename ์ง€์ •ํ•œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์žˆ๋Š” ์ค„ ๋‹ค์Œ์— ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

vi filename Vim ํŽธ์ง‘๊ธฐ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ๋ถ€ํ„ฐ ํŠน์ • ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€์„œ ์‹œ์ž‘ํ•œ๋‹ค.

$ vi file1 file2

๋ช…๋ น์–ด ๋‚ด ์šฉ

:e filename ํ˜„์žฌ ํŒŒ์ผ์˜ ํŽธ์ง‘์„ ๋งˆ์น˜๊ณ , ๋‹ค๋ฅธ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

Page 28: 04 (Linux) (Fundamental) Editor Text

Vim ํŽธ์ง‘๊ธฐ : ํŽธ์ง‘ (4/4)

ํ–‰ ๋ฒˆํ˜ธ ๋ถ™์ด๊ธฐ

์‰˜ ๋ช…๋ น์–ด ์‹คํ–‰

28

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

:set number

ํ–‰ ๋ฒˆํ˜ธ ๋ถ™์ด๊ธฐ:set nu

:se nu

:set nonumber

ํ–‰ ๋ฒˆํ˜ธ ์—†์• ๊ธฐ:set nonu

:se nonu

์ž…๋ ฅ ํ‚ค ๋‚ด ์šฉ

:! Vim ๋‚ด๋ถ€์—์„œ ์ฃผ์–ด์ง„ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

:r! ๋ช…๋ น์ด ํ‘œ์ค€ ์ถœ๋ ฅ์— ๋ณด๋‚ธ ๊ฒฐ๊ณผ ๋‚ด์šฉ์„ ๋ฒ„ํผ์— ํฌํ•จ์‹œํ‚จ๋‹ค.

Page 29: 04 (Linux) (Fundamental) Editor Text

29[ ์ถœ์ฒ˜ : โ€œVi/Vim ๋‹จ์ถ•ํ‚ค ๋ชจ์Œโ€, KLDP.org ]

Page 30: 04 (Linux) (Fundamental) Editor Text

ํ…์ŠคํŠธ ์กฐ์ž‘๊ณผ ํ•„ํ„ฐ

ํŽธ์ง‘๊ธฐ

ํ…์ŠคํŠธ ์กฐ์ž‘๊ณผ ํ•„ํ„ฐ

ํŒŒ์ผ ๋น„๊ต

์—ด์˜ ์ถ”์ถœ ๋ฐ ๊ฒฐํ•ฉ

ํŒŒ์ผ ์ •๋ ฌ๊ณผ ๋ถ„ํ• 

๋ฌธ์ž์—ด ํŒจํ„ด ๋ฐ ํŒŒ์ผ ๊ฒ€์ƒ‰

30

Page 31: 04 (Linux) (Fundamental) Editor Text

ํ…์ŠคํŠธ ์กฐ์ž‘ ๋ฐ ํ•„ํ„ฐ (1/2)

ํŒŒ์ผ์˜ ์ข…๋ฅ˜ ํ™•์ธ : file

ํŠน์ • ํŒŒ์ผ์˜ ์ข…๋ฅ˜๋ฅผ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

31

์ผ๋ฐ˜ ํ˜•์‹ file [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜ -z ์••์ถ• ํŒŒ์ผ์˜ ํ˜•ํƒœ๋งŒ ๊ฒ€์‚ฌํ•œ๋‹ค.

Page 32: 04 (Linux) (Fundamental) Editor Text

ํ…์ŠคํŠธ ์กฐ์ž‘ ๋ฐ ํ•„ํ„ฐ (2/2)

๋ฌธ์ž ๋ฐ ๋ฌธ์ž์—ด ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ : wc

(Word Counter) ํŒŒ์ผ์˜ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ช…๋ น์–ดโ€ข ํŒŒ์ผ ๋‚ด์˜ ๋ผ์ธ ์ˆ˜, ๋‹จ์–ด ์ˆ˜, ๋ฌธ์ž ์ˆ˜๋ฅผ ์„ธ์–ด ํ‘œ์‹œํ•ด ์ฃผ๋Š” ๋ช…๋ น์–ด

ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์กฐํ•ฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ํ™•์ธโ€ข ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์˜ ํŒŒ์ผ ๊ฐœ์ˆ˜

โ€ข ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ ์‚ฌ์šฉ์ž ์ˆ˜

32

์ผ๋ฐ˜ ํ˜•์‹ wc [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜

-l ๋ผ์ธ๋“ค์˜ ๊ฐœ์ˆ˜๋งŒ ์ถœ๋ ฅ

-w ๋‹จ์–ด๋“ค์˜ ๊ฐœ์ˆ˜๋งŒ ์ถœ๋ ฅ

-c ๋ฌธ์ž๋“ค์˜ ๊ฐœ์ˆ˜๋งŒ ์ถœ๋ ฅ

[clickseo@localhost clickseo]$ ls | wc -l5[clickseo@localhost clickseo]$ finger | wc -l2

Page 33: 04 (Linux) (Fundamental) Editor Text

33

ํ…์ŠคํŠธ ์กฐ์ž‘ ๋ฐ ํ•„ํ„ฐ

ํŒŒ์ผ ๋น„๊ต

cmp, comm, diff

Page 34: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ๋น„๊ต (1/3)

ํŒŒ์ผ ๋น„๊ต : cmp

(Compare) ์œ ์‚ฌํ•œ ๋‘ ํŒŒ์ผ์„ ๋น„๊ตโ€ข ์ฒ˜์Œ์œผ๋กœ ํ‹€๋ฆฐ ๋ฌธ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜๋งŒ์„ ์ถœ๋ ฅํ•œ๋‹ค(bytes ๋‹จ์œ„๋กœ ๋น„๊ต).

34

์ผ๋ฐ˜ ํ˜•์‹ cmp [์˜ต์…˜] ํŒŒ์ผ๋ช…1 ํŒŒ์ผ๋ช…2

์ฃผ์š” ์˜ต์…˜ -l ํŒŒ์ผ ๋‚ด์˜ ๋ชจ๋“  ์ฐจ์ด์ ์„ ์•Œ๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

Page 35: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ๋น„๊ต (2/3)

ํŒŒ์ผ ๋น„๊ต : comm

(Common) ํ–‰ ๋‹จ์œ„ ํŒŒ์ผ ๋น„๊ต ๋ช…๋ น์–ดโ€ข ๋‘ ํŒŒ์ผ์˜ ๋™์ผํ•œ ๋‚ด์šฉ์„ ์ฐพ๋Š”๋‹ค(์ฆ‰, ๋‘ ํŒŒ์ผ์— ๊ณตํ†ต์œผ๋กœ ์žˆ๋Š” ๋ผ์ธ ์ถœ๋ ฅ).

โ€“ ์™ผ์ชฝ ์นผ๋Ÿผ : ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์—๋งŒ ์žˆ๋Š” ๋‚ด์šฉ

โ€“ ์ค‘๊ฐ„ ์นผ๋Ÿผ : ๋‘ ๋ฒˆ์งธ ํŒŒ์ผ์—๋งŒ ์žˆ๋Š” ๋‚ด์šฉ

โ€“ ์˜ค๋ฅธ์ชฝ ์นผ๋Ÿผ : ๋‘ ํŒŒ์ผ์— ๊ณตํ†ต์œผ๋กœ ์กด์žฌํ•˜๋Š” ํ–‰์ด ์ถœ๋ ฅ

35

์ผ๋ฐ˜ ํ˜•์‹ comm [์˜ต์…˜] ํŒŒ์ผ๋ช…1 ํŒŒ์ผ๋ช…2

Page 36: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ๋น„๊ต (3/3)

ํŒŒ์ผ ๋น„๊ต : diff

Different File Comparator

ํŒŒ์ผ ์‚ฌ์ด์˜ ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ์ฐพ์•„๋‚ด๋Š” ๋ช…๋ น์–ดโ€ข ํ‘œ๋ณธ์ด ๋˜๋Š” ๋ฌธ์„œ๋Š” ๋‘ ๋ฒˆ์งธ ํŒŒ์ผ

โ€ข a (append) : (ํŒŒ์ผ2)์—์„œ (ํŒŒ์ผ1)๋กœ ์ฒจ๊ฐ€๋˜์–ด์•ผ ํ•  ๊ฒƒ์„ ํ‘œ์‹œ

โ€ข c (change) : ๋‘ ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด ๋ฐ”๋€Œ์–ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์„ ํ‘œ์‹œ

โ€ข d (delete) : (ํŒŒ์ผ1)์—์„œ ์ œ๊ฑฐ๋˜์–ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์„ ํ‘œ์‹œ

36

์ผ๋ฐ˜ ํ˜•์‹ diff [์˜ต์…˜] ํŒŒ์ผ๋ช…1 ํŒŒ์ผ๋ช…2

Page 37: 04 (Linux) (Fundamental) Editor Text

37

ํ…์ŠคํŠธ ์กฐ์ž‘ ๋ฐ ํ•„ํ„ฐ

์—ด์˜ ์ถ”์ถœ ๋ฐ ๊ฒฐํ•ฉ

cut, paste

Page 38: 04 (Linux) (Fundamental) Editor Text

์—ด์˜ ์ถ”์ถœ ๋ฐ ๊ฒฐํ•ฉ (1/5)

์—ด์˜ ์ถ”์ถœ : cut

ํŠน์ • ํ•„๋“œ๋ฅผ ์ถ”์ถœํ•ด์„œ ๊ฐ€๊ณตํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ดโ€ข ๋ฐ์ดํ„ฐ์˜ ํŠน์ • ์—ด์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜, ํŒŒ์ผ ๋‚ด์˜ ํŠน์ • ํ•„๋“œ๋งŒ์„ ํ‘œ์‹œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

38

์ผ๋ฐ˜ ํ˜•์‹ cut [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜

-c ๋ชฉ๋ก

๋ชฉ๋ก์— ์ง€์ •ํ•œ ์—ด์„ ์ถœ๋ ฅ

-c1,2 : 1๋ฒˆ, 2๋ฒˆ ์—ด์„ ์ถœ๋ ฅ

-c1-10 : 1๋ฒˆ์—์„œ 10๋ฒˆ ์—ด ๊นŒ์ง€๋ฅผ ์ถœ๋ ฅ

-f ๋ชฉ๋ก๋ชฉ๋ก์— ์ง€์ •ํ•œ ํ•„๋“œ๋ฅผ ์ถœ๋ ฅ

-f1,3 : 1๋ฒˆ ํ•„๋“œ์™€ 3๋ฒˆ ํ•„๋“œ๋ฅผ ์ถœ๋ ฅ

-d ํ•„๋“œ ๊ตฌ๋ถ„์ž ํ•„๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฌธ์ž๋ฅผ ์ง€์ •ํ•œ๋‹ค(๊ธฐ๋ณธ๊ฐ’ : ํƒญ ๋ฌธ์ž).

-s ํ•„๋“œ ๊ตฌ๋ถ„์ž๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๊ทธ ํ–‰์€ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

Page 39: 04 (Linux) (Fundamental) Editor Text

์—ด์˜ ์ถ”์ถœ ๋ฐ ๊ฒฐํ•ฉ (2/5)

์—ด์˜ ์ถ”์ถœ : cut ์˜ต์…˜

39

1 ~ 3 ์—ด ๋งŒ ํ‘œ์‹œ

-f ์˜ต์…˜ ์‚ฌ์šฉ ์‹œโ€ฆํŒŒ์ผ ์•ˆ์— ๊ฐ ํ•„๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ

๋ฐ˜๋“œ์‹œ ํƒญ์œผ๋กœ ํ•„๋“œ๋“ค์ด ๊ตฌ๋ถ„๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

Page 40: 04 (Linux) (Fundamental) Editor Text

์—ด์˜ ์ถ”์ถœ ๋ฐ ๊ฒฐํ•ฉ (3/5)

์—ด์˜ ์ถ”์ถœ : cut ์˜ต์…˜

40

-d ์˜ต์…˜ : ํ•„๋“œ ๊ตฌ๋ถ„์ž ์ง€์ •

/etc/passw ํŒŒ์ผ ์ถ”์ถœ ์‹œ ํ•„๋“œ ๊ตฌ๋ถ„์ž๋กœ โ€œ:โ€ ๋ฅผ ์ง€์ •

[clickseo@localhost clickseo]$ cat /etc/passwd( โ€ฆ์ƒ๋žตโ€ฆ )

clickseo:x:1000:1000:Clickseo,,,:/home/clickseo:/bin/bash

Page 41: 04 (Linux) (Fundamental) Editor Text

์—ด์˜ ์ถ”์ถœ ๋ฐ ๊ฒฐํ•ฉ (4/5)

์—ด์˜ ๊ฒฐํ•ฉ : paste

์ˆ˜์ง์œผ๋กœ ํŒŒ์ผ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ณด์—ฌ์ค€๋‹ค.โ€ข ๊ฐ๊ฐ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ์ผ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ๋œ ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š”๋ฐ

์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

41

์ผ๋ฐ˜ ํ˜•์‹ paste [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜-d ๊ตฌ๋ถ„์ž ํŒŒ์ผ์„ ๊ฒฐํ•ฉํ•  ๋•Œ ์ค‘๊ฐ„์— ํŠน์ •ํ•œ ๊ตฌ๋ถ„์ž๋ฅผ ๋„ฃ๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ

-s ๋ชฉ๋ก ์—ฐ์†์ ์ธ ๋ผ์ธ์„ 1๊ฐœ ๋ผ์ธ์œผ๋กœ ๊ฒฐํ•ฉํ•œ๋‹ค.

Page 42: 04 (Linux) (Fundamental) Editor Text

์—ด์˜ ์ถ”์ถœ ๋ฐ ๊ฒฐํ•ฉ (5/5)

์—ด์˜ ๊ฒฐํ•ฉ : paste ์˜ต์…˜

42

-d ์˜ต์…˜ : ํŒŒ์ผ ๊ฒฐํ•ฉ ์‹œ ์ง€์ •๋œ ๊ตฌ๋ถ„์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํŒŒ์ผ ๊ตฌ๋ถ„

-s ์˜ต์…˜ : ์—ฐ์†์ ์ธ ๋ผ์ธ์„ 1๊ฐœ์˜ ๋ผ์ธ์œผ๋กœ ๊ฒฐํ•ฉ

Page 43: 04 (Linux) (Fundamental) Editor Text

43

ํ…์ŠคํŠธ ์กฐ์ž‘ ๋ฐ ํ•„ํ„ฐ

ํŒŒ์ผ ์ •๋ ฌ๊ณผ ๋ถ„ํ• 

sort, split

Page 44: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ์ •๋ ฌ๊ณผ ๋ถ„ํ•  (1/5)

ํŒŒ์ผ ์ •๋ ฌ : sort

์ฃผ์–ด์ง„ ํ•„๋“œ๋‚˜ ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์ผ์„ ํ–‰ ๋‹จ์œ„๋กœ ์ •๋ ฌโ€ข ์ •๋ ฌํ•ญ๋ชฉ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

โ€“ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋Š” ์†Œ๋ฌธ์ž๋ณด๋‹ค ๋Œ€๋ฌธ์ž๊ฐ€ ์šฐ์„ 

โ€“ ์ˆซ์ž๋“ค์€ ๋ชจ๋“  ๋ฌธ์ž๋ณด๋‹ค ์šฐ์„ 

44

์ผ๋ฐ˜ ํ˜•์‹ sort [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜

-r (Reverse) ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

-f (ignore-case) ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์ •๋ ฌํ•œ๋‹ค.

-d (Dictionary-order) ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

-n (Numeric-sort) ์ˆซ์ž ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

-m (Merge) ์ •๋ ฌ๋œ ํŒŒ์ผ๋“ค์„ ๋ณ‘ํ•ฉํ•œ๋‹ค.

-o file (Output) ํ‘œ์ค€ ์ถœ๋ ฅ ๋Œ€์‹ ์— FILE ์— ์ถœ๋ ฅํ•œ๋‹ค.

Page 45: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ์ •๋ ฌ๊ณผ ๋ถ„ํ•  (2/5)

ํŒŒ์ผ ์ •๋ ฌ : sort ์˜ต์…˜

45

-r ์˜ต์…˜ : ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

Page 46: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ์ •๋ ฌ๊ณผ ๋ถ„ํ•  (3/5)

ํŒŒ์ผ ์ •๋ ฌ : sort ์˜ต์…˜

46

-m ์˜ต์…˜ : ์ •๋ ฌ๋œ ํŒŒ์ผ์˜ ํ•ฉ๋ณ‘

-u ์˜ต์…˜ : ์ •๋ ฌ๋œ ํŒŒ์ผ์—์„œ ์ค‘๋ณต๋œ ๋ผ์ธ์˜ ์ œ๊ฑฐ

Page 47: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ์ •๋ ฌ๊ณผ ๋ถ„ํ•  (4/5)

ํŒŒ์ผ ๋ถ„ํ•  : split

ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ๋กœ ๋ถ„ํ• โ€ข ๋ถ„ํ• ๋œ ๊ฐœ์ˆ˜๋งŒํผ์˜ ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

โ€“ ํŒŒ์ผ์„ ๋ถ„ํ• ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ 1000 ๋ผ์ธ ๋‹จ์œ„๋กœ ๋ถ„ํ• ๋œ๋‹ค.

โ€ข ํŒŒ์ผ๋ช…์€ โ€œxโ€ ๋ฌธ์ž์™€ ๊ณ„์†ํ•ด์„œ ๋‘ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„๋‹ค.

โ€“ ์˜ˆ: ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์€ โ€œxaaโ€, ๋‘ ๋ฒˆ์งธ ํŒŒ์ผ์€ โ€œxabโ€๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.

47

์ผ๋ฐ˜ ํ˜•์‹ split [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜

-b size (Bytes) ํŒŒ์ผ์„ bytes ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ

-l line (Lines) ํŒŒ์ผ์„ ์ฃผ์–ด์ง„ lines ์ˆ˜ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ

-c size ํŒŒ์ผ์„ ํ•œ ์ค„์— ์ตœ๋Œ€ size ๋ฐ”์ดํŠธ๋งŒํผ ์”ฉ ๋ถ„๋ฆฌ

Page 48: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ์ •๋ ฌ๊ณผ ๋ถ„ํ•  (5/5)

ํŒŒ์ผ ๋ถ„ํ•  : split ์˜ต์…˜

48

5์ค„ ๋‹จ์œ„๋กœ ํŒŒ์ผ์„ ๋ถ„ํ• 

xaa, xab, xac, xad 4๊ฐœ์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ํŒŒ์ผ ์ƒ์„ฑ

์กฐ๊ฐ๋‚œ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ํฐ ํŒŒ์ผ๋กœ ๋ณ‘ํ•ฉ

$ cat x?? > new

Page 49: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๋ฐ ํŒŒ์ผ ๊ฒ€์ƒ‰

ํŽธ์ง‘๊ธฐ

ํ…์ŠคํŠธ ์กฐ์ž‘๊ณผ ํ•„ํ„ฐ

๋ฌธ์ž์—ด ํŒจํ„ด ๋ฐ ํŒŒ์ผ ๊ฒ€์ƒ‰

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find

49

Page 50: 04 (Linux) (Fundamental) Editor Text

50

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰

grep

Page 51: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (1/9)

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep

๋ฌธ์ž์—ด ๋ฐ ๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰, ์กฐ๊ฑด์— ๋งž๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์•„์„œ ์ถœ๋ ฅ

51

์ผ๋ฐ˜ ํ˜•์‹ grep [์˜ต์…˜] [๊ฒฝ๋กœ, ํŒŒ์ผ๋ช…]

์ฃผ์š” ์˜ต์…˜

-c ํŒŒ์ผ ์ด๋ฆ„ ๋‹ค์Œ์— ์ˆซ์ž๋ฅผ ํ•จ๊ป˜ ์ถœ๋ ฅํ•œ๋‹ค(ํŒจํ„ด์ด ๋“ค์–ด ์žˆ๋Š” ๋ผ์ธ์˜ ๊ฐœ์ˆ˜).

-h ํŒŒ์ผ์˜ ์ด๋ฆ„์€ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

-i ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

-l ํŒŒ์ผ ์ด๋ฆ„๋งŒ ์ถœ๋ ฅํ•˜๊ณ  ํŒจํ„ด์ด ์žˆ๋Š” ๋ผ์ธ์€ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

-n ๊ฐ ๋ผ์ธ ์•ž์— ๋ผ์ธ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์ธ๋‹ค.

-w ํŒจํ„ด์ด ์›ํ•˜๋Š” ๋‹จ์–ด๋กœ ๋…๋ฆฝ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ๋งŒ ์ฐพ๋Š”๋‹ค.

-v ํŒจํ„ด์ด ์—†๋Š”(inverse) ๋ผ์ธ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.

Page 52: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (2/9)

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : ํ‘œํ˜„์‹

ํ‘œํ˜„์‹(expression)

52

๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ•

^ ๋ผ์ธ์˜ ์ฒซ ์‹œ์ž‘ ( ^a : a๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ผ์ธ)

$ ๋ผ์ธ์˜ ๋ ( a$ : a๋กœ ๋๋‚˜๋Š” ๋ผ์ธ )

. ํ•œ ๊ธ€์ž ( aโ€ฆb : a์™€ b ์‚ฌ์ด์— ์ž„์˜์˜ 3๊ธ€์ž๋ฅผ ํฌํ•จํ•˜๋Š” ํŒจํ„ด )

*์ด์ „์˜ ๊ธ€์ž๋‚˜ ์ •๊ทœ์‹์ด 0ํšŒ ์ด์ƒ ๋ฐ˜๋ณต

abc* : ab, abc, abcc, abccc ๋“ฑ

[ ]ํ•œ ๊ธ€์ž์˜ ๋Œ€์ฒด ๊ธ€์ž์˜ ๋ชฉ๋ก

[abc] : abc ์ค‘ ํ•œ ๊ธ€์ž๋ผ๋„ ๋ฐ˜๋“œ์‹œ ์žˆ๋Š” ๋‹จ์–ด

[^] ์˜ˆ: [^abc] : abc๋Š” ๋ฐ˜๋“œ์‹œ ์—†๋Š” ๋ผ์ธ

?๊ธฐํ˜ธ ์ด์ „์˜ ๊ธ€์ž๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์—†๊ฑฐ๋‚˜...

abc? -- ๋ฌธ์ž c ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์—†๊ฑฐ๋‚˜(์ฆ‰, ab ํ˜น์€ abc)ํ•˜๋Š” ํŒจํ„ด

+ ์ด์ „์˜ ๊ธ€์ž๋‚˜ ์ •๊ทœ์‹์ด 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต

Page 53: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (3/9)

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : ์‚ฌ์šฉ ์˜ˆ

53

$ grep test s* // s ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์—์„œ test ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ํ–‰์„ ์ฐพ์Œ

Page 54: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (4/9)

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : ์‚ฌ์šฉ ์˜ˆ

54

$ grep ^t sample // sample ํŒŒ์ผ์—์„œ ๋ฌธ์ž t ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํ–‰์„ ์ถœ๋ ฅ

$ grep t$ sample // sample ํŒŒ์ผ์—์„œ ๋ฌธ์ž t ๋กœ ๋๋‚˜๋Š” ๋ชจ๋“  ํ–‰์„ ์ถœ๋ ฅ

Page 55: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (5/9)

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : ์‚ฌ์šฉ ์˜ˆ

55

$ grep [^0-9] sample // ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜๋ผ๋„ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ํ–‰์„ ์ถœ๋ ฅ

Page 56: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (6/9)

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : ์‚ฌ์šฉ ์˜ˆ

56

// ์ง€์ •๋œ ๋ฌธ์ž a ๊ฐ€ 0 ํšŒ ์ด์ƒ ๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด ๊ฒ€์ƒ‰

$ grep a* sample$ grep aa* sample$ grep aaa* sample

Page 57: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (7/9)

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : ์‚ฌ์šฉ ์˜ˆ

57

// -n ์˜ต์…˜ : ํ–‰ ๋ฒˆํ˜ธ๋ฅผ ํ•จ๊ป˜ ์ถœ๋ ฅ

$ grep -n test sample

// -i ์˜ต์…˜ : ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

$ grep -i test sample

// -l ์˜ต์…˜ : ํ–‰ ๋ฒˆํ˜ธ ๋Œ€์‹  ๋‹จ์ง€ ํŒŒ์ผ์ด๋ฆ„๋งŒ ์ถœ๋ ฅ

$ grep -l test sample

Page 58: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (8/9)

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : ์‚ฌ์šฉ ์˜ˆ

58

// -v ์˜ต์…˜ : ๋ฌธ์ž์—ด โ€˜sample testโ€™์ด ํฌํ•จ๋˜์ง€ ์•Š์€ ๋ชจ๋“  ํ–‰์„ ์ถœ๋ ฅ

$ grep -v sample sample$ grep -v โ€˜sample testโ€™ sample

Page 59: 04 (Linux) (Fundamental) Editor Text

๋ฌธ์ž์—ด ํŒจํ„ด ๊ฒ€์ƒ‰ : grep (9/9)

์ •๊ทœ ํ‘œํ˜„์‹๊ณผ grep์˜ ์‚ฌ์šฉ ์˜ˆ์ œ

59

// -w ์˜ต์…˜ : ํŒจํ„ด์ด ๋‹ค๋ฅธ ๋‹จ์–ด์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ํ•˜๋‚˜์˜ ๋‹จ์–ด๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋งŒ ์ฐพ์Œ.

// abc๋‚˜ aaa ๋“ฑ์˜ ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ, a๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ํ–‰๋งŒ ์ถœ๋ ฅ

$ grep -w a sample

Page 60: 04 (Linux) (Fundamental) Editor Text

60

ํŒŒ์ผ ๊ฒ€์ƒ‰

find

Page 61: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find (1/5)

ํŒŒ์ผ ๊ฒ€์ƒ‰

find ๋ช…๋ น์–ดโ€ข ์‹œ์Šคํ…œ ๋‚ด์— ์กด์žฌํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด

61

์ผ๋ฐ˜ ํ˜•์‹ find [๊ฒฝ๋กœ] [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜

-name filename ์ฐพ๊ณ ์ž ํ•˜๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„ ์ง€์ •(์˜ต์…˜ ์ƒ๋žต ๊ฐ€๋Šฅ)

-perm mode ์ง€์ •๋œ ๊ถŒํ•œ๊ณผ ์ผ์น˜ํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

-type filetypeํŒŒ์ผ์ข…๋ฅ˜, ์‹ฌ๋ณผ๋ฆญ ๋งํฌ, ๋””๋ ‰ํ„ฐ๋ฆฌ ๋“ฑ์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰

f : ์ผ๋ฐ˜ ํŒŒ์ผ, d : ๋””๋ ‰ํ„ฐ๋ฆฌ, l : ์‹ฌ๋ณผ๋ฆญ ๋งํฌ,b : ๋ธ”๋ก ํŒŒ์ผ, p : ํŒŒ์ดํ”„ ๋“ฑ์˜ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉ

-size num์ง€์ •๋œ ํฌ๊ธฐ์™€ ์ผ์น˜ํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

ํŒŒ์ผ ํฌ๊ธฐ๋Š” ๋ธ”๋ก๋‹จ์œ„๋กœ ์ง€์ •(1block == 512KB)๋ธ”๋ก ์ˆซ์ž ๋’ค์— k ๋ฅผ ๋ถ™์ด๋ฉด 1KB ํฌ๊ธฐ์˜ ๋ธ”๋ก ์ˆซ์ž๋กœ ๊ฐ„์ฃผ

-links num num ๊ฐœ์˜ ํ•˜๋“œ ๋งํฌ๋ฅผ ๊ฐ–๋Š” ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

-user name ํŒŒ์ผ ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„์— ๋”ฐ๋ผ์„œ ๊ฒ€์ƒ‰

-group gname ๊ทธ๋ฃน ์ด๋ฆ„์— ์†ํ•œ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

Page 62: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find (2/5)

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find

์ฃผ์š” ์˜ต์…˜ : ์‹œ๊ฐ„

62

์ผ๋ฐ˜ ํ˜•์‹ find [๊ฒฝ๋กœ] [์˜ต์…˜] ํŒŒ์ผ๋ช…

์ฃผ์š” ์˜ต์…˜

-mtime num ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ตœ๊ทผ num * 24์‹œ๊ฐ„(์ผ)์ด ์ง€๋‚œ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

-mmin num ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ตœ๊ทผ num ๋ถ„์ „์— ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

-atime num num * 24์‹œ๊ฐ„(์ผ) ์ „์— ๋งˆ์ง€๋ง‰ ์ ‘๊ทผํ•œ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

-amin num num ๋ถ„ ์ „์— ๋งˆ์ง€๋ง‰ ์ ‘๊ทผํ•œ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

-ctime num num *24 ๋ถ„ ์ „์— ๋งˆ์ง€๋ง‰ ๋ณ€๊ฒฝํ•œ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

-cmin num num๋ถ„ ์ „์— ๋งˆ์ง€๋ง‰ ๋ณ€๊ฒฝํ•œ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

-print ์ฐพ์€ ํŒŒ์ผ์„ ํ™”๋ฉด์— ์ถœ๋ ฅ

Page 63: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find (3/5)

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find ํ™œ์šฉ ์˜ˆ

ํ‘œํ˜„์‹์„ ํ™œ์šฉํ•œ ๊ฒ€์ƒ‰

63

$ find ./ -name sample$ find ./ -name [^a-z]*.txt

Page 64: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find (4/5)

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find ํ™œ์šฉ ์˜ˆ

๋งˆ์ง€๋ง‰ ์ˆ˜์ •ํ•œ ์ผ์ˆ˜๋กœ ๊ฒ€์ƒ‰

64

// (+) ๊ธฐํ˜ธ๋Š” โ€œ~๋ณด๋‹ค ์ด์ƒโ€์„ ์˜๋ฏธํ•˜๊ณ  (-) ๊ธฐํ˜ธ๋Š” โ€œ~๋ณด๋‹ค ์ดํ•˜โ€๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

// 5์ผ ์ด์ƒ ์ „์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •ํ•œ ํŒŒ์ผ ์ฐพ๊ธฐ

$ find ./ -mtime +5 -print

// ์ ์–ด๋„ 20์ผ ์ „์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •ํ•œ ํŒŒ์ผ(์ผ๋ฐ˜ ํŒŒ์ผ: -type f) ์ฐพ๊ธฐ

$ find ./ -type f -atime -20 -print

Page 65: 04 (Linux) (Fundamental) Editor Text

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find (5/5)

ํŒŒ์ผ ๊ฒ€์ƒ‰ : find ํ™œ์šฉ ์˜ˆ

์ ‘๊ทผ ๊ถŒํ•œ์„ ์ด์šฉํ•œ ๊ฒ€์ƒ‰

65

// ์ ‘๊ทผ ๊ถŒํ•œ์ด 521(r-x-w---x)์ธ ํŒŒ์ผ ์ฐพ๊ธฐ# find / -perm 521 -print

// ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์ „๋ถ€ ํ—ˆ๊ฐ€๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ(๋””๋ ‰ํ„ฐ๋ฆฌ ํŒŒ์ผ: -type d) ์ฐพ๊ธฐ# find / -type d -perm 777 -print

// root ๊ณ„์ •์˜ SetUID ์„ค์ •ํŒŒ์ผ ์ฐพ๊ธฐ# find / -user root -perm 4000 -print

// ๊ทธ๋ฃน members์— ๋Œ€ํ•œ SetGID ํŒŒ์ผ ์ฐพ๊ธฐ# find / -group members -perm 2000 -print

// -o ์˜ต์…˜์„ ์ด์šฉํ•˜์—ฌ OR ๊ฒฐํ•ฉ๋˜๊ณ  ๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ทธ๋ฃน์„ ์ง€์Œ# find / -type f \( -perm 2000 -o -perm 4000 \) -print

Page 66: 04 (Linux) (Fundamental) Editor Text

์ฐธ๊ณ ๋ฌธํ—Œ

66

[1] ์ด์ข…์›, โ€œIT CookBook, ์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค(๊ฐœ์ •ํŒ) : ์‹œ์Šคํ…œ & ๋„คํŠธ์›Œํฌโ€, ํ•œ๋น›์•„์นด๋ฐ๋ฏธ, 2018.

[2] ๋ฐฑ์ฐฝ์šฐ, โ€œ์œ ๋‹‰์Šค ๋ฆฌ๋ˆ…์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•„์ˆ˜ ์œ ํ‹ธ๋ฆฌํ‹ฐโ€, ํ•œ๋น›๋ฏธ๋””์–ด. 2010.

์ด ๊ฐ•์˜์ž๋ฃŒ๋Š” ์ €์ž‘๊ถŒ๋ฒ•์— ๋”ฐ๋ผ ๋ณดํ˜ธ๋ฐ›๋Š” ์ €์ž‘๋ฌผ์ด๋ฏ€๋กœ ๋ฌด๋‹จ ์ „์ œ์™€ ๋ฌด๋‹จ ๋ณต์ œ๋ฅผ ๊ธˆ์ง€ํ•˜๋ฉฐ,

๋‚ด์šฉ์˜ ์ „๋ถ€ ๋˜๋Š” ์ผ๋ถ€๋ฅผ ์ด์šฉํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ์ €์ž‘๊ถŒ์ž์˜ ์„œ๋ฉด ๋™์˜๋ฅผ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Copyright ยฉ Clickseo.com. All rights reserved.


Recommended