오픈소스소프트웨어개발입문 (CP33992) Linux 명령어사용법 부산대학교공과대학정보컴퓨터공학부
학습목표 리눅스시스템에서프로그래밍을개발하는데유용한다양한유닉스 쉘명령어사용법을알수있다. 2
C 프로그래밍기초연습 아래의프로그램을 vi 로작성하시오 $ vi myprog.c #include <stdio.h> int main() { printf( Hello Linux\n ); return 0; } $ gcc o myprog myprog.c // gcc에대한자세한설명은 4주차에서설명함 $ myprog // 실행이안됨 $./myprog // 실행이됨 3
Path 설정 다음과같이실행함 $ myprog -bash: myprog: command not found $ echo $PATH /usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/bin:/usr/bin:/home /linuxguest/bin $ PATH=$PATH:. //.(dot) 추가 =>. 은현재작업디랙토리 $ echo $PATH /usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/bin:/usr/bin:/home /linuxguest/bin:/home/linuxguest/test $ myprog The factorial of 5 is 120. 4
Path 를 Bash 리소스파일에설정하기 자신의홈디렉토리의.bash_profile 을수정. $ vi ~/.bash_profile 'PATH=$PATH:$HOME/bin' 부분에서콜론 (:) 으로구분하여덧붙이면된다..' 을추가해주고싶으면 PATH=$PATH:. 이렇게해주고저장을하고나온후쉘에서 $ source ~/.bash_profile 을실행하면고친설정이바로적용. 5
로그아웃 로그아웃 (logout) 터미널종료 # logout 또는 # exit 또는 # ^D 6
프로세스의종료 : Control-C 프로세스종료 # man man //man에대한도움말정보 man(1) User Commands man(1) NAME man - find and display reference manual pages SYNOPSIS man [ - ] [ -adflrt ] [ -M path ] [ -T macro-package ] [-s section ] name... man [ -M path ] -k keyword // 작업의종료 ^c # _ 7
Cat 을이용한텍스트파일보기및작성 입력의끝 : Control-D $ cat > test Hello Linux Haha HoHo HeHe Bye ^D // 입력의끝 $ cat test $ cat n test 8
파일의내용보기 : more/ page/ head/ tail more: 한번에한페이지씩출력 more -f {+linenumber} {filename} -f: 긴라인을연속적으로출력 +linenumgber: 시작번호명시, 디폴트는첫번째줄부터시작 page: 각페이지를화면에표시하기전에전체화면을지우는것을제외하고는 more 명령과기능이동일함 9
파일의내용보기 : more/ page/ head/ tail head: 파일의처음 n 줄을출력 head -n {filename} -n: n 번째라인까지출력, 디폴트는 10 tail: 파일의마지막 n 줄부터출력 tail -n {filename} -n: 마지막줄에서 n 번째라인의줄부터출력 10
실습 $ cat test Hello Linux Haha HoHo HeHe Bye ^D // 입력의끝 $ head -2 test $ tail 2 test 11
grep grep Global Regular Expression & Print 지정하는패턴과일치하는내용이있으면표준출력으로출력 명령어옵션 예제 -c : 패턴과일치하는라인의수만출력 -i : 패턴을검색하는동안대소문자를구분하지않음 -l : 패턴과일치하는라인을가진파일의이름만화면에출력 -n : 패턴과일치하는라인의내용을번호를붙여서화면에출력 -v : 패턴과일치하지않는라인만화면에출력 -r: 하위서브디렉토리까지모두탐색 $grep Ho test 12
링커명령어 : ln ln Make Link to files 파일또는디렉토리를다른이름으로연결 Hard Link 하나의파일을다른여러이름을사용할수있게함 다른파일시스템이나디렉토리의 Hard Link는불가능함 $ ln file1 file2 Symbolic Link 원래파일의경로만을저장하여접근할수있게함 MS Windows의단축아이콘과비슷한기능 $ ln s file1 file2 13
디스크상태보기명령어 : df Display number of free disk blocks and files 사용가능한디스크블록과 free i-node 수출력 명령어옵션 -l : local file system 에대해서만출력 -t : 할당된전체블록과 i-node 출력 -k : 할당된블록을 kilo bytes 단위로출력 예제 $ df -k 14
Summarize disk usage 디스크상태보기명령어 : du 디스크사용상황보여주기 명령어옵션 예제 -s : 전체총계출력 -a : 각파일마다출력 -r : 판독할수없는디렉토리, 오픈할수없는파일등에대한메시지작성 $ cd ~ $ du a 15
화일정렬 : SORT sort [-r ] {-b -f -M -n}* {filename}* -r: 내림차순으로정렬 (default: ASCII 표에의한오름차순 ) -b : 줄의앞부분에있는공백을무시 (default: blank 도정렬시비교대상임 ) -f : 대소문자를무시하고정렬 -M : 월 (month) 순으로정렬 -n : 숫자의크기순으로정렬 16
Sort Sort the data lines in a text file using standard sorting rules for the language you specify as the default for the session. 17
파일찾기명령어 : find Find files 지정한디렉토리로부터디렉토리계층을재귀적으로논리식과일치하는파일을찾아내려감 명령어옵션 -name file : 지정한파일의 file명과일치하는파일 -type c : file type 이 c 인경우의파일 b : block special file c : character special file d : directory p : fifo (pipe) f : general file -links n : 파일에 n 개의 link 가있는경우의파일 18
명령어옵션 File Processing 명령어 - find (2) -user uname : 파일의소유자가 uname인파일 -group gname : 파일의소유그룹이 gname인파일 -size n[c] : 파일의크기가 n 블록인파일 -atime n : 파일이 n 날짜이내에액세스된경우의파일 -mtime n : 파일이 n 날짜이내에수정된경우의파일 -print : 현재의경로명으로출력 19
파이프 Pipe 한프로세스의출력다른프로세스의입력으로사용하도록함 $ ls al sort $ cd ~ $ find. -type f print sort 20
Determine file types File Processing 명령어 - file 파일의종류를알아보기위해서사용 Example $ cd ~ $ file.bashrc 21
단어수계산 : wc Display word count 지정된파일또는표준입력에대한행, 단어, 문자수를출력 명령어옵션 예제 -l : 행을계산 -w : 단어를계산 -c : 문자를계산 $ cd ~ $ wc -l.bashrc 22
리디렉션 (1) Redirection Output redirection > : 프로세스의출력을새로운파일생성하여기록 Output redirection >> : 프로세스의출력을지정한파일의마지막부분에추가 Input redirection < : 프로세스의입력으로파일을사용 23
리디렉션 (2) > file file 로표준출력방향을재설정한다 24
리디렉션 (3) >> file 파일이존재하지않는경우는 > 와같지만, 파일이존재하는경우는 file 에내용 을덧붙임 >& file 표준에러를 file 로저장 25
과제물 #1 쉘이특별하게처리하는문자들 ( 메타문자 ) 의기능을조사하여기술 하고, 예제의실행결과를설명하시오. 메타문자기능예제설명 * $ ls h*? $ ls dir? [ ] $ ls [a-f]* ~ $ cd ~user1 - $ cd - ; $ date;cal;ls $ ls l /etc more $ echo $SHELL $ echo $SHELL ` ` $ echo `date` \ $ echo \$SHELL 26
과제물 #2 오류리다이렉션 표준오류메시지를파일에저장 사용법 $ 명령 2> 파일명 아래오류메시지를 ls.err 파일에저장하기위한명령어를작성하고 cat 명령어를사용하여관찰하기위한방법을기술하시오. $ ls /ttt /ttt: No such file or directory 27
나만의명령만들기 (alias) 과제물 #3 명령어에다른이름을정의하여사용 사용법 현재설정값보기 : alias 앨리어스설정 : alias 별칭 = 명령 앨리어스해제 : unalias 별칭 오른쪽의명령어를수행하고수행결과를위의사용법을참고하여설명하시오. 1) alias 2) alias dir= ls -l 3) Dir 4) alias copy= cp 5) alias move= mv 6) alias ls= ls F 7) ls 8) alias 9) unalias ls 10) alias 28