메모

유닉스의 기초...펌

맘편한넘 2012. 6. 29. 17:22

유닉스 기초 Unix

2007/11/23 11:17

복사 http://blog.naver.com/zxr_6r/20044091691


 

 

제 11 장 유닉스 기초 

 

  ?주요 학습 내용 

   - 유닉스의 역사 

   - 유닉스의 특징 

   - 유닉스와 인터넷 

   - DOS 사용자를 위한 유닉스 명령어 

   - 유닉스의 이해 

 

 



제11장 유닉스 기초

?유닉스의 역사

?유닉스의 탄생

   - 1969년 AT&T의 Bell 연구소의 Ken Thompson 등이 Multics를 수정하여 이를 능가하는 새로운 운영체제 개발

   - 1972년 경 동료 엔지니어 Dennis Ritchie가 B언어를 기반으로 한 C언어를 개발되어 유닉스의 기본 구조를 C언어로 다시 작성

   - 1978년 버클리 대학원생들이 네트워크 처리 능력과 메모리 관리를 포함시킨 BSD(Berkeley Software Distribution) 유닉스 개발

   - 1993년 유닉스의 표준화를 위go 70여개의 유닉스 관련 업체가 공동으로 SVR4(System V Release 4)를 제정

?유닉스의 발전

   - AT&T의 System V : 비즈니스용

   - 버클리 대학의 BSD : 연구개발용

   - 기타 소형컴퓨터용 : 예)AIX(IBM)


?Multics : 본래 MIT에서 개발한 OS

   - Multi user interactive system(시간분할시스템)이며, 일괄처리식(batch), 대화식(interactive)의 운영체제

?AT&T와 버클리의 BSD는 유닉스 시스템의 양대 산맥을 이루고 있음

?표준화를 위해 설립된 OSF, UI 등을 중심으로 SVR4를 제정하였고, 이는 이기종간 호환성 증진과 동일한 사용자 인터페이스 등 개방형 시스템에 대한 요구사항을 실현한 표준


제11장 유닉스 기초

?유닉스의 특징

?멀티유저, 멀티태스킹

?계층화된 파일시스템(트리구조)

?대화식 및 온라인용 운영체제

?입출력 방향 전환, 파이프기능(shell 기능)

?확장성, 조작성이 풍부한 shell

?각종 특수 장치의 독립성

?유연성있는 통신을 할 수 있는 운영체제

?기능이 방대한 반면, 사용이 복잡하다는 문제점 보유

?컴퓨터 전문 프로그래머용

?PDP-11 미니컴퓨터용 운영체제로 개발

?실시간성 응용에 약함

?보안성, 보호기능

?고수준 언어로 구현되어서 좋은 이식성

?라이센스를 사면 싼 가격으로 사용용 사용 가능

?유닉스의 응용 프로그램이 적음

?다른 운영체제에서 볼 수 없는 막강한 기능 보유

?네트워크 운영체제로서 적합한 특징들을 보유


?shell

   - 명령해석기(command interpreter)라 하며, 사용자의 명령을 받아들여 필요한 프로그램을 호출하고 수행하는 역할

   - 로그인하면 자동적으로 형성되어서 명령 대기상태에 존재

   - 입출력 방향 결정

   - foreground, background 처리

   - 파이프 및 필터 처리

   - 일종의 프로그래밍 언어


제11장 유닉스 기초

?유닉스와 인터넷

?인터넷 사용에 필요한 명령어 9가지

   - 파일내용 보기 : cat

   - 현재 경로 알아보기 : pwd

   - 경로 바꾸기 : cd

   - 현재 디렉토리의 파일 목록보기 : ls

   - 파일 편집 : vi

   - 파일 삭제 : rm

   - 파일 복사 : cp

   - 파일 이름 바꾸기 : mv

   - 시스템 탈출 : exit


?인터넷을 사용하기 위해서 필요한 명령어 9가지의 사용법

   - 파일내용 보기

       % cat filename

   - 경로 바꾸기

       % cd directoryname

   - 파일 편집

      % vi filename

   - 파일 삭제

       % rm filename

   - 파일 복사

       % cp filename1 filename2

   - 파일 이름 바꾸기

       % mv filename1 filename2



제11장 유닉스 기초

?DOS 사용자를 위한 유닉스 명령어

?유닉스

   - DOS와는 달리 여러 사용자들이 여러 가지 작업을 동시에 수행할 수 있도록 지원하는 운영체제

   - DOS보다 훨씬 더 다양하고 강력한 명령어들을 가지고 있음

   - 유닉스 명령에 대한 자세한 설명은 man 명령을 이용하면 볼 수 있는데, who라는 명령어에 대한 설명을 보는 방법은 다음과 같다

     % man who



?DOS와 유닉스 명령어 비교

기 능

DOS

UNIX

파일 목록 보기

dir/w, dir

ls -l, ls

파일내용 보기

type

cat

화면단위로 내용보기

type filename | more

more

파일복사

copy

cp

파일내의 특정 문자열 찾기

find

grep, fgrep

파일 내용 비교

comp

diff

파일명 변경

rename, ren

mv

파일 삭제

erase, del

rm

디렉토리 삭제 

rmdir, rd

rmdir

파일의 퍼미션 변경

attrib

chmod

디렉토리 만들기

mkdir, md

mkdir

워킹디렉토리 변경

chdir, cd

cd

도움말 보기 

help

man, apropos

시간 및 날짜보기 

date, time

date

디스크 사용내역 보기

chkdsk

df

파일 프린트

print

lpr

프린터 큐보기 

print

lpq


?자주 사용되어지는 유닉스 명령

기 능

UNIX

현재의 사용자 목록 보기

who

시스템 내에 등록되어진 사용자의 정보검색

finger account[@address]

현재의 사용자의 작업내용 보기

w

시스템 탈출

logout

현재의 디렉토리 표시

pwd

패스워드 변경

passwd



제11장 유닉스 기초

?유닉스의 이해

?유닉스 쉘

   - 운영체제간의 인터페이스로서 사용자에 의해 입력되어진 명령을 운영체제가 이해할 수 있도록 해석하여 주는 역할

   - 컴퓨터 시스템의 시스템 프롬프트의 모양은 시스템이 사용하는 쉘에 따라 다르게 나타남

   - Bourne 쉘(sh) : 가장 기본이 되는 쉘로, 많은 유닉스 시스템에서 기본적으로 지정하여 사용

   - Korn 쉘(ksh) : 입력과 명령어 편집들을 쉽게 할 수 있도록 추가로 많은 기능을 내장

   - C 쉘(csh) : Korn 쉘과 비슷한 기능들을 제공하는 인기가 좋은 쉘로 프롬프트는 “%”

   - 쉘 명령을 사용하여 현재 쉘을 다른 쉘로 변경 가능

   - 홈 디렉토리 내에는 보통 파일 이외에도 숨은(hidden) 파일들이 존재


?유닉스 쉘

   - Bourne 쉘은 아주 제한된 기능만을 가지기 때문에 많은 사용자들이 Bourne 쉘에 비해 C 쉘이나 Korn 쉘을 선호하고 있음

   - C 쉘이 많은 사용자들에 의해 선호되어지는 이유는 유닉스 시스템이 C 언어로 개발되어져 있기 때문에 C 언어의 특성을 최대한 사용할 수 있을 뿐 아니라 C 쉘이 보유하고 있는 명령이 Bourne 쉘에 비해 월등하게 다양한 기능을 제공하기 때문

   - Korn 쉘은 Bourne 쉘이 비하여 기능을 향상시킨 것으로, Bourne 쉘에 익숙한 사용자들에 의해 널리 사용

   - 숨은(hidden) 파일들의 이름은 “.”으로 시작하며 프로그램에 대한 설정사항들을 저장해 두는데 사용하며, 대부분은 rc(run commands)로 끝남


제11장 유닉스 기초

?유닉스의 이해

