리그캣의 개발놀이터

서버 구축 및 관리 -중간고사 정리 본문

프로그래밍 기본/서버 구축 및 관리

서버 구축 및 관리 -중간고사 정리

리그캣 2018. 1. 25. 19:43

추가 공부 사항.

* 가상터미널(참고)

- ALT-[F1] ~ [F6] 1~6번 가상 터미널(텍스트화면, no X-Windows)

- ALT-[F7] X-Windows 복귀

- CTRL-ALT-[F1] graphical display

- CTRL-ALT-[F2] Shell prompt

- CTRL-ALT-[F3] Install log(messages from installation program)

- CTRL-ALT-[F4] system-related messages

- CTRL-ALT-[F5] other messages

* % logout 시스템 종료

시스템 종료

# shutdown -h now 지금 시스템 종료(halt)

# shutdown -r now 지금 시스템 reboot

# shutdown -h 잠시후 시스템 종료

# reboot 시스템 재시작(위 –r과 동일)

마운트

# vi /etc/fstab

...

/dev/sda2 /C ntfs defaults 0 0 <== booting시 자동으로 마운트 됨

/dev/sdc1 /USB vfat noauto 0 0 <== 수동 마운트

/dev/sda5 /D ntfs noauto,umask=0002,uid=500,gid=500,iocharset=cp949 0 0


네트워크 설정(/etc/sysconfig/network-scripts/ifcfg-eth0,

/etc/sysconfig/network/devices/ifcfg-eth0)

$ ifconfig 네트워크 카드 상태 보기.

$ ifconfig -a 모든 네트워크 카드 상태 보기.

랜카드 디바이스 이름과 IP 주소 확인

# ifup eth0 eth0(첫 번째 랜카드 디바이스) 활성(activate)화 시킴.

# ifdown eth0 eth0(첫 번째 랜카드 디바이스) 비활성(deactivate)화 시킴.

# ping 210.110.40.10 210.110.40.10번 호스트(gateway) 네트워크 통신 가능 테스트

서비스 실행/중지/재실행/상태(시스템 관리)

수동으로 시스템 서비스 시작/마침

명령문:

# service 서비스명 start|stop|status|restart <== 서비스 시작|마침|상태 표시.

# service network start

# service sshd start

Unix 기본 명령어 : http://jongp.com/class/unix/basic.htm 참조

cd, ls, cat, more, mv, rm, cp, mkdir, rmdir, man, df, passwd, chmod, du, sort, date,

ps, logout, grep, find, kill, ...

Unix 명령어 기초


★ ; : 여러 명령을 순서대로 각각 실행하려면 “;”으로 구분하여 입력하면 된다.

예) more filename; cd dname; more file2 <== 세 명령을 순서대로 실행한다.

★ >, <, >> : redirection - 명령의 실행 결과는 보통 표준 입/출력

(stdin/stdout=keyboard/monitor)이 된다.

그러나 이를 파일로 저장('>')이나 읽기('<')와 같이 '>', '<'으로 입출력을 바꾼다.

또 이미 출력 파일이 존재하는 경우 그 뒤에 추가할 때에는 '>>'을 사용할 수 있다.

예) cat file1 > file3 <== file1의 내용을 file3에 저장한다.

cat file2 >> file3 <== file2의 내용을 file3에 추가.

cat file1 file2 > file3 <== file1과 file2의 내용을 이어서 file3에 저장.

★ | : pipeline - 한 명령의 실행 결과(표준 출력)를 다른 명령의 입력으로 받아 이어서 실행

하고자 할

때 앞 명령어 다음에 '|'를 쓰고 다음 명령을 내리면 된다.

예) ls -l | more <== directory list를 페이지 단위로 보여준다.

cat fname | wc <== 파일 fname 내용의 문자수, 단어 수, 줄 수를 표시한다.

who | grep park <== 현재 기계를 사용하고 있는 사람 중에서 ‘park’ 문자가

있는 줄을 보여준다.


