유닉스(UNIX) 기초 강좌
- 유닉스의 시작
- 유닉스의 쉘
- 컴맨드라인 작업
- 컴맨드 히스토리 이용
- 특정 컴맨드 매뉴얼 보기
- 명령어 이름 변경 또는 단순화
- 경로
- 디렉토리 생성과 삭제
- 와일드 카드이용
- 화일 보기
- 화일 조작
- 화일 찾기
- 화일 내용 찾기
- 화일 주인
![](http://myhome.shinbiro.com/%7Estar321/zip/bullet_p.gif)
![](http://myhome.shinbiro.com/%7Estar321/zip/bullet_p.gif)
![](http://myhome.shinbiro.com/%7Estar321/zip/bullet_p.gif)
![](http://myhome.shinbiro.com/%7Estar321/zip/bullet_p.gif)
![](http://myhome.shinbiro.com/%7Estar321/zip/bullet_p.gif)
- 유닉스(UNIX)와 인터넷
-
인터네트가 유닉스를 탑재한 컴퓨터들을 기본으로 연결되어 있기 때문에
어떠한 환경에서 인터네트을 사용하든 유닉스에 대한 최소한의 지식을
필요로 한다.
대부분의 서비스 제공자들은 유닉스 운영체제로 돌아가는 컴퓨터를 사용하고 또한 telnet과 ftp를 사용하여 접속을 하는 컴퓨터들도 그러하다. 윈도우즈와 매킨토시 사용자들은 친밀한 그래픽 유서 인터페이스에게 안녕을 고하고 황량한 유닉스의 명령어 체제를 맞이하여야 한다. 유닉스는 골치가 아플 것이다. 하지만 이 글을 읽고 나면 유닉스 명령중 꼭 필요한 것 들에 대한 도움을 얻을 수 있을 것이다.
- 인터넷 사용에 필요한 명령어 9
-
초보자에게는 유닉스가 아주 까다롭게 여겨질 수 있으나, 인터네트 사용을 위해서
필요한 명령어는 그리 많지 않다. 다음은 인터네트 사용에 필요한 필수적인
유닉스 명령어 9 가지를 소개한다.
- 화일 내용 보기
% cat filename - 현 경로 알아보기
%pwd - 경로바꾸기
%cd directory - 현 디렉토리의 화일 목록보기
% ls -al - 화일 편집
%pico -t filename - 화일 지우기
%rm filename - 화일 이름 바꾸기
%mv file1 file2 - 시스팀 종료
%exit
- DOS 사용자를 위한 Unix 명령어 목록
- 화일 내용 보기
-
Unix는 DOS와는 달리 여러 사용자를 동시에 지원하는 OS(운영체제)이며,
DOS보다 훨씬 더 다양하고 강력한 명령어들을 가지고 있다.
DOS에 대응하는 Unix에서의 명령어는 다음과 같다.
To ... DOS UNIX
다음은 Unix에만 있는 명령이다.
___________________________________________________________
화일 목록 보기 dir/w dir ls
dir ls -l
화일내용 보기 type cat
화면단위로 내용보기 type filename | more more
화일 복사 copy cp
화일내의 특정 문자열 찾기 find grep
fgrep
화일 내용 비교 comp diff
화일명 변경 rename OR ren mv
화일 삭제 erase OR del rm
디렉토리 삭제 rmdir OR rd rmdir
화일의 퍼미션 변경 attrib chmod
디렉토리 만들기 mkdir OR md mkdir
워킹디렉토리 변경 chdir OR cd cd
도움말 보기 help man
apropos
시간 및 날짜보기 date, time date
디스크 사용내역 보기 chkdsk df
화일 프린트 print lpr
프린터 큐보기 print lpq
___________________________________________________________
Unix 명령에 대한 자세한 설명은 man 명령을 이용하면 볼 수 있다. 예컨데 who에 대한 영문 매뉴얼을 보려면 다음과 같이 한다.
who 현재의 사용자 목록 보기
finger 현재의 사용자 목록 보기
w 현재의 사용자가 무엇을 하고 있는지 보기
logout 시스템에서 빠져나가기
pwd 현재의 디렉토리를 표시
passwd 자신의 패스워드 바꾸기
%man who
- 유닉스의 이해
-
-
유닉스의 시작
-
유닉스로 작업을 하려면 몇몇의 유닉스의 기초 개념을 이해하 여야한다.
이러한 기초 개념을 이해하는 것은 유닉스 명령을 사용함에 있어서 시간을
절약하고 당황하는 것을 줄여줄 것이다.
-
유닉스 쉘 게임
-
가장 보편적인 서비스 제공자 계정은 쉘 계정이라 불리우는 것이다.
쉘은 당신과 운영체제 간의 인터페이스이다; 그것은 당신이 키보드에 입력을
하는 명령을 운영체제가 이해할 수 있도록 해석하여 준다. 유닉스에
기초한 컴퓨터 시스템의 시스템 프람프트가 어떤 모습으로 당신에게 보이는가는 그
시스템이 사용하는 쉘에 달려있다.
유닉스 쉘 중에 가장 많이 사용하는 세가지는 Bourne, Korn그리고 C 이다. Bourne 쉘(sh)은 모든 유닉스 시스템에 있다. Korn 쉘 (ksh)는 입력과 명령어 편집들을 쉽게 할 수 있도록 하는 추가의 많은 기능들을 내장하고 있다. Bourne 쉘과 Korn 쉘 프람프트는 둘다 보통 "$"로 표시된다. C쉘(csh)은 Korn 쉘과 비슷한 기능들을 제공하는 인기가 좋은 쉘이다. C쉘의 프람프트는 "%"이다. 대부분의 서비스 제공자들은 시스템 프람프트에 서 쉘명령(csh 또는 ksh)을 사용하여 사용하는 쉘을 바꿀 수 있게 한다.
팁: 쓸데 없이 어렵게 만들 필요는 없다. 만약 쉘을 선택할 수 있다면 C나 Korn 쉘을 선택하라. Bourne 쉘은 아주 제한된 기능 만을 가지고 있다. C 쉘을 많이 사용하는 이유는 대부분의 유닉스 버전에 공짜로 포함이 되어있었고 오래되었기 때문이다. 이제는 Korn 쉘도 많은 버전의 유닉스에 번들로 끼어온다. Korn 쉘이 선호하는 사람이 더 많다.
- 시작
-
쉘 계정을 만들었으면 홈디렉토리에 셋업이 된다. 홈디렉토리는 서비스 제공자의 컴퓨터에 당신의 베이스 기지가 되는 것이다. 그것은 당신의 계정에 관련된 모든 화일과 디렉토리를 가지게 된다. 디렉토리를 만들거나 화일을 다운로드하면 그것들은 모두 당신의 홈 디렉토리에 들어가는 것이다.
홈 디렉토리에는 보통의 화일 이외에도 히든 화일들이 존재한다. 히든 화일들은 ".(마침표-이 글에서 앞으로 점이라고 부르기로 한다)"로 시작을 한다. 히든 화일의 대부분은 프로그램에 대한 설정사항들을 저장해 두는데 사용을 한다. 이 화일들의 대부분은 rc( run commands)로 끝난다. 예를 들면 .tinrc 화일은 tin 프로그램에 대한 설정을 담은 화일이다. 히든 화일들은 일반적인 디렉토리 리스팅에서는 제외된다.
- 커맨드 라인에서 작업하기
커맨드 라인은 시스템 프람프트 다음에 당신의 명령을 입력하는 공간으로서 유닉스 인터페이스이다. 이 작지만 강력한 작업공간에서 명령어를 입력하고 편집하는 기본 원리를 간단하게 설명하겠다.
만약 입력한 텍스트에 백스페이스를 사용하려고 하면 안 될 것이다. delete 키를 사용하여본다. 만약 delete가 안 먹는다면 Ctrl-H나 #를 시도해본다. 만약 그래도 안된다면 Ctrl-U또는@를 사용하여 줄 전체를 지워버린다. 만약 C쉘을 사용중이라면 명령어를 재 입력하고 커맨드라인에서 변경된 것이 저장 되도록 하려면 카레(^)를 누른다.
예를 들면 cat profit.txt |mroe에서 more가 잘 못 입력되었다. 이것을 고치기 위하여서 다음 프람프트에서 ^ro^or을 입력한다. C쉘은 마지막 명령을 반복하면서 or 대신에 ro를 집어 넣는다.
Korn 쉘은 텍스트를 대치하기 위하여 다른 신택스를 사용한다. 커맨드라인을 재 실행하고 앞의 예에서 보여준 잘 못된 철자를 수정하기 위하여서 Korn 쉘에서는 r ro=or을 입력한다. 또한 텍스트 수정이 끝난 다음에 명령어의 특정한 문자를 포함시켜서 그 문자를 포함하는 마지막 명령을 재 실행 시킬 수 있다. 예를 들면 r ro=or c 는 텍스트를 변경하고 c로 시작을 하는 마지막 명령을 재 실행시킨다.
- 히스토리에 대하여
사가들이 이야기하듯이 역사는 반복을 하듯이 유닉스 명령에서도 역사(history)는 반복을 한다. 명령어를 반복하여 입력을 해야할 필요가 생길 것이라는 것은 의심할 여지가 없다. C쉘과 Korn쉘은 모두 이전에 입력이 된 명령어들을 저장하여서 화면에 다시 디스플레이하여 재 실행이 될 수 있도록 한다. 히스토리 명령을 사용하면 이전에 사용한 약 10개의 명령을 화면에 나타낼 수 있다. C쉘은 이전에 입력이 된 명령들을 뱅(bang;영어로 총을 쏘는 소리)느낌표(!)를 사용하여 화면에 나타낼 수 있다.
예를 들면 C쉘을 사용하면서 "!10"은 히스토리 리스트에 있는 10번째 명령을 의미한다. 가장 마지막 입력한 명령을 표시하기 위하여서 는 "!!"를 입력한다. C쉘은 또한 캐릭터 스트링을 사용하여서 명령을 지정할 수 있도록 한다. 예를 들면 "! cd"는 가장 마지막으로 실행을 시킨 cd 명령을 재 실행시킨다.
만약 Korn쉘을 사용중이라면 "r"명령(reissue)을 사용한다. r명령은 그자체만으로 마지막 실행된 명령을 반복시킨다. 다른 이전에 실행된 명령은 r과 번호를 사용하면된다. 예를 들면 "r 5"를 입력하면 히스토리 리스트에 있는 5번째 명령을 재 실행한다. 또한 재 실행시키고자 하는 명령어를 지정해 줌으로서 그 명령을 재 실행시킬 수 있다. 예를 들면 r cat 는 마지막의 cat 명령을 재 실행한다.
- 이제까지의 것을 지우는 법
유닉스를 사용할 때는 화면 이 어지러워져서 작업을 방해받을 때가 있다. 이럴 때는 clear 명령을 사용하면 화면을 지우고 커서를 화면의 왼쪽 위에 위치시킨다. 화면을 지우고 싶을 때는 언제나 clear을 사용하면 된다.
- 도움을 얻고자 할 때
man 명령은 온라인 레퍼런스 매뉴얼의 명령에 대한 정보를 보여준다. 모든 시스템이 온라인 매뉴얼을 가지고 있는 것은 아니지만 이것이 있는 시스템에서는 대부분의 유닉스 명령어에 대한 정보를 얻을 수 있으므로 편리하다. 예를 들어 man find 를 입력하면 find 명령에 대한 정보를 화면에 보여준다.
- 명령어 이름 바꾸기
alias 명령은 명령을 입력하는 것을 숏핸드(속기)로 할 수 있도록 하여준다. 만약 도스 사용자라면 도스에서 일반적으로 사용을 하는 명령어들을 위한 alias를 만들어 둘 수 있다. 예를 들어 화일 리스트를 보기 위하여 dir을 사용하는데 익숙해 있다면 유닉스에서 화일 리스트를 보여주는 ls 명령어의 alias를 만들어 둘 수 있다. C쉘에서 하는 방법은 alias dir "ls -al" 을 입력한다. Korn 쉘을 사용한다면 alias dir="ls -al" 을 입력한다. 이 alias 명령을 .cshrc나 .profile 에 넣어두면 설정된 alias가 매번 로그인 할 때마다 사용할 수 있다. 이 alias는 dir이 ls -a 명령을 대신하도록 하여준다. ls -a는 현재의 디렉토리에 있는 모든 화일을 히든 화일을 포함하여 보여준다. alias dir을 입력하면 dir이 어떤 효과를 내는지 보여준다. alias를 입력하면 정의가 되어 있는 모든 alias를 보여준다. 어떤 한 alias를 제거하기 위하여서는 unalias *****(*****는 alias 이름)를 입력한다.
- 경로
- 디렉토리를 다루는 법
디렉토리는 유닉스 화일들을 담아두는 서랍 내지는 캐비닛으로 생각을 하면 된다. 화일들은 디렉토리속에 저장,정리가 된다. 모든 디렉토리와 화일은 경로이름을 가지고 있다.( 많은 사람들과 도스 유닉스 설명서들이 경로(path)와 디렉토리를 구분할 줄 모른다. 하지만 이 두가지 용어의 개념은 명확하게 구분이 되어야 할 것이다.) 명령을 적용시키고 싶은 디렉토리를 지정하기 위하여 디렉토리 이름과 유닉스 명령어를 결합하여 사용을 한다.
참고; 자신의 홈디렉토리에 명령을 주는 것을 언급하기 위하여서 홈디렉토리의 전체 경로를 입력하지 않고 (~)나 SHOME를 입력하며 키보드를 덜 두드려도 된다.
- 디렉토리 변경하기
유닉스에서 경로를 변경할 때는 "cd 경로이름" 을 입력한다. 예를 들면 cd /tmp는 /tmp 디렉토리로 경로를 바꾼다. 자신이 위치한 디렉토리를 체크하기 위하여서는 아무때나 print working directory를 의미하는 pwd 를 입력하면 된다. (유닉스에서는 print가 보통 화면에 보여주는 것을 의미할 때가 많다.) 만약 경로이름을 같이 입력하지 않고 cd 만을 입력한다면 홈디렉토리로 돌아가게 된다.
- 디렉토리 만들기와 지우기
mkdir명령을 사용하여 디렉토리를 만든다. 디렉토리를 만들기
전에 cd 명령을 사용하여서 디렉토리를 만들기 위하여서 cd 명령을 사용하여 자신의 홈디렉토리나 자신의 홈디렉토리의 하위 디렉토리에 위치한다. mkdir directory-name 과 같은 형식으로 입력을 한다. 이미 존재하는 이름과 같은 이름의 디렉토리를 만들려고 하면 그러한 디렉토리는 이미 존재하고 있다는 메시지를 받 는다.
rmdir을 사용하여서 디렉토리를 제거한다. 디렉토리를 지우기 전에 그 속에 있는 화일들이나 서브디렉토리들을 모두 제거해야 한다. 그러고 나서 rmdir directory-name 와 같은 형식으로 입력 을 한다. 만약 디렉토리가 비어있지 않다면 rmdir 명령은 에러메시지를 보여주게 된다.
- 디렉토리 복사와 이름 바꾸기
cp명령과 -r을 같이 사용하여서 디렉토리 전체를 복사할 수 있다. cd -r directory1 directory2 와 같은 형식으로 입력을 하면 directory1의 밑에 존재하는 모든 화일과 서브 디렉토리를 directory2 밑으로 복사한다. 만약 directory2가 존재하지 않는다면 (목적지 디렉토리가 존재하지 않는다면) cp -r 명령은 자동으로 그것을 만들어서 복사를 한다. 디렉토리의 이름을 바꾸는데 에는 mv 명령을 사용한다. 예를 들면 mv reports business 명령은 reports 라는 디렉토리의 이름을 business 로 바꾸어준다. -i(inquire) 옵션을 사용하여 mv 명령이 디렉토리를 덮어쓰기 것을 확인 하는 것은 좋은 방법이다.
- 디렉토리가 포함하고 있는 것을 보이기
디렉토리 리스트를 읽어야 하는 것은 기본적인 것이다. ls 명령은 현재의 디렉토리 내의 디렉토리와 화일을 모두 보여준다. ls 명령 다음에 디렉토리를 지정해 주면 현재의 디렉토리에 상관이 없이 지정한 디렉토리의 내용물을 보여주는 것이다. 예를 들면 ls ~/download 라고 명령을 주면 당신의 홈디렉토리 내의 download 라는 서브디렉토리의 내용물을 히든 화일을 포함하여 모두 보여준다.( -a 는 앞에서도 모든 것에 대한 의미로 이미 사용을 하였다.)
하이픈(-)을 접두사로 사용하여서 옵션을 준다.( 일반적으로 도스에서는 / 를 많이 사용하는 것과 같다고 생각하면 된다.) 어떤 한 디렉토리 내에 있는 모든 디렉토리와 히든 화일을 포함한 모든 화일을 보기 위하여서 ls -a 를 입력하면 된다. 복수의 옵션을 줄 수도 있다. 예를 들면 서브디렉토리와 히든 화일들을 포 함하여서 화일에 대한 자세한 정보를 디스플레이 하기 위하여서 ls -la 입력한다. ls 명령에 사용할 수 있는 옵션과 그 결과들을 살펴보면
------------------------------------------------------
Option 결과
--------------------------------------------------------
-a 서브디렉토리와 히든화일을 모두 보여줌. 이 옵
션을 주지 않으면 . 으로 시작을 하는 히든 화
일은 보여주지 않음
-c 만들어진 또는 변경된 시간으로 정리를 하여 보
여줌
-l 디렉토리 내의 화일에 대한 화일퍼미션, 사이
즈, 시간을 포함하는 자세한 정보를 보여줌.
-r 디폴트로는 알파벱 순서로 보여주는 것을 역순
으로 보여줌.
-R 지정하는 디렉토리의 각각의 서브디렉토리의 내
용물의 리스트를 보여줌.
-F 디렉토리는 슬래시로 표시를 하고 실행 가능한
화일을 * 로 표시를 함. 텍스트 화일을 플랙
없이 보여줌.
-t 알파벱 순서 대신에 변경한 시간의 순서로 리스
트를 보여줌. 가장 마지막에 변경을 한 화일을
제일 앞에 위치시킴.
- 와일드 카드의 사용
와일드 카드 문자는 여러 개의 화일을 한꺼번에 나타내기 위하여 사용을 한다. 예를 들면 ls a* 의 명령을 주면 a 로 시작을 하는 모든 화일들을 보여준다. * 와 ? 는 히든 화일에는 특별히 지정을 하여야만 한다. 예를 들어 홈 디렉토리에 존재하는 히든 화일들의 리스트 만을 보고 싶다면 ls .* 을 입력한다.
- 화일들을 다루는 법
화일들은 데이터와 실행 가능한 화일들을 저장하는 장소이다. 유닉스 시스템에 저장이 된 모든 것은 화일의 형태이다. 인터네트에서 점점 더 많은 시간을 보내면 보낼 수록 화일들을 많이 가지게 될 것이다. 유닉스는 화일을 다루기 위한 여러 가지 유용한 명령들을 가지고 있다.
어떤 화일의 종류에 해당하는가? file 명령을 입력하면 화일이 어떤 종류인지에 대한 정보를 보여준다. file 명령 다음에 자신이 정보를 입수하고 싶어하는 화일이름을 지정을 하면된다. 예를 들면 file pressure.Z 를 입력하면 그 화일이 압축된 화일이라는 것을 알려준다. file 명령은 완전한 것이 아니다. 때때로 정보를 잘못 알려줄 때도 많이 있다.
- 텍스트 화일의 내용을 보이는 방법
cat(concatenate) 명령은 간편한 화일 뷰어이다. cat 명령과 함께 more 명령을 사용하면 한번에 한 화면에 해당이 되는 양 만큼씩 볼 수 있다. ( more 명령에 대해서는 좀 있다가 설명을 하겠음) cat 명령의 일반적인 사용법은 다음과 같다.
-------------------------------------------------------
예 결과
-------------------------------------------------------
cat file1 file1의 내용물을 보여줌
cat file1 file file1의 내용물을 보여주고 바로 뒤에
file2의 내용을 보여줌
-------------------------------------------------------
- 한 화면씩 보여지게 하는 방법
유닉스에서 커다란 텍스트 화일을 보는 것이나 많은 수의 화일과 서브디렉토리를 포함하는 디렉토리의 리스트를 보이게 하는 것은 아주 빠른 속도로 화면이 넘어가게 한다. 이럴 경우에 more 나 pg 명령을 사용하여서 한화면씩 보이게 할 수 있다. more filename 를 입력하면 filename로 지정을 한 화일을 한번에 한 화면에 해당하는 양 만큼씩 보여준다. 또한 출력을 more 명령으로 파이프(redirect) 시킬 수도 있다. 예를 들면 ls -al |more 는 ls 명령의 출력을 more로 보내어서 리스팅을 한 페이지씩 보이게 한다. more를 사용하여서 화일을 살펴보는 일반적인 방법은 다음과 같다.
--------------------------------------------------------
pg 명령은 more 와 매우 비슷하다. pg 명령을 입력할 때에는 콜른(:) 프람프트가 나타나서 디스플레이 명령을 입력하길 기다린다. 다음 페이지를 보기 위하여 엔터를 입력한다. pg 명령에서 도움말을 보기 위하여서 h를 누른다. 화일 디스플레이를 마치기 위하여서 q를 누른다.
누르는 키 화면의 움직임
--------------------------------------------------------
스페이스,Ctrl-D 다음 한 화면을 보여줌
엔터 누를 때 마다 화면의 아래쪽에
한줄 씩 더 보여줌
q more 정지
h 도움말
/expr expression 검색
---------------------------------------------------------
- head 명령 주기
head 명령을 사용하면 화일의 처음의 몇 행을 보여주어서 그 화일이 무엇이었는지 기억을 더듬을 수 있도록 하여준다. head filename을 입력하면 filename으로 지정이 된 화일의 처음 10행을 보여준다. 또는 화면에 보여질 행을 지정할 수도 있다. 예를 들면 head -25 zen.txt 라고 하면 zen.txt의 처음 25 행을 보여 준다.
- 화일의 복사
cp 명령을 사용하면 화일을 똑같이 복사를 한다.
cp file1 file2 라고 입력을 하면 file1의 내용물을 file2에 복사를 한다. 만약 file2가 존재하지 않는다면 그 이름의 화일을 만든다. 만약 그 이름의 화일이 존재한다면 기존의 내용은 덮어 쓰기 하여진다. 기존의 화일을 덮어쓰기 하지 않기 위하여 -i 옵션을 같이 사용한다. 예를 들어서 cp -i file1 file2 는 file2라고 이름 지워진 화일이 있으면 덮어 쓰기를 할 것인지 물어본다. y를 누르면 복사가 진행이 되고 다른 키를 누르면 cp 명령을 취소한다. -p 옵션을 사용하면 오리지널 화일의 만들어진 시간과 허가 사항을 보존을 한다.
- 화일 옮기기와 새로 이름 붙이기
mv 명령은 화일의 위치를 바꾸거나 이름을 바꾸는데 사용을 한다. mv 명령은 이미 존재하는 화일을 덮어쓰기를 한다. mv file1 file2 라고 입력을 하는 것은 file1의 이름을 file2라고 바꾼다. 만약 file2 라는 화일이 이미 존재한다면 file1의 내용 물로 교체가 된다. 화일을 한 디렉토리에서 다른 디렉토리로 옮기기 위하여서는 경로를 함께 입력하여 주면 된다. 같은 이름의 화일이 이미 존재하여서 그것을 덮어 쓰기를 하지 않으려면 -i 옵션을 사용하면 된다. 한번에 여러 개의 화일을 옮길 수도 있다. 마지막이 화일들을 옮겨 넣고자 하는 디렉토리이기만 하면 되는 것이다. 예를 들면 mv profit sales.txt wrksht reports 라고 하면 profit sales.txt wrksht 를 모두 reports 디렉토리로 이동을 시킨다.
- 화일 지우기
화일들이 너무 많으면 돈이 많이 든다. 서비스 제공자들은 사용하는 디스크 스페이스의 양에 따라서 돈을 받는 수도 있으며 하나망도 제한된 공간의 디스크 스페이스를 사용하게 한다고 한다. 필요 없는 화일들을 지워버려야 한다. 화일을 지우기 위해서는 rm을 사용한다. 일단 이 명령을 사용하여서 화일을 지우면 그 것은 회복이 불가능하다. 그러므로 -i 옵션을 사용하여서 지우는 화일이 확실한 것을 확인하는 것이 좋다. -f 옵션은 확인 없이 화일들을 지워버린다.
- 화일 찾기
원하는 화일이 보이지 않을 때가 있다. 만약 이름의 일부분을 알고 있다면 find 명령을 사용하여서 화일의 위치를 찾을 수가 있다. find 명령을 사용하는 것은 다른 명령보다 다소 복잡하지만 그 결과는 충분한 값어치가 있다. find는 화일 내의 이름 문자를 지정해 줌으로서 화일을 찾아낸다. 화일을 찾기 위하여서 다음과 같은 신택스를 사용한다.
find pathname expression -print
find 명령은 pahtname 내의 모든 화일들과 서브디렉토리를 모 두 뒤져서 표현에 해당이 하는 화일을 찾는다. 선택의 항목에 대해서 일치하는 것이 있는가 경로이름 내의 모든 화일을 비교하여 본다. 항목들은 하나가 일치하지 않을 때 까지 모두 비교가 된다. 그러고 나서 그 다음 화일을 비교를 한다. find 명령에 옵션들을 주어서 좀더 화일 찾기를 잘 할 수 있도록 만들 수 있다. 예를 들면 find. -name "*.txt" -print 라고 입력을 하면 현재 디렉토리내 확장자가 .txt인 모든 화일 또는 서브디렉토리의 경로를 보여준다. find 명령을 사용하는 데 유용한 옵션들은 다음과 같다.
--------------------------------------------------------
옵션 결과
--------------------------------------------------------
-name filename filename과 일치하는 화일을 찾음. *,
?, 또는 and 가 사용이 될 수 있으며
이들은 따옴표 안에 표시를 하거나 백
슬래시를 앞에 주고 사용을 함
-print 현재의 경로 이름을 표시
--------------------------------------------------------
- 화일의 내용으로 찾기
grep 명령을 사용하여서 화일 내부에 있는 텍스트의 내용으로 화일을 찾을 수 있다. 지정한 문자들을 포함하는 행을 찾을때 마다 그 행을 화면에 표시한다. 만약 grep 하나 이상의 화일을 검색중이라면 그 문자들이 있는 화일의 이름을 표시한다. grep 명령에 대한 신택스는 다음과 같다.
grep options "search string" files
search string 은 찾아야 될 문자들을 의미한다. files 는 검색 대상이 되는 화일들을 의미한다. 만약 한 단어 이상의 스트링을 찾는 중이라면 따옴표 속에 넣는다. grep 프로그램은 search string 을 포함하는 화일들의 이름들과 그 스트링을 포함하는 행을 모두 보여준다. 만약 grep 가 찾는 모든 행은 제외 화일 이름만을 보고 싶다면 -l 옵션을 사용하면된다. 만약 -i(ignore) 옵션을 사용한다면 grep는 대문자와 소문자를 구별 않고 검색을 한다.
만약 화일내에 있는 문자들을 정확하게 알지 못한다면 grep's regular expressions 를 사용한다. grep 프로그램은 각각의 문자들을 찾을 때 점(.)을 와일드 카드 문자로 사용한다. 이것은 물 음표(?)를 대부분의 다른 유닉스 명령에서 사용했을 때와 마찬가지로 사용이 된다. * 는 다른 유닉스 명령에서와 마찬가지로 사용이 된다. 마침표나 * 를 포함하는 것을 찾기 위하여서는 백슬래시(\)를 사용한다. 예를 들면 grep "report" * 라고 입력을 하면 현재의 디렉토리 내의 모든 화일을 뒤져서 "report"란 단어를 포함하는 모든 화일 이름과 그것이 나타나는 화일내의 모든 행을 화면에 보여준다.
- 허가를 가지고 있는가?
유닉스는 멀티유저 운영체제이기 때문에 다른 사람들의 화일이나 디렉토리를 잘못하여( 또는 나쁜 의도로) 지우는 사고를 방지하기 위한 특별한 안전장치를 내장하고 있다. 이 안전장치는 화일을 권한없이 읽거나 쓰거나 복사하거나 지우거나 실행시키는 것을 방지한다.
각각의 화일은 그것에 관련하여 read, write,와 실행에 대한 허가 사항을 가지고 있다. 이 세가지 허가사항은 화일의 주인( 만든 사람), 그 시스템을 사용하는 다른 모든 사람 그리고 특정한 그룹의 사람들에게 적용이 된다. "ls -l" 명령을 입력하면 화일들의 이름과 허가사항에 대한 정보를 알려준다. 이 명령으로 볼 수 있는 것은 허가사항, 링크 번호( 링크는 다른 화일을 가리 키는 특별한 화일임), 소유자, 크기, 만들어진 날짜, 그리고 마지막으로 화일이름등이다. 예를 들어 보면 다음과 같다:
drwxrwxrwx 8 beavis addwes 4096 Oct 4 16:40 reports
첫번째 문자는 그것이 디렉토리인지(d) 화일인지(-) 이다. 다음의 세자는 그 화일의 소유자에게 주어지는 허가사항이다:( r은 읽기와 복사에 대한 허가, w는 쓰기와 삭제에 대한 허가, x는 실행과 검색에 대한 허가이다.). 그 다음의 세자는 지정한 그룹에 대한 허가 사항이다. 마지막 세자는 그 시스템을 사용하는 모든 사람에 대한 허가사항이다. 위의 예에서 chap1.doc는 시스템을 사용하는 모든 사람들이 읽을 수 있고 쓸 수 있고 실행할 수 있다는 것을 보여준다. notes.txt는 그 화일의 소유자인 beavis 만이 읽을 수 있고 쓸 수 있고 실행될 수 있다.
-rwxrwxrwx 12 beavis addwes 4122 Nov 7 17:00 chap1.doc
-rwx------ 12 beavis addwes 4122 Nov 7 17:00 notes.txt
- 커맨드 라인에서 작업하기
Unix의 명령 사용 예
유닉스 기본 명령어.
달력을 출력한다.
%cal [[month] year]cal은 지정된 년도의 달력을 출력하며, 월을 지정한 경우에는 그 달의 달력만을 출력한다. 어느 쪽도 지정하지 않은 경우에는 현재의 달을 출력한다. year는 1부터 1999까지로 하며, month는 1부터 12까지의 수이다. 통상적으로 년은 항상 1월로 시작하며 "cal 94"은, 서기1994년이 아니고, 서기 94년을 가리킨다는 것에 주의하기 바람.
%cal
May 1995
S M Tu W Th F S
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
1994년07월01일(금) 19시22분56초 KST
사용자 자신의 디스크 사용 상황을 보고해 준다. (단위=Block)
%du
305 ./up
1251 ./doc
1669 .
화일에서 특정한 패턴을 찾는데 사용되며, 그 패턴을 포함하고 있는 모든 출력함.
grep [option] limited regular expression [file...]
-b : 각 행의 선두에 그 행이 발견된 블럭 번호를 넣어줌.
-c : 일치하는 패턴을 갖고 있는 행의 수 만을 출력함.
-l : 일치하는 행이 있는 화일의 화일명만을 복귀 개행으로 구별시켜 출
하는데, 화일내에 패턴이 몇 개나 포함되어 있어도 화일명은 한 개
밖에 출력하지 않음.
-n : 각 행의 선두에 화일내의 행번호를 넣음(1 라인은 1임).
컴퓨터 시스템에 연결하여 사용하고 있는 터미널의 이름을 알려준다.
% tty
/dev/ttyp0
현재 컴퓨터 시스템을 사용하고 있는 사용자들을 알려준다.
% who
skjo ttyp0 Jul 1 18:46 (vision)
hinet ttyp1 Jul 1 19:24 (kids)
Directory 구조에 관한 명령어
작업 디렉토리를 바꾼다.
% cd directory 지정한 directory로 옮겨진다.
% cd / root directory 로 옮겨 진다.
% cd Home directory 로 옮겨 진다.
% cd .. 현재 작업 directory의 parent directory로 옮겨 진다.
디렉토리의 내용 표시 Directory에 있는 화일을 열거하고 option에 의해 여러 정보를 볼수 있다.
%ls [-option] [file/directory]
+-Option.------------------------------------------------------------+
-a: .(dot) 로 시작되는 화일과 디렉토리의 이름을 보여줌.
-C: 화면으로 display 할 화일의 갯수가 다수일때 한 라인에 다수
화일이름이 보여지며, 각 이름들은 컬럼별로 순서배열이 됨.
-F: directory 는 "/", 실행 화일은 "*",symbolic link된 file은
뒤에 붙어서 표시됨.
-i: 각각의 화일이나 디렉토리에 대하여 해당 i-node number가 첫
컬럼에 표시됨.
-l: 보호 비트에 관한 정보, 링크 수, 소유자 이름, 소유자 그룹이
화일의 크기(바이트 수), 최근에 수정된 시각 등을 보여줌
+--- g: -l option과 동일하나 단지 owner가 display 되지 않음.
+--- o: group이 표시되지 않음.
+--- n: 소유자명과 그룹명 대신에 소유자의 UID번호와 그룹의 GID 번
-m: 스트림형식의 출력을 지정하며, 화일이 ',' 로 구분되어져 표
-p: 화일이 디렉토리이면 화일명 다음에 /를 덧붙여 해당 화일이
임을 보여줌
-R: Sub directory 의 내용이 모두 표시됨.
-r: 화일명의 역순으로 나타내줌.
-s: 각각의 화일이나 디렉토리의 크기가 브록단위로 표시됨.
-t: 가장 최근에 변경된 화일 순으로 나타남.
-x: C option과 동일하나 행별로 화일이 표시됨
+--------------------------------------------------------------------+
+-예).-----------------------------------------------------------------+
% 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 ol_install stoppr txte3279
TM3274 kms kola te3279
----------------------------------------------------------------------|
% ls -x
3270.cfg 3270.cfg.bak 3274 TM3274 bin
ctrl gem kms kms.bak ky.adm2
ol_install kola sc.adm2 startpr stoppr
te3279 tm3274 xpe3287 txte3279
+----------------------------------------------------------------------+
+------------------------------------------------------------------+
% ls -F % ls -i
3270.cfg* 3735 3270.cfg
3270.cfg.bak* 1919 3270.cfg.bak
3274/ 1810 3274
TM3274* 1883 TM3274
bin/ 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 xte3279
+-------+ +-------+ +---------+
(1) (2) (3)(4) (5) (6) (7)
+------------------------------------------------------------------+
(1) - 화일이나 디렉토리의 mode와, permission을 나타낸다.
(2) - 링크의 수를 나타낸다.
(3) - (4)각각 오너(own)와 그룹(group)의 소속을 나타낸다.
(5) - 화일이나 디렉토리의 사이즈를 표사한다.
(6) - 가장 최근에 내용이 update된 시간을 표시한다.
(7) - 해당 화일이나 디렉토리의 이름을 나타낸다.
+-------------------------------------------------------------+
% ls -o
total 1233
-rwxr-xr-x 1 comm 62 Mar 27 03:56 3270.cfg
-rwxr-xr-x 1 root 62 Feb 12 05:57 3270.cfg.bak
drwxr-xr-x 2 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 xte3279
+--------------+----------------------------------------------+
% ls -R
3270.cfg
3270.cfg.bak
3274
tm3274
bin
ctrl
gem
......
./3274:
ky.adm2
ky.comm
ky.ft45
ky.office
......
+--------------+
디렉토리 생성: 새로운 디렉토리를 만든다. write permission이 허용되어야만 directory를 만들수 있다.
+--------------------------------------------+
%mkdir [-m] mode [-p] <경로><디렉토리 이름>
+--------------------------------------------+
+------------------------------------------------------+
% 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
+------------------------------------------------------+
디렉토리 제거: 디렉토리를 제거하기 위한 명령어 write permission이 허용되어야만 directory를 제거할수 있다.
%rmdir [-ps] <디렉토리 이름>
+-----------------------------+
+-Option.--------------------------------------------------------+
-p : 제거된 디렉토리에 대한 메세지가 표시됨.
-s : 제거된 디렉토리에 대한 메세지가 표시되지 않음. (Default)
+----------------------------------------------------------------+
+-------------------------------------------------------------+
% pwd
/tmp
% ls -ail
total 8
156 drwxrwxrwt 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 May 14 11:44 aaa
% rmdir aaa
% ls -ail
total 6
156 drwxrwxrwt 2 sys sys 128 May 14 15:00 .
2 drwxrwxr-x 20 root sys 592 May 14 11:03 ..
+-------------------------------------------------------------+
현재 작업 Directory를 확인.
+-------+
% pwd
/usr1
+-------+
화일 관리에 관한 명령어
명령어에는 화일의 내용을 화면에 출력하여 보거나 화일의 복사 및 삭제, 디렉토리의 생성및 삭제,
화일의 권한 변경 등을 할 수 있는 명령어들이 있다.
화일의 연결과 출력: 화일의 내용을 표준출력(screen) 으로 내보내는 명령어인데,
화일안에 내장되 있는 내용을 알아보고자 할 때 이용하지만 표준출력 방향전환을 이용하여 새로운 내용의
화일을 생성하고자 하는 경우에도 이용된다.
% 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);
}
% cat > aa.c
good morning !
welcome
+-----+ +---+
Ctrl| + D
+-----+ +---+
% ls -l aa.c
-rw-rw-rw- 1 root root 23 May 17 14:44 aa.c
+----------------------------------------------------+
화일의 복사: 화일을 복사하는 명령어인데, 어떤 화일을 다른 이름의 화일로 옮겨 놓고자 할때 이용하며
cat명령 어
%cp file1 [file2...] target
ln [-f] file1 [file2...] target에서 file I/O redirection을 이용해도 같은 결과를
mv [-f] file1 [file2...] target얻을 수 있다.
+---------------------------------+
[-r] option을 주면 directory도 copy가 가능함.
+----------------------------------+
% 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
+----------------------------------+
화일의 차이 비교: 두 개의 화일이 일치되도록 변경시키기 위한 정보를 제공해 줌.
% 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 위의 예는 option없이 사용한 경우로서
출력 내용중 < 기호는 첫번째 화일인 a의 행을 가르키고,
% cat b >기호는 두번째 화일인 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
+-----------------+
문자열에 따라 화일 검색(fgrep [option] string [file .. ) fgrep은 문자열에 따라 화일을 검색하여
지정한 문자열이 있는 모든 행을 출력하며 정규식(영문,숫자,특수문자의 부분집합을 사용하는 식)을 사용 하는
grep와는 차이가 있다.
-b: 각 행의 선두에 그 행이 발견된 블럭번호를 넣어줌.
-c: 일치하는 패턴을 갖고 있는 행의 수 만을 출력함.
-l: 일치하는 행이 있는 화일의 화일명만을 복귀개행으로 구별시켜 출력
하는데, 화일내에 패턴이 몇 개나 포함되어 있어도 화일명은 한 개
밖에 출력하지 않음.
-n: 각 행의 선두에 화일내의 행번호를 넣음.(1 라인은 1임)
-i: 비교시 소문자와 대문자의 차이를 무시
-v: 일치하는 행을 제외한 모든행을 출력.
화일 찾기 - 어떤 화일이 어느 디렉토리에 있는 지를 모르고 있을 때 찾아내는 명령어인 옵션에 의해 찾는
방법이 다양함.
+---------------------------------+
find path list expression 지정한 file을 찾는 경우 file의
find path -name filename -print 경로를 화면 출력
+---------------------------------+
+----------------------------+
% find / -name wall -print
/etc/wall
+----------------------------+
먼저 lp명령을 사용하고자 할 때는 lpstat -t명령을 사용하여 아래와 같은 실행 가능 상태이어야 한다.
% lpstat -t
scheduler is running
system default destination: lq lp명령어는 file을 line
printer
device for lq: /dev/tty13 로 출력하도록 요청할 수 있
고
device for lq1: /dev/tty14 cancel은 그 출력 요청을
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
+-----------------------------------------+
화일 이름 변경 -디렉토리 (화일)이름을 변경한다.
%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 주문
+--------------------------------------------------------+
화일의 출력 -화일의 내용을 편집하여 출력하기 위한 명령어. 화일 을 표준출력으로
보여주지만 현재의 시각, 화일명, 페이지 등을 같이 보여주는 것이 cat 과 다르며, 여러 가지 option을 이용하면
자신이 원하는 형태로 화일의 내용을 볼 수 있다.
+-Option.--------------------------------------------------------------+
-d: 행 사이를 1 행씩 띄워서 출력하며, 이것으로 만든 공백형이 페
처음에 온 경우 이 행은 무시됨.
-p: 출력이 터미널로 되어 있는 경우 각 페이지 앞에서 일시 정지함
-column: 출력렬의 수를 column으로 함 (-m 과 함께 사용하지 못함)
-m: file에서 지정한 모든 file을 동시에 열단위로 배치해서 출력하
지정 가능한 최대 file수는 8개이다.
-h: file명 대신 header를 문서행으로 이용한다.
-a: 입력행을 수평방향으로 다중열화하여 출력하며, column은 2이상
-t: 보통 각 page에 출력되는 표제 5행과 트레일러 5행을 출력하지
하며 -t 사용시 -h선택항목은 무시된다.
+----------------------------------------------------------------------+
+--예).--------------------------------------------------------------------+
% pr -3dh "file list" file1 file2: file1과 file2를 "file list"라는
표제로 하여 행간에 간격을 두고 3열로 출력
% pr -t -n6 file1: 표제, 트레일러없이 행 번호를 붙여서 6열로 동시에 출력
+--------------------------------------------------------------------------+
+-------------------------------------+
%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);
}
+-------------------------------------+
화일(디렉토리)을 삭제 -화일(디렉토리)을 삭제한다. 삭제하고자 하는 디렉토리에 화일이나 부 디렉토리가
없어야만 삭제가 가능하다.
%rm [-f] [i] filename
%rm -r [-f] [-i] dir-name...[file...]
%rmdir [-p] [-s] dir-name
+--------------------------------------+
+-Option.------------------------------------------------------------+
-f: 디렉토리안의 화일을 삭제할 때 사용자에게 확인을 요구하지 않음.
-r: 인수 list 에서 지정한 디렉토리 혹은 그 아래의 subdirectory를
삭제한다.
-i: write permission 이 없는 화일의 삭제를 위해 확인이 대화식으로.
-p: 디렉토리 dir-name과 비어있는 부모 디렉토리를 사용자가 제거할
수 있으며, 전체 경로명이 삭제되거나 어떤 이유로 인해 경로명의
일부가 남은것과 무관하게 표준출력에 메세지가 출력됨.
-s: -p 선택항목 지정시 표준오류에 출력되는 메세지를 삭제함.
+--------------------------------------------------------------------+
+-------------------------------------------------------+
% 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
+-------------------------------------------------------+
file의 끝부분을 화면 출력 한다.
% tail /etc/rc0
% tail -20 /etc/rc0
+---------------------+
file의 앞부분을 화면 출력 한다.
% tail /etc/rc0
% tail -20 /etc/rc0
+---------------------+
화일들을 자기테이프(magnetic tape)에 저장 또는 불러오기 위한 명령어.
%tar [ key ] [ files ]
+------------------------+
Option: tar [-]{txruc}[vwfblm][0-7[lmh]] [tapefile] [blocksize] file1 f
+------------------------------------------------+
x: 지정한 화일을 tape로 부터 추출한다.
인수가 주어지지 않으면 전체화일을 추출한다.
기존자료가 있으면 겹쳐쓰기를 한다.
t: 지정한 화일을 tape상에서 확인작업만 한다.
c: 지정한 화일들을 tape로 저장한다.
v: 작업화일명을 화면에 나타내어 준다.
b: 레코드의 블럭 크기를 지정한다.
(최대 20)
+------------------------------------------------+
+-------------------------------------------------------------------------+
% tar -cvf /dev/TAPE.CART .
a ./ctrl/bsopts 4 blocks
a ./ctrl/calendar 0 blocks
tar: ./ctrl/startbsc3274: cannot open file
tar: ./ctrl/stopbsc3274: cannot open file
a ./ctrl/initbsc3274 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
-rwsrwxrwx 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
......
+-------------------------------------------------------------------------+
단어 계수 -text file의 문자 수, 단어 수, 라인 수를 알아보는 명령어임.
% wc test.c
251 400 950 test.c
라인수 단어수 문자수
+-----------------------------+
기타 명령어
임의 정도의 연산언어 -간단한 산술적 계산을 할수 있게 해주는 명령으로 쓰인다.
% bc
465*346
160890
666/2
333
3746467+47547578
51294045
+-----+ +---+
CTRL| + D
+-----+ +---+
%
+------------------+
메세지 수신의 허가 또는 거부
%mesg [-n][-y]
n: 사용자 단말기에 다른 사용자의 write 허가를
취소하여 메세지 수신을 금지시킴.
y: -n option에 의한 메세지 수신거부를 복원시킴.
+-------------------------------------------------+
Super-User는 다른 User의 Password도 변경할 수 있다.
+-------------------------------+
% passwd
Changing password for comm
Old password: ******
New password: ******
Re-enter new password: ******
%
+-------------------------------+
단말기의 선택항목 설정 -현재 컴퓨터 시스템과 연결되어 있는
+-------------------------+단말기나 콘솔의 입/출력 선택항목을 설정함.
%stty [-a] [-g] [option]
+-------------------------+
+--------------------------------------------------------------+
-a: 모든 선택항목의 설정상황을 보여줌.
-g: 다른 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 -iucl
-ixon ixany -ixoff
isig icanon -xcase echo echoe echok -echonl -noflsh
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3
시스템에서 MSB 가 setting 된 data ( 2 Byte 한글, 한자, 도형문자)를 이용하기 위해서는 해당 항목중 다음
항목은 반드시 setting이 되어야 한다.
+------------------------------------------------------------------------+
+------------------------------------------------------+
-parenb: parity 생성 / 검출을 행하지 않음.
cs8: 한 문자가 8 bit로 이루어져 있음.
-cstopb: 문자당 stop bit 를 1 bit로 함.
-istrip: 입력문자중 8번째 bit(MSB)를 strip하지 않음.
+------------------------------------------------------+
파이프 접속
%tee [-i] [-a] [file]
tee는 표준 입력을 표준 출력에 출력하고 동시에 화일에 복사한다.
-i: 인트럽트를 무시한다.
-a: 출력은 화일의 내용을 파괴하지 않고 화일에 추가한다.
+----------------------------------------------------------------+
+-----------------+
% cat b
안녕하세요?
오래간만입니다.
수고하세요.
또 봅시다.
또 봅시다.
how do you do.
안녕
% tee -a b
또 안녕
good bye !!
+-----+ +---+
CTRL| + D
+-----+ +---+
% cat b
안녕하세요?
오래간만입니다.
수고하세요.
또 봅시다.
또 봅시다.
how do you do.
안녕
또 안녕
good bye !!
+-----------------+
표준 입력의 특정문자들을 삭제하거나 치환하여 표준
출력으로 내보내는 명령어임.
+---------------------------------+
%tr [-option] [string1[string2]]
+---------------------------------+
+-------------------------------------------------------------------+
-d: string1내의 문자와 일치하는 모든 입력문자를 삭제함.
-s: 출력하는 문자열에 연속해서 나타나는 문자중에서 string2에 있는
것을 1개의 문자로 단축함.
-c: ASCII code가 8진수의 001에서 377까지의 문자에 대해서 string에
있는 문자들을 보수로 취함.
+-------------------------------------------------------------------+
+--------------------------------------------------------------------+
% tr [a-z] [A-Z] < aa.c > bb.c
aa.c화일 중의 소문자는 전부 대문자로 변환되면서 bb.c화일로 copy됨.
+--------------------------------------------------------------------+
모든 사용자에게 메세지 전송 -wall명령어는 시스템을 down시킬때 모든
사용자에게 경고하기 위한 메세지임.
+---------------------------------------------------------------------+
% wall
30초후 시스템을 다운 시키겠음.
+-------+ +---+
CTRL + D
+-------+ +---+
---------------------------------------------------------------------|
Broadcast Message from root (console) on sysV68 Tue Jul 7 19:45:53
30초후 시스템을 다운 시키겠음.
+---------------------------------------------------------------------+
다른 사용자에게 메세지 전송.
+-----------------------+
%write user [terminal]
+-----------------------+
-root 에서 아래와 같은 메세지를 보냄.
+---------------------------------------+
% write comm ttyp3
안녕하세요
저는 /dev/console port 사용자 입니다.
+-------+ +---+
CTRL + D
+-------+ +---+
%
+---------------------------------------+
-root에서 보낸 메세지가 comm user ttyp3 터미널에 아래와 같은
메제지 화면에 display
+-----------------------------------------------------------------+
%
Message from root on sysV68(console) [Tue Jul 7 19:33:37 ] ...
안녕하세요
저는 /dev/console port 사용자 입니다
+-----------------------------------------------------------------+
Permission 변경에 관한 명령어
chgrp(change group)
chgrp는 화일 소유권자의 그룹을 바꾸는 명령어인데,
chown의 기능과 유사하
%chgrp group file... group은 10진수의 그룹 ID또는 그룹 화일에 있는 그룹명칭
의
%chgrp group directory... 어느 것으로도 할 수 있다.
+--------------------------+
+-------------------------------------------------+
% chgrp root nogood
% ls -l nogood
-rw-r--r-- 1 comm root 30 May 15 11:19 nogood
+-------------------------------------------------+
chmod(change mode)
모드의 변경 -화일의 사용 권한을 변경하고자
할 때 쓰이는 명령어임.
+--------------------------+ 지정된 file과 directory의 permission을 mode에
chmod mode file ... 따라 변경하며 mode는 절대수 또는 기호로 표기한다.
chmod mode directory ... 허가에 대한 절대수 변경은 8진수를 사용하며
+--------------------------+
+-------------------+ x는 0에서 7까지의 숫자이다.
chmod xxx file(s) 기호에 의한 변경은 기호와 문자를 사용하는 것으로,
+-------------------+
+-------------------------------------------+ 여기에서 who는 사용자, 그룹, 모든 사용
자를
%chmod [who] operator [permission] file(s) 분류하는 1개 이상의 문자이며 operator는
+-------------------------------------------+ permission의 할당을 표시하는 +-= 기호중
의 하나이다. 그리고 permission은 permission의 유형을 가리키는 1개이상의 문자이다.
+-절대수 모드는 다음 모드의 OR로 구성되는 8진수임.-------+
400: 소유자에 의한 Read
200: 소유자에 의한 Write
100: 소유자에 의한 Execute (디렉토리 내에서 검색)
070: Group에 의한 Read, Write, Execute (Search)
040: Group에 의한 Read
020: Group에 의한 Write
010: Group에 의한 Execute (디렉토리 내에서 검색)
007: 모든 사용자에 의한 Read, Write, Execute (Search)
004: 모든 사용자에 의한 Read
002: 모든 사용자에 의한 Write
001: 모든 사용자에 의한 Execute (디렉토리 내에서 검색)
000: No permissions
+--------------------------------------------------------+
+-------------------------------------------------------------------------+
% ls -l /etc/rc0
- r w - r w - r - - 1 root root 3480 May 15 10:10 /etc/rc0
--+-- --+-- --+-- ------+------
+----File na
+----Modification date
+----File size in bytes
+----Group
+----Owner
+----Number of links
+-Others privileges(readable,but not writeable or execu
+----Group privileges (readable and writeable but not executa
+----Owner privileges (readable and writeable but not executable)
+----File mode (a dash indicates an ordinary file)
+-------------------------------------------------------------------------+
+-----------------------------------------------------------+
d: directory
b: 블럭 형태의 특수 화일
c: 문자 형태의 특수 화일
-: 일반 화일
r: 읽기 가능
w: 쓰기 가능
x: 실행 가능
s: 사용자 또는 그룹 설정 ID 상태로 됨
t: sticky 비트가 설정됨
l: 액세스하는 동안에 강제적인 lock이 발생함
u: 사용자에 대한 허가
g: 그룹에 대한 허가
o: 모든 사용자에 대한 허가
+: Adds permission.
-: Removes permission.
=: Assigns the indicated permission and removes all other
permissions (if any) for that [who]. If no permission
is assigned, existing permissions are removed.
+-----------------------------------------------------------+
%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: 그룹,모든 사용자에게 읽기 허용.
+----------------------------------------------+
% 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
+----------------------------------------------+
chown(change owner)
화일의 소유권자 변경 -화일의 소유권자를 변경할 때 사용하는데, 자신의 화일을 다른 소유권자의
화일로 바꾸거나, 다른 사용자의 화일을 자신의 화일로 복사하여 자신의 소유로 만들고자 할 때 이용된다.
+--------------------------+
%chown owner file... owner는 10진수의 사용자 ID또는 password file에 있는
%chown owner directory... 로그인 명칭중 어느 것으로도 할 수 있다.
+--------------------------+
+-------------------------------------------------+
% 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
+-------------------------------------------------+
기타 참고 자료 및 사이트
댓글