?“history" 명령

   - 유닉스 시스템 사용과정에서 이미 사용되어진 명령어를 반복하여 입력해야 할 경우가 생길 수 있음

   - C 쉘과 Korn 쉘은 이전에 입력된 명령어들을 저장하여 화면에 다시 출력하고, 재실행 될 수 있도록 함

   - C 쉘의 경우 “history" 명령을 사용하여 이전에 사용한 명령들을 화면에 출력하고 이를 재생시킬 수 있음


?“history" 명령

   - history 목록에 있는 10번째 명령을 재실행

       % !10

   - 가장 마지막 입력한 명령을 실행

       % !!

   - 문자열을 사용하여 다시 실행할 명령을 지정

       % !cd

   - 화면이 어지러워져서 작업을 방해받을 때 화면을 지우고 커서를 화면의 왼쪽 위에 위치시키고자 할 경우

       % clear



제11장 유닉스 기초

?유닉스의 이해

?도움을 얻고자 할 때

   - "man"(manual) 명령은 온라인 레퍼런스 매뉴얼의 명령에 대한 정보를 보여줌

   - 시스템에서 대부분의 유닉스 명령어에 대한 정보를 얻을 수 있으므로 편리

   - “find" 명령에 대한 정보를 화면에 출력시키고자 할 경우

        % man find


?"man" 명령어 사용 예

       %man fine

       페이지 재포맷중.  기다리십시오... 완료됨


       User Commands                                             find(1)


       NAME

            find - find files


       SYNOPSIS

            find path ... expression


       DESCRIPTION

            The find  utility recursively descends the directory hierar-

            chy for each path seeking files that match a Boolean expres-

            sion written in the primaries given below.


       --계속--(4%)


제11장 유닉스 기초

?유닉스의 이해

?명령어 이름 변경

   - “alias" 명령은 명령어의 이름을 변경

   - DOS에 익숙하다면 “alias" 명령을 사용하여 유닉스의 명령을 도스에서 사용하는 명령의 이름으로 변경하여 사용 가능

   - 파일목차를 보기 위하여 “dir"을 사용하는데 익숙해 있다면 유닉스에서 파일목차를 보여주는 ”ls" 명령어의 별명(alias)을 만들어 줄 수 있음


?명령어 이름 변경

   - 유닉스의 “ls" 명령대신 ”dir" 명령을 사용하여 파일목차를 검색

       % alias dir ls -al

       // ls -al은 현재 디렉토리 내에 저장되어 있는 숨은 파일을 포함한 모든 파일의 목록을 구체적으로 화면에 출력하기 위한 명령형

   - “dir"이 어떤 기능을 갖는지를 보고자 할 경우

       % alias dir

   - 정의되어 있는 모든 별명목록을 보고자하는 경우

       % alias

   - 정의되어 있는 특정 별명목록을 삭제고자 하는 경우

       % unalias alias-list



제11장 유닉스 기초

?유닉스의 이해

?경로(path)

   - 경로 이름은 특정 디렉토리나 파일이 존재하는 위치를 알려줌

   - 디렉토리 이름이나 슬래시(/)로 구분이 되는 여러 개의 부 디렉토리(sub-directory)들로 구성

   - 첫 번째 슬래시는 유닉스 계층 파일 구조에서 최상위의 루트(root) 디렉토리를 의미

   - 절대(absolute)경로 : 언제나 루트 디렉토리를 의미하는 슬래시로부터 시작하여 현재 파일이 위치한 디렉토리와 파일이름순으로 경로를 나타냄

   - 상대(relative)경로 : 현재의 디렉토리로부터 시작하여 지정한 디렉토리나 파일이 위치한 경로를 나타냄

   - 디렉토리를 이동할 때는 "cd" 명령어를 사용


?경로(path)

   - 절대경로 : 절대경로를 사용하면 파일 시스템에서 현재 작업하고 있는 위치에 무관하게 지정한 디렉토리나 파일에 접근 가능

   - 상대경로 : 자신의 현재의 디렉토리에서 하위에 있는 디렉토리나 파일에 접근을 하기 위하여 경로를 지정할 때 전체 경로를 모두 입력해야 하는 수고를 덜어줌

   - 상대경로는 현재의 디렉토리는 “.”으로, 상위 디렉토리는 “..”과 같이 나타냄

   - 현재의 디렉토리보다 상위에 있는 디렉토리로 이동할 경우

       % cd ..



제11장 유닉스 기초

?유닉스의 이해

?디렉토리를 다루는 방법

   - 디렉토리 : 유닉스 파일들을 담아두는 서랍 또는 캐비닛으로 비유

   - 파일들은 디렉토리 속에 저장, 정리되고, 모든 디렉토리와 파일은 경로이름을 가짐

   - 실행하고자 하는 명령이 위치한 디렉토리를 지정하기 위하여 디렉토리 이름과 유닉스 명령어를 결합하여 사용

   - 홈 디렉토리의 절대경로를 입력하지 않고 단지 “~”만을 적용하여 자신의 홈 디렉토리로 이동하거나 홈 디렉토리에 위치한 명령을 실행할 수 있음


?디렉토리 다루는 방법

   - 사용자가 현재 위치한 디렉토리에서 자신의 홈 디렉토리로 이동

       % cd ~

       % cd



제11장 유닉스 기초

?디렉토리 변경

   - 유닉스에서 경로를 변경할 경우

       % cd path-name

   - 현재 위치한 디렉토리 경로를 알고싶은 경우

       % pwd

     ?pwd(print working directory)

   - 현재의 위치에서 홈 디렉토리로 이동할 경우

       % cd

     ?cd(change directory)


?디렉토리 변경

   - 홈 디렉토리의 내용을 볼 경우

       % ls

       ./            .cshrc        .exrc         .solregis/    LVR/

       ../           .dt/          .hotjava/     CHMM/         ls

       .Xauthority   .dtprofile*   .login        DATA/

   - 홈 디렉토리에서 “LVR”이라는 디렉토리로 이동할 경우

       % cd LVR

       % ls

       ./           readme       source_bak/  source_pr/   work/

       ../          hcj_src/       source_la/   test_src/    work_src/

   - 현재 작업중인 디렉토리의 경로를 알고싶은 경우

       % pwd

       /home1/hcj/LVR

   - 현재 위치에서 홈 디렉토리로 이동할 경우

       % cd

       % pwd

       /home1/hcj/


제11장 유닉스 기초

?디렉토리 생성, 삭제

   - 디렉토리를 생성할 경우

       % mkdir directory-name

     ?mkdir(make directory)

   - 디렉토리를 삭제할 경우

       % rmdir directory-name

     ?rmdir(remove directory)

   - 디렉토리를 생성할 경우 이미 존재하는 디렉토리와 같은 이름의 디렉토리를 생성할 수 없음

   - 디렉토리를 삭제하기 위해서는 그 속에 존재하는 파일들이나 부 디렉토리(sub-directory)들을 모두 제거하여야 함

   - 지정한 디렉토리 뿐 아니라 디렉토리 내에 포함된 모든 파일이나 부 디렉토리를 삭제할 경우

       % rm -rf directory-name


?디렉토리 생성, 삭제

   - "imsi"라는 디렉토리를 생성할 경우

       % mkdir imsi

       % ls

       ./            .cshrc        .exrc         .solregis/    LVR/

       ../           .dt/          .hotjava/     CHMM/         imsi/

       .Xauthority   .dtprofile*   .login        DATA/         ls

   - “imsi"라는 디렉토리를 재 생성할 경우

       % mkdir imsi

       mkdir: 디렉토리 "imsi" 생성 실패; 파일이 존재함 // 에러 출력


   - “imsi"라는 디렉토리를 삭제할 경우

       % rmdir imsi

       % ls

       ./            .cshrc        .exrc         .solregis/    LVR/

       ../           .dt/          .hotjava/     CHMM/         ls

       .Xauthority   .dtprofile*   .login        DATA/


제11장 유닉스 기초

?디렉토리 복사와 이름 변경

   - 디렉토리를 복사할 경우

       % cp -r directory1 directory2

     ?cp(copy)

   - 디렉토리 이름을 변경할 경우

       % mv directory1 directory2

     ?mv(move)


