[2011-2] 시스템 프로그래밍 [ 리눅스 ] 기본 명령어
-
Upload
keith-alexander -
Category
Documents
-
view
99 -
download
0
description
Transcript of [2011-2] 시스템 프로그래밍 [ 리눅스 ] 기본 명령어
[2011-2] 시스템 프로그래밍
[ 리눅스 ] 기본 명령어
담당교수 : 최 윤 정
2011. 11. 8
2
Log-in / log-out
File 관련 명령어
Re-direction
Network 명령어
압축 관련 명령어
VI 에디터
Compile 명령어 gcc
^Z , ^D, ^C 의 의미
Shall
** 개인적으로 공부해 두어야 할 부분입니다 .
3
Linux 의 소개 Linux 의 정의
컴퓨터에서 프로그램을 실행시키고 자원을 관리하는 운영체제의 일종 주로 대형 서버나 Workstation 에서 사용됨 System V 계열과 BSD 계열이 있음 PC 에서 사용하는 Linux 역시 UNIX 계열의 OS 임
Linux 의 특징 Multi-user : 다중 사용자의 사용 가능 Multi-tasking : 사용자가 여러 프로그램을 동시 실행 가능 Multi-choice : 다양한 사용자 인터페이스의 지원 Hierarchical File Structure 이식성 (Portability) 이 용이 컴퓨팅 환경의 확장 (Scalability) 이 용이
4
Linux 시스템의 구조
Kernel
Shell
Utilities
Communications Networking
SoftwareDevelopment
InformationManagement
TextProcessing
Additional Utilities
5
Login
login Consol 이나 Terminal 을 이용해서 Linux 서버에 접속하는 과정 Linux 가 Multi-user 환경이기 때문에 각각의 사용자들의 정보를
보호하기 위함
login 과정 telnet < 자신이 접속하고자 하는 서버 이름 >
예 ) telnet home.konkuk.ac.kr 예 ) putty 로 sslab 에 접속하기
login: < 사용자 계정 > 예 ) login : bkkim Password: < 사용자 계정 비밀번호 > 예 ) password : ( 활성화 되지 않음 )
6
Login (cont.)
Unix OS 버전login 프롬프트
Password 프롬프트
Root 메시지
자신의 banner 메시지
초기 프롬프트
마지막 종료시간접속 주소 , 서버 환경
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 - , +
8
Linux 기본 명령어 (cont.)
passwd (change login passwd) 패스워드를 바꾸는 명령 영문 , 숫자를 섞어서 6~8 자 내외
/etc/default/passwd file 에서 정의하고 있음 첫번째로 숫자나 특수문자가 올 수 없음
exit, logout 접속을 종료할 때 사용
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 현재 시스템에 로그인한 사용자 계정 조회
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 이동
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 을 찾을 때 )
12
Linux 기본 명령어 (cont.)
cat 파일 내용 출력하거나 텍스트파일 생성 cat [-option] [filename]
touch 비어있는 새로운 파일을 생성 파일의 액세스 시간이나 갱신 시간을 수정 touch [filename]
13
whereis , which, whatis, man
명령어에 대한 도움말 .
직접 수행해 보세요
#whereis ls
#which ls
#whatis ls
#man ls
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 의 내용 변경됨
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 : 내용이 추가됨
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
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] 은 아주 강력하고도 위험한 명령임 .
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 로 시작하는 모든 문자열
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
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
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 . . .
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 로 바꿈
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 사용 시 킬로바이트 단위로 보여줌
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 검색
25
정보 검색 명령 (cont.)
file (display file type) - 파일 형의 유추 매개변수로 지정된 파일에 어떤 형의 정보가 저장되는지를 확인 파일의 앞부분 1000 바이트 정도를 조사하여 파일의 종류가 무엇인지를 알려줌 file [filename] file test file *
현재 디렉토리에 있는 모든 파일 type 확인 od (octal dump)
사용자가 파일 내에 어떤 2 진 코드가 포함되어 있는지를 정확하게 확인하기 위해 사용
od [filename] od -c test1
ASCII 형식으로 덤프하는 방식
26
압축 명령어 tar (crete tape archives, and add or extract files)
file 을 묶어주는 명령 ( 압축은 하지 않음 ) file 을 묶을 때
tar cvf [ 만들 filename.tar] [ 압축하고자 하는 대상 ] file 을 풀 때
tar xvf [ 풀고자 하는 filename] file 을 풀지 않고 내용만 보고자 할 때
tar tvf [ 보고자 하는 filename]
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 이 됨 .
28
압축 명령어 (cont.)
pack file 압축명령
Huffman 압축방법 사용 pack -f test1 자동적으로 확장자 .z 가 붙음 option
-f : 강제적으로 파일을 압축 - : 압축하는 여러 통계 값을 출력 ( 디폴트는 압축률 )
unpack 압축된 파일을 해제 unpack test1
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 기능 제공
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 을 보여줌
31
31
< 주의 > : rm(remove)
rm [ 옵션 ] 파일명 ( 예 ) rm –d test # 디렉토리 삭제 ( 예 ) rm –f test
# 삭제할 것인가라는 메시지 없이 그대로 강제 삭제 ( 예 ) rm –r test
# 하위 디렉토리를 포함한 파일들을 모두 삭제 ( 예 ) rm –i test
# 삭제 시 일일이 삭제할 것인지 물음
32
32
du(disk usage)
du [ 옵션 ] 디렉토리 ( 예 ) du –k ./
# 현 위치 , 그 이하의 모든 디렉토리를 KB 크기로 나열 ( 예 ) du –sh
# 총량을 알기 쉽게 M 단위로 표현해줌
33
33
df(disk free)
df [ 옵션 ] 디렉토리 ( 예 ) df -i ./ # 파일 크기를 inode 로 디스크 정보 표시 ( 예 ) df –k ./ #KB 로 표시 ( 예 ) df –T ./ # 파일 시스템 종류 ( 예 ) df –t ./
#fstype 값을 가진 파일 시스템에 대한 정보 ( 예 ) df –h ./
# 쉬운 용량 표시 단위로 표시
34
34
ps 와 kill
ps : 프로세스 보기
kill [ 옵션 ] 시그널 kill –HUP 시그널 # 프로세스를 재활성화 한다 kill -9 시그널 # 프로세스를 강제로 종료시킨다
35
35
fsck(file system check)
fsck –t 파일시스템유형 장치
36
36
shutdown
shutdown < 옵션 > < 시간 > [ 경고 메시지 ] ( 예 ) shutdown –h +7
#7 분 후에 셧다운 후 시스템 정지 ( 예 ) shutdown –r now
# 지금 바로 리부팅하기
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 가 있는 라인만 표시