[2011-2] 시스템 프로그래밍 [ 리눅스 ] 기본 명령어

37
[2011-2] 시시시 시시시시시 [ 시시시 ] 시시 시시시 담담담담 : 담 담 담 2011. 11. 8

Upload: keith-alexander

Post on 31-Dec-2015

91 views

Category:

Documents


0 download

DESCRIPTION

[2011-2] 시스템 프로그래밍 [ 리눅스 ] 기본 명령어. 담당교수 : 최 윤 정 2011. 11. 8. Log-in / log-out File 관련 명령어 Re-direction Network 명령어 압축 관련 명령어 VI 에디터 Compile 명령어 gcc ^Z , ^D, ^C 의 의미 Shall ** 개인적으 로 공부해 두어야 할 부분입니다. Linux 의 소개. Linux 의 정의 컴퓨터에서 프로그램을 실행시키고 자원을 관리하는 운영체제의 일종 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

[2011-2] 시스템 프로그래밍

[ 리눅스 ] 기본 명령어

담당교수 : 최 윤 정

2011. 11. 8

Page 2: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

2

Log-in / log-out

File 관련 명령어

Re-direction

Network 명령어

압축 관련 명령어

VI 에디터

Compile 명령어 gcc

^Z , ^D, ^C 의 의미

Shall

** 개인적으로 공부해 두어야 할 부분입니다 .

Page 3: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

3

Linux 의 소개 Linux 의 정의

컴퓨터에서 프로그램을 실행시키고 자원을 관리하는 운영체제의 일종 주로 대형 서버나 Workstation 에서 사용됨 System V 계열과 BSD 계열이 있음 PC 에서 사용하는 Linux 역시 UNIX 계열의 OS 임

Linux 의 특징 Multi-user : 다중 사용자의 사용 가능 Multi-tasking : 사용자가 여러 프로그램을 동시 실행 가능 Multi-choice : 다양한 사용자 인터페이스의 지원 Hierarchical File Structure 이식성 (Portability) 이 용이 컴퓨팅 환경의 확장 (Scalability) 이 용이

Page 4: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

4

Linux 시스템의 구조

Kernel

Shell

Utilities

Communications Networking

SoftwareDevelopment

InformationManagement

TextProcessing

Additional Utilities

Page 5: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

5

Login

login Consol 이나 Terminal 을 이용해서 Linux 서버에 접속하는 과정 Linux 가 Multi-user 환경이기 때문에 각각의 사용자들의 정보를

보호하기 위함

login 과정 telnet < 자신이 접속하고자 하는 서버 이름 >

예 ) telnet home.konkuk.ac.kr 예 ) putty 로 sslab 에 접속하기

login: < 사용자 계정 > 예 ) login : bkkim Password: < 사용자 계정 비밀번호 > 예 ) password : ( 활성화 되지 않음 )

Page 6: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

6

Login (cont.)

Unix OS 버전login 프롬프트

Password 프롬프트

Root 메시지

자신의 banner 메시지

초기 프롬프트

마지막 종료시간접속 주소 , 서버 환경

Page 7: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

7

Linux 기본 명령어 Format of UNIX System Commands

command argument

options expression filename(s)

filename 4 up to 14 characters long4 a-z , 0-9 , _ , . , -4 uppercase letters and lowercase letters

option4 a literal4 - , +

Page 8: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

8

Linux 기본 명령어 (cont.)

passwd (change login passwd) 패스워드를 바꾸는 명령 영문 , 숫자를 섞어서 6~8 자 내외

/etc/default/passwd file 에서 정의하고 있음 첫번째로 숫자나 특수문자가 올 수 없음

exit, logout 접속을 종료할 때 사용

Page 9: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

9

Linux 기본 명령어 (cont.)

who (who is logged in, what are they doing) 현재 시스템에 로그인하고 있는 사림들의 리스트를 출력 Username 접속 방법 login time 접속 IP Address 등

whoami 현재의 user name 을 나타내 줌

finger who 와 유사하지만 더 많은 정보를 얻을 수 있음 finger -i finger -b finger -q

users 현재 시스템에 로그인한 사용자 계정 조회

Page 10: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

10

Linux 기본 명령어 (cont.)

id user id 와 user 가 속한 group id 를 알려줌

cal [month] [year] cal 3 2008 => 2008 년 3 월 달력을 보여줌