?디렉토리 복사와 이름 변경

   - "blue"라는 디렉토리를 "red"라는 디렉토리로 복사할 경우

       % ls

       ./            .cshrc        .exrc         .solregis/    LVR/

       ../           .dt/          .hotjava/     blue/

       % cp -r blue red

       % ls

       ./            .cshrc        .exrc         .solregis/    LVR/

       ../           .dt/          .hotjava/     blue/         red/


   - "blue"라는 디렉토리를 “white"라는 디렉토리로 이름을 변경할 경우

       % mv blue white

       % ls

       ./            .cshrc        .exrc         .solregis/    LVR/

       ../           .dt/          .hotjava/     red/          white/


제11장 유닉스 기초

?디렉토리내의 목록 출력

   - 디렉토리 내의 부 디렉토리와 파일을 출력할 경우

       % ls

     ?ls(list)

   - 디렉토리 내의 특정 부 디렉토리 내의 목록을 출력할 경우

       % ls sub-directory-name


?디렉토리내의 목록 출력

   - 현재 디렉토리 내의 파일과 부 디렉토리를 출력할 경우

       % ls

       ./            .cshrc        .exrc         .solregis/    LVR/

       ../           .dt/          .hotjava/     CHMM/         red/

   - 부 디렉토리 “LVR"의 목록을 출력할 경우

       % ls LVR        // 또는 ls ~/LVR

       ./           LVR.tar      readme       source_bak/  source_pr/     ../          hcj_src/     source/      source_la/   test_src/  



   - ls 명령의 옵션과 결과

       

옵션

결     과

-a

부 디렉토리와 숨은 파일을 모두 출력. 이 옵션을 주지 않으면 . 으로 시작을 하는 숨은 파일은 보여주지 않음.

-c

만들어진 또는 변경된 시간으로 정리를 하여 출력.

-l

디렉토리 내의  파일에 대한  권한, 크기, 시간을 포함하는 자세한 정보를 출력.

-r

기본적으로는 알파벳순서의 역순으로 파일을 출력.

-R

지정하는 디렉토리내의  각각의 부 디렉토리목록을 출력.

-F

디렉토리는 슬래시로 표시하고, 실행 가능한 파일을 * 로 표시를 함.  텍스트 파일을 플랙 없이 출력.

-t

알파벳순서 대신에 변경한 시간의 순서로 목록을 출력. 가장  마지막에 변경을 한 파일을 제일 앞에 위치시킴.



제11장 유닉스 기초

?유닉스의 이해

?와일드카드(wildcard)의 사용

   - 와일드카드 문자는 “*” 또는 “?”의 문자를 사용하여 여러 개의 파일을 한꺼번에 나타내기 위해 사용

   - 문자 “a"로 시작하는 모든 파일을 출력할 경우

       % ls a*

   - 와일드카드 문자를 사용하여 숨은 파일을 출력할 경우

       % ls .*


?와일드카드(wildcard)의 사용

   - 문자 "e"로 시작하는 모든 파일들을 출력할 경우

       % ls

       ./               cfgonepass.c       ddcio.c.bak2       ondp.c

       ../              ddcdpmain.c        demo_frontend.c     onepass.h

       Makefile         ddcdpmain_sock.c   dmalloc.c          openp.c

       Makefile.main    ddchmm.h           earley_beam.c      prsr-hmm.h

       cal_time.c     ddcio.c            earley_main.c      ukwprocess.h

       % ls e*

       earley_beam.c   earley_main.c

   - 와일드카드 문자를 사용하여 숨은 파일을 출력할 경우

       % ls .*

       .Xauthority   .cshrc        .dtprofile*   .exrc         .login



제11장 유닉스 기초

?유닉스의 이해

?파일들을 다루는 법

   - 파일들은 데이터와 실행 가능한 정보들을 저장하는 장소

   - 어떤 종류의 파일인가를 확인하기 위하여 “file" 명령을 사용

   - "file" 명령 다음에 파일이름은 지정하면 지정한 파일에 대한 정보를 출력

       % file pressure.Z

       pressure.Z: compressed data block compressed 16 bits

?텍스트 파일의 내용을 출력

   - “cat"(concatenate) : 간편한 파일 뷰어 명령

   - "cat" 명령과 함께 “more" 명령을 사용하면 한번에 한 화면씩 파일의 내용을 출력


?파일들을 다루는 법

   - “cfgonepass.c" 파일의 종류를 알고자 할 경우

       % file cfgonepass.c

       cfgonepass.c:   C 프로그램 텍스트

   - cat 명령의 사용법

       

결  과

% cat file1

file1의 내용물을 보여줌

% cat file1 file2

file1의  내용물을 보여주고 바로 뒤에 file2의 내용을 보여줌



제11장 유닉스 기초

?파일의 내용을 한 화면씩 출력하는 방법

   - 커다란 텍스트 파일을 보는 경우나 많은 수의 파일들과 부 디렉토리를 포함하는 디렉토리의 목록을 출력할 경우 파일의 내용이나 디렉토리의 목록들이 아주 빠른 속도로 화면에 출력되어서 파일의 내용이나 디렉토리의 목록을 이해하기 힘든 경우가 있음

   - 이 경우 “more" 또는 ”pg" 명령을 사용하여 한 화면씩 데이터 출력

   - 지정한 파일의 내용을 한 화면에 해당하는 양 만큼씩 출력

       % more filename

       % cat filename | more

   - "ls" 명령에 의해 출력된 목차를 “more"로 보내어 한 페이지씩 화면에 출력할 경우

       % ls -al | more

   - "pg"(page) 명령은 “more" 명령과 매우 비슷하며 내용을 출력시켰을 경우 ”:“ 프롬프트가 나타나며 엔터키를 입력할 경우 화면에 다음 페이지가 출력되고, ”q"를 입력하면 중지


?파일의 내용을 한 화면씩 출력하는 방법

   - more 명령의 사용법

       

누르는 키

화면의 움직임

스페이스, Ctrl-D

다음 한 화면을 출력.

?(Enter)

누를 때마다 화면의 아래쪽에 한 줄씩 더 출력.

q

출력 정지

h

도움말

/expression

단어검색



제11장 유닉스 기초

?head 명령 주기

   - 파일의 처음의 몇 행을 출력하여 그 파일의 내용을 확인

   - 지정된 파일의 처음 10행을 화면에 출력할 경우

       % head filename

   - 화면에 출력될 행의 수를 지정할 경우

       % head -25 filename


?head 명령 주기

   - 지정된 파일의 처음 10행을 화면에 출력할 경우

       % head Makefile

       CC = cc


       ### definitions for SPARC

       #LIBS_SPARC = '-lX11 -lm'

       LIBS_SPARC = '-lm'

       SWITCHES_SPARC = -O

       

       all:

               echo Make sure to select proper prsr-hmm.h.

               make -f Makefile.main \

   - 지정된 파일의 처음 5행을 화면에 출력할 경우

       % head -5 Makefile

       CC = cc

       

       ### definitions for SPARC

       #LIBS_SPARC = '-lX11 -lm'

       LIBS_SPARC = '-lm'



제11장 유닉스 기초

?파일복사

   - “cp"(copy) 명령을 사용하여 파일의 내용을 동일하게 복사

   - file1내의 내용을 file2에 복사할 경우, 만약 file2가 존재하지 않는다면 file2를 생성하고, 만약 그 이름의 파일이 존재하면 기존의 내용을 덮어쓰게 됨

       % cp file1 file2

   - file2가 존재할 경우 덮어쓰기를 방지하기 위하여 -i 옵션을 사용

       % cp -i file1 file2


?파일복사

   - 파일을 복사할 경우

       % ls

       ./       LVR.tar     readme    source_bak/  source_pr/   work/

       ../      hcj_src/   source/   source_la/   test_src/    work_src/


       % cp readme readyou

       % ls

       ./           hcj_src/     source/      source_pr/   work_src/

       ../          readme       source_bak/  test_src/

       LVR.tar      readyou      source_la/   work/

   - 덮어쓰기 방지를 위한 -i 옵션을 사용할 경우

       % cp -i readme readyou

       cp: 겹쳐 쓰기 readyou (y/n)? y