-----------------------------------------------------------------------------------------------

1) cat : file의 내용을 화면에 보여준다(concatination). MS-DOS의 ‘type’와 비슷.

형식 : cat [option] [file(s)]

option : -n 출력시 줄 번호를 출력

-u 출력시 버퍼링이 안된다.

예) cat file

cat fname1 fname2 > fname3 ? fname1과 fanme2를 붙여서 fname3로 저장.

2) cd : change directory, 현재의 디렉토리를 바꾼다. DOS의 ‘cd’와 비슷.

형식 : cd [directory]

예) cd dname ? dname 디렉토리로 이동. MS-DOS의 cd와 같은 의미이나 cd와 dname

사이에 반드시

공간(space)이 있어야 된다.

3) cp : copy, file룰 복사한다. MS-DOS의 ‘copy’와 비슷.

형식 : cp [file(s)] [(directory/)file]

예) cp fname1 fname2 ? fname1을 fname2로 복사, dos의 ‘copy fname1 fname2’와 같

음.

4) df : 슈퍼블록에서 카운트하고 있는 마운트된 file 시스템, 디렉토리에서 사용가능 한 디

스크블록과 free inode수를 알려준다.

형식 : df [-it][-f][]

5) du : disk usage, 사용자 자신의 디스크 사용(disk utilization) 상황(크기)을 블록단위로

출력해준다.

형식 : dir [option]

option : -s 사용량의 총계를 보여준다.

-a 각 파일의 크기를 보여준다

예) du

6) grep : file에서 특정한 패턴을 찾는데 사용되면 , 그 패턴을 포함하고 있는 모든 행을 출

력한다.

DOS의 find "text" [d:][path][filename]와 비슷

형식 : grep [option] limited regular expression [file]

option : -v expression에 일치하는 줄만 print.

-c 일치하는 줄의 개수를 print.

-l 최소한 하나의 일치가 있는 file 이름만 print

-n line number print

예) grep text a* ? a로 시작되는 모든 파일에서 “text”가 들어있는 줄을 모두 보여준다.

7) kill : 지정한 프로세서에게 종료신호를 보낸다.

형식 : kill [-sihgnam_number] process_id(s)

8) touch : 지정된 file의 날짜와 시간을 현재의 시각으로 바꾼다.

형식 : touch [-amc] [mmddhhmm[yy]] file(s)


9) tty : 컴퓨터 시스템에 연결하여 사용하고 있는 터미널의 이름을 알려준다.

10) umask : file이 만들어질 때 적용되는 파일 접근모드를 설정한다.

11) dircmp : directory compare, 두 개의 디렉토리를 비교하여 결과를 출력한다.

형식 : dircmp [-d][-s][-wn] dir1 dir2

12) ls : list, 디렉토리의 내용을 화면을 통해 보여준다. DOS의 ‘dir’와 비슷.

형식 : ls [option] [name(s)]

option : -l 긴(long) 형식으로 출력 (mode, link count, owner, time ...)

-a .(dot)로 시작하는 file(숨김파일) 포함 (예 .login, .cshrc, .Xinit ...)

-F Directory 끝에 /를 붙이고, 실행가능 파일은 *를 붙여서 출력

-R sub-directory도 recursive하게 list, 즉 부 디렉토리 안의 (부 디렉토리...) 모든

내용을 보여줌.

-1 출력은 한 줄에 한 파일씩

-g 어느 group 소속인지도 출력하라.

예) ls 현(current) 디렉토리의 모든 파일 이름들을 보여준다. dos의 “dir /w”와 비슷.

예) ls -l dname 디렉토리 dname의 모든 파일 이름과 그 속성(허가, 크기, 날짜, 이름 등)

을 긴 형식으로 보여줌.

예) ls -al 현(current) 디렉토리의 숨겨진 파일( .으로 시작하는 파일 이름)을 포함한 모든

파일 이름과

그 속성을 긴 형식으로 보여준다.

