400 likes | 706 Views
[2011-2] 시스템 프로그래밍 [ 리눅스 ] 기본 명령어. 담당교수 : 최 윤 정 2011. 11. 8. Log-in / log-out File 관련 명령어 Re-direction Network 명령어 압축 관련 명령어 VI 에디터 Compile 명령어 gcc ^Z , ^D, ^C 의 의미 Shall ** 개인적으 로 공부해 두어야 할 부분입니다. Linux 의 소개. Linux 의 정의 컴퓨터에서 프로그램을 실행시키고 자원을 관리하는 운영체제의 일종
E N D
[2011-2] 시스템 프로그래밍[리눅스] 기본 명령어 담당교수 : 최 윤 정 2011. 11. 8
Log-in / log-out • File 관련 명령어 • Re-direction • Network 명령어 • 압축 관련 명령어 • VI 에디터 • Compile 명령어 • gcc • ^Z , ^D, ^C 의 의미 • Shall • ** 개인적으로 공부해 두어야 할 부분입니다.
Linux의 소개 • Linux의 정의 • 컴퓨터에서 프로그램을 실행시키고 자원을 관리하는 운영체제의 일종 • 주로 대형 서버나 Workstation 에서 사용됨 • System V계열과 BSD계열이 있음 • PC 에서 사용하는 Linux역시 UNIX 계열의 OS임 • Linux의 특징 • Multi-user : 다중 사용자의 사용 가능 • Multi-tasking : 사용자가 여러 프로그램을 동시 실행 가능 • Multi-choice : 다양한 사용자 인터페이스의 지원 • Hierarchical File Structure • 이식성(Portability)이 용이 • 컴퓨팅 환경의 확장(Scalability) 이 용이
Utilities Shell Additional Utilities Communications Networking Kernel Text Processing Software Development Information Management Linux 시스템의 구조
Login • login • Consol이나 Terminal을 이용해서 Linux 서버에 접속하는 과정 • Linux가 Multi-user 환경이기 때문에 각각의 사용자들의 정보를 보호하기 위함 • login 과정 • telnet <자신이 접속하고자 하는 서버 이름> • 예) telnet home.konkuk.ac.kr • 예) putty로 sslab에 접속하기 • login: <사용자 계정> • 예) login : bkkim • Password: <사용자 계정 비밀번호> • 예) password : (활성화 되지 않음 )
Unix OS 버전 login 프롬프트 Password 프롬프트 마지막 종료시간 접속 주소, 서버 환경 Root 메시지 자신의 banner 메시지 초기 프롬프트 Login (cont.)
Linux 기본 명령어 • options expression filename(s) • filename • up to 14 characters long • a-z , 0-9 , _ , . , - • uppercase letters and lowercase letters • option • a literal • - , + • Format of UNIX System Commands • command argument
Linux 기본 명령어(cont.) • passwd (change login passwd) • 패스워드를 바꾸는 명령 • 영문, 숫자를 섞어서 6~8자 내외 • /etc/default/passwd file 에서 정의하고 있음 • 첫번째로 숫자나 특수문자가 올 수 없음 • exit, logout • 접속을 종료할 때 사용
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 • 현재 시스템에 로그인한 사용자 계정 조회
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 이동
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을 찾을 때)
Linux 기본 명령어(cont.) • cat • 파일 내용 출력하거나 텍스트파일 생성 • cat [-option] [filename] • touch • 비어있는 새로운 파일을 생성 • 파일의 액세스 시간이나 갱신 시간을 수정 • touch [filename]
whereis , which, whatis, man 명령어에 대한 도움말. 직접 수행해 보세요 #whereisls #which ls #whatisls #man ls
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 의 내용 변경됨
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 : 내용이 추가됨
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
File 관련 명령어 • mkdir (make directory) • 새로운 directory를 만드는 명령 • mkdir [디렉토리명] • rmdir (remove directory) • Directory를 삭제하는 명령 • mv (move file) • File을 옮기는 명령, 사용법은 cp와 같음. • Mv명령으로 file명을 바꿀 수 있음 • 예) mv test.filetest.test • rm (remove) • File을 지우는 명령 • 예) rm test* • rm [–r option]은 아주 강력하고도 위험한 명령임.
File 관련 명령어 (cont.) • cp (copy files) • File을 복사하는 명령 • 예) cp [복사할 file name] [복사될 경로] • cp 명령은 Meta 문자(‘*’, ‘?’)의 사용이 가능함 • 예) cp test* ../ • echo (echo argument) • 입력된 인수를 반향(반복)한다. • 예) echo [문자열] • echo * : ls와 같은 기능을 함. ‘*’는 임의의 문자를 의미 • echo ? : ls ? 와 같음 ‘?’는 한 문자를 의미 • echo t* : t로 시작하는 모든 문자열
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
File 관련 명령어(cont.) • access permission • r read • w write • x execute • 예)chmod 644 test chmod 755 test chmod a+x test chmod o-w test
File 접근 권한의 의미 Directory File Permission r read read a file list files in . . . w write write a file create file in . . . rename file in . . . delete file . . . execute a shell script x execute read a file in . . . write to a file in . . . execute a file in . . . execute a shell script in . . .
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로 바꿈
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 사용 시 킬로바이트 단위로 보여줌
정보 검색 명령(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 검색
정보 검색 명령(cont.) • file (display file type) -파일 형의 유추 • 매개변수로 지정된 파일에 어떤 형의 정보가 저장되는지를 확인 • 파일의 앞부분 1000 바이트 정도를 조사하여 파일의 종류가 무엇인지를 알려줌 • file [filename] • file test • file * • 현재 디렉토리에 있는 모든 파일 type 확인 • od (octal dump) • 사용자가 파일 내에 어떤 2진 코드가 포함되어 있는지를 정확하게 확인하기 위해 사용 • od [filename] • od -c test1 • ASCII 형식으로 덤프하는 방식
압축 명령어 • tar (crete tape archives, and add or extract files) • file을 묶어주는 명령(압축은 하지 않음) • file을 묶을 때 • tar cvf [만들 filename.tar] [압축하고자 하는 대상] • file을 풀 때 • tar xvf [풀고자 하는 filename] • file을 풀지 않고 내용만 보고자 할 때 • tar tvf [보고자 하는 filename]
압축 명령어(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이 됨.
압축 명령어(cont.) • pack • file 압축명령 • Huffman 압축방법 사용 • pack -f test1 • 자동적으로 확장자 .z가 붙음 • option • -f : 강제적으로 파일을 압축 • - : 압축하는 여러 통계 값을 출력(디폴트는 압축률) • unpack • 압축된 파일을 해제 • unpack test1
압축 명령어(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 기능 제공
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을 보여줌
<주의>: rm(remove) • rm [옵션] 파일명 • (예) rm–d test #디렉토리 삭제 • (예) rm–f test #삭제할 것인가라는 메시지 없이 그대로 강제 삭제 • (예) rm–r test #하위 디렉토리를 포함한 파일들을 모두 삭제 • (예) rm–i test #삭제 시 일일이 삭제할 것인지 물음
du(disk usage) • du [옵션] 디렉토리 • (예) du –k ./ #현 위치, 그 이하의 모든 디렉토리를 KB 크기로 나열 • (예) du –sh #총량을 알기 쉽게 M 단위로 표현해줌
df(disk free) • df [옵션] 디렉토리 • (예) df -i ./ #파일 크기를 inode로 디스크 정보 표시 • (예) df–k ./ #KB로 표시 • (예) df–T ./ #파일 시스템 종류 • (예) df–t ./ #fstype값을 가진 파일 시스템에 대한 정보 • (예) df–h ./ #쉬운 용량 표시 단위로 표시
ps 와 kill • ps : 프로세스 보기 • kill [옵션] 시그널 • kill –HUP 시그널 #프로세스를 재활성화 한다 • kill -9 시그널 #프로세스를 강제로 종료시킨다
fsck(file system check) • fsck –t 파일시스템유형 장치
shutdown • shutdown <옵션> <시간> [경고 메시지] • (예) shutdown –h +7 #7분 후에 셧다운 후 시스템 정지 • (예) shutdown –r now #지금 바로 리부팅하기
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가 있는 라인만 표시