제11장 유닉스 기초

?파일 옮기기와 새로 이름 붙이기

   - “mv" 명령은 파일의 위치를 바꾸거나 이름을 바꾸는데 사용하고 이미 존재하는 파일인 경우 덮어쓰기를 하게 됨

   - source 파일을 destination으로 변경할 경우

       % mv source destination

     ?destination 파일이 존재할 경우, 파일의 내용이 source 파일의 내용으로 교체됨

   - 덮어쓰기 방지를 할 경우 -i 옵션을 사용

   - 한번에 여러 개의 파일을 이동시킬 경우

       % mv file1 file2 file3 directory

     ?file1, file2, file3 모두가 지정된 directory로 이동하게 됨


?파일 옮기기와 새로 이름 붙이기

   - readyou 파일을 readme 파일로 이름을 바꿀 경우

       % ls

       ./           hcj_src/     source/      source_pr/   work_src/

       ../          readme       source_bak/  test_src/

       LVR.tar      readyou      source_la/   work/

       % mv readyou readme

       % ls

       ./       LVR.tar    readme       source_bak/  source_pr/   work/

       ../      hcj_src/   source/   source_la/   test_src/    work_src/

       % mv LVR.tar readme source

       % ls

       ./           hcj_src/     source_bak/  source_pr/   work/

       ../          source/      source_la/   test_src/    work_src/



제11장 유닉스 기초

?파일 삭제

   - “rm"(remove) 명령을 사용하여 필요없는 파일을 삭제

       % rm file1

   - 여러 개의 파일을 삭제할 경우

       % rm file1 file2 file3

     ?파일을 삭제한 경우 복구하는 것은 불가능

   - 파일을 삭제하기 전에 삭제 여부를 확인하기 위하여 -i 옵션 사용

       % rm -i file1

   - 확인과정없이 파일들을 지워버릴 경우

      % rm -f file1

   - 지정된 디렉토리를 삭제하기 위하여 -r 옵션과 -f 옵션을 동시에 사용하면 가능

       % rm -rf directory

   - 디렉토리 내의 파일들과 부 디렉토리를 모두 삭제할 경우

       % rm -r -f directory


?파일 삭제

   - readme 파일을 삭제할 경우(-i 옵션 사용)

       % ls

       ./           hcj_src/     source/      source_pr/   work_src/

       ../          me.txt       source_bak/  test_src/

       LVR.tar      readme       source_la/   work/

       % rm -i me.txt

       rm: me.txt(y/n)을(를) 제거합니까? y

       % ls

       ./      LVR.tar      readme       source_bak/  source_pr/   work/

       ../   hcj_src/    source/     source_la/   test_src/    work_src/



제11장 유닉스 기초

?파일 탐색

   - “fine" 명령을 사용하여 원하는 파일이 보이지 않을 경우 파일의 위치를 찾을 수 있음

   - “file" 명령은 완벽한 파일이름 또는 파일이름 일부를 지정하여 위치를 확인할 수 있음

       % find pathname -name file -print

       ?경로 pathname 내의 파일들과 부 디렉토리를 모두 비교하여 file과 일치하는 이름을 갖는 파일을 탐색

   - 현재 디렉토리 내의 파일 중 확장자가 “txt"인 모든 파일 또는 부 디렉토리의 경로를 보고자 할 경우

       % find . -name "*.txt" -print


?파일 탐색

   - find 명령의 옵션

       

옵   션

결   과

-name filename

filename과 일치하는  파일을 탐색. *, ?, 또는  and 가 사용이  될 수 있으며 이들은 따옴표 안에  표시를 하거나 백슬래시를 앞에 주고 사용을 함

-print

현재의 경로 이름을 표시



제11장 유닉스 기초

?파일의 내용탐색

   - “grep" 명령을 사용하여 파일 내의 지정된 단어를 포함하는 파일을 탐색하며, -n 옵션을 지정하여 파일내의 지정한 문자들을 포함하는 행을 화면에 표시

       % grep options "search-string" files

       ?search-string은 탐색문자, files는 검색 대상이 되는 파일

       ?한 단어 이상의 문자열을 탐색하면 탐색문자열을 따옴표로 묶음

   - 와일드카드 “*” 사용 가능

       % grep "report" *

   - "."나 “*”문자가 포함된 탐색 문자열을 포함하는 파일을 찾기 위하여 “\"를 사용


?파일의 내용탐색

   - “grep" 명령에 -n 옵션을 사용한 경우

       % grep -n SPARC *

       Makefile:3:### definitions for SPARC

       Makefile:4:#LIBS_SPARC = '-lX11 -lm'

       Makefile:5:LIBS_SPARC = '-lm'

       Makefile:6:SWITCHES_SPARC = -O

       Makefile:12:            LIBS=$(LIBS_SPARC) \

       Makefile:13:            SWITCHES=$(SWITCHES_SPARC) \

       Makefile:16:    make lint -f Makefile.main LIBS=$(LIBS_SPARC)



제11장 유닉스 기초

?허가

   - 유닉스는 멀티유저 운영체제이므로 다른 사람들의 파일이나 디렉토리를 삭제하는 사고를 방지하기 위한 안전장치를 내장

   - 파일 허가에 관련하여 읽기(read), 쓰기(write), 실행(execute)에 대한 허가 사항을 가짐

   - ls -l 명령을 입력하면 허가사항, 링크번호, 소유자, 파일 크기, 날짜 등을 확인 가능


?허가

   - 허가에 관련된 사항

       % ls -l

       총 24

       drwxr-xr-x  10 hcj    staff     512  3월  4일  14:33 ./

       drwxr-xr-x  10 hcj    staff     512  3월  4일  14:33 ../

       drwxr-xr-x   3 hcj    staff     512 2000년  4월 27일 hcj_src/

       -rw-r--r--   1 hcj    staff     160  3월  4일  13:45 readme

       drwxr-xr-x   2 hcj    staff     512  3월  4일  13:55 source/

       drwxr-xr-x   2 hcj    staff     512 2000년  4월 27일 source_bak/

       drwxr-xr-x   3 hcj    staff    1536 2000년  4월 27일 source_la/

       drwxr-xr-x   3 hcj    staff    1024  9월 21일  20:42 source_pr/

       drwxr-xr-x   2 hcj    staff    1024 2000년  4월 27일 test_src/

       drwxr-xr-x  12 hcj    staff    1024  9월 21일  20:41 work/

       drwxr-xr-x   8 hcj    staff     512 2000년  4월 27일 work_src/

       ?첫 번째 문자에서 "d"는 대상이 디렉토리, “-”는 파일을 의미

       ?다음 세 문자는 파일의 소유자에 대한 허가사항으로, “r"은 읽기와 복사, ”w"는 쓰기와 삭제, “x"는 실행과 검색에 대한 허가사항

       ?그 다음 세 문자는 지정한 그룹에 대한 허가사항, 마지막 세 문자는 그 시스템을 사용하는 소유자, 지정 그룹내에 속하지 않은 사용자


제11장 유닉스 기초

?유닉스 기본 명령어

?cal : 달력을 출력

   - 지정된 년도의 달력을 출력하며, 월을 지정한 경우에는 그 달의 달력만을 출력하고, 지정하지 않는 경우 현재의 달에 대한 달력 출력

       % cal [[month] year]

   - year는 달력을 출력하고자하는 해를 지정하며, month는 1부터 12까지의 수

   - “% cal 94"는 1994년이 아니고, 94년을 가리킴

?date : 현재의 시각을 출력

   - 현재의 년, 월, 일, 요일과 시, 분, 초를 출력

       % date


?cal 사용 예

       % cal 3 2001

            2001년 3월

       일 월 화 수 목 금 토

                    1  2  3

        4  5  6  7  8  9 10

       11 12 13 14 15 16 17

       18 19 20 21 22 23 24

       25 26 27 28 29 30 31

?date 사용 예

       % date

       2001년 3월  4일 일요일 오후 02시 44분 59초



제11장 유닉스 기초

