[프로세스 관련 명령어]
▣학습목표
1. 프로세스 관련 용어를 이해한다.
2. 프로세스 명령어를 익힌다.
▣용어정리
1. 프로그램 : 하드디스크에 저장되어 있는 파일중에서
실행가능한 파일
2. 프로세스 : 메모리에 로딩된 프로그램
3. 데 몬 : 부팅중에 메모리에 로딩되어 종료될 때까지
상주해 있는 프로그램
(윈도우에서는 서비스라 부른다.)
프로세스는 여러 가지 자원(CPU,메모리,장치)을 사용한다.
프로세스는 해당 명령을 수행하기 위해 CPU 를 점유하기도 하고
명령어와 데이터를 저장하기 위해 물리적인 메모리를 사용한다.
프로세스는 운영체제의 제어를 받으면서 실행,대기,중단,좀비 의
한 상태를 갖는다.
실행(running) : 프로세스가 현재 실행중인 상태
대기(waiting) : 운영체제가 자원을 할당해 주기를 기다리는 상태
중단(stopped) : 인터럽트를 받는 경우
좀비(zombie) : 프로세스가 종료된 상태이지만 정보가 완전히
삭제되지 않고 남아 있는 경우
리눅스 프로세스는 프로그램을 실행하는데 필요한 PID,UID,GID 정보를 포함한다.
PID(Process ID) : 프로세스가 시작할 때 할당받는 프로세스 식별번호
UID(User ID) : 사용자 번호
GID(Group ID) : 그룹 번호
프로세스 정보가 있는 디렉토리 : /proc
/proc 에는 각 프로세스에 해당하는 PID 디렉토리가 있다.
/proc 는 가상의 디렉토리로 커널 메모리를 마운트 한 것이다.
▣프로그램 실행 방식
1. foreground : 전면실행(터미널을 프로그램이 점유하고 있는
상태로 프로그램이 종료 될 때까지 다른 명령어
를 실행할 수 없다.)
2. background : 후면실행(프로그램은 실행되면서 쉘프롬프트가
나타나므로 프로그램을 계속 실행시킬 수 있다.)
예) 윈도우 도스창
—> 리눅스 터미널은 디폴트가 포그라운드 방식이다.
백그라운드 실행시키는 방법 : 명령어 & 또는 명령어&
#oclock
—> 기본적으로 포그라운드 로 실행된다.
시계종료(마우스 이용)
#oclock &
[1] 1234
#oclock &
[2] 1235
#oclock&
[3] 1236
백그라운드로 프로그램을 실행시키면 번호가 두 개 나타나는데
첫번째 번호는 백그라운드로 실행된 프로그램 갯수 번호
두번째는 프로세스 아이디(PID) 이다.
리눅스 운영체제는 파일,프로세스,계정 등 을 모두 숫자로 구분해서 관리한다.
PID(Process ID) : 프로세스를 구분하는 번호
<프로세스 관련 명령어>
#ps
현재 터미널에서 실행된 프로세스만 출력
TTY 는 프로그램이 실행된 터미널을 의미
#tty
현재 사용하고 있는 터미널 출력
(/dev/pts/번호)
모든 프로세스 출력하기
#ps -ef
#ps aux 또는 ps axu
ps(process status) : 프로세스 상태 출력
옵션
-a : 모든 프로세스(all) 상태 출력
-e : 현재 실행중인 모든 프로세스(every) 상태 출력
-f : full list로 출력
-l : long list로 출력
-m : 메모리 정보(쓰레드)를 출력
-t TTY : 지정한 TTY를 가진 프로세스 정보 출력(ps -t pts/2)
-u : 사용자 이름, 시작시간을 보여준다
-p PID : 지정한 PID(프로그램 번호)를 가진 프로세스 정보 출력
-u UID : 지정한 UID(사용자 번호)를 가진 프로세스 정보 출력
-g GID : 지정한 GID(그룹 번호)를 가진 프로세스 정보 출력
-x : 제어 터미널을 갖지 않은 프로세스도 출력(? 로 나타나는 프로세스)
#ps aux | more
ps aux 결과의 헤드라인 항목
PID(Process ID) : 프로세스마다 주어지는 번호
TTY(Tele TYpewrite) : 명령어가 실행되는 터미널의 번호
STAT(STATE) : 실행되고 있는 프로세스 상태
R : 실행 중 혹은 실행될 수 있는 상태
S : sleep
T : 정지된 상태 (suspend)
Z : 좀비 (zombie) 프로세스
X : dead (should never be seen)
W : 스왑 out 된 상태
< : 우선 순위가 인위적으로 높아진 상태 START(START) : 프로세스가 시작된 시간 TIME(TIME) : CPU가 사용한 시간 USER(USER) : 사용자의 이름 COMMAND(COMMAND) : 사용자가 실행한 명령어 UID(User ID) : 사용자의 ID (Parent Group ID) : 사용자 부모 프로세스의 그룹 ID PRI(PRIority) : 실행하는 우선 순위에 따른 프로세스 NI(Nice) : nice 에 의한 우선 순위에 따른 프로세스 RSS(Resident Set Size) : 프로세스가 사용하는 메모리의 크기 SZ(SiZe) : 프로세스가 사용하는 자료와 스택의 크기 SHRD(ShaReD) : 프로세스가 사용하는 공유 메모리 %CPU : 프로세스가 사용하는 CPU 점유율 %MEM : 프로세스가 사용하고 있는 메모리 점유율 WCHAN : 프로세스가 실행하고 있는 커널함수 #man ps ps 명령어에 대한 매뉴얼을 확인하면 위의 정보를 확인할 수 있다. 51 번 라인 525 번 라인 623 번 라인 pstree : 프로세스를 트리 구조로 출력 #pstree top : 시스템의 전체적인 상황(CPU,메모리,프로세스 정보)을 실시간으로 출력 형식) top 또는 top -d 초 #top 첫번째 줄 : 시스템의 현재시간, 부팅후 작동한 시간, 현재 사용자 수, load average(CPU 부하 평균값) load average : 1분, 5분, 15분간의 시스템 평균 부하율 두번째 줄 : 프로세스의 상태(실행,대기,중단,좀비) 세번째 줄 : CPU 상태 us : User 가 사용중인 CPU 사용률(user) sy : 시스템 이 사용하는 CPU 사용률(system) ni : nice 에 사용되는 CPU 사용률(nice) id : 사용되지 않는 CPU 미사용률(idle) wa : 입출력 대기상태 사용률(wait) hi : 하드웨어 인터럽트 si : 소프트웨어 인터럽트 네번째 줄, 다섯번째 줄 : 총 사용가능한 메모리, 사용된 메모리, 스왑 메모리 등 메모리에 대한 정보 나머지 : 각 프로세스에 대한 정보 (기본적으로 CPU 사용률을 기준으로 정렬 된다.) VIRT : 가상메모리 사용량(SWAP + RES) RES : 스왑되지 않은 물리적 메모리 사용량(Resident Size) SHR : 공유 메모리 사이즈 종료 : q ////////////////////////////////////////////////////////////////////////// #man top 309 o: VIRT — Virtual Image (kb) 310 The total amount of virtual memory used by the task. It inc 310 ludes 311 all code, data and shared libraries plus pages that have 311 been 312 swapped out. 313 314 VIRT = SWAP + RES. 315 317 p: SWAP — Swapped size (kb) 318 The swapped out portion of a task’s total virtual memory image 318 . 319 321 q: RES — Resident size (kb) 322 The non-swapped physical memory a task has used. 323 324 RES = CODE + DATA. 325 327 r: CODE — Code size (kb) 328 The amount of physical memory devoted to executable code, 328 also 329 known as the ’text resident set’ size or TRS. 332 s: DATA — Data+Stack size (kb) 333 The amount of physical memory devoted to other than execu 333 table 334 code, also known as the ’data resident set’ size or DRS. 335 337 t: SHR — Shared Mem size (kb) 338 The amount of shared memory used by a task. It simply ref 338 lects 339 memory that could be potentially shared with other processes. 340 ////////////////////////////////////////////////////////////////////////// nice : 프로그램 실행시 우선순위를 지정하는 명령어 형식) nice [-20 에서 19 의 숫자] [명령어] (숫자가 작을 수록 우선 순위가 높음) sleep : 대기 명령어 형식) sleep 초 #nice -17 sleep 100 & #ps -l #gnome-system-monitor 시스템 모니터링 프로그램, GUI 방식 pmap(process map) 프로세스의 메모리 주소 공간을 확인 할 수 있다. 응용 프로그램이 실행될 때 얼마나 많은 라이브러리가 load 되는지 확인 할 수 있다. #ps 1234 bash #pmap PID (ps 결과에서 bash 의 PID 를 입력) #jobs 현재 터미널에서 백그라운드로 실행된 프로세스 출력 + 는 가장 최근의 작업 – 는 그 이전 작업 #fg %2(또는 fg 2) 2번 시계를 포그라운드로 전환 —> 쉘에 따라서 % 를 사용해야 하는 경우가 있다.
ctrl + z : 프로세스 중지(stop) 시키는 단축키
#jobs
#bg %2
(2번 시계를 백그라운드로 전환)
#jobs
#ps -ef | grep oclock
UID PID PPID C STIME TTY TIME CMD
root 3201 2521 0 16:17 pts/1 00:00:00 oclock
root 3202 2521 0 16:17 pts/1 00:00:00 oclock
root 3203 2521 0 16:17 pts/1 00:00:00 oclock
grep oclock 은 ps -ef | grep oclock 명령어 자신이 출력된 것임
PID(Process ID) : 프로세스 아이디
PPID(Parent Process ID) : 부모프로세스 아이디
(oclock 의 부모프로세스는 bash 쉘이 된다.)
pgrep : 프로세스를 필터링 하는 명령어
//////////////////////////////////////////////////////////////////////////
#man pgrep
PGREP(1) Linux User’s Manual PGREP(1)
NAME
pgrep, pkill – look up or signal processes based on name and other attributes
-f The pattern is normally only matched against the process name. When -f is
set, the full command line is used.
-l List the process name as well as the process ID. (pgrep only.)
//////////////////////////////////////////////////////////////////////////
#pgrep oclock
#pgrep -lf oclock 또는 #pgrep -fl oclock
커맨드(Command)로 프로그램을 종료시키는 방법 : kill 또는 pkill 명령 이용
kill 다음에는 PID(숫자) 가 와야 하고
pkill 다음에는 프로그램 이름(문자)이 와야 한다.
#kill oclock
—> X
#pkill oclock
3개의 시계가 모두 종료된다.
백그라운드로 시계 3개 실행하기
#pgrep -lf oclock
1234 oclock
1235 oclock
1236 oclock
#kill 1234(자신의 가상머신 터미널에서 출력된 PID 사용하기)
디폴트로 15번 시그널 전달
종료됨 출력
#kill -9 1235(두번째 시계 프로그램 번호)
9번 시그널 전달
죽었음 출력
#kill -2 1236
인터럽트 시그널 전달
인터럽트 출력
시그널(Signal) : 리눅스 프로그램에 보내는 신호
시그널 종류
#kill -l
1 헙시그널(프로세스 재시작)
2 인터럽트(단축키는 ctrl+c)
9 강제종료
15 자연스럽게 종료 (디폴트 시그널)
자격증 문제 : 280, 286
백그라운드로 시계 3 개 실행하기
#pkill oclock
종료됨(디폴트로 15번 시그널 전달 됨)
백그라운드로 시계 3 개 실행하기
#pkill -9 oclock
죽었음
(kill 과 pkill 이 사용하는 시그널은 동일하다)
▣실습
2 의 1000000 승 계산하기
bc : 계산기 프로그램 명령어
+ 덧셈
– 뺄셈
* 곱셈
/ 나눗셈
^ 자승
#bc
quit(계산기 종료)
#echo 2+3
#echo 2+3 | bc
#echo 2^3
—> 2 X 2 X 2 = 8
#echo 2^3 | bc
포그라운드로 실행된 상태에서 프로세스를 중지시킨후
백그라운드로 다시 실행시키기
//////////////////////////////////////////////////////
#echo 2^1000000 | bc
ctrl + z 입력
#jobs
#bg %1 (jobs 에서 출력된 [] 안의 번호를 적는다.)
#jobs
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
시그널 참조)
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/Signal/SignalHow
bc 에서 나누기 연산시 소수점 이하까지 구할 때)
#bc
scale=3
10/3
3.333
//////////////////////////////////////////////////////////////////////////
■nohup
부모 프로세스가 종료되어도 메모리에 남아있게 해 주는 명령어
//////////////////////////////////////////////////////////////////////////
#man nohup
NOHUP(1L) NOHUP(1L)
이름
nohup – Hangup에 무관하게 명령을 수행하고 tty아닌 곳에 출력을 하도록
한다.
개요
nohup 명령 [인수…]
nohup {–help,–version}
설명
이 맨페이지는 GNU 버전의 nohup 을 다룬다. nohup 은 명령 에 대 하 여
Hangup 신호를 무시한 채 수행하며 우선권을 5 만큼 증가시켜여러분이 로그
아웃한 후에도 계속 백그라운드로 실행할 수 있도록 해준다.
//////////////////////////////////////////////////////////////////////////
♠\(역슬래쉬) 사용하기
\ : 해석 금지의 의미
#\rm 파일명
—> 알리아스 해석을 하지 않으므로 질문없이 삭제 됨
#cd aa\ bb
—> 공백이 들어간 폴더 이동
[패키지 관리]
♠학습목표
1. 리눅스에서 사용되는 프로그램 배포 방식을 이해한다.
2. rpm, yum 명령어 사용법을 익힌다.
<패키지 관리>
패키지(Package) : 프로그램 파일이 들어있는 상자 개념
프로그램 배포 단위
레드햇 리눅스 : rpm 패키지
데비안 리눅스 : debian 패키지
rpm 패키지 이름 구성
mc-4.6.0-2.i386.rpm
—>패키지이름-릴리스버전-아키텍처
명령어형식 : rpm 옵션 패키지명
옵션
-qa : 설치된 패키지 목록 확인 (q : query, a : all)
-e : 삭제 (e : erase)
-ivh : install
-Uvh : Upgrade
설치 및 업그레이드시 옵션
v : verbose, 설치과정 자세히 출력
h, –hash : # 마크 표시, 보통 v 옵션과 같이 사용
nodeps : 의존성을 검사하지 않음
force : –oldpackage, –replacefiles, –replacepkgs 를 합한 옵션
test : 실제 설치하지 않고 점검
rpm -qi : 패키지 정보 (information)
rpm -qf : 파일이 속한 패키지 출력(file)
rpm -ql : 패키지 파일 목록(list, location)
rpm -qs : 패키지 상태(status)
rpm -qc : 패키지 설정 파일(configuration)
rpm 의 단점 : 의존성 문제(먼저 설치되어 있어야 하는
패키지가 없는 경우 설치가 안 된다.)
[A 패키지]——————————-[B 패키지]
의존성(dependency)
yum : 인터넷 파일서버에서 패키지를 다운받아 설치해 준다.
관련 패키지가 있을 경우 한꺼번에 설치해 준다.
(의존성 문제 해결)
인터넷이 되야 사용할 수 있다.
#cd /etc/yum.repos.d
#ls
(yum 사용시 패키지 다운받는 서버 목록 이 저장되어 있다.)
#cat CentOS-Base.repo
yum (-y) install : 설치
yum check-update : 업데이트 가능한 목록
yum update : 업데이트
yum remove : 삭제
yum info : 정보 출력
yum list : 패키지 목록 출력
yum grouplist : 패키지 그룹 목록 출력
yum groupinstall : 패키지 그룹 설치
yum search 단어 : 단어가 들어간 패키지 검색
yum localinstall : CD 의 패키지를 설치할 때 사용
사용 예 : yum -y install mc
(-y 를 생략하면 설치시 질문이 출력된다.)
♠rpm 사용하기
(Redhat Package Management)
#rpm -qa
리눅스 CD 에 들어있는 프로그램 형태는 rpm 패키지로
rpm -qa 하게 되면 하드디스크에 설치된 rpm 패키지 목록이
모두 출력된다.
q : query(물어보다)
a : all
#cd /var/lib/rpm
(패키지 데이타베이스가 있는 디렉토리)
#ls
패키지(프로그램) 설치 유무 확인 방법 :
0)rpmquery 패키지명 패키지명 …
1)rpm -q 패키지명 패키지명 …
2)rpm -qa | grep 패키지명
#rpmquery zip
#rpm -q zip
#rpm -qa | grep zip
zip-2.3-27
—>설치된 프로그램(패키지) 목록 중에서 zip 관련 패키지만 필터링
zip 패키지 삭제
#rpm -e zip (rpm -e zip-2.3-27 로 해도 동일하다.)
오류: Failed dependencies:
zip >= 2.1 is needed by (installed) libgcj-3.4.6-8.i386
zip >= 2.1 is needed by (installed) libgcj-devel-3.4.6-8.i386
—> 다른 패키지와 의존성이 있어서 삭제가 안 된다.
#rpm -e –nodeps zip
의존성 무시하고 삭제하기
#rpm -q zip
#rpm -qa | grep zip
zip 패키지는 삭제했으므로 나타나지 않는다.
#gftp
—> X (리눅스 가상머신 터미널에서 실행하기)
gftp : 윈도우의 알FTP와 같은 FTP 클라이언트 프로그램
#yum -y install gftp
—>gftp(ftp 프로그램)를 인터넷에 있는 CentOS 서버에서
다운받아 설치하는 명령어
다운이 안 될 경우 #netconfig 이용해서 DHCP 설정후
#service network restart 한 후 다시 해 본다.
[cent]
#gftp (—> putty 에서 실행하면 안 되고 리눅스 가상머신 터미널에서
실행해야 한다.
putty 터미널은 그래픽 프로그램을 사용할 수 없다.)
호스트 : 수업용 서버 아이피(172.16.7.252)
사용자 : 아이디(andylec)
비밀번호 : 암호입력
(위와같이 적고 엔터를 입력한다. 탭키를 누르면
커서가 다음칸으로 이동된다.)
테스트 환경 :
[리눅스 가상머신]————————–[수업용 FTP 서버]
리눅스의 한글 코드와 win7 의 한글 코드가 틀려서
한글 폴더 이름은 나타나지 않는다.
(LANG 변수를 ko_KR.eucKR 로 설정하면 한글 폴더 이름이 출력된다.)
#export LANG=ko_KR.eucKR
다시 리눅스 한글로 설정하려면
#export LANG=ko_KR.UTF-8
로 설정하면 된다.
수업용 FTP 서버 Linux1lab 디렉토리로 이동후
gftp-2.0.17-6.i386.rpm,
zip-2.3-27.i386.rpm
파일을
cent 리눅스 /work 디렉토리에 다운받는다.
가운데 왼쪽 화살표 아이콘(◀) 클릭
접속종료는 호스트 왼쪽 녹색 컴퓨터 아이콘을 클릭하면 된다.
다운받은 후 gftp 종료하기(오른쪽 상단 X 클릭)
#cd /work
#ls
#file zip-2.3-27.i386.rpm
zip-2.3-27.i386.rpm: RPM v3 bin i386 zip-2.3-27
#
—>RPM 패키지 파일이라는 의미
file : 대상 파일의 Type(종류)를 출력해 주는 명령어
#rpm -qlp zip-2.3-27.i386.rpm
설치안 된 패키지안의 파일목록 출력
p : 패키지를 뜻하며 설치전에는 p 옵션을 지정해야 한다.
#rpm -ivh –test zip-2.3-27.i386.rpm
준비 중…
########################################### [100%]
#
—> –test 옵션을 지정했으므로 실제로 설치되지 않는다.
—> rpm 파일이 있는 디렉토리, /work 에서 해야 함
#rpm -ivh zip-2.3-27.i386.rpm
(rpm -Uvh zip-2.3.27.i386.rpm 해도 설치된다.)
—>패키지(리눅스 프로그램) 설치하기
준비 중…
########################################### [100%]
1:zip
########################################### [100%]
#
rpm -ivh : 설치
rpm -Uvh : 업그레이드(이전 버전이 있으면 업그레이드를 하고
설치가 안 되어 있으면 프로그램이 설치 됨)
#rpm -qa | grep zip
zip 패키지가 설치되었으므로 출력된다.
#rpm -qs zip
패키지 상태 출력
//////////////////////////////////////////////////////////////////////////
#man rpm
-s 패키지 안에 든 화일의 상태를 보여준다.(-l은 포함) 각
화일의 상태는 normal(정상), not installed(설치 되 지
않음), replaced 다른 것으로 교체됨)의 값을 갖는다.
//////////////////////////////////////////////////////////////////////////
#rpm -ql zip
설치된 특정 패키지의 파일목록 출력
설치가 된 후에는 패키지 목록 출력시 -p 옵션이 필요없고
rpm 확장자를 지정하면 안 된다.
#rpm -qi zip
패키지 정보 확인
#zip
사용법 출력됨
#which zip
/usr/bin/zip
#
which : 명령어가 어느 디렉토리에 있는지 경로를 출력
#rpm -qf /usr/bin/zip (파일이 속한 패키지 찾기)
zip-2.3-27
#
—> zip 명령이 깨졌을 경우나 삭제된 경우
zip-2.3-27 패키지를 다시 설치해 주면 된다.
리눅스 CD 에 zip 명령어가 개별적으로 존재하지 않는다.
♠yum 사용하기
(인터넷의 파일서버를 이용하는 방식)
[리눅스 서버] <—– yum —–> [인터넷의 CentOS 프로그램 서버]
#rpm -qa | grep mc
mc 패키지(프로그램)는 없음
#yum -y install mc (mc 패키지 설치하기)
-y 옵션을 생략하면 질문 나올 때 y 를 입력해 주어야 설치된다.
#rpm -qa | grep mc
mc 패키지 설치됨
#mc
mc 는 유틸리티 프로그램
종료는 exit 입력
#yum info mc
Setting up repositories
Reading repository metadata in from local files
Installed Packages
Name : mc
Arch : i386
Epoch : 1
Version: 4.6.1
Release: 0.8.5
Size : 4.2 M
Repo : installed
Summary: User-friendly text console file manager and visual shell.
Description:
Midnight Commander is a visual shell much like a file manager, only
with many more features. It is a text mode application, but it also
includes mouse support if you are running GPM. Midnight Commander’s
best features are its ability to FTP, view tar and zip files, and to
poke into RPMs for specific files.
#
#yum remove mc
-y 옵션을 지정하지 않았으므로 질문이 출력된다.
(질문에 y 를 입력한다.)
rpm -e mc 로 삭제해도 된다.
yum 을 이용하면 의존성 있는 패키지까지 함께 삭제 된다.
#mc
—> X
♠GUI 를 이용한 패키지 관리
1. 메뉴표시줄-프로그램-시스템 설정-응용 프로그램 추가/삭제
오류가 나는 경우에는 패키지 명령어(rpm, yum)를 이용해야 한다.
2. 메뉴표시줄-프로그램-파일 브라우저 실행
1) /work 로 이동
2) zip-2.3-27.i386.rpm 선택후 마우스 오른쪽 버튼 클릭
3) 메뉴에서 “Install Packages 프로그램으로 열기” 선택
이미 설치된 경우에는 “설치되어 있다”는 메시지 출력 됨
또는 왼쪽마우스를 더블 클릭하면 설치된다.
4) 터미널에서 #rpm -e gftp 한 후
리눅스 탐색기에서 gftp-2.0.17-6.i386.rpm 설치 테스트 하기
<리눅스 프로그램 업그레이드>
☞리눅스 프로그램 업그레이드
rpm 버전은 yum 을 이용하여 업그레이드 할 수 있고
소스버전은 홈페이지에서 다운받아 컴파일 방식으로
업그레이드 할 수 있다.
☞리눅스에서 사용하는 프로그램 형식
1. rpm 버전(hello.exe 상태)
2. 소스 버전(hello.c 상태)
[win7]
RPM 패키지 검색 사이트 : http://rpm.pbone.net, http://www.rpmfind.net
위 사이트에 접속하고
[ ][search]
텍스트 박스에 단어를 입력하고 search 버튼을 누르면 패키지를 검색할 수 있다.
mc 프로그램 홈페이지
http://www.midnight-commander.org
☞rpm 프로그램(파일명 : mc-4.6.1a-0.9.i386.rpm)
[요리가 다 된 떡볶이]—>프로그램이 들어있는 상자
☞소스 프로그램(파일명 : apache-1.3.2.tar.gz)
[떡볶이 재료-떡,고추장,파 등..]—>프로그램이 들어있는 상자
☞소스 프로그램 설치방법(음식 요리법-레서피)
1) ./configure (환경설정)
—> gcc 같은 컴파일러의 유무, 라이브러리 위치 등 컴파일을 하기위한
정보들을 확인해서 Makefile 로 저장을 해 준다.
2) make (컴파일)
—> Makefile 이용해서 gcc 로 컴파일 해 준다.
3) make install (설치디렉토리로 복사)
—> configure 시 prefix 옵션으로 지정해 준 디렉토리로
파일들을 복사해 준다. prefix 를 지정하지 않으면 설정파일은
/usr/local/etc 로 실행파일을 /usr/local/bin 등으로 파일들이 분산된다.
그러므로 prefix 옵션을 주는 것이 좋다.
<텍스트 ftp 프로그램 명령어>
ftp>help(도움말)
ftp>get(1개 파일 다운)
ftp>mget(여러개 파일 다운)
ftp>put(1개 파일 업로드)
ftp>mput(여러개 파일 업로드)
ftp>hash(자료전송시 # 마크 설정 on/off)
ftp>prompt(자료전송시 확인 질문 on/off)
ftp>ls(서버쪽 목록 출력)
ftp>!ls(자신의 컴퓨터 목록 출력)
!명령어 : 자신의 컴퓨터에서 명령이 실행됨
ftp>cd(서버쪽 디렉토리 이동)
ftp>lcd(자신의 컴퓨터 디렉토리 이동)
ftp>by(접속 종료) 또는 bye 또는 quit
☞ftp 명령어를 이용한 파일 전송
#cd /work
#ftp 172.16.7.252
andylec 로그인
//////////////////////////////////////////////////////////////////////////
로그인 실패시에는 아래와 같이 하면 된다.
1)
ftp>by
#ftp 172.16.7.252
2)
ftp>close
ftp>open 172.16.7.252
다시 로그인
//////////////////////////////////////////////////////////////////////////
ftp>ls (파일 목록 확인)
ftp>cd UPLOAD (서버쪽 디렉토리 이동)
ftp>pwd (현재 경로 확인)
ftp>ls
ftp>get 파일명
ftp>mget mc*
질문에 y 나 엔터 입력
ftp 명령어를 실행한 디렉토리에 다운이 된다.
다운로드 : get(파일 1개 다운로드), mget(파일 여러 개 다운로드)
업로드 : put(파일 1개 업로드), mput(파일 여러 개 업로드)
ftp>by (접속 종료)
#ls
#tar zxvf mc-4.6.1.tar.gz
#ls
#cd mc-4.6.1
#pwd
(/work/mc-4.6.1)
#ls
#ls src (—> /work/mc-4.6.1/src 폴더의 내용을 확인하는 것)
확장자 .c 로 된 소스 파일
#./configure –help
—> 컴파일 옵션 확인
Installation directories:
–prefix=PREFIX install architecture-independent files
in PREFIX
[/usr/local]
–exec-prefix=EPREFIX install architecture-dependent files in
EPREFIX
[PREFIX]
By default, make install' will install all the files in
/usr/local/bin’,
/usr/local/lib' etc. You can specify
/usr/local’ using
an installation prefix other than --prefix',
–prefix=$HOME’.
for instance
–enable-charset Support for charset selection and conversion [no]
#pwd
(/work/mc-4.6.1)
#./configure –prefix=/work/mc –enable-charset
–prefix 는 설치 디렉토리 지정 옵션
–enable-charset 은 한글 지원 설정
#make
#make install
명령어 라인 한 줄에 입력하려면 && 연산자를 이용하면 된다.
#./configure –prefix=/work/mc –enable-charset && make && make install
#cd /work/mc
#ls
#/work/mc/bin/mc
#/work/mc/bin/mc –help
-a, –stickchars Use stickchars to draw
#/work/mc/bin/mc -a
A ; B
—> A 명령이 실패해도 B 명령을 실행
A && B
—> A 명령이 실패하면 B 명령을 실행 안 하고
A 명령이 성공하면 B 명령을 실행