env 자신의 설정된 환경 변수들을 보여줌

pwd 현재 자신의 directory 를 보여줌

cd (change working directory) cd => user 의 Home directory 로 이동 cd .. => 현재 directory 의 상위 directory 로 이동 cd [directory 경로 ] => 정해진 directory 로 이동 cd ~ 계정명 => 다른 계정의 home directory 이동

Page 11: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

11

Linux 기본 명령어 (cont.)

ls (list contents of directory) 현재의 directory 내용을 보여줌 (DOS 의 dir 명령과 같다 ) ls [-option] [filename] option

-a : 숨겨진 파일 (‘.’ 으로 시작하는 파일 ) 까지 보여줌 -l : file 에 대한 자세한 내용을 보여줌

-rw-r-- r-- 1 ghkim prof 3059 8 월 12 일 12:24 pr 허가 상태 링크수 소유자 Group 크기 생성된 날짜 시간

-R : 하위 directory 의 내용까지 보여줌 root directory 에서는 사용하지 말 것 .

-s : file 의 대략적인 크기를 보여줌 -t : 최근의 사용순서대로 정렬하여 보여줌

( 최근에 사용한 file 을 찾을 때 )

Page 12: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

12

Linux 기본 명령어 (cont.)

cat 파일 내용 출력하거나 텍스트파일 생성 cat [-option] [filename]

touch 비어있는 새로운 파일을 생성 파일의 액세스 시간이나 갱신 시간을 수정 touch [filename]

Page 13: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

13

whereis , which, whatis, man

명령어에 대한 도움말 .

직접 수행해 보세요

#whereis ls

#which ls

#whatis ls

#man ls

Page 14: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

14

redirection & pipe

redirection 입출력 방향을 변경시킴

pipe 한번에 여러가지 명령을 처리할수 있음

출력 방향 변경 (‘>’) 우선 file 을 생성

touch touch_test : 빈 file 생성 cat touch_test : 아무것도 나타나지 않음 ls –al > touch_test : ls –al 의 출력을 touch_test 로 보냄 .

그러나 화면상엔 변화가 없음 cat touch_test : touch_test 의 내용 변경됨

Page 15: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

15

redirection & pipe(cont.)

출력 방향 변경 및 추가 (‘>>’) ls –al >> touch_test : 역시 화면 변화 없음 cat touch_test : test file 에 내용 추가됨 rm test* : test 로 시작하는 모든 파일 지움

cat 을 이용하여 편집하는 방법 cat > test 이것은 test 입니다 . : 문자열 입력후 enter ^Ctrl-D cat test : ??

cat 을 이용한 문자열 추가 방법 cat >> test 이번엔 추가입니다 . : 문자열 입력후 enter ^Ctrl-D cat test : 내용이 추가됨

Page 16: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

16

redirection & pipe(cont.)

입력 방향 변경 (‘<‘) wc(display a count of lines, words and characters in a

file) File 안의 line 수와 단어 수 그리고 문자의 수를 세를 명령 option : -l : 라인수 – w : 단어의수 – c : 문자의 수

wc test wc < test cat test | wc : 모든 라인 , 단어 , 문자의 수가 출력됨

Pipe : 파이프 Pipe 는 명령의 출력을 다른 명령으로 연결할 때에 사용됨

who > wc –l ls –al who | wc –l

Page 17: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

17

File 관련 명령어 mkdir (make directory)

새로운 directory 를 만드는 명령 mkdir [ 디렉토리명 ]

rmdir (remove directory) Directory 를 삭제하는 명령

mv (move file) File 을 옮기는 명령 , 사용법은 cp 와 같음 . Mv 명령으로 file 명을 바꿀 수 있음

예 ) mv test.file test.test

rm (remove) File 을 지우는 명령 예 ) rm test* rm [–r option] 은 아주 강력하고도 위험한 명령임 .

Page 18: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

18

File 관련 명령어 (cont.)

cp (copy files) File 을 복사하는 명령 예 ) cp [ 복사할 file name] [ 복사될 경로 ] cp 명령은 Meta 문자 (‘*’, ‘?’) 의 사용이 가능함 예 ) cp test* ../

echo (echo argument) 입력된 인수를 반향 ( 반복 ) 한다 . 예 ) echo [ 문자열 ]