* note : 파일명이 '-'로 시작된 것이 있으면 ls *, mv 등 명령이 잘 되지 않음("ls: invalid

option -- 0 ..."

use mv ./-fn fn).

13) mkdir : make directory, directory를 만든다. DOS의 md와 비슷.

형식 : mkdir [-m]mode [-p] <경로><디렉토리 이름>

예) mkdir dname 'dname' 디렉토리룰 만든다. dos의 "md dname"과 같음.

14) rmdir : remove directory, 지정된 디렉토리를 제거한다. DOS의 ‘rd’와 비슷.

형식 : rmdir [-ps]<디렉토리이름>

예) rmdir dname “dname 디렉토리룰 삭제. 해당 디렉토리가 비어 있어야 한다. dos의

“rd dname”과 같음.

15) pwd : pathword, 현재의 작업디렉토리를 화면에 출력한다.

예) pwd 현재의 디렉토리의 전 경로(full path)를 보여준다.

16) bru : 디렉토리 또는 파일 단위로 카트리지 테이프에 저장 또는 복구시키는 기능을 한

다.

형식 : bru -cdeghitx[-#abcBCfFLImnopRsuvw]files

17) cmp : compare, 두 개의 파일을 비교하여 차이점을 화면에 출력한다.

형식 : cmp [option] file1 file2

option : -l 각 다른 부분에 대해서 바이트 번호와 상이한 바이트를 출력하라


-s 출력하지 말고 적절한 종료코드만 return 할 것.

예) cmp fname1 fname2 두 파일 fname1과 fname2을 비교하여 다른 부분을 보여준다.

18) comm : 지정된 두 개의 파일을 비교하여 삭제 또는 공통되는 부분을 선택할 때 사용

된다.

형식 : comm [-[123]] file1 file2

19) cut : 파일의 각 행에서 선택된 필드를 절단한다.

형식 : cut -clist [file]

20) dd : 파일을 변환 또는 복사를 한다.

형식 : dd[option=value]

21) diff : 지정된 두 개의 파일간의 차이를 비교하여 두 개의 파일이 일치되기 위해 필요한

정보를 제공한다.

22) fgrep : 문자열에 따라 파일을 검색을 한다.

형식 : fgrep [option] string [file]

23) find : 어떤 파일이 어떤 디렉토리에 존재하는지 찾아준다.

형식 : find pathname_list expression

- pathname_list에서 expression을 만족하는 파일을 찾는다.

예) find . -name mail -print 현(.) 디렉토리(부 디렉토리 포함) 안에 'mail'이라는 디렉토리

명이나 파일명을

찾아 전 경로(full path)를 보여줌. dos의 "dir /s mail"과 같음.

24) join : 관계형 데이터베이스 조작명령으로 지정된 파일의 관계를 결합하여 결과를 표

준 출력장치로 출력한다.

형식 : join [option] file1 file2

25) ln : link, 두 개의 파일을 연결(link)시켜 사용하게 한다. MS Windows에서 단축 아이콘

과 같은 기능.

형식 : 1. ln file1 [file2] : file1 과 file2을 link(연결)

2. ln file(s) directory : file(s)에 대한 링크가 directory에 만들어진다.

3. ln [-s] file1 [file2] : 다른 파일 시스템에 있는 파일도 link 시켜준다.(BSD unix에서

만 가능)

예) ln name1 name2 ?

26) lp : line print, 특정 파일을 프린터 시켜준다.

형식 : lp file(s)

27) mail : 검사하거나 보내기

형식 : 1. mail : 인터넷으로 들어온 메일을 검사(읽기, 응답).

2. mail id@hostname.domainname : 해당 email(id@hostname.domainname) 주소

로 메일을 보냄.

예) mail 메일 읽기


예) mail jong@bukak.seokyeong.ac.kr 사용자 jong으로 메일 보내기. 아래 2. 전자우편

참조.

28) mv : move, 파일을 다른 곳으로 이동(move)시키거나 파일이름을 변경한다.

