Lecture 02: 리눅스사용 상지대학교컴퓨터공학과고광만 kkman@sangji.ac.kr http://compiler.sangji.ac.kr 2018
2.1 기본명령어
간단한명령어사용 $ date $ hostname $ uname $ who $ ls $ clear $ passwd 3
2.2 파일및디렉터리
파일의종류 l 일반파일 (ordinary file) 데이터를가지고있으면서디스크에저장 l 디렉터리 (directory)/ 폴더 (folder) 디렉터리 ( 폴더 ) 자체도하나의파일 한디렉터리는다른디렉터리들을포함하는계층구조 부모디렉터리는다른디렉터리들을서브디렉터리갖음 l 특수파일 (special file) 물리적인장치에대한내부적인표현 키보드 (stdin), 모니터 (stdout), 프린터등도파일처럼사용 5
디렉터리계층구조 l 유닉스의디렉터리는루트로부터시작하여계층구조 6
디렉터리계층구조 l 리눅스디렉터리 7
홈디렉터리 / 현재작업디렉터리 l 홈디렉터리 (home directory) 각사용자마다별도의홈디렉터리가존재 사용자가로그인하면홈디렉터리에서작업시작 l 현재작업디렉터리 (current working directory) 현재작업중인디렉터리 로그인하면홈디렉터리에서부터작업시작 8
디렉터리관련명령 l pwd(print working directory) 현재작업디렉터리를프린트 $ pwd l cd(change directory) 현재작업디렉터리를이동 $ cd [ 디렉터리 ] l mkdir(make directory) 새디렉터리를만듬 $ mkdir 디렉터리 9
디렉터리리스트 l ls(list) 디렉터리의내용을리스트 l $ ls cs1.txt l $ ls s 총 6 6 cs1.txt -s(size) l $ ls a... cs1.txt -a(all) 10
디렉터리리스트 l $ ls l -l(long) -rw-r--r-- 1 chang faculty 2088 4월 16일 13:37 cs1.txt l $ ls asl 총 10 2 drwxr-xr-x 2 chang faculty 512 4월 16일 13:37. 2 drwxr-xr-x 3 chang faculty 512 4월 16일 13:37.. 6 -rw-r--r-- 1 chang faculty 2088 4월 16일 13:37 cs1.txt 11
디렉터리관련명령어 명령어 의미 ls ls -a ls -asl mkdir cd 디렉터리 cd cd ~ cd.. pwd 파일및디렉터리리스트모든파일과디렉터리리스트모든파일자세히리스트디렉터리만들기디렉터리로이동홈디렉터리로이동홈디렉터리로이동부모디렉터리로이동현재작업디렉터리프린트 12
경로 (path) 명 l 파일이나디렉터리에대한정확한이름 절대경로명 상대경로명 l 절대경로명 (absolute pathname) 루트디렉터리로부터시작하여경로이름을정확하게적는것 l 상대경로명 (relative path name) 현재작업디렉터리부터시작해서경로이름을적는것 13
~ : 홈디렉터리. : 현재디렉터리.. : 부모드렉터리 14
파일내용리스트 l 파일내용출력과관련된다음명령어들 cat, more, head, tail, wc, 등 $ 명령어파일 $ 명령어파일 * $ more 파일 + 15
cat 명령어 l 파일내용출력 $ cat cs1.txt $ cat... ^D $ cat > cs1.txt... ^D 16
more/head/tail/wc l more 명령어 하나이상의파일이름을받을수있으며각파일의내용을페이지단위로출력 l head 명령어 파일의앞부분 (10 줄 ) 을출력 l tail 명령어 파일의뒷부분 (10 줄 ) 을출력한다. 17
l wc(word count) 파일에저장된줄, 단어, 문자의개수를세서출력 $ wc cs1.txt 38 318 2088 cs1.txt 18
cp 명령어 l $ cp 파일 1 파일 2 파일 1 의복사본파일 2 를현재디렉터리내에만듬 $ cp cs1.txt cs2.txt $ ls -l cs1.txt cs2.txt -rw-r--r-- 1 chang faculty 2088 4월 16일 13:37 cs1.txt -rw-r--r-- 1 chang faculty 2088 4월 16일 13:45 cs2.txt l $ cp 파일디렉터리 파일 1 의복사본을디렉터리내에만듬 $ cp cs1.txt /tmp 19
mv 명령어 l mv(move) 파일1의이름을파일2로변경한다. $ mv 파일1 파일2 $ mv cs2.txt cs3.txt $ ls -l -rw-r--r-- 1 chang faculty 2088 4월 16일 13:37 cs1.txt -rw-r--r-- 1 chang faculty 2088 4월 16일 13:56 cs3.txt l 파일을디렉터리내로이동 $ mv 파일디렉터리 $ mv cs3.txt /tmp 20
파일 / 디렉터리삭제 l rm(remove) 명령어명령줄인수로받은파일 ( 들 ) 을지운다. $ rm 파일 + $ rm cs1.txt l $ rm -r 디렉터리디렉터리내의모든파일및하위디렉터리들을단번에지운다. l rmdir(remove directory) 명령어명령줄인수로받은디렉터리 ( 들 ) 을지운다. $ rmdir 디렉터리 + 주의 : 디렉터리내에아무것도없어야한다. $ rmdir test 21
파일관련명령어 22
2.3 파일속성
파일속성 (file attribute) l 파일의이름, 타입, 크기, 소유자, 사용권한, 수정시간 $ ls -sl cs1.txt 6 -rw-r--r-- 1 chang faculty 2088 4월 16일 13:37 cs1.txt 24
사용권한 (permission mode) l 읽기 (r), 쓰기 (w), 실행 (x) 권한 l 파일의사용권한은소유자 (owner)/ 그룹 (group)/ 기타 (others) 로구분하여관리한다. l 예 소유자그룹기타 rw- r-- r-- 25
X 윈도우의 GNOME 데스크톱에서속성확인 기본속성 사용권한 26
chmod(change mode) l 파일혹은디렉터리의사용권한을변경하는명령어 $ chmod [-R] 사용권한파일 -R 옵션은디렉터리내의모든파일, 하위디렉터리에대해서도적용 l 사용권한 rw- rw- r-- l 2진수 : 110 110 100 l 8진수 : 6 6 4 l $ chmod 664 cs1.txt l [u g o a] + [+ - =][r w x] + l u(user), g(group), o(other), a(all) l 연산자 : +( 추가 ), -( 제거 ), =( 지정 ) l 권한 : r( 읽기 ), w( 쓰기 ), x( 실행 ) l $ chmod g+w cs1.txt 27
chown(change owner)/chgrp(change group) l chown 명령어파일이나디렉터리의소유자를변경 $ chown 사용자파일 $ chown [-R] 사용자디렉터리 l chgrp 명령어파일의그룹을변경 $ chgrp 그룹파일 $ chgrp [-R] 그룹디렉터리 l 파일의소유자또한슈퍼유저만이사용가능! 28
2.4 입출력재지정및파이프
출력재지정 (output redirection) l 명령어의표준출력내용을모니터에출력하는대신에파일에저장 $ 명령어 > 파일 $ who > names.txt 30
출력재지정예 l $ cat > list1.txt Hi! This is the first list. ^D l $ cat > list2.txt Hello! This is the second list. ^D 31
l $ cat list1.txt list2.txt > list3.txt l $ cat list3.txt Hi! This is the first list. Hello! This is the second list. 32
출력추가 l 명령어의표준출력을모니터대신에기존파일에추가 $ 명령어 >> 파일 $ cat >> list1.txt Bye! This is the end of the first list. ^D $ cat list1.txt Hi! This is the first list. Bye! This is the end of the first list. 33
입력재지정 (input redirection) l 명령어의표준입력을키보드대신에파일에서받음 $ 명령어 < 파일 $ wc < list1.txt 4 17 71 list1.txt 34
문서내입력 (here document) l 명령어의표준입력을단어가다시나타날때까지의내용으로 l 보통스크립트내에서입력을줄때사용 $ 명령어 << 단어... 단어 $ wc << end hello! word count end 2 420 35
파이프 (pipe) l 로그인된사용자들을정렬해서보여주기 $ who > names.txt $ sort < names.txt l $ 명령어 1 명령어 2 명령어 1 의표준출력을명령어 2 의표준입력으로바로받는다. $ who sort 36
2.5 후면처리및프로세스
전면처리 vs 후면처리 l 전면처리 명령어를입력하면명령어가전면에서실행되며명령어실행이끝날때까지쉘이기다려준다. l 후면처리 명령어들을후면에서처리하고전면에서는다른작업을할수있으면동시에여러작업을수행할수있다. $ 명령어 & 38
후면처리예 l $ (sleep 100; echo done) & [1] 8320 l $ find. -name test.c -print & [2] 8325 l $ jobs [1] + Running ( sleep 100; echo done ) [2] - Running find. -name test.c print 39
l $ fg % 작업번호 $ fg %1 ( sleep 100; echo done ) l 후면처리입출력 $ find. -name test.c -print > find.txt & $ find. -name test.c -print mail chang & $ wc < inputfile & 40
프로세스 (process) l 프로세스 (process) 실행중인프로그램 각프로세스는유일한프로세스번호 PID 를갖음 ps 명령어를사용하여나의프로세스들을볼수있다. $ ps PID TTY TIME CMD 8695 pts/3 00:00:00 csh 8720 pts/3 00:00:00 ps $ ps u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND chang 8695 0.0 0.0 5252 1728 pts/3 Ss 11:12 0:00 -csh chang 8793 0.0 0.0 4252 940 pts/3 R+ 11:15 0:00 ps u 41
ps aux $ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 2064 652? Ss 2011 0:27 init [5] root 2 0.0 0.0 0 0? S< 2011 0:01 [migration/0] root 3 0.0 0.0 0 0? SN 2011 0:00 [ksoftirqd/0] root 4 0.0 0.0 0 0? S< 2011 0:00 [watchdog/0]... root 8692 0.0 0.1 9980 2772? Ss 11:12 0:00 sshd: chang [pr chang 8694 0.0 0.0 9980 1564? R 11:12 0:00 sshd: chang@pts chang 8695 0.0 0.0 5252 1728 pts/3 Ss 11:12 0:00 -csh chang 8976 0.0 0.0 4252 940 pts/3 R+ 11:24 0:00 ps aux 42
kill 명령어 l 프로세스를강제적으로종료시키는명령어 $ kill 프로세스번호 $ kill % 작업번호 $ kill 8320 혹은 $ kill %1 [1] Terminated ( sleep 100; echo done ) 43
2.6 문서편집기
gedit l GNOME이제공하는 GUI 기반문서편집기 l 사용방법 [ 프로그램 ] -> [ 보조프로그램 ] -> [gedit 텍스트편집기 ] $ gedit [ 파일이름 ] & l 기능 파일 : 새로만들기, 열기, 저장닫기 편집 : 입력취소, 잘라내기, 복사붙여넣기 보기 : 도구모음, 상태표시줄, 전체화면 검색 : 찾기, 바꾸기 검사 : 맞춤법검사 문서 : 모두저장, 모두닫기 도움말 45
kwrite l KDE 데스크톱환경이제공하는 GUI 기반문서편집기 l 기능 파일 : 새문서, 열기, 저장, 편집 : 실행취소, 잘라내기, 복사붙여넣기 보기 : 새창, 줄번호, 글꼴크기 도구 : 맞춤법검사, 들여쓰기대소문자변환, 정렬 설정 : 도구모음, 상태표시줄, 편지기설정, 단축키설정 도움말 46
핵심개념 l 유닉스의디렉터리는루트로부터시작하여계층구조. l 절대경로명은루트디렉터리부터시작하고상대경로명은현재디렉터리부터시작. l 파일의사용권한은소유자, 그룹, 기타로구분하여관리. l 출력재지정은표준출력내용을파일에저장하고입력재지정은표준입력을파일에서받음. l 실행중인프로그램을프로세스. 47