echo * : ls 와 같은 기능을 함 . ‘*’ 는 임의의 문자를 의미 echo ? : ls ? 와 같음 ‘ ?’ 는 한 문자를 의미 echo t* : t 로 시작하는 모든 문자열

Page 19: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

19

File 관련 명령어 (cont.)

chmod (change mode) : 파일 액세스 모드의 변경 형식 chmod mode files(s) 기능 파일의 사용 허가권 ( 모드 ) 를 변경한다 . option

mode u g o a user group other all(ugo) + add permission - remove permission = reset permission

permission set number 0 none 1 execute 2 write 4 read

Page 20: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

20

File 관련 명령어 (cont.)

access permission r read w write x execute

예 ) chmod 644 test chmod 755 test chmod a+x test chmod o-w test

Page 21: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

21

File 접근 권한의 의미

Permission File Directory

r read

w write

x execute

read a file

write a file

execute a shell script

list files in . . .

create file in . . .rename file in . . .delete file . . .

read a file in . . .write to a file in . . .execute a file in . . .execute a shell script in . . .

Page 22: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

22

File 관련 명령어 (cont.)

chown (change file ownership) File 의 소유권을 다른 사람에게 넘겨주는 명령 예 ) chown [ 소유자 ] [file name] Root 사용자만 가능

chgrp (change file group ownership) File 의 소유권을 다른 그룹으로 넘겨주는 명령 예 ) chgrp [group] [filename or directory] Root 사용자만 사용 가능

chsh (change shell) 자신의 shell 을 바꾸는 명령 시스템에 따라 명령이 없는 경우도 있음 ‘sh’ 는 bourne shell, ‘ksh’ 은 korn shell, ‘csh’ 은 C shell 로 바꿈

Page 23: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

23

File 관련 명령어 (cont.)

touch (change file access and modification times) file 의 최종 수정시간을 변경시켜줌 예 ) touch [filename]

만약 file name 에 해당하는 file 이 없는 경우 file 생성 du (disk usage)

현 directory 의 하위 directory 들이 사용하고 있는 디스크 용량을 보여줌

option -s : 사용 총량만을 알려줌 -a : 모든 file 의 사용량을 알려줌

df (disk free) 디스크의 총량과 사용량 남은 량 들을 알려줌 -k option 사용 시 킬로바이트 단위로 보여줌

Page 24: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

24

정보 검색 명령 (cont.)

find (find files) 찾고자 하는 file 의 위치를 알려주는 명령 find [path] [-option] [pattern] option

-atime [n] : file 이 n 일 전에 touch( 접근 ) 되었으면 ‘ true’ -ctime [n] : file 이 n 일 전에 생성되었으면 ‘ true’ -exec [command] : 명령을 실행 -mtime [n] : file 이 n 일 전에 수정되었으면 ‘ true’ -name [pattern] : 패턴에 맞는 file 명이면 ‘ true’ -type [file 종류 ] : file 이 종류가 맞으면 ‘ true’

‘d’ : directory, ‘f ’ : file, ‘l’ : link -user [name] : file 의 사용자가 name 이면 ‘ true’

find . –name “*.c” : 현재 디렉토리 밑에 .c 로 끝나는 file 검색 find / –user “ghkim” : file 의 소유자가 ghkim 인 모든 file 검색

Page 25: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

25

정보 검색 명령 (cont.)

file (display file type) - 파일 형의 유추 매개변수로 지정된 파일에 어떤 형의 정보가 저장되는지를 확인 파일의 앞부분 1000 바이트 정도를 조사하여 파일의 종류가 무엇인지를 알려줌 file [filename] file test file *

현재 디렉토리에 있는 모든 파일 type 확인 od (octal dump)

사용자가 파일 내에 어떤 2 진 코드가 포함되어 있는지를 정확하게 확인하기 위해 사용

od [filename] od -c test1

ASCII 형식으로 덤프하는 방식

Page 26: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

26

압축 명령어 tar (crete tape archives, and add or extract files)

file 을 묶어주는 명령 ( 압축은 하지 않음 ) file 을 묶을 때

tar cvf [ 만들 filename.tar] [ 압축하고자 하는 대상 ] file 을 풀 때

tar xvf [ 풀고자 하는 filename] file 을 풀지 않고 내용만 보고자 할 때

tar tvf [ 보고자 하는 filename]

Page 27: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