DOS의 ‘move’와 비슷하나 dos에서는 디렉토리 이름을 바꿀 수 없다.

형식 : mv <현재이름> <변경될 이름>

예) mv name1 name2 name1을 name2로 바꿈. dos의 “move name1 name2”와 비슷.

mv name1 dname 파일이나 디렉토리 name1을 dname 디렉토리 안으로 이동.

29) paste : 여러개 파일의 같은 행 내용을 병합한다.

형식 : paste file1 file2

30) pg : page, file의 내용을 페이지 단위로 보여준다.

형식 : pg file

31) pr : print, 파일을 표준 출력으로 보여주고 현재의 시각 , 파일명 페이지 등을 같이 보

여준다.

형식 : pr [option] file(s)

option : -n n column 출력을 생성한다.

+n n page에서 시작하라.

-h 이 뒤에 나오는 인자를 페이지 헤더로 사용하라.

32) rm : remove, 파일을 삭제(remove). DOS의 ‘del’와 비슷.

형식 : rm [option] file(s)

option : -f 제거할 때 승인을 요구하지 마라

-i 대화적으로 제거하라. 즉 제거시 승인을 받아라

-r recursive하게 서브디렉토리도 제거하라.

예) rm fname 파일 fname을 지운다. dos의 "del fname“과 비슷.

33) sort : 파일을 정렬(sort) 또는 병합한다. DOS의 sort [d:][path][filename]

형식 : sort [option] file(s) sort < a:\new\sharpe.pen

예) sort fname 파일 fname을 정렬(sort)하여 보여줌.

sort fname1 > fname2 파일 fname1을 정렬하여 fname2로 저장.

34) head : 지정된 파일의 첫 부분을 출력한다.

형식 : head [-number] file(s)

예) head fname 파일 fname의 처음 10줄을 보여준다.

35) tail : 지정된 파일의 끝 부분을 출력한다.

형식 : tail [-number] file(s)

예) tail fname 파일 fname의 끝 10줄을 보여준다.

36) tar : 파일들을 자기 테이프에 저장 또는 불러오기 위한 명령어이다(tape archive).

형식 : tar [-]{txruc}[vwfblm][0-7[lmh]][tapefile][blocksize] file1

37) ulimit : 사용자 범위의 출력, 설정, 프로세서의 보통 파일 크기 범위를 출력한다.


38) uniq : 중복되는 행을 삭제한다.

형식 : uniq [-udc [+n]-n][input[output]]

39) wc : word count, 텍스트 파일에 담겨져 있는 문자 수, 단어 수 및 줄 수를 화면에 출력

하는 명령이다.

형식 : wc file(s)

예) wc fnames ? fnames의 줄 수, 문자 수, 단어 수를 보여줌.

40) bc : 간단한 산술 계산을 할 수 있게 한다.

41) enable, disable : 프린터의 사용을 허용 혹은 불가능하도록 설정한다.

42) factor : 지정된 정수를 소인수 분해하여 화면에 출력한다.

형식 : factor [integer]

43) mesg : message, 다른 사용자가 메시지를 보낼 때 수신여부를 결정한다.

형식 : 1. mseg -n : 수신 거부

2. mesg -y : 수신 허락

44) mount : 이미 만들어져 있는 파일 시스템을 연결 혹은 load 하는 명령어이다.

형식 : mount [-v|-p]

45) od : 지정된 파일의 내용을 8진수로 점프하여 출력한다.

형식 : od [-bcfosx] file [<+>offset<.><b>]

46) passwd : password, 자신의 암호를 등록하거나 변경할 때 사용된다.

예) passwd note: 실행이 안될 때는 "/bin/passwd"로 실행.

47) stty : 현재 단말기나 콘솔의 입/출력 선택 항목을 설정한다.

형식 : stty [-a][-g][option]

예) stty erase ^? ^?은 [Backspace] key

48) tee : 파이프를 접속한다.

형식 : tee [-l][-a] file(s)