?유닉스 기본 명령어

?du(disk usage) : 사용자 자신의 디스크 사용 상황 출력

   - 사용자에게 할당된 저장공간의 크기에 관한 정보를 출력

   - 단위는 block이며, 사용자에게 할당된 저장공간 중 이미 사용되어진 저장공간의 크기를 각 부 디렉토리별로 출력

       % du

?grep : 파일내에 포함되어진 특정한 패턴을 찾음

   - 파일내의 특정 패턴을 찾아서 포함하고 있는 행 및 행의 번호 출력

       % grep [option] limited regular expression [file...]


?du 사용 예

       % ls

       ./         cj1/      cj1.RUN    ks1.RE      mj1/         mj1.RUN

       ../        cj1.RE    ks1/       ks1.RUN     mj1.RE

       % du

       304     ./cj1

       304     ./ks1

       304     ./mj1

       992     .

?grep의 옵션

   -b : 각 행의 선두에 그 행이 발견된 블록 번호를 넣어줌

   -c : 일치하는 패턴을 갖고 있는 행의 수만을 출력함.

   -l : 일치하는 행이 있는 파일의 파일명만을 출력하는데, 파일 내에 패턴이 몇 개나 포함되어 있어도 파일명은  한 개밖에 출력하지 않음.

   -n : 각 행의 선두에 파일내의 행 번호를 넣음(1 라인은 1임).



제11장 유닉스 기초

?유닉스 기본 명령어

?tty : 컴퓨터 시스템에 연결하여 사용하고 있는 터미널의 이름을 출력

       % tty

?who : 현재 컴퓨터 시스템에 사용하고 있는 사용자들을 알려줌

       % who


?tty 사용 예

       % tty

       /dev/pts/3

?who 사용 예

       % who

       hcj        pts/1         3월  4 14:55   (165.229.63.148)

       lyc        pts/2         3월  4 14:55   (210.217.119.169)

       hcj        pts/3         3월  4 14:55   (165.229.63.148)



제11장 유닉스 기초

?디렉토리 구조에 관한 명령어

?cd(change directory) : 작업 디렉토리를 변경

       % cd directory  : 지정된 디렉토리로 이동

       % cd /          : 루트 디렉토리(/)로 이동

       % cd            : 홈 디렉토리로 이동

       % cd ..         : 현재 디렉토리의 상위 디렉토리로 이동

?ls(list) : 디렉토리내의 파일 및 부 디렉토리의 목록 표시

   - 디렉토리에 있는 파일을 열거하고, 지정된 옵션에 따라 여러 정보를 확인할 수 있음

       % ls



?ls 명령의 옵션

-a

:

.(dot) 로 시작되는 파일과 디렉토리의 이름을 보여줌.

-C

:

화면으로 출력할 파일의 개수가 다수일 때 한 줄에 다수의 파일이름이 출력되며, 각 파일명은 행별로 순서 배열됨.

-F

:

디렉토리는 “/”, 실행파일은 “*”, 심볼릭 링크된 파일은 “@”가 붙어서 출력됨.

-i

:

각각의 파일이나 디렉토리에 대한 i-node 숫자가 첫 행에 출력됨.

-l

:

보호 비트에 관한 정보, 링크 수, 소유자 이름, 소유자가 속한 그룹, 파일의 크기(Byte), 최근에 수정된 일시 등에 관한 정보를 출력.

-g

:

-l과 동일하는 단지 소유자를 출력하지 않음.

-o

:

파일의 소유자가 속한 그룹을 출력하지 않음.

-n

:

파일의 소유자와 그룹의 이름을 출력하는 대신 소유자의 UID와 GID번호를 출력.

-m

:

문자열 형식의 출력을 지정하며, 각각의 파일은 “,”로 구분하여 출력.

-p

:

디렉토리의 이름 뒤에 “/”를 부착하여 출력.

-R

:

부 디렉토리의 내용으 모두 출력.

-r

:

파일명을 알파벳의 역순으로 출력.

-s

:

각각의 파일이나 디렉토리의 크기가 블록 단위로 출력.

-t

:

가장 최근에 변경된 파일 순으로 출력.

-x

:

-C 옵션과 동일하나 행별로 파일이 출력.



?위의 옵션 적용 예


       % ls

       /usr/comm

       3270.cfg

       3270.cfg.bak

       3274

       TM3274

       bin

       ......

       

       % ls -C     

       

3270.cfg

bin/

kms.bak

sc.adm2

tm3274

3270.cfg.bak

ctrl

ky.adm2

startpr

xpe3287

3274

gem@

o1_instal1*

stoppr

txte3279

TM3274

kms/

kola

te3279

 


       % ls -x                     

       

3270.cfg

3270.cfg.bak

3274

TM3274

bin/

ctrl

gem

kms

kms.bak

ky.adm2

o1_stall*

kola

sc.adm2

startpr

stoppr

te3279

tm3274

cpe3287

txte3279

 



       % ls -F

       

3270.cfg*

3270.cfg.bak*

3274/

TM3274

bin/


       % ls -i

       

3735

3270.cfg*

1919

3270.cfg.bak*

1810

3274/

1883

TM3274

1877

bin/


       % ls -l

       total 1222

       

-rwxr-xr-x

1

comm

comm

62

Mar

27

03:56

3270.cfg

-rwxr-xr-x

1

root

sys

62

Feb

12

05:57

3270.cfg.bak

drwxr-xr-x

2

root

sys

192

Nov

5

1991

3274

-r-x------

1

root

sys

139232

Nov

5

1991

TM3274

drwxr-xr-x

2

root

sys

80

Nov

5

1991

bin

-rwxrwxrwx

1

root

sys

107303

Feb

20

1991

xpe3287

-rwxrwxrwx

1

root

sys

337845

Feb

20

1991

xtx3279

       

:

파일이나 디렉토리의 mode와 허가를 나타낸다.

:

링크의 수를 나타낸다.

⑶-⑷

:

파일이나 디렉토리의 소유주와 그룹을 출력한다.

:

파일이나 디렉토리의 크기를 출력한다.

:

가장 최근에 내용을 수정한 일시를 출력한다.

:

해당 파일이나 디렉토리의 이름을 출력한다.


       % ls -o

       total 1233

       

-rwxr-xr-x

1

comm

    62

Mar

27

03:56

3270.cfg

-rwxr-xr-x

1

root

   192

Nov

5

1991

3274

-r-x------

1

root

139232

Nov

5

1991

TM3274

drwxr-xr-x

2

root

    80

Nov

5

1991

bin

-rwxrwxrwx

1

root

107303

Feb

20

1991

xpe3287

-rwxrwxrwx

1

root

337845

Feb

20

1991

xtx3279


       % ls -R

       3270.cfg

       3270.cfg.bak

       3274

       tm3274

       bin

       ctrl

       gem

       

       ./3274:

       ky.adm2

       ky.comm

       ky.ft45

       ky.office

       


제11장 유닉스 기초

?디렉토리 구조에 관한 명령어

?mkdir(make directory) : 새로운 디렉토리를 만드는 명령

   - 작업공간이 쓰기(write)가 허용되어야만 디렉토리를 만들 수 있음

       % mkdir [-m] mode [-p] <경로><디렉토리 이름>

   - 생성될 디렉토리의 허가를 지정하기 위하여 -m 옵션 적용

?pwd(print working directory) : 현재 작업 디렉토리를 확인하기 위한 명령

       % pwd


?mkdir 사용 예

       % mkdir 관리

       % ls -al

       total 8

       drwxr-xr-x  15 bin     bin     352 Jul 25 16:48 .  

       drwxr-xr-x  15 bin     bin     352 Jul 25 16:48 .. 

       drwxr-xr-x   2 bin     bin    2224 Jul 25 11:46 관리

       % mkdir -m 777 abc

       % ls -al

       total 8

       drwxr-xr-x  15 bin      bin     352 Jul 25 16:48 . 

       drwxr-xr-x  15 bin      bin     352 Jul 25 16:48 ..

       drwxrwxrwx   2 bin      bin    2224 Jul 25 11:46 abc