27

압축 명령어 (cont.)

compress File 압축 명령 예 ) compress [filename] : filename.Z 가 생성됨

compress temp.tar : temp.tar.Z 라는 file 이 생성됨 zcat temp.tar

표준출력에 압축되기 전의 내용을 보여줌 option

-v : 압축률을 보여줌 예 ) compress –v temp.tar

uncompress File 압축 해제 명령 예 ) uncompress [ 압축된 filename] : 원래의 file 이 됨 .

Page 28: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

28

압축 명령어 (cont.)

pack file 압축명령

Huffman 압축방법 사용 pack -f test1 자동적으로 확장자 .z 가 붙음 option

-f : 강제적으로 파일을 압축 - : 압축하는 여러 통계 값을 출력 ( 디폴트는 압축률 )

unpack 압축된 파일을 해제 unpack test1

Page 29: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

29

압축 명령어 (cont.)

gzip File 압축 명령 gzip [ 압축할 filename]

gzip test1 확장자 “ gz” 가 붙은 test1.gz 가 생성됨

gzip -v test2 압축률을 보여주면서 압축함

gzip test* test 로 시작되는 모든 파일들을 압축함

gzip -d [ 압축된 filename] 압축해제 (decompress) 명령 gzip –d test1.gz

gzip –h gzip 에 대한 help 기능 제공

Page 30: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

30

Text file utility – head, tail

head (display first a few lines of files) file 의 처음 몇 개의 행을 보여주는 명령

기본으로 10 라인을 보여줌 head [-n] [filename]

‘n’ 개의 line 을 보여줌 tail (deliver the last part of a file)

file 의 끝부터 몇 개의 행을 보여주는 명령 tail [-n] [filename]

끝에서 ‘ n’ 개의 line 을 보여줌

Page 31: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

31

31

< 주의 > : rm(remove)

rm [ 옵션 ] 파일명 ( 예 ) rm –d test # 디렉토리 삭제 ( 예 ) rm –f test

# 삭제할 것인가라는 메시지 없이 그대로 강제 삭제 ( 예 ) rm –r test

# 하위 디렉토리를 포함한 파일들을 모두 삭제 ( 예 ) rm –i test

# 삭제 시 일일이 삭제할 것인지 물음

Page 32: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

32

32

du(disk usage)

du [ 옵션 ] 디렉토리 ( 예 ) du –k ./

# 현 위치 , 그 이하의 모든 디렉토리를 KB 크기로 나열 ( 예 ) du –sh

# 총량을 알기 쉽게 M 단위로 표현해줌

Page 33: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

33

33

df(disk free)

df [ 옵션 ] 디렉토리 ( 예 ) df -i ./ # 파일 크기를 inode 로 디스크 정보 표시 ( 예 ) df –k ./ #KB 로 표시 ( 예 ) df –T ./ # 파일 시스템 종류 ( 예 ) df –t ./

#fstype 값을 가진 파일 시스템에 대한 정보 ( 예 ) df –h ./

# 쉬운 용량 표시 단위로 표시

Page 34: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

34

34

ps 와 kill

ps : 프로세스 보기

kill [ 옵션 ] 시그널 kill –HUP 시그널 # 프로세스를 재활성화 한다 kill -9 시그널 # 프로세스를 강제로 종료시킨다

Page 35: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

35

35

fsck(file system check)

fsck –t 파일시스템유형 장치

Page 36: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

36

36

shutdown

shutdown < 옵션 > < 시간 > [ 경고 메시지 ] ( 예 ) shutdown –h +7

#7 분 후에 셧다운 후 시스템 정지 ( 예 ) shutdown –r now

# 지금 바로 리부팅하기

Page 37: [2011-2]  시스템 프로그래밍 [ 리눅스 ]  기본 명령어

37

37

grep(get regular expression & print)

특정한 문자열을 찾아주는 grep

grep 옵션 패턴 파일명 옵션 -c : 일치되는 라인의 수만을 출력 -i : 패턴에서 대소문자 무시 -l : 패턴에 일치하는 파일의 파일명만 출력 -n : 라인 번호 포함

예 ) grep –i love test.txt : test.txt 파일에서 대소문자를 무시하고 love 를 포함하는 라인을 찾아줌

예 ) ls –al | grep test : ls 의 결과 중 test 가 있는 라인만 표시