49) tr : translate, 특정 문자들을 삭제하거나 치환하여 표준 출력으로 내보내는 명령이다.

형식 : tr [option][string [string2]]

option : -d string1에 있는 문자들을 제거하라.

-s string2에 있는 문자가 여러번 나타나면 하나로 압축하라.

50) wall : write all, 모든 사용자에게 동일한 메시지를 전송한다.

형식 : wall [string]

51) write : 다른 사용자에게 1대1 메시지를 전성한다.

형식 : write user[terminal]


52) chgrp : change group, 지정된 파일의 소유권자 그룹을 바꾸는 명령이다.

형식 : chgrp group file

53) chmod : change mode, 지정된 파일에 대한 사용권한을 변경하고자 할 때 사용된다.

형식 : chmod [mode] file

mode : u(ser), g(roup), o(ther), a(ll)

+(허가), -(취소)

r(ead, 읽기), w(rite, 쓰기), x(execute, 실행)

4 (rwx=100) 혹은 a+r : 읽기 허가

3 (rwx=011) 혹은 a+w : 쓰기 허가

1 (rwx=001) 혹은 a+x : 실행(탐색)허가

예) chmod a+rwx fname 파일 fname을 모든 사용자(all)가 읽기(r), 쓰기(w), 실행(x).

chmod go-rwx mail 디렉토리 mail의 그룹(g), 타 사용자(o)가 읽기(r), 쓰기(w), 실행

(x) 허가를 취소(-) 함.

54) chown : change owner, 파일의 소유권자를 변경한다.

형식 : chown owner file

55) more : file의 내용을 page 단위로 보여준다. DOS의 ‘type | more’와 비슷.

형식 : more file

예) more fname ? 텍스트 형식의 파일 fname의 내용을 보여줌.

56) whereis : 명령어가 있는 위치(디렉토리)를 보여줌.

형식 : whereis command_name <== command_name 명령어의 실행 파일이 어디에

있는지 찾는다.

57) ps : processes, 현재 실행중인 process를 보여준다.

형식 : ps [-auxel]

예) ps 사용자(소유자, login id)의 프로세스만 보여줌.

ps aux 시스템의 모든 프로세스를 보여줌, 원래는 “ps -aux”로 해야 함.

58) logout : 연결 끊기(원격 접속 마침)

59) man : manual, 도움말

형식 : man command

예) man ls

60) date : 오늘 날짜를 보여줌. 관리자는 날짜를 바꿀 수 있음.

61) w : who, 현재 로긴 사용자들을 보여줌.

who

62> finger : 사용자의 정보를 보여줌.

형식 : finger [id]


63> history : 사용자가 실행한 명령어들을 보여줌.

';' 여러 명령문을 순서대로 각각 실행.

예) more filename; cd dname; more file2 <== 세 명령을 순서대로 실행.

redirection : 명령의 실행 결과는 보통 표준 입/출력(stdin/stdout=keyboard/monitor),

> fn : 명령 실행 결과를 파일(fn)로 저장

< fn : 파일 fn으로부터 읽어들임,

>> fn 기존 파일 fn 뒤에 추가.

예) cat file1 > file3 <== file1의 내용을 file3에 저장.

cat file2 >> file3 file2의 내용을 file3에 추가.

7) pipeline : 한 명령의 실행 결과(표준 출력)를 다른 명령의 입력으로 받아 이어서 실행

예) ls -l | more <= directory 목록을 페이지 단위로 보여줌.

w | wc 현재 로긴 사용자 출력 내용의 줄수, 단어수, 문자수를 보여줌.

8) ^C [CTRL-C] 명령 실행 정지(stop)

^Z 일시 정지('fg' 복귀 명령)

^D exit


11. 패턴이 포함된 파일 보여주기

grep : file에서 특정한 패턴을 찾는데 사용되면 , 그 패턴을 포함하고 있는 모든 행을 출

력한다.

(DOS의 find "text" [d:][path][filename]와 비슷)

형식 : grep [option] limited regular expression [file]

