4.1
시동과 종료
4.1.1 login
: login은 사용자가
console을 이용할 때와 터미널을 이용할 때는 다소 차이가 있지만 그렇지 않는
경우도 있다. 예를 들자면 어떤 telnet 접속프로그램으로 접속할 경우 뜨지
않던 openwindows가
다른 프로그램에서는 뜰수도 있다.
4.1.2 command
line의 입력형식
: UNIX는 명령어 입력
시에 대소문자 구분이 있다는 점과 항상 명령어의 사용법에 있어서
자신이 없을 때에는 아래의 형식으로 도움말을
이용토록 한다. 그리고 앞으로 나오는 프롬 프트는
'#'로 통일한다. 이러한 프롬프트에 대해서는 크게 연연하지 않아도 된다. 예를
들자면 시스템에 Solaris 2.5를 설치한 다음 처음 뜨는 root용 프롬프트는 '#'이다.
하지만 이것을 수정할 수도
있다. Solaris를 설치하게 되면 먼저 root는 Sun Shell(이하 sh)로 셋팅이 되어
있어서 그렇게 뜬다. 하지만 C Shell(이하 csh)로 설정할 경우 틀려진다. 그리고
자신만의 Shell파일(.cshrc)에서
set prompt문법을 이용하여 아예 프롬프트를 바꿀 수도 있으므로 이 부분에
대해서는 크게 신경을 쓰지 않도록 하자.
# man ls
4.1.3 비밀번호의
설정과 변경
: 비밀번호는 시스템을
사용함에 있어서 가장 소중히 다뤄야 할 부분이다. 쉽게 알 수 없는
즉 자신의 신상명세와 연관없는 것을 고르고
남들이 알지 못하도록 해야 한다. 예를 들자면 규칙을
이용하여 암호를 설정하는 습관을 가지는 것도 도움이 된다. 다음의 명령어로
암호 를 바꿀 수 있다.
# passwd
Enter New password :
Re-enter New password :
4.1.4 logout
: 시스템 사용을 종료할
때에는 실행중인 프로세스가 없는지 확인을 하고 종료한다.
# ps -a
.............
# logout
종료할 때에는 logout 과 exit 또는
Ctrl + D 이다.
4.2
파일과 디렉토리
4.2.1 파일의
종류
(1) 정규파일
: 정규파일이란 .login
이나 a.txt 같은 보통파일을 말한다.
(2) 디렉토리
파일
: UNIX에서는 정규파일과
디렉토리 파일을 다해서 파일이라고도 부른다. 디렉토리 파일은
./data 같은 디렉토리를 의미한다.
다음의 표에서는
/ 밑에 있는 디렉토리를 성격별로 나타낸 것이다.
/ : UNIX 커널의
실행화일 및 시스템 관리에 중요한 .login, .profile드의 파일이 포함된다.
/bin : UNIX의 기본 커맨드 파일들이
위치한다.
/etc : init, passwd등 시스템
관리용의 커맨드나 데이터 파일들이 위치한다.
/lib : 커맨드들이 사용하는 기본적인
파일들이 배치된다.
/temp : 커맨드 실행 중에 필요한
임시 파일들을 위치시키기 위하여 사용되는 디렉토리이
다.
/usr : 일반적으로 시스템 관리자의
파일들이 배치한다.
/usr/bin : 워드, 데이터 베이스관리
프로그램들과 개발된 프로그램등이 포함된다.
/usr/home : 사용자들의 홈 디렉토리로서
대표적으로 지정하는 것이나 시스템을 설치할
때 다른곳으로 정해줄수도 있으며
사용자계정을 만들 때에 다른 곳으로 만들어 줄 수도
있다.
/usr/include : C언어의 header
파일들이 포함된다.
/usr/man : UNIX의 매뉴얼이 위치한다.
/usr/spool : CPU와 주변장치를
중첩하여 수행시키기 위하여 주변장치로 출력되는 데이터
파일들을 임시로 저장하는 스풀용의
디렉토리다.
/usr/adm : UNIX의 사용자와 프로세스의
작동을 monitor하는 accounting error reports
같은 프로그램들이나 데이터 파일들이
포함된다.
|
(3)
특수화일
/dev밑의 파일들을
일컽는데 이곳에는 입출력장치의 제어기를 이곳에서 맞추어 장치를 연결할 수
있게 한다. 예를 들면 /dev/tty12는 12번 터미널을 의미한다. 이곳에서는 자신이
가지고있는 장치가 /dev 디렉토리내의 어떤 형식의 장치를 가지고 있는가를
알고만 있어도 장치를
인식할 수 있다.
4.2.2 파일명과
경로명
: UNIX 시스템의 파일명은
255문자이내에서 사용 가능하다. 주의할 것은 대·소문자를 구별
한다는 것이다. 또 한가지 "." 나 "_"로
시작되는 파일명은 시스템 파일들이 많이 사용하기 때문에 사용하지 않는 것이
바람직하다.
(1) 상대경로명
: 만약 현재의 /home/pctop/pub
에서 /home/pctop/data 로 이동하려고 할 때 cd ../pub
라고 입력하면 된다. 이때 쓰이는 방식이
상대경로 이동방식이다.
(2) 절대경로명
: 만약 현재의 /home/pub
에서 /home/a 로 이동하려고 할 때 cd /home/a 라고 입력하면 된다.
이때 쓰이는 방식이 절대경로 이동방식이다.
4.2.3 파일의
특성
파일의 보안성을
유지하기 위해서는 무엇보다도 첫째, 허가모드를 중요시 여겨야 한다. 파일의
허가모드의 순서는 다음과 같다.
user |
group |
others |
rwx |
rwx |
rwx |
파일의 유형에는 다음의
7가지에 한한다
- : 정규파일
d : directory
l : symbolic link
c : character type
b : block type
s : socket
p : named pipe
|
이 허가모드를
변경하기 위해서는 chmod 명령어를 이용해야 하며 그에 대한 상세한 설명은
4.3의 기본적인 명령어중 chmod를 참조하기
바란다.
4.3
기본적인 명령어
기본적으로 UNIX는 대소문자를
구별한다. 그리고 alias가 되어있지 않는한 소문자로 명령어 를
입력하는 것이 일반적이므로 이에 주의하여야만 한다.
id : 사용자의 이름과
번호의 표시(사용자가 속한 group id와 user id를 표시함)
# id
pwd : 사용자의 현재의
디렉토리 표시
# pwd
tty : 사용자 단말기의
장치파일명 표시
# tty
stty : 터미널 제어특성의
표시 및 지정, 현재 컴퓨터 시스템과 연결되어 있는 단말기나 콘솔의 입출력을
논리적으로 변경
#stty
date : 시스템의 날짜와
시간의 표시
#date
cal : 현재의 달력을
보고자 할 때 사용한다.
#cal
who : 현재 접속되어
있는 사용자들 표시
#who
whoami : 현재 접속해
있는 자신의 id를 표시
#whoami
finger : 시스템 사용자의
개인 정보표시(이 정보에서 이름은 가입할 당시의 comment만 찍
힘)를 위한 것이지만
이렇게 안 나올 경우도 있다.
#finger root
그것은 자신이 시스템에
오래 접속하지 못할 사정이 생겨서 다른 사용자가 이 명령어를 이용하여 검색할
때 '지금 저는 출장중입니다' 라는 메시지가 나오도록 한다면 얼마나 좋을 것인가.
자! 방법이 있다. 자신의 로그인 디렉토리(이하 홈 디렉토리)에 .plan 이라는
파일을 만들어 보자. 이때는 일반 텍스트편집기를 사용하면 된다. 예를 들면
VI Editor 같은 것이다. VI를 이용하여 '저는 출장중입니다' 라는 메시지를
쓰고 저장후 종료하면 .plan 이라는 파일을 cat을 이용하여 내용을 확인한 후
명령프롬프트 상에서 시험해보자.
만약 자신의 id가 kcs
라면 'finger kcs'를 입력해본다. 그러면 '저는 출장중입니다'라는
메시지가 뜰 것이다. 잠깐! 한글로 썼을
경우 안나타날수도 있다. 그러면 영어로 써야한다
그것은 자신이 시스템에
오래 접속하지 못할 사정이 생겨서 다른 사용자가 이 명령어를 이용하여 검색할
때 '지금 저는 출장중입니다' 라는 메시지가 나오도록 한다면 얼마나 좋을 것인가.
자! 방법이 있다. 자신의 로그인 디렉토리(이하 홈 디렉토리)에 .plan 이라는
파일을 만들어 보자. 이때는 일반 텍스트편집기를 사용하면 된다. 예를 들면
VI Editor 같은 것이다. VI를 이용하여 '저는 출장중입니다' 라는 메시지를
쓰고 저장후 종료하면 .plan 이라는 파일을 cat을 이용하여 내용을 확인한 후
명령프롬프트 상에서 시험해보자.
만약 자신의 id가 kcs
라면 'finger kcs'를 입력해본다. 그러면 '저는 출장중입니다'라는
메시지가 뜰 것이다. 잠깐! 한글로 썼을
경우 안나타날수도 있다. 그러면 영어로 써야한다.
주사용 명령어.
where |
찾고자 하는
파일이나 디렉토리의 위치를 알려준다 |
# where index.html
|
ps |
process의 상태표시 |
# ps -ajx
option)
-a : 다른 사람에 의해 소유된
프로세스에 대한 정보를 포함
-c : command 이름을 표시
-C : %cpu field내에 decaying
average 대신에 raw CPU time을 표기
-e : argument 외에도 환경을 표기
-g : 이 option이 없으면 interesting
프로세스만 프린트
-j : PPID, PID, PGID, SID, TT,
TPGID, STDT, UID, TIME정보 포함 표기
-u : USER, %CPU, %MEN, SZ, RSS,
START field 포함
-x : no controlling terminal
가진 프로세스 포함
중간용어설명)
PPID : process의 parent의 number
id
PGID : process group id of process
SID : process 가 속해있는 session의
number id
TPGID : TT 아래 명시된 터미널과
관계 있는 process group의 number id
UID = 0 : Super-User
|
df |
디스크의 사용가능한공간표시 |
# df -u |
cp |
copy |
# cp index.html index_old.html |
mv |
move |
# mv index.html index_new.html |
rm |
remove |
# rm index.html |
rmdir |
remove directory |
# rmdir ./images |
mkdir |
make directory |
# mkdir photo |
chdir |
change directory |
# chdir /usr/local |
cd |
change directory |
# cd /usr/local/bin |
du |
디스크의 사용공간 표시(옵션이
없으면 현재의 위치에서 하위의 모든 파일들의 공간표시) |
# du ./
|
hostname |
현재 접속해 있는 host의 이름을
표시 |
# hostname |
man |
해당하는 command의 manual을 참조하고자
할 때, 단 /usr/man에 그 항목이 있어야만 한다. |
# man ls
|
& |
background 처리를 위하여
명령어 뒤에 붙여준다. |
# test &
|
alias |
특정한 명령어를 자신이
임의로 수정 |
# alias cx chmod
위와 같이 하면 cx는 chmod명령어를
대신한다. 이러한 작용을 shell에 추가시킬때는 다음과 같이 추가한다.
alias cx 'chmod'
alias를 해제하고자 할 때는 unalias를
사용한다.
ex) # unalias cx
그리고 현재 설정된 alias들을
보고 싶을때는 alias를 입력하면 된다. 다음은 한 예이다
|
path |
경로를 지정
일반적을 shell에 지정하지만 명령어로서
수정할 수도 있다. 추가하는 방법은 다음곽 같다
|
set path = ( ~/bin /bin /usr/bin
/usr/local . )
%set path = ( $path /usr/bin
/usr/local /usr/local/etc )
두 번째 라인의 %set 명령어는
기존의 path에 추가할 때 사용하는 방법이다.
|
find |
디렉토리를 탐색하여 지정화일의
위치표시 |
# find index.html |
cat |
파일의 내용을 표시, DOS에서의
type명령어와 유사 |
# cat index.html
|
more |
파일의 내용을 한면씩 화면에
표시 |
# cat index.html | more |
pg |
파일의 내용을 표시 |
# pg index.html |
head |
파일의 처음 부분을 표시(기본값은
10라인) |
# head index.html |
tail |
파일의 마지막 부분을 표시(기본값은
10라인) |
# tail index.html |
lp |
파일의 내용의 인쇄요청 |
# lp index.html |
pr |
인쇄를 위한 파일의 페이지화,
파일을 인쇄하기 위한 준비로서 페이지를 분리한다. 각 페이지는 파일명, 날짜,
시간 및 페이지 번호를 표시하는 header를 포함한다. |
# pr index.html
|
chmod |
change mode |
# chmod 755 ./htdocs
위에서 755가 의미하는 것을 해석해보면
만약 "ls -al "을 입력했을 때 다음의 형식으로 나타났다고 가정하자
# ls -al
drwxrw-rw-
./htdocs
lrwxr--r--
./pub ----> ./public_html
위와 같이 나나났다면 처음의 d는
디렉토리를 의미하며 다음의 rwx 는 ./htdocs에 대한 소유주의 권한이 read,write,excute
의 세 가지 권한이 다 주어진 것이다. 다음의 rw- 는 소유주가 속한 그룹에게
주어진 권한이며, 다음의 rw- 는 그룹이외의 사용자에게 주어진 권한이다. 즉,
디렉토리이면서 소유주는 읽기·쓰기·실행이 가능하며 그룹에게는 읽기·쓰기
가능, 이외의 사용자는 읽기·쓰기가 가능하다. 여기서 각 권한블럭마다 3비트를
할당하고 있음을 알 수 있다. 즉 소유주에 대한 권한 rwx 를 2진으로
바꾼다면 1112 이다. 이것을 10진수로 바꾸면 7이며, 그룹에 대한 권한 rw-
를 2진으로 바꾼다면 1102 이며 10진수는 6이다. 그룹이외의 사용자도 마찬가지로
10진수 6이다. 그러므로 이 디렉토리에 대한 권한을 숫자로 표기한다면 766이다.
이것을 소유주는 읽기·쓰기·실행이 다 가능하면서 그룹과 이 외의 사용자는
읽기·실행만 가능하게 한다면 십진수로 755가 될 것이다. 그러므로 변경을
위해서는 chmod 755 ./htdocs 를 입력하면 된다. 모드부분에서
"lrwxr--r--"중 'l' 부분은 link를 의미하는 것으로서 ./public_html과 링크
되어 있음을 의미한다.
이것을 보다 쉽게 바꾸는
방법도 있다. 그룹은 g를 이 외의 사용자는 o로 나타낼 수 있는데 현재의 권한
766에서 744로 변경하고자 할 때에는 그룹이 가지고 있는 쓰기 권한을 박탈하는
동시에 이 외의 사용자에게도 쓰기 권한을 박탈해야만 한다. 이때 사용하는
용법은 다음과 같다.
|
chown |
change owner |
# chown webadm ./htdocs |
chgrp |
change group |
# chgrp student webadm |
ln |
link, 예 : ln -s list3
/tmp/list |
# ln -s /usr/local/etc/httpd/htdocs
./htdocs
UNIX에서의 link는 공간의 절약을
꾀할 수 있으나 연결상태를 잘 파악하고 사용하여야 한다. ln의 option중에서
-s의 의미는 다른 file system에 있는 것도 link할 수 있는 symbolic link를
사용함으로서 유용한 option이다.
|
4.4
압축 유틸리티 사용법
4.4.1 .tar
tar는 정확히
말하자면 압축유틸리티가 아니다. 이것은 단순히 여러 개의 파일을 하나의
덩어리로 결속시키는 것이다. 이렇게 해서
하나의 덩어리로 만든 다음에 압축을 하는 것이 대개의
과정이다. 결속 할 때의 사용법은 다음과 같다.
# tar -cvf <만들
파일이름>.tar <묶고자하는 파일이름>
결속된 .tar 파일을
풀고자 할 때의 사용법은 다음과 같다.
# tar -xvf <묶여있는
파일이름>.tar
4.4.2 .tar.z
위에서 .tar를
살펴본 것처럼 .tar로 결속을 시킨 다음 압축을 이행한다. 이때는 compress
라는 유틸리티를 이용하게 된다. 그렇게
하여 압축을 하면 원래의 파일에 .z가 추가적으로 붙게
된다. 압축하는 과정과 푸는 과정은 다음과 같다.
# compress filename
# uncompress filename
4.4.3 .gz 또는
.z
compress외에 gzip이라는
유틸리티도 이용되는데, 사용법은 다음과 같다.
#gzip filename (압축할
때)
# gzip -d filename
4.5
작업제어 관련 명령어
4.5.1 background
작업 프로세스의 정지와 삭제
정지는 아래의
stop 명령어로 제어될 수 있다. 그리고 현재의 진행중인 작업을 보려면
jobs라는 명령어로 체크할 수 있다. %job_number는
현재 실행중인 프로세스 번호를 적는 것 으로서
pid와 동일한 값을 갖는다.
# stop %job_number
# jobs (show job#)
삭제를 위해서는
명령어를 사용하는데 사용법은 다음과 같다. 여기서 pid는 프로세스 id이며,
'ps -a' 명령어로 알 수 있다.
# kill -9 pid
4.5.2 foreground
작업 프로세스의 정지와 삭제
현재 작업중인
프로세스를 background작업으로 돌리기 위해서는 'Ctrl + z '를 입력한다.
그리고 이렇게 background로 전환된 작업은 다음의 명령어로 제어될 수 있다.
# fg ☞ foreground 로
다시 전환시킴
# \ ☞ 종료를 시킴
# bg ☞ 계속 진행시킴
4.5.3 기타
작업제어 관련 명령어
# command&
☞ background 작업개시
# ps ☞ 현재 실행중인
프로세스 id 디스플레이
# jobs ☞ background
작업번호 및 상태 디스플레이
# nohup command&
☞ logout 후에도 명령 실행 계속유지
# fg ☞ 현재작업을
foreground 로 전환시킴
# fg %n ☞ n 번
작업을 foreground 로 전환시킴
4.5.4 history
이전에 사용된
명령어를 호출하는 명령어이다. history의 개수지정은 자신의 shell에서 변수로
지정할 수 있으며, 지정하는 방법은 다음과 같다. 개수를 50개로 한다면,
set history=50
|