?pwd 사용 예

       % pwd

       /usr1/home/hcj



제11장 유닉스 기초

?디렉토리 구조에 관한 명령어

?rmdir(remove directory) : 기존의 디렉토리를 제거하기 위한 명령어

   - 제거할 디렉토리가 위치한 작업공간에 대해 쓰기 권한이 허용되어 있어야 함

       % rmdir [-ps] <디렉토리 이름>

   -p : 제거된 디렉토리에 대한 메시지를 표시함

   -s : 제거된 디렉토리에 대한 메시지가 표시되지 않으며, 이 옵션은 기본적으로 설정되어져 있음


?rmdir 사용 예

       % pwd

       /tmp

       % ls -ail

       total 8

       

156

drwxrwxrwx

3

sys

sys

128

May

14

14:56

.

2

drwxrwxr-x

20

root

sys

592

May

14

11:03

..

12309

drwxr-xr-x

2

root

other

48

Mat

14

11:44

aaa

       % rmdir aaa

       % ls -ail

       total 6

       

156

drwxrwxrwx

3

sys

sys

128

May

14

14:56

.

2

drwxrwxr-x

20

root

sys

592

May

14

11:03

..


제11장 유닉스 기초

?파일 관리에 관한 명령어

?cat(concatenate) : 파일의 내용을 화면에 출력

   - 파일 안에 있는 내용을 출력할 때 적용하지만 표준 출력 방향 전환을 이용하여 새로운 내용의 파일을 생성하고자 하는 경우에도 이용

       % cat filename

       % cat > filename


?cat 사용 예

       % cat  aa.c

       main()   /* count lines in input */              

       {

           int  c, nl;

                   nl = 0;

           while ((c = getchar()) != EOF)

               if (c == '\n')

                  ++nl;

               printf("%d\n", nl);

           }

   - 표준 출력 방향 전환을 이용하여 aa.c파일의 내용을 입력하기 위하여 다음과 같이 명령을 적용

       % cat > aa.c

       good morning !

       welcome

       ^D

       % ls -l aa.c

       -rw-rw-rw- 1 root    root     23 May 17 14:44 aa.c


제11장 유닉스 기초

?파일 관리에 관한 명령어

?cp(copu file) : 파일을 복사하기 위한 명령

   - file1, file2, ...을 target으로 복사하기 위한 명령

       % cp file1 [file2 ...] target

   - 옵션 -r을 적용하면 디렉토리 복사도 가능


?cp 사용 예

       % ls

       aa.c    bb.c    cc.c

       % cp aa.c  dd.corcat aa.c > dd.c

       % ls

       aa.c

       bb.c

       cc.c

       dd.c



제11장 유닉스 기초

?파일 관리에 관한 명령어

?diff(differential file comparator) : 두 개의 파일이 일치되도록 변경시키기 위한 정보를 제공해 주는 명령

       % diff file1 file2


?diff 사용 예

   - 파일 "a"와 "b"에 각각 다음과 같은 내용이 있다고 가정할 경우, 두 개의 파일간의 차이에 대한 정보를 알 수 있음

       % cat a

       a b c d e f g 

       b c d e f g h 

       c d e f g h i 

       d e f g h i j 

       1 2 3 4 5 6 7

       % cat b

       a b c d e f g 

       b c d e f g h 

       c d e f g h i 

       d e f g h i j 

       e f g h i j k 

       % diff a b    

       5c5

       < 1 2 3 4 5 6 7

       ---           

       > e f g h i j k



제11장 유닉스 기초

?파일 관리에 관한 명령어

?fgrep : 문자열에 따라 파일을 검색하여 지정한 문자열이 있는 모든 행을 출력

   - 정규식(영문, 숫자, 특수문자의 부분집합을 사용하는 식)을 사용하는 grep과는 차이가 있음

       % fgrep [option] string [file ...]

?find : 지정된 파일이 있는 위치를 확인하기 위한 명령

   - 지정한 file을 찾는 경우 file의 경로가 화면에 출력

       % find path -name filename -print


?fgrep의 옵션

       

-b

:

각 행의 선두에 그 행이 발견된 블록번호를 넣어줌.

-c

:

일치하는 패턴을 갖고 있는 행의 수만을 출력함.

-l

:

일치하는 행이 있는 파일의 파일명만을 출력.

파일내의 패턴과 일치하는 행이 복수 개 포함되어 있다고 하더라도 파일명은 한번만 출력함.

-n

:

각 행의 선두에 파일내의 행 번호를 넣음.(첫번째 행은 1.)

-i

:

비교시 소문자와 대문자의 차이를 무시.

-v

:

일치하는 행을 제외한 모든 행을 출력.

?find 사용 예

   - 루트 디렉토리로부터 "wall"의 파일을 탐색할 경우

       % find / -name wall -print

       /etc/wall



제11장 유닉스 기초

?파일 관리에 관한 명령어

?lp(line printer) : 파일을 라인 프린터로 출력하도록 요청

   - lp 명령을 사용하고자 할 때는 lpstat -t 명령을 사용하여 실행 가능 상태를 확인하여야 함

?cancel : lp 명령 출력요청을 취소


?lp 사용 예

       % lpstat -t

       scheduler is running

       system default  destination: lq

       device for lq: /dev/tty13

       device for lq1: /dev/tty14

       lq1 accepting requests since Nov  5 01:03

       lq accepting requests since May 11 15:03

       printer lq1 is idle.  enableed sinced Jul  4 09:32

       printer lq is idle.  enableed sinced Jul  7 15:02


       % lp .profile

       request id is lq-68 (1 file)

       % sort /etc/passwd | lp

       request id is lq-69 (standard input)

       % lpstat

       lq-69   root   222   Dec 11 10:13 on lq

       % cancel lq-69

       request "lq-69" cancelled



제11장 유닉스 기초

?파일 관리에 관한 명령어

?mv : 디렉토리 또는 파일이름을 변경하는 명령

       % mv <현재이름> <변경될 이름>


?mv 사용 예

       % ls -al

       total 562

       

drwxr-xr-x

15

bin

bin

352

Jul

25

16:48

.

drwxr-xr-x

15

bin

bin

352

Jul

25

16:48

..

-rw-------

1

root

root

449

Jul

25

11:03

.profile

drwxr-xr-x

2

bin

bin

2224

Jul

25

11.46

관리

       % mv 관리 주문

       % ls -al

       total 562                                            

       

drwxr-xr-x

15

bin

bin

352

Jul

25

16:48

.

drwxr-xr-x

15

bin

bin

352

Jul

25

16:48

..

-rw-------

1

root

root

449

Jul

25

11:03

.profile

drwxr-xr-x

2

bin

bin

2224

Jul

25

11.46

주문


제11장 유닉스 기초

?파일 관리에 관한 명령어

?pr(print files) : 파일의 내용을 편집하여 출력하기 위한 명령

   - 현재의 시각, 파일명, 페이지 등을 같이 보여주며, 여러 가지 옵션을 이용하면 자신이 원하는 형태로 파일의 내용을 볼 수 있음

   - “pr" 명령을 사용하여 파일의 내용을 출력할 경우, 각 페이지는 66개의 행으로 구성되며, 이중 header와 trailer로 각각 5개행씩 출력



?pr 사용 예

   - file1과 file2를 "file list"라는 표제로 부착하여 행간에 간격을 두고 3열로 출력

       % pr -3dh "file list" file1 file2

   - header와 trailer없이 행 번호를 붙여서 6열로 동시에 출력할 경우

       % pr -t -n6 file1

       % pr -l6 -m aa.c

       May 17 14:45 1988 aa.c  Page 1

       

       main()   /* count lines in input */

       {

          int  c, nl;

          nl = 0;

          while ((c = getchar()) != EOF)

       

       May 17 14:45 1988 aa.c  Page 2

       

             if (c == '\n')

                ++nl;

             printf("%d\n", nl)

          }



제11장 유닉스 기초

?파일 관리에 관한 명령어

