유닉스의 기초...펌
유닉스 기초
![]() ![]() 2007/11/23 11:17
|
제 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 |
파일 프린트 |
|
lpr |
프린터 큐보기 |
|
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 가 사용이 될 수 있으며 이들은 따옴표 안에 표시를 하거나 백슬래시를 앞에 주고 사용을 함 |
|
현재의 경로 이름을 표시 |
제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] 유닉스 시스템에서 다른 사용자와 메시지를 주고받거나, 이야기를 주고받을 수 있는 명령어에 설명하시오.
|