option : -v 패턴(expression)에 일치하지 않는 줄 모드 출력

-c 일치하는 줄의 개수를 출력

-l 최소한 하나의 일치가 있는 file 이름만 출력

-n line number print

예) grep text a* <- a로 시작되는 모든 파일에서 “text”가 들어있는 줄을 모두 보여준다.

grep "text.mp*" * <- 현재 작업 디렉토리의 모든 파일에서 "text.mp"로 시작하는 모든

파일의

파일명과 해당 줄을 보여줌(출력).


12. 파일 찾기

find : 어떤 파일이 어떤 디렉토리에 존재하는지 찾아준다.

형식 : find pathname_list expression

find 디렉토리명 -name 파일명 해당 디렉토리명(부 디렉토리 모두 포함)에서 파일


명을 찾음.

- pathname_list에서 expression을 만족하는 파일을 찾는다.

예) find . -name mail 현 디렉토리(부 디렉토리 포함) 안에“mail”이라는 이름(디렉토리

나 파일)을

찾아 전 경로(full path)를 보여줌(dos의 “dir /s mail”과 같음).

$ find ~ -name "*.bak" 홈 디렉토리 내(sub dir. 포함)에서 확장자가 "bak"인 모든 파일

을 보여줌.


13. 실행 프로세스(작업, 프로그램) 보기

$ ps 본인(로긴 사용자) 프로세스 만 보임.

$ ps aux 모든 실행 프로세스 보임, PID, name, time ... 정보

$ ps aux | grep sendmail 프로세스 중에서 'sendmail'이라는 프로세스(서비스)가 있는지

(실행) 보임.

$ ps aux | grep startx 프로세스 중에서 'startx'라는 프로세스가 있는지 보임.

$ pstree 모든 프로세스의 주종관계(부/자 프로세스)를 트리 형식으로 보임.

부팅시 첫 번째로 실행되는 프로세스는 'init'(1 번 PID)이다.

PID는 프로그램 실행시 고유 번호가 주어지며, 새로운 프로세스가 생성


될 때 마다


1씩 증가한다.


$ pstree 프로세스들을 트리구조(parent,child)로 보임.


14. permission(파일 허가권, Unix명령어기초와 Unix Commands 'chmod' 참조)

chmod : 지정된 파일에 대한 사용권한을 변경하고자 할 때 사용된다.

형식 : chmod [mode] file

mode : u(ser), g(roup), o(ther), a(ll)

+(허가), -(취소)

r(ead, 읽기), w(rite, 쓰기), x(execute, 실행)

4 (rwx=100) 혹은 a+r : 읽기 허가

3 (rwx=011) 혹은 a+wx: 쓰기,실행 허가

1 (rwx=001) 혹은 a+x : 실행(탐색)허가

예) chmod a+rwx fname ? 파일 fname을 모든 사용자(all)가 읽기(r), 쓰기(w), 실행(x).


chmod go-rwx mail ? 디렉토리 mail의 그룹(g), 타 사용자(o)가 읽기(r), 쓰기(w), 실행

(x)

허가를 취소(-) 함.

* sticky bit: x -> t, directory에만 적용되며, x 대신 t로 되어 있는 디렉토리 내 파일은

해당 파일 소유자만 삭제나 파일명을 변경할 수 있다. 다른 사용자는 해당 파일명을

바꾸거나

삭제할 수 없다. 목적은 공용 디렉토리에서 타인의 파일 삭제를 방지하기 위함. 'T'는

sticky

bit가 on이고, 실행모드(x)가 off일 때 보이며, sticky bit가 정의되지 않음과 같다.

예) chmod 1777 ~/tmp or chmod a=rwxt ~/tmp ( * a+rwt로 하면 T로 됨.)

* setuid, setgid: x -> s, 해당 파일 실행시에 파일 소유자의 권한(혹은 그룹)으로 실행.

(x로 되어 있는 파일은 실행자의 권한으로 실행 함)

Comments