?rm(remove) : 파일(디렉토리)을 삭제하기 위한 명령

   - 삭제하고자 하는 디렉토리 내에 파일이나 부 디렉토리가 있어야만 삭제가 가능

       % rm [-f] [i] filename

       % rm -r [-f] [-i] dir-name...[file...]

       % rmdir [-p] [-s] dir-name


?rm 명령의 옵션

       

-f

:

디렉토리안의 파일을 삭제할 때 사용자의 확인을 요구하지 않음.

-r

:

인수목록에서 지정한 디렉토리 혹은 그 아래의 부 디렉토리를 삭제

-i

:

파일을 삭제하기 전에 사용자의 확인을 요구함.

-p

:

디렉토리 dir-name과 비어있는 상위 디렉토리를 사용자가 제거할 경우에 적용.

-s

:

-p 옵션을 적용하였을 때 발생가능한 오류 메시지의 출력을 제한함.

?rm 명령 사용 예

       % ls -l                                             

       total 4                                             

       rw-r--r--   1 root    other     40 5월 15일 20:14 aaa

       rw-r--r--   1 root    other     25 5월 15일 20:15 bbb

       % rm aaa                                            

       % ls -l                                             

       total 2                                             

       rw-r--r--   1 root    other     25 5월 15일 20:15 bbb



제11장 유닉스 기초

?파일 관리에 관한 명령어

?tail : 파일의 끝 부분을 화면에 출력

   - 출력될 열의 숫자를 지정하지 않으면 파일의 끝 부분 중 10개의 열만 출력

       % tail /etc/rc0

   - 파일의 끝 부분의 20개 열을 출력하고자 할 경우

       % tail -20 /etc/rc0

?head : 파일의 앞 부분을 화면에 출력

   - 출력될 열의 숫자를 지정하지 않으면 파일의 앞 부분 중 10개의 열만 출력

       % head /etc/rc0

   - 파일의 앞 부분의 20개 열을 출력하고자 할 경우

       % head -20 /etc/rc0

?tar(Tape Archive) : 파일들을 자기테이프에 저장 또는 불러오기 위한 명령

      % tar [-]{txruc}[vwfblm][0-7[lmh]] [tapefile] [blocksize] file1 file2

?wc(word count) : 텍스트파일의 문자 수, 단어 수, 라인 수를 확인하기 위한 명령

       % wc test.c

       251   400     950     test.c  



?tar 명령 옵션

       

x

:

지정한 파일을 테이프로부터 추출.

인수가 주어지지 않으면 전체 파일을 추출한다.

기존의 자료와 동일한 자료가 추출될 경우 겹쳐 쓰기를 한다.

t

:

지정한 파일을 테이프 상에서 확인작업만 수행.

c

:

지정한 파일들을 테이프로 저장.

v

:

작업 파일명을 화면에 출력.

b

:

레코드의 블록 크기를 지정(최대 20)

?tar 사용 예

       % tar -cvf /dev/TAPE.CART

       

a

./ctrl/bsopts

4 blocks

a

./ctrl/calendar

0 blocks

tar:

./ctrl/startbsc

3274: cannot open file

tar:

./ctrl/stopbsc3

274:  cannot open file

a

./ctrl/initbsc3

274 2 blocks

a

./ctrl/BSOPTS

41 blocks

       %

       % tar -tvf /dev/TAPE.CART

       Tar: blocksize = 20

       

-rwxr-xr-x

2

2

1551

Nov

5

00:42

1991

./ctrl/bsopts

-rwxr-xr-x

0

3

   0

Dec

19

06:09

1991

./ctrl/calendar

-rwxrwxrwx

0

3

890

Dec

19

06:17

1991

./ctrl/initbsc3274

-rwxr-xr-x

2

2

20627

Feb

20

05:25

1991

./ctrl/BSOPTS

-rwxr-xr-x

2

2

25050

Dec

6

06:04

1991

./ctrl/bsc.cnfg

       %

       % tar -xvf /dev/TAPE.CART .

       Tar: blocksize = 20

       

x

./ctrl/bsopts

1551 bytes

4 tape blocks

x

./ctrl/calendar

0 bytes

0 tape blocks

x

./ctrl/initbsc3274

890 bytes

2 tape blocks

x

./ctrl/BSOPTS

20627 bytes

41 tape blocks


제11장 유닉스 기초

?기타 명령어

?bc : 간단한 산술적 계산을 할 수 있게 해주는 명령

   - CTRL+D를 눌러서 “bc"에 의한 연산을 종료

?mesg : 메시지 수신을 허가 또는 거부하기 위한 명령

       % mesg [-n][-y]

?passwd(change password) : 자신의 암호를 새로 등록하거나 변경하고자 할 때 사용되는 명령

   - Super-User는 다른 사람의 암호도 변경할 수 있음


?bc 사용 예

       % bc

       465*346

       160890

       3746467+47547578

       51294045

       ^D      // CTRL+D를 눌러서 "bc"에 의한 연산을 종료

?mesg 옵션

       % mesg [-n][-y]

       

-n

:

사용자 단말기에 다른 사용자의 쓰기허가를 취소하여 메시지 수신을 금지시킴.

-y

:

-n 옵션에 의한 메시지 수신거부를 복원시킴.



?passwd 사용 예

       % passwd

       Changing password for comm

       Old password:

       New password:

       Re-enter new password:

       // 입력되는 암호는 화면에 출력되지 않음


제11장 유닉스 기초

?기타 명령어

?stty(set tty) : 현재 컴퓨터 시스템과 연결되어 있는 단말기나 콘솔의 입/출력 선택항목을 설정하기 위한 명령

       % stty [-a] [-g] [option]

   -a : 모든 선택항목의 설정상황을 보여줌

   -g : 다른 stty 명령어의 인수로 사용될 수 있는 형식으로 현재의 설정상황을 출력



