Computer Programming Practice (2008 Fall) Practice 4 Unix/Linux 기본명령어 + vi Editor + Linux on Windows 2012. 1 2
2/27 Contents Unix/Linux Supplementary Commands File compression and backup Secure Shell File transfer Miscellaneous vi Editor Linux environment on Windows OS
3/27 File compression and backup (1/4) tar (tape archiver) 여러파일, 디렉터리를하나의파일로묶는다 압축을하지않고, 하나의파일로묶기만함 Usage: tar [OPTION...] [FILE]... [OPTIOIN] -c, --create -d, --diff, --compare -r, --append -t, --list -u, --update -x, --extract, --get -f, --file=archive -v, --verbose -z, --gzip, --gunzip, --ungzip create a new archive find differences between archive and file system append files to the end of an archive list the contents of an archive only append files newer than copy in archive extract files from an archive use archive file or device ARCHIVE verbosely list files processed filter the archive through gzip * 하나의 hyphen 에연결해서사용가능, 예 ) -c -f = -cf * 옵션에서 - (hyphen) 은생략가능
File compression and backup (2/4) 4/27
File compression and backup (3/4) 5/27
6/27 File compression and backup (4/4) gzip / gunzip Linux에서가장보편적으로사용되는압축방식 기본확장자 :.gz tar 와함께사용 : tar(archive) + gzip(compression) tar에서 gzip compression 사용 -z option $ mkdir test2 $ cp test/* test2/ $ ls -al test2/ $ gzip -r test2/ $ ls -al test2/ $ gunzip -r test2/ $ tar cvzf compressed_test2.tar.gz test2/ $ rm -rf test2 $ tar xvzf compressed_test2.tar.gz
7/27 Secure Shell (1/2) ssh : ssh 접속명령어 telnet 보안취약 => 보안을강화한원격접속프로토콜 ssh 등장 public-key cryptography 로 authenticate( 인증 ) 형식 $ ssh user@hostname user 를생략하면현재자신이접속한 id 를 user 로대체 martini Other server
8/27 Secure Shell (2/2) $ ssh comp70@martini.snu.ac.kr The authenticity of host 'martini.snu.ac.kr (147.46.240.47)' can't be established. RSA key fingerprint is b7:a0:54:42:84:be:83:7c:bb:72:d8:e2:68:71:dd:1f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'martini.snu.ac.kr,147.46.240.47' (RSA) to the list of known hosts. comp70@martini.snu.ac.kr's password: $ ssh martini.snu.ac.kr comp-ta@martini.snu.ac.kr's password:
9/27 File transfer (1/3) sftp ftp보다보안이강화된파일전송프로토콜 secure FTP 서버로접속 형식 $ sftp user@hostname user 를생략하면현재자신이접속한 id를 user로대체 $ sftp comp70@martini.snu.ac.kr comp70@martini.snu.ac.kr's password: sftp> sftp prompt
10/27 File transfer (2/3) sftp (cont.) 명령어 help cd, lcd : change directory ls, lls : list files pwd, lpwd : present working directory exit, quit get : remote -> local로파일전송 sftp> get [remote server 의 filename] [local path] put : local -> remote 로파일전송 sftp> put [local server 의 filename] [remote path] rm, rmdir. 참고 ) l.. = Local
11/27 File transfer (3/3) wget FTP나 HTTP, HTTPS를이용하여파일다운로드 형식 $ wget [OPTION] [URL] Tip) 웹페이지의링크에서마우스오른쪽버튼클릭 -> 바로가기복사 -> URL 에붙여넣기 $ wget http://martini.snu.ac.kr/~comp-ta/simple.txt $ cat simple.txt
12/27 Miscellaneous diff 두파일을비교하여서로다른부분을보여줌 a : 추가, c : 변경, d : 삭제 < : 첫번째파일의내용 > : 두번째파일의내용 $ cp /home/comp-ta/prac4/*./ $ diff diff_test1 diff_test2 2a3,4 > var1=10 > var2=20 16,17c18,19 < 1 ) base[$i]=$arg; i=`expr $i + 1` ;; < 2 ) exponent[$i]=$arg; i=`expr $i + 1` ;; --- > 3 ) base[$i]=$arg; i=`expr $i + 1` ;; > 5 ) exponent[$i]=$arg; i=`expr $i + 1` ;; 22d23 < # to be continued on the next slide
13/27 Miscellaneous tee 입력내용을화면에보여주는동시에파일에저장 $ ls -al tee list $ cat list
14/27 vi Editor (1/11) vi VIsual Editor Screen oriented simple & powerful Open and free software Key layout ADM3A keyboard
15/27 vi Editor (2/11) 새문서열기 $ vi [ 새파일이름 ] 편집문서열기 $ vi 파일명 : 편집문서열기 $ vi +n 파일명 : n번째라인위치로편집문서를열기 $ vi +/ 키워드 file: 검색된키워드위치로편집문서를열기 $ vi -R 파일명 : 읽기전용으로문서열기 문서복구 파일편집중정전이되거나전원이나갔을경우편집중인내용은 swp 파일로저장 / 복구 $ vi -r 파일명 : 문서복구
16/27 vi Editor (3/11) Mode Normal mode Default mode(vi 파일명 ) Move cursor, cut, paste, multi-window, searching, etc. Case sensitive Insert/Editing mode Activated when you type "i You can edit the file as if you were using Windows notepad If you want to back to normal mode, type "ESC" Command line mode Activated when you type ":" Save, open, you can do everything except editing 한글, MS-WORD의 메뉴 에해당 다양한옵션가능 (:set nu)
17/27 vi Editor (4/11) Insert/Editing Mode 전환키 Key i I a A o O s S r R Mode 현재위치에서입력모드전화현재행의가장앞에서입력모드전환현재프롬프트한칸오른쪽위치에서입력모드현재행의가장뒤에서입력모드전환현재행다음줄삽입후입력모드전환현재행위에줄삽입후입력모드전환현재프롬프트한글자삭제후입력모드전환현재행삭제후입력모드전환한글자만수정하는입력모드전환수정모드 (REPLACE) 로입력모드전환
18/27 vi Editor (5/11) 커서이동 Normal mode 에서이루어짐 방향키로도이동이가능 h( 좌 ), j( 하 ), k( 상 ), l( 우 ) [ 숫자 ][ 명령키 ] : 숫자만큼명령실행 3l: 오른쪽으로 3 칸이동 3k: 위로 3 행이동 w, W: 오른쪽으로한단어이동 ( 대문자는공백문자가나올때까지 ) w: 오른쪽으로 3 단어이동 b, B: 왼쪽으로한단어이동 ( 대문자는공백문자가나올때까지 ) 6b: 왼쪽으로 6 단어이동 0 : 줄의맨처음으로이동 $ : 줄의맨마지막으로이동
19/27 vi Editor (6/11) 커서이동 (cont.) Ctrl + f : 한페이지아래로이동 (= page down) Ctrl + b : 한페이지위로이동 (= page up) G: EOF [ 숫자 ]G: [ 숫자 ] 라인으로이동 77G : 77번라인으로이동 gg: 파일처음으로
20/27 vi Editor (7/11) 편집 편집키 c + [ 방향 ]: 텍스트삭제후입력모드전환 (change) d + [ 방향 ]: 텍스트삭제 (delete) y + [ 방향 ]: 텍스트복사 (yank) p, P: 복사나삭제된내용붙여넣기 (paste) 삭제 x: 커서가위치한문자를삭제 X: 커서이전문자를삭제 dd: 한행삭제 복사 yy: 한행복사 ny: 커서아래 n행복사 ndd: 커서아래 n행삭제 Undo/Redo u : Undo Ctrl + r : Redo
vi Editor (8/11) 검색 / 검색어 : 아래방향으로검색어를찾아서표시? 검색어 : 위방향으로검색어를찾아서표시 n: 다음검색 ( 진행방향 ) N: 다음검색 ( 진행방향의반대방향 ) 찾아바꾸기 Command line mode 에서실행 :s/ 검색어 / 수정어 : 현재라인의첫번째검색어를수정어로바꿔줌 :%s/ 검색어 / 수정어 /g: 파일전체에서검색어를수정어로바꿔줌 :%s/ 검색어 / 수정어 /gc: 파일전체에서검색어를확인후수정어로바꿔줌 21/27
22/27 vi Editor (9/11) 현재창에서문서열기 :e 파일명 : 현재창에파일을연다 문서저장 / 끝내기 :w(!): 문서저장 ( 강제 ) :q(!): vi 종료 ( 강제 ) :wq(!), ZZ(!): 저장후종료 ( 강제 ) 기타유용한 Command line mode 명령 :set nu : 줄번호를붙여줌 :set tabstop= 숫자 : tab 간격을숫자로조정해줌
23/27 vi Editor (10/11) Visual mode v를누르면활성 커서를이동시켜구역을선택할수있음 :s 명령을이용하여구역내에서찾아바꾸기가능 :'<,'>s/ 검색어 / 수정어
24/27 vi Editor (11/11) 화면분할 :sp : 수평화면분할 Ctrl + wv : 수직화면분할 :q : 분할된창닫기 분할된창사이의이동 Ctrl + ww : 다음분할창이동 Ctrl + wp : 이전분할창으로이동
25/27 Linux environment on Windows OS (2/3) Virtualization ( 가상화 ) Windows 안에리눅스쓰기, 리눅스안에 Windows 쓰기, Windows 안에 Windows 쓰기등등 PC 한대로여러대효과
26/27 Linux environment on Windows OS (3/3) Virtualization (cont.) 가상 PC 프로그램 VMware Virtual PC : MS에서만든소프트웨어 Virtual Box : Sun에서만든소프트웨어
27/27