?stty 사용 예

       % stty

       speed 9600 baud; -parity hupcl

       erase = ^h; swtch = ^`;

       brkint -inpck -istrip icrnl -ixon onlcr tab3

       echo echoe echok

       % stty -g

       906:1805:4bd:3b:7f:1c:8:40:4:0:0:0

       % stty -a

       speed 9600 baud; line = 0; intr = DEL; quit = ^|;

       erase = ^h; kill = @; eof = ^d; eol = ^`; swtch = ^`

       -parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk

       -ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl  -ixon ixany -ixoff

       isig icanon -xcase echo echoe echok -echonl -noflsh

       opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3

  - 시스템에서 MSB가 설정된 데이터(2 Byte 한글, 한자, 도형문자)를 이용하기 위해서는 해당 항목 중 다음 항목은 반드시 설정해야 함

       

-parneb

:

parity 생성 / 검출을 행하지 않음.

cs8

:

한 문자가 8 bit로 이루어져 있음.

-cstopb

:

문자당 stop bit 를 1 bit로 함.

-istrip

:

입력문자중 8번째 bit(MSB)를 strip하지 않음.


제11장 유닉스 기초

?기타 명령어

?tee : 파이프 접속에 사용되어지는 명령

   - 표준 입력을 표준 출력에 출력하고 동시에 파일에 복사

       % tee [-i] [-a] [file]

   -i : 인터럽트를 무시

   -a : 출력은 파일의 내용을 파괴하지 않고 파일에만 추가


?tee 사용 예

       % cat b

       안녕하세요?

       오래간만입니다.

       또 봅시다.

       how do you do.

       안녕

       % tee -a b

       또 안녕

       good bye !!

       ^D

       % cat b

       안녕하세요?

       오래간만입니다.

       또 봅시다.

       how do you do.

       안녕

       또 안녕

       good bye !!


제11장 유닉스 기초

?기타 명령어

?tr(translate characters) : 표준 입력의 특정문자들을 삭제하거나 치환하여 표준 출력으로 내보내는 명령

       % tr [-option] pstring1[string2]]

?wall : 시스템을 중단시킬 때 모든 사용자에게 경고하기 위한 메시지

       % wall


?tr 옵션

       

-d

:

string1 내의 문자와 일치하는 모든 입력문자를 삭제.

-s

:

출력하는 문자열에 연속해서 나타나는 문자 중에서 string2에 있는 것을 1개의 문자로 단축함.

-c

:

ASCII code가 8진수의 001에서 377까지의 문자에 대해서 string에 있는 문자들을 보수로  취함

   - "aa.c" 파일내의 내용 중 소문자는 모두 대문자로 변환하여 그 결과를 "bb.c"파일에 저장할 경우

       % tr [a-z] [A-Z] < aa.c > bb.c

?wall 사용 예

       % wall

       30초후 시스템을 다운시키겠음.

       ^D

       Broadcast Message from root (console) on sysV68 Tue Jul 7 19:45:53

       30초 후 시스템을 다운시키겠음.



제11장 유닉스 기초

?기타 명령어

?write : 다른 사용자에게 메시지를 전송하기 위한 명령

       % write user [terminal]


?write 사용 예

   - 시스템 관리자(root)가 다음과 같은 메시지를 전송할 경우

       % write comm  ttyp3

       안녕하세요

       저는 /dev/console port 사용자입니다.

       

       ^D

       

       %

       

       // 시스템 관리자가 전송한 메시지가 comm user ttyp3 터미널에 다음과 같이 출력

       

       %

       Message from root on sysV68(console) [Tue Jul  7 19:33:37 ] ...

       안녕하세요

       저는 /dev/console port 사용자입니다



제11장 유닉스 기초

?권한변경에 관한 명령어

?chgrp(change group) : 파일 또는 디렉토리 소유권자의 그룹을 바꾸는 명령

   - chown와 유사한 기능을 갖는 명령

       % chgrp group file...         // 파일에 대한 그룹 변경

       % chgrp group directory...    // 디렉토리에 관한 그룹변경

?chmod(change mode) : 파일의 사용 권한을 변경할 때 사용되는 명령

   - 지정된 파일과 디렉토리에 대한 권한을 모드에 따라 변경하며, 모드는 숫자 또는 문자로 지정

       % chmod [who] operator [permission] file(s)

   - who는 사용자, 그룹, 모든 사용자를 분류하는 1개 이상의 문자이며, operator는 권한의 할당을 표시하는 +, -, = 기호중 하나이고, permission은 권한의 유형을 가리키는 1개 이상의 문자로서, 읽기, 쓰기, 실행은 각각 r, w, x

       % chmod mode file1 ...

       % chmod mode directory1 ...

       % chmod xxx file1 ...


?chgrp 사용 예

   - 파일 "nogood"의 그룹을 "root"로 변경하고자 할 경우

       % chgrp root nogood                           

       % ls -l nogood                                

       -rw-r--r-- 1 comm  root  30 May 15 11:19 nogood



?chmod 사용 예

       % chmod xxx file1 ...   //xxx는 숫자를 사용하며 다음과 같음

       

700

:

소유자에 대한 읽기, 쓰기, 실행권한부여

400

:

소유자에 대한 읽기권한부여

200

:

소유자에 대한 쓰기권한부여

100

:

소유자에 대한 실행권한부여.

디렉토리 내에서 검색

070

:

그룹에 대한 읽기, 쓰기, 실행권한부여

040

:

그룹에 대한 읽기권한부여

020

:

그룹에 대한 쓰기권한부여

010

:

그룹에 대한 실행권한부여

디렉토리내에서 검색.

007

:

모든 사용자에 대한 읽기, 쓰기, 실행(탐색) 권한부여.

004

:

모든 사용자에 대한 읽기권한부여

002

:

모든 사용자에 대한 쓰기권한부여

001

:

모든 사용자에 대한 실행권한부여

디렉토리내에서 검색

000

:

권한을 부여하지 않음.

       

       % ls -l /etc/rc0       

-

rw-

rw-

r--

1

root

root

3480

May

15

10:10

/etc/rc0

 

 

 

 

 

 

 

 

 

 

 

 

 

.파일명

 

 

 

 

 

 

 

 

 

 

 

 

최근의 파일수정일시

 

 

 

 

 

 

 

 

 

 

 

 

파일크기(byte)

 

 

 

 

 

 

 

 

 

 

 

 

파일의 그룹

 

 

 

 

 

 

 

 

 

 

 

 

파일의 소유자

 

 

 

 

 

 

 

 

 

 

 

 

파일의 링크수

 

 

 

 

 

 

 

 

 

 

 

 

타인에 대한 권한부여

 

 

 

 

 

 

 

 

 

 

 

 

그룹에 대한 권한부여

 

 

 

 

 

 

 

 

 

 

 

 

소유자에 대한 권한부여

 

 

 

 

 

 

 

 

 

 

 

 

파일모드

“-”는 파일을 의미


   - chmod 옵션

       

d

:

디렉토리

b

:

블록형태의 특수파일

c

:

문자형태의 특수파일

-

:

일반파일

r

:

읽기가능

w

:

쓰기가능

x

:

실행가능

s

:

사용자 또는 그룹설정ID 상태로 됨

t

:

sticky 비트가 설정됨

l

:

엑세스하는 동안 강제적인 lock이 발생함

u

:

사용자에 대한 허가

g

:

그룹에 대한 허가

o

:

모든 사용자에 대한 허가

+

:

권한부여

-

:

권한삭제

+

:

지정된 사용자에 대해서만 권한을 할당하고 다른 사용자에 대한 권한삭제

       % chmod a-x file        // 전체에 대한 실행허가를 취소.

       % chmod 444 file        // 전체에 대해서 읽기만을 허용.

       % chmod go+rw file      // 그룹과 모든 사용자에 읽기, 쓰기 허용

       % chmod 606 file        // 그룹과 모든 사용자에 읽기, 쓰기 허용

       % chmod +x file         // 사용자, 그룹, 모든 사용자에 실행 허용

       % chmod o+rw file       // 모든 사용자에게 읽기, 쓰기 허용

       % chmod g+r,o+r file    // 그룹, 모든 사용자에게 읽기 허용.

   - 파일 "good"에 대해 파일의 소유자에게는 읽기와 실행 권한을, 모든 사용자에 대해서 쓰기 권한을 부여

       % ls -l  good

       -rw-r--r-- 1 root  root 30 May 15 10:10 good

       % chmod u=rx good

       % ls -l good

       -r-xr--r-- 1 root  root 30 May 15 10:10 good

       % chmod a+w good

       % ls -l good

       -rwxrw-rw- 1 root  root 30 May 15 10:10 good



제11장 유닉스 기초

?권한변경에 관한 명령어

?chown(change owner) : 파일의 소유권자를 변경할 때 사용하는 명령

   - 자신의 파일을 다른 소유권자의 파일로 바꾸거나, 다른 사용자의 파일을 자신의 파일로 복사하여 자신의 소유를 만들 수 있음

       % chown owner file...

       % chown owner directory...

   - owner는 10진수의 사용자 ID 또는 password 파일에 있는 로그인 명칭 중 어느 것으로도 지정 가능


?chown 사용 예

   - "nogood"파일에 대한 소유권자를 "cbt"로 변경할 경우

       % ls -l nogood                                

       -rw-r--r-- 1 comm  comm  30 May 15 11:10 nogood

       % chown cbt nogood                            

       % ls -l nogood                                

       -rw-r--r-- 1 comm  comm  30 May 15 11:15 nogood




제11장 유닉스 기초

?연습 문제?

1] 유닉스의 역사에 대하여 설명하시오.

2] 유닉스와 도스의 차이점을 예를 들어 설명하시오.

3] 명령어의 이름 바꾸기에 사용하는 명령어를 설명하시오.

4] 디렉토리를 만들기, 복사하기, 이름 바꾸기, 삭제하기에 관련된 유닉스 명령어를 설명하시오.

5] 디렉토리나 파일 리스트를 보여주는 “ls“ 명령어에 관련된 여러 가지 옵션에 대하여 설명하시오.

6] 디렉토리나 파일의 사용 권한을 바꿀 수 있는 명령어에 대하여 설명하시오.

7] 유닉스 시스템에서 다른 사용자와 메시지를 주고받거나, 이야기를 주고받을 수 있는 명령어에 설명하시오.