본문 바로가기

ETC & TIP/IT자격증

[리눅스마스터] 족보정리 리눅스 개념

-----------------------------------------------------------------------------

# 커널 2.6.11

------------------------------------------------------------------------------

2 : 획기적인 변화가 있을 때 바뀜

6 : 안정버전(짝수)/개발버전(홀수) 구분

11 : 11번의 패치가 있음.

-------------------------------------------------------------------------------

# MOUNT

-------------------------------------------------------------------------------

ex) mount [옵션] [디바이스] [디렉터리]

 

-a : /etc/fstab에 길술되어 있는 모든 파일시스템을 마운트 한다

-t : 파일시스템의 형식을 저장한다

-n : mount에 대한 기록을 남기지 않는다.(/etc/mtab 파일에 정보를 넘기지 않고 마운트한다)

-o : -o [옵션] 뒤에 콜론으로 다음 옵션을 석용할수 있다

-w : 현재 mount를 선택적으로 해제한다.

-f : 특정 파일시스템만 선택적으로 mount 한다.

-------------------------------------------------------------------------------

# 리눅스 디렉토리

-------------------------------------------------------------------------------

. / 루트디렉토리 (최상위 디렉토리) : 이 디렉토리를 기준으로 모든 디렉토리가 생성

.

. 모든 디렉토리의 출발점이자 다른 파티션의 연결점.

. bin : 시스템을 사용하기 위한 기본적인 명령어들이 포함되어 있다.

. cp, mv, vi

. 일반사용자가 사용하는 명령어이며 권한에 아무런 제한이 없다.

 

. boot(부팅관련 디렉토리) : 부팅에 필요한 커널과 부팅할때 필요한 핵심 파일이

들어있음.

 

. dev(장치파일 디렉토리) : 드라이버 파일 개념이다. 장치파일들이 들어있는 디렉토리.

 

. etc(시스템 설정파일 디렉토리) : 윈도우7, xp 에서보면 제어판의 기능을 하는곳

이다.

 

. 시스템이나 사용자 관리를 위한 자료 파일 관리자용 명령어가 있다.

 

. home : 사용자 계정의 홈 디렉토리가 위치하는 디렉토리

 

. lib(라이브러리 디렉토리) : 윈도우에서는 프로그램을 설치할때 그 프로그램안에

다 포함이 되어있으나 리눅스는 따로 필수요소가 들어있는 디렉토리가 필요하다.

그것이 바로 라이브러리 디렉토리이다.

 

. 시스템 운영 및 프로그램 구동할때 필요한 공유 라이브러리기능

 

. root(관리자 홈 디렉토리) : 시스템의 관리자의 디렉토리이다.

 

. mnt : cd-rom 과 플로피 장치에 대한 기본 마운트 포인트를 제공.

 

. proc : 프로세스와 시스템 정보를 제공하고 위한 목적으로 설계된 가상 파일

시스템을 사용하는 디렉토리

 

. 프로그램을 구동하게 되면 proc 에 해당 프로세스의 PID 번호에 해당하는 디렉토리

를 생성 그 다음에 프로세서의 진행 상황을 추적하고 관리.

 

. 문자로 이루어진 이름의 디렉토리와 파일 : 시스템 및 커널 정보

 

. 숫자로 이루어진 이름의 디렉토리 : 현재 실행중인 프로세서의 정보

 

. sbin : 관리자가 사용하는 시스템 운영에 필요한 명령어가 있음

fdisk, reboot

 

. tmp : 프로세서 생성 과정에서 발생되는 임시 파일을 저장하는 디렉토리

우리들이 실습을 할때 지우고 생성하고 온갖짓을 다하는 디렉토리

 

. usr(설치파일 저장폴더) : 프로그램을 설치할때 패키지에 포함된 대부분의

파일이 이곳에 설치.

 

. 윈도우 Programs files 폴더와 같다.

 

. var(제일 중요!!) : 내용이 자주 변경되는 가변자료가 저장되는 곳이다.

시스템 운영할때 발생되는 로그 : var/log/messages

메일 송/수신할때 임시로 저장되는 스풀(spool)

프린터로 전송하기 위해 임시로 저장하는 프린트 스풀 데이터

redhet 배포판에서 패키지로 제공하는 아파치(apache) 웹서버 관련 자료 /var/www

MtSQL 의 데이터 베이스

FTP 의 최상위 디렉토리 등 서비스로 제공하는 서버로 리눅스를 운영하면

/var 만드는것이 바람직하다.

--------------------------------------------------------------------------------

1) umask: 현재 프로세스가 생성할 파일과 디렉토리의 퍼미션을 설정

파일일 경우 666, 디렉토리인 경우 777 에서 umask를 뺀 값이 현재 프로세스가

생성하는 파일과 디렉토리의 퍼미션입니다.

파일을 생성할때 기본으로 적용되는 퍼미션을 664(rw-rw-r--)로 하고 싶다면

umask의 인자값으로 002를 사용하면된다.

 

/etc/bashrc 파일에 정의되어 있다.

 

 

2) chmod, chown, chgrp [옵션][퍼미션][파일]

chmod -c: 변경된 파일만 자세하게 보여준다.

chmod -f: 변경되지 않는 파일에 대해서 오류 메세지를 보여주지 않는다.

chmod -v: 작업상태를 자세히 보여준다.

chmod -R: 경로와 그 하위 파일들을 모두 변경한다.

chmod --help: 도움말을 출력한다.

chmod --version: 버젼정보를 출력한다.

** chgrp -h: 심볼릭 링크 파일의 소유권을 변경할대 사용하는 옵션이다.

 

3) ls -al 명령으로 파일/디렉토리의 권한을 확인 가능하다.

 

4) chmod 2770 /project

맨앞의 숫자가 4setuid, 2setgid, 1sticky bit입니다.

 

 

5) SetUID, SetGID, Sticky Bit ?

 

파일의 권한은 일반적으로 사용자권한, 그룹권한, 아더권한이 있고, 각각의 권한에 대해 읽기권한(r), 쓰기권한(w), 그리고 실행권한(x)가 있다.

근데 사용자권한, 그룹권한, 아더권한 외에도 특수권한 이라는게 있다.

특수 권한을 이용하면 다른 계정에게 읽기,쓰기,실행 권한을 줄 수 있으며, 다른 계정(A)에서 만든 파일을 내 계정(B)에서 실행하는동안

A의 권한을 얻어 해당 파일을 읽거나 쓰거나 실행하는 것이 가능해진다 (SetUIDSetGID에 해당).

특수 권한에는 SetUID, SetGID, Sticky Bit가 있다.

 

 

5-1). SetUID

사용자의 권한이 있어야만 실행을 할 수 있는 파일의 경우, 그 권한을 일시적으로 파일을 실행하는 일반 사용자들에게 부여하기 위해 사용 한다.

SetUID가 설정된 파일을 실행하면 해당 파일을 실행하는 도중에는 파일의 사용자 권한을 획득하며, 파일의 실행을 마친 뒤에는 다시 자신의 권한으로 돌아온다.

 

SetUID4xxx로 설정한다. (100에 해당. xxx는 기존의 사용자권한, 그룹권한, 아더권한을 의미)

SetUID 설정 시 사용자 권한내의 실행 권한 자리에 x가 아닌 s가 오게 된다.

ex) chmod 4750 httpd (rwsr-x---)

 

 

5-2). SetGID

그룹의 권한이 있어야만 실행을 할 수 있는 파일의 경우, 그 권한을 일시적으로 파일을 실행하는 일반 사용자들에게 부여하기 위해 사용 한다.

SetGID가 설정된 파일을 실행하면 해당 파일을 실행하는 도중에는 파일의 그룹 권한을 획득하며, 파일의 실행을 마친 뒤에는 다시 자신의 권한으로 돌아온다.

 

SetGID2xxx로 설정한다. (010에 해당. xxx는 기존의 사용자권한, 그룹권한, 아더권한을 의미)

SetGID 설정 시 그룹 권한내의 실행 권한 자리에 x가 아닌 s가 오게 된다.

ex) chmod 2750 httpd (rwxr-s---)

 

 

5-3). Sticky Bit

Sticky Bit가 설정된 디렉토리에 파일을 생성하면 해당 파일은 생성한 사람의 소유가 되며, 오직 소유자와 root에게만 해당 파일에 대한 삭제 및 변경의 권한이 있다.

공유디렉토리로 사용하고자 할 때 쓰인다.

 

Sticky Bit1xxx로 설정한다.

(001에 해당. xxx는 기존의 사용자권한, 그룹권한, 아더권한을 의미)

Sticky Bit 설정 시 아더 권한내의 실행 권한 자리에 x가 아닌 t가 오게 된다.

 

 

** 디렉토리 퍼미션 777 ( drwxrwxrwx )

. 해당 폴더안에 생성된 파일의 소유자 및 모든 사람이 삭제할수 있다.

. root 가 만든 파일의 퍼미션이 600 (-rw-------) 이더라도, 디렉토리 퍼미션 777 ( drwxrwxrwx ) 아래 있으면 일반계정에서 삭제할수 있다.

 

** 디렉토리 퍼미션 700 (drwx------)

- 해당 폴더 소유자는 삭제관점에선 전권을 가지고 있다.

root 가 만든 파일의 퍼미션이 600 (-rw-------) 이더라도, 디렉토리 퍼미션 700 (drwx------) 아래 있으면 해당 폴더 소유자는 삭제할수 있다

 

** 디렉토리 퍼미션 1777 ( drwxrwxrwt ) <- 공유 폴더 (/tmp 와 동일) (Sticky Bit)

. 해당 폴더안에 생성된 파일의 소유자와 root 만이 삭제할수 있다.

. 해당 폴더안에 파일의 퍼미션이 777 ( -rwxrwxrwx) 이러라도, 디렉토리 퍼미션 1777 ( drwxrwxrwt ) 아래 있으면 파일의 소유자 및 root 만이 삭제할수 있다.

. , root 및 파일의 owner 만 삭제할수 있습니다.

 

 

 

6) ex4파일시스템은 ex2 ex3와 호환성이 있는 확장 버전으로 64bit 기억공간 제한을 없애고, 최대 1Exabyte의 디스크 볼륨과

16Terabyte의 파일을 지원하는 등 대형 파일 시스템과 관련된 기능이 대폭 강화되었다.

 

7) CD-ROM, DVD-ROM 과 같은 보조기억장치의 미디어를 꺼낼때는 eject라는 명령어를 사용한다.

 

8) 파일이나 디렉터리들이 디스크에서 차지하고 있는 용량을 출력할 때 사용하는 명령어는? du

Disk Usage의 약어로서 파일및 디렉토리의 사용량을 확인할 때 사용하는 명령어이다.

du 명령어는 현재디렉토리의 용량뿐 아니라 현재디렉토리의 서브디렉토리 및 파일들 까지 모두 함께 사용량을 계산하여 표시해 준다.

기본 용량표시단위는 kbyte이다.

 

사용형식

 

du [OPTION]... [FILE]...

 

사용예 #1

 

특정 디렉토리내에 존재하는 파일들의 개별용량을 확인코자 할 때에는 다음과 같이 한다.

"du 디렉토리명"이라고 하면 지정한 디렉토리내에 존재하는 모든 파일의 용량을 파일명과 함께 표시해 준다.

 

 

9) 디스크의 남은 용량을 확인하려고 할때에 사용하는 명령어는? df

df -a, --all: 파일 시스템의 크기가 0인 것도 모두 보여준다.

df -k: 보여주는 숫자 단위를 1kb단위로 보여준다.

df -T: 파일시스템의 형태를 출력합니다.

df -t: type형태의 파일시스템에 대한 정보만 표시한다.

df -h: 크기를 사람이 알기 쉽게 표시한다.

 

 

10) 쿼터(quota) 란 무엇인가 ?

쿼터(quota)는 시스템내의 사용자나 그룹이 가질수있는 inode ( 파일 & 디렉토리) 나 사용자나 그룹에

할당된 디스크의 블럭 ( 용량) 의 수를 제한함으로써,사용자별로 디스크의 사용을 제한할수있다.

이는 웹호스팅 서비스를하는 곳에서는 꼭 필요한 부분이다.

 

quotacheck : 쿼터설정을 reload 하는 기능

-> 쉽게말해서 업데이트 명령어입니다. 설정을 reload 한다고 생각하시면 됩니다.

repquota : 시스템내의 쿼터 설정을 보여준다.

quotaon : 쿼터를 실행한다.

quotaoff : 쿼터를 중지한다.

edquota: 용량제한하기

 

fstab에 사용자 쿼터를 설정하기 위한 옵션은 usrquota

이전파일을 새로운 파일로 교체하기 위한 명령어는 convertquota

 

 

11) bash 본 셸을 기반으로 하여 GNU 프로젝트에 의해 개발되었다. GNU 운영체제, 리눅스, OS X 등 다양한 운영체제에서 사용 중이며 현재 리눅스의 표준 셸이다.

12) chsh -l은 현재 사용 가능한 쉘을 확인할때 사용하는 명령어이다.

13) bash 쉘에서 현재 설정된 언어를 영어로 변경할때 사용하는 명령어는 LANG=C

14) 가장 최근에 입력한 마지막 10개의 명령어 목록을 출력할 때는 history 10을 사용하고,

가장 최근에 입력한 마지막 10번째의 명령어를 실행할때에는 ! -10

 

15) HISTORY 명령어의 환경변수

* HISTSIZE : 히스토리 스택의 크기가 지정되어 있다. 단위는 명령의 개수이다.

이 변수의 설정값을 변경했을 경우 history명령을 내리면 해당개수만큼만 출력된다.

또한 방향키로 검색했을 경우에는 설정한 명령한 개수만 검색된다.

* HISTFILESIZE : 실질적인 히스토리파일의 크기이다.

* HISTFILE : 히스토리 파일의 위치를 보여준다.

* HISTCONTROL : 중복되어지는 명령에 대한 기록 유무를 지정하는 변수이다.

 

16) bash에서 사용자가 로그인한 후 일정 시간 동안 작업을 하지 않을 경우에 로그아웃 시키는 환경변수로 알맞은 것은? TMOUT

17) 백그라운드 프로세스 -> 포어그라운드로 fg %3, 포어그라운드 -> 백그라운드 bg %3

 

18) clontab 옵션

 

crontab -l: 현재 crontab에 등록된 작업보기

crontab -e: 현재 crontab 편집하기

crontab -r: 현재 crontab을 삭제

 

 

19) kill 명령어

kill [option] [-시그널번호 or -시그널이름] PID

* option

kill -l : 시그널의 종류를 나열한다. 시그널의 종류는 시그널 번호순서대로 나열한다.

* signal_number와 이름

SIGHUP(HUP) : hang up의 약자로 프로세스를 재시작시키는 시그널이다.

SIGINT(INT) : 인터럽트. 실행을 중지시킨다. [CTRL] + [C] 를 눌렀을 때 보내지는 시그널

이다.

SIGKILL(KILL) : 무조건 종료, 즉 강제 종료시키는 시그널이다.

SIGTERM(TERM) : Terminate의 약자로 가능한 정상 종료시키는 시그널로 kill 명령의 기본

시그널이다.

STOP : 무조건적, 즉각적 정지

CONT : Continue. STOP등에 의해 정지된 프로세스를 다시 실행시킨다

QUIT : 키보드 종료.

TSTP : 실행 정지후 다시 실행을 계속하기 위하여 대기시키는 시그널이다. [CTRL] +[Z]

눌렀을 때 보내지는 시그널이다.

 

kilall -v 시그널이 전송된 결과를 출력할때 사용하는 옵션이다.

 

 

20) PS명령어 컬럼의 의미

ps -o 명령어를 사용하여 pid, tty, time, cmd등을 출력 폿멧으로 지정하는 옵션이다.

 

USER: 프로세스 사용자

%CPU: CPU 사용 비율

%MEM: 메모리 사용 비율

VSZ: 가상 메모리 사용량

RSS: 실제 메모리 사용량

STAT: 현재 프로세스의 상태

R: 실행중 혹은 실행할수 있는 상태

S: 수면 상태

I: 휴식상태

T: 정지상태

Z: 좀비 프로세스

W: 스왑 아웃된 상태

P: 페이지 대기

D: 디스크 대기

N: nice로 실행 우선순위가 낮아진 상태

START: 프로세스가 시작된 시각 혹은 날짜

그외에 여러 옵션이 있다. 나머지는 찾아보시라...

 

21) nohup : 로그아웃 하여 터미널을 빠져나가도 실행중인 프로그램이 종료되지 않고 계속 수행될수 있게 하는 명령

22) jobs는 백그라운드로 실행중인 프로세스나 현재 중지된 프로세스의 목록을 출력해 주는 명령어이다

jobs -l: 프로세스번호를 추가해서 보여준다.

-는 이전에 실행되었던 프로세스, +는 현재 실행중인 프로세스이다.

 

23) pstree [옵션][pid|user]

pstree -a: 명령행에서 지정한 인수가 있다면, 명령어 라인 인수까지 보여줌

pstree -h: 현재 프로세스로 부모 프로세스를 하이라이트로 표시

pstree -l: 긴라이을 모두 표시

pstree -c: 기본값은 동일한 트리 내의 같은 프로세스를 하나의 프로세스만 보여주고 해당 프로세스의 개수를 나타내는데, 같은 프로세스를 모두 표시

 

24)

# 입력 편집 명령어

i 문자 앞에서부터 입력

a 현재 문자 뒤에서부터 입력

I 현재 라인 첫머리에서부터 입력

A 현재 라인 맨뒤에서부터 입력

o 현재라인 아래에 입력

O 행의 위에 입력

r 겹쳐쓰기(커서위치 1문자 변환)

R 현재문자 이후부터 겹쳐쓰기

s 커서가 있는 단어를 지우고 입력하기

 

25) pico는 자유 소프트웨어의 라이선스가 아니었기 때문에 소스의 수정이 불가능하였다. GNU프로젝트에서는 pico의 복제버전(clone)nano프로그램을 개발하였다.

 

26) redhat에서 개발한 패키지 관리 기법으로 rpm이고

YumYellow dog Update라고도 하고 Duke University에서 RPM 설치를 개선하기 위해 개발한 패키지 관리자입니다.

Yum은 패키지 저장소를 수요되는 패키지를 검색하고 다운로드 하여 설치까지 처리하면서 패키지들의 의존성을 고려하여 설치할때 패키지 의존성에 대한 error를 줄일 수 있습니다. Red Hat Enterprise Linux 5에서는 Yum으로 패키지를 설치합니다.

 

27) 소스 파일을 설치하는 단계에서 configure -> make -> make install

28) apt-get 사용 시에 의존성 및 충돌성을 해결하기 위해 관련 정보를 기록하는 파일은 /etc/apt-get/sources.list

 

29)

CUPS를 사용하는 컴퓨터는 클라이언트 컴퓨터에서 인쇄 작업을 수신하는 서버가 되어, 해당 작업을 처리하고 적절한 프린터로 자료를 보낸다. 또한 그 때에는 HTTPBasic 인증 및 Digest 인증, 로컬 인증, 128비트 TLS/SSL 암호화 등을 이용할 수도 있다.

CUPS는 유닉스 인쇄 스풀러와 스케줄러 필터 시스템 및 백엔드 시스템으로 구성된다. 이 중 필터 시스템은 인쇄 데이터를 프린터가 인식할 수 있는 형식으로 변환하고, 백엔드 시스템이 이 데이터를 프린터로 보내는 역할을 수행한다. CUPS는 인쇄 작업과 대기열을 취급하는 기반으로 IPP (Internet Printing Protocol)을 이용하고 있다. 또한, CUPS는 유닉스에서 기존에 지원하던 System V 형식과 BSD 형식의 커멘드라인 인터페이스도 지원하고 SMB 프로토콜도 부분적으로 지원한다. CUPS가 제공하는 장치 드라이버는 어도비의 PPD (PostScript Printer Description) 형식의 텍스트 파일을 이용하여 설정이 가능하다. CUPS를 설정하는 CUPS 스스로는 웹(HTTP)을 이용한 임베디드 인터페이스를 지원하고 있다.

 

30)[리눅스 프린터 명령어] - System v 계열

 

#lpc : 라인 프린터컨트롤 프로그램으로 프린터나 프린트 큐를 제어한다.(프린터 관리자)

#lpq : 프린트 큐에 있는 작업의 목록을 보여주는 명령이다. 프린터 데몬으로부터 필요한 정보를 가져온다.

#lpr : 데몬에게 프린트 작업을 요청하는 일을 하는 명령이다.

option

-b : 배너(banner)나 헤더(header)를 출력하지 않는다.

-F : 파일의 포맷을 설정한다.

-K(또는 -#num) : 한 페이지당 몇장씩 출력할 것인지 출력할 문서의 장수를 지정한다.

-m : 에러 메시지를 메일로 보낸다.

-P 프린터이름 : 기본 설정된 프린터 이외에 사용할 프린터를 지정한다.

-Q : 기본값으로 사용하는 큐 이외의 다른 큐를 설정한다.

-R : 원격 프린트 작업을 보낼 때 원격 계정 이름을 구별하기 위해 사용된다.

-s : 지정된 파일을 spool 디렉토리로 복사하는 대신 심볼릭링크를 한다.

-T : 타이틀 페이지에 들어갈 타이틀을 설정한다.

-w : 페이지의 폭을 정한다.

#lprm : 프린터 큐의 작업을 삭제한다.

#lpstat : LP 프린터의 정보를 보여준다.

 

 

 

31) GNOMEKDE의 차이

KDE | GNOME

그래픽라이브러리 QT | GTK

설정항목의 수 최대한 많이 | 필요한 것만

기본텍스트 에디터 kate | gedit

기본 브라우저 Konquerer | Web

토렌트 클리이언트 kTorrent | Transmission

파일 탐색기 Konquerer | Nautilus

 

윈도우 매니저로 KDE는 보통 kWin을 씁니다.

GnomeMutter, Metacity, 기타등등을 쓰고 , Gnome3Mutter르 사용합니다.

 

 

32) 런레벨의 이해

런레벨 종류

- 런레벨 1 : 싱글모드 부팅. MS윈도우즈의 안전모드와 비슷

- 런레벨 3 : 콘솔모드로 부팅

- 런레벨 5 : X 윈도우로 부팅

- 런레벨 6 : 계속 재부팅만 한다.

런레벨 수정

- /etc/inittab 파일에서 다음 항목의 숫자를 직접 수정함으로 변경 가능

id:3:initdefault:

 

33) x윈도우와 가장 관계가 깊은 tcp 포트는 6000포트

 

34) 리눅스 문서프로그램 LibreOffice 패키지

Writer - 워드 프로세서

Calc - 스프레드시트

Impress - 프리젠테이션

Base - 데이터베이스

Draw - 그림/플로우차트 그리기

 

 

35) ICANN: 국제도메인관리기구 또는 국제인터넷주소관리기구라고 부르는데, 비영리기관으로 인터넷 도메인 관리와 정책을 결정하는 국제기구이다.

 

36)

T568B: 주파초갈

T568A: 초파주갈

 

37) OSI7 LAYER

38) 회선교환방식, 패킷교환방식의 차이점

39) SMTP 프로토콜의 포트 번호를 알기 위해 참고해야할 파일은 /etc/services

40) 사설 IP대역

A 클래스 : 10.0.0.0 ~ 10.255.255.255

B 클래스 : 172.16.0.0 ~ 172.31.255.255

C 클래스 : 192.168.0.0 ~ 192.168.255.255

 

41) ATM(Asynchronous Transfer Mode)라 더 많이 알려져 있으며, 53Byte의 고정 길이 패킷을 이용해서 순서대로 자료를 전송하는 방식은 Cell Relay 이다.

패킷스위칭기술에 대해서 알아봐야함

 

42) ssh 기반으로 로그인에 성공한 사용자에게 메시지를 전달하려고 할 때 설정하는 파일로 알맞은 것은?

/etc/motd

 

43) 네트워크 관련 파일들

/etc/protocols: 현재 사용할 수 있는 프로토콜의 목록이 들어 있다

/etc/resolv.conf: 현재 사용 중인 DNS 서버의 IP 주소가 등록된 파일

/etc/services: PORT 목록이 들어 있다. 사용하지 않은 서비스에 대한 목록은 삭제해도 된다. 주석처리를 하면 그 포트에 대한 listen이 열리지 않아 서비스가 실행이 되지 않는다

/etc/sysconfig/network-scripts/: 이더넷 장치와 설정 파일들이 있다.

/etc/sysconfig/network: 네트워크 사용유무, 호스트명 설정, 게이트웨이 주소 및 장치파일 설정, nis 도메인 이름 설정 등의 작업을 수행

/etc/xinetd.conf : xinetd라고 하느 데몬의 총 지휘관을 만들게 되었다. 평소에는 inetd라는 데몬이 하나만 떠 있다가 네트워크로 들어오는 신호를 탐지하여 다른 데몬을 띄워주는 것이다.

etc/xinetd.confxinetdconfig파일이다.

 

44) 시스템 관리 파일들

/etc/fstab: 컴퓨터가 부팅되면서 바로 마운트할 파일시스템의 목록이 있다. 파티션 정보가 들어있다.

/etc/group: 사용자의 그룹을 정의해 놓은 파일이다.

/etc/nologin: 이 파일이 생성되면 root를 제외한 모든 사용자의 접속을 막으며, 접속 시도 기록이 로그로 남는다. 이 파일은 주로 시스템을 점검하는 중에 다른 사용자의 접속을 막기 위해 사용하지만, 만약 원격에서 관리자가 작업하는 도중에 재부팅을 했을 경우 관리자도 원격 접속이 금지되어 있으므로 신중을 기해야 한다.

/etc/passwd, /etc/shadow: 사용자의 패스워드 등 여러 정보가 들어있다.

/etc/shells: 시스템에서 사용할 수 있는 쉘의 목록이 들어있다. 새로운 쉣을 설치했다면 이곳에 추가해 줘야 한다.

 

 

45) 부팅과 로그인/아웃 관련 파일

/etc/issue, /etc/issue.net, /etc/motd: 터미널이나 텔넷 세션 또는 콘솔을 통해 들어오는 사용자에게 메시지를 보여준다.

/etc/inittab: 시스템을 초기화하는 스크립트이다.

/etc/modprobe.d: 부팅시 이더넷 카드를 활성화 시키기 위한 모듈관련 설정파일

 

 

46) 클래스 별 서브넷 마스크 주소

a클래스: 255.0.0.0

b클래스: 255.255.0.0

c클래스: 255.255.255.0

 

 

-------------------------------------------------

1) /etc/fstab 항목에 대한 설명

(/dev/sda3:장치명, /home:마운트포이터, ex3:파일시스템종류, default(옵션), 1/0: dump, 0/1/2: fsck검사)

 

2) 새로운 디스크를 추가할때 사용하는 명령어

mount: 디스크를 마운트 시킨다.

fdisk: 디스크의 파티션을 분할한다.

mkfs: 파일스스템 생성

 

 

3) bash shell

- 본셸을 기반으로 하여 GNU 프로젝트에 의해 개발됨

- AT&T사의 데이브드 콘이 개발하였고, 명령어 완성기능, 히스토리 기능등을 제공한다.

- 현재 리눅스 대표쉘이다.

 

 

압축 gzip -9 filename.tar 결과:filename.tar.gz

해제 gzip -d filename.tar.gz 결과:filename.tar

내용보기 gzcat filename.tar.gz 결과:리스트 출력

 

 

targzip을 이용한 파일 압축 및 해제

사용예

 

압축 tar cvf - include/ src/ | gzip > backup/filename.tar.gz

풀기 gzcat filename.tar.gz | tar xvf -

내용보기 gzcat filename.tar.gz | tar tvf -

 

 

 

dpkg -i 패키지 설치

dpkg -l 설치된 패키지 목록

dpkg -r 패키지 삭제

dpkg --purge 환경설정파일 + 패키지 삭제

 

 

emacs 편집기

ctrl + n 커서 아래로 이동

ctrl + x - ctrl + f 현재파일을 닫고 새로운 파일을 연다.

 

pico편집기

한줄삭제 후 붙여넣기 ctrl+k ctrl+u

 

 

 

rpm ivh 새로운 패키지 설치

rpm Uvh 업그레이드하거나 새로운 패키지 설치

rpm Fvh 이전 패키지가 있는 경우에만 패키지 설치

 

arp ip주소와 mac 주소를 매칭시키는 명령어이다.

arp -a 확인한다.

arp -s ip주소의 mac 주소를 변경

arp -d 해당 정보 삭제

 

-------------------------------------------------------------------------------

 

1. 와일드 문자

 

* : 모든것을 의미 앞에 문자가 있으면 그 문자에 해당되는 모든것을 말함

 

? : 하나의 문자에 대해서 상징할때 사용

 

addbib - 도서목록 형식의 데이터베이스를 만들거나, 확장

alias - 명령어 간소화하기

apropos - 관련된 명령어 찾기, 사용설명서의 키워드 검색

ar - 라이브러리 만들기, 관리

arch - 컴퓨터 종류 알기

arp - 같은 서브넷의 IP 보여주기

at - 작업 시간 정하기

atd - 계획성 있는 작업 실행하기

awk - 특정 패턴 문자 처리하기

a2p - 펄 파일로 바꾸기

 

badblocks - 배드 블럭 검사하기

banner - 큰 글자(배너) 만들기

basename - 경로 이름에서 마지막에 있는 이름만 출력

batch - 원하는 시간에 원하는 명령을 실해하게 하는 명령

bc - 계산기

biff - 메일 수신 소리로 확인하기

bin-mail, binmail - 예전에 사용한 전자우편 프로그램

bg - 후면작업; 배경화면 설정

bind - 키나 함수 순서 결합하기

builtin - 내부 명령어 알아보기

break - 루프 빠져나가기

 

cal - 달력보기

calendar - 간단한 일정표

cat - 파일 병합과 내용 보기

case - 조건 처리하기

cc - C 컴파일러

cd - 디렉토리 변경하기

cfdisk - 디스크 설정하기

chattr - 파일 속성 변경하기

checknr - nroff 또는 troff 입력 파일 검사; 오류를 보여준다

chfn - 사용자 정보 변경하기

chgrp - 파일, 디렉토리가 속했던 그룹 바꾸기

chmod - 파일 권한 바꾸기

chown - 파일 주인 바꾸기

chsh - 지정된 셸 바꾸기

cksum - CRC값을 점검한다

clear - 화면 청소하기

clock - CMOS 시각을 조정하기

cmp - 두 파일을 바이트 단위로 비교

colcrt - troff 파일의 밑줄 속성 문자 처리

colrm - 열 삭제하기

column - 가로 정렬하기

comm - 지정 두파일의 줄 단위 비교와 그 처리

command - 명령어 알아보기

compress, uncompress, zcat - 파일 압축관련 유틸리티들

continue - 루프 계속돌기

cp - 파일 복사하기

cpio - 복사본 만들기

cpp - C 언어 전처리기

crontab - cron을 관리한다

csh - C 문법과 비슷한 쉘 스크립트 문법과 기타 여러 기능이 내장된 쉘

csplit - 파일에 서식, 규칙 정하기

ctags - ex vi 편집기에서 사용될 tag 파일을 만드는 명령

cut - 필요한 필드만 출력하기

 

date - 날짜 보기

dbx - 소스 수준의 디버거

dd - 블럭장치 읽고 쓰기

debugfs - ext2 파일 시스템 디버깅하기

declare - 변수 선언하기

deroff - nroff, troff, tbl, eqn 관련 내용 지움

df - 파일 시스템의 사용량 보기

diff - 두 파일의 차이점 비교

dirs - 디렉토리 목록 표시하기

dmesg - 부팅 메시지 보기

dnsdomainname - DNS 이름 출력

domainname - NIS 이름 출력&설정

du - 디렉토리와 파일의 용량 파악하기

dumpe2fs - 파일 시스템 정보 보기

 

echo - 표준 출력하기

ed, red - 기본 줄 편집기

eject - 장치 해제하기

elm - 메일 관련

enable - 내부 명령어 지정

env - 환경변수 출력하기

eqn, neqn, checkeq - 수식 표현 포멧 도구

error - 컴파일러 오류 메시지 목록

eval! - 인수 읽기

exec - 셸 명령어 실행하기

exit - 종료하기

ex, edit, e - 줄 편집기

expand, unexpand - TAB 문자를 공백문자로 바꿈, 또는 그 반대로

expr - 인자를 수식으로 처리

export - 변수 지정하기

e2fsck - 파일 시스템 복구하기

 

fc - 지정된 편집기 받기

fdformat - 플로피 디스크 포맷하기

fdisk - 파티션 나누기

fg - 지정된 작업을 전면 프로세스로 시작하기

file - 파일 형식 보기

find - 파일 찾기

finger - 사용자 정보 알기

fold - 긴 줄 출력 방법 지정

fmt, fmt_mail - 간단한 문서나, 편지 포멧 도구

for - 반복 실행하기

free - 메모리 사용량 알아보기

fsck - 파일 시스템 검사하기

fstab - 파일 시스템에 대한 고정적인 정보 저장하기

ftp - 파일 전송 프로그램

fuser - 프로세스 ID 출력

 

gcore - 실행 중인 프로세스의 core 이미지를 구한다.

getkeycodes - 매핑 테이블 출력하기

gprof - call-graph profile data - ?를 보여줌

grep - 특정 문자() 검색하기

groups - 사용자의 그룹을 보여줌

gzexe - 실행 파일 압축하기

gzip - 압축하기

 

halt - 시스템 종료하기

hash - 기억해 두기; index 역할

head - 파일의 앞부분 출력하기

help - 도움말 보여주기

host - 호스트 정보 보기

history - 사용 명령어 목록보기

hostname - 현재 시스템 이름을 보여줌

 

id - 계정 정보 알기

if - 조건문 실행하기

ifconfig - 랜카드에 주소 할당하기

imake - makefile 만드는 프로그램

imolamod - 모듈 설치하기

indent - C 프로그램 소스 파일을 들여쓰기 하는 포멧 도구

inetd - 인터넷 서비스의 최상위 데몬

init - 실행 단계 정하기

install - 파일 설치

ispell - 철자법 검사하기

jobs - 수행중인 프로세스 알기

 

kbd_mode - 키보드 모드 출력하기

kill - 프로세스 죽이기

klogd - 커널 로그 데몬

 

last - 사용자가 마지막 접속 상태를 보여줌

ld, ld.so - 링크 편집기, 동적 링크 편집기

ldd - 공유 라이브러리의 의존성 알기

leave - 자신의 접속 종료 시간을 알려줌

less - more 명령의 확장

let - 정규식 표현하기

lex - 어휘 분석 프로그램 생성기

lilo - 부팅하기

lint - C 프로그램 verifier

ln - 파일의 하드, 심벌릭 링크 명령

locate - 패턴에 맞는 파일 찾기

login - 로그인하기

logger - 시스템 로그 기록하기

logname - 사용자 로그인명 보여주기

logout - 로그인 셸 종료하기

look - 시스템 디렉토리나, 정열된 목록에서 단어 찾기

lookbib - 도서목록형 데이타베이스에서 찾기

lorder - 오브젝트 라이브러리의 관계 찾기

losetup - 중복 장치 확인하기

lp, cancel - 인쇄 시작, 취소

lpd - 프린트 데몬

lpq - 인쇄 작업 상황 보기

lpr - 인쇄

lprm - 인쇄 작업 지우기

ls - 디렉토리 내용보기

lsattr - 파일 시스템의 속성 보여주기

lsdev - 하드웨어 장치 출력하기

lsmod - 모듈 정보 출력하기

 

mail - 메일 관련

make - 실행 파일을 만들거나, 특정 작업 파일을 만들 때 사용하는 도구

man - 매뉴얼 보기

mattrib

mbadblocks

mcd

mcopy

mdel

mdeltree

mdir

mesg - 메시지를 받을 수 있는지 확인하기

mformat

minfo

mkdir - 디렉토리 만들기

mke2fs - 파일 시스템 생성하기

mkfs - 파일 시스템 만들기

mknod - 특수 파일 만들기

mkstr - C 소스 파일을 참조로 오류 메시지 파일을 만듬.

mkswap - 스왑 영역 지정하기

mlabel

mmd

mmount

mmove

mpartition

mount - 장치 연결하기

more - 화면 단위로 출력하기

mrd

mren

mtoolstest

mtype

mutt - 메일 관련

mv - 파일 이동이나, 이름 바꾸기

mzip

 

nawk - 패턴 검색과 언어 처리

netstat - 현재 네트웍 상황 보기

nice - 낮은 우선권에서 명령 실행

nm - 심블 이름 목록 보기

nroff - 문서 포멧 도구

 

od - 8진수, 10진수, 16진수, ascii 덤프

passwd, chfn, chsh - 비밀번호, 핑거정보, 쉘 바꾸기

paste - 여러파일의 서로 관련 있는 줄 연결시키기

pidof - 실행중인 프로그램의 프로세스 ID 찾기

pine - 메일 관련

ping - 네트웍 확인하기

popd - pushd 취소

pr - 문서 파일 양식화 도구

printenv - 현재 환경 변수들의 내용과 그 값 알아보기

prof - profile 자료 보기

ps - 현재 프로세스 정보 보기

pstree - 프로세스 상관관계 알기

ptx - permuted(순열화된?, 교환된?) 색인 만들기

pwd - 현재 작업 디렉토리 보기

 

quota - 한 사용자에게 지정된 디스크 할당량보기

 

ranlib - archiverandom 라이브러리로 변화

rarp - rarp 테이블 관리하기

rcp - 리모트 카피

rcs - RCS 파일 속성 바꾸기

rcsdiff - RCS revisions 비교

rdev - 루트, 스왑장치, 램 크기, 비디오 모드를 조사하고 설정하기

rdate - 네트웍으로 시간 설정하기

reboot - 재부팅하기

rev - 한 줄의 문자열 꺼꾸로

rmmod - 모듈 지우기

readonly - 읽기 전용으로 표시하기

renice - 프로세스 우선 순위 바꾸기

reset - 터미널 초기화하기

restore - 다시 저장하기

rlogin - 리모트 로그인

rm - 파일 지우기

rmdir - 디렉토리 지우기

roffbib - 도서목록형 데이터베이스 보기 또는 양식화

route - 라우팅 테이블 추가/삭제하기

rpm - 프로그램 추가/삭제

rpm2cpio - rpmcpio로 변환하기

rsh - 원격으로 명령어 실행하기

rup - 로칼 머쉰의 호스트 상태 보기(RPC version)

rusers - 호스트에 로그인한 사용자 출력하기

rwall - 호스트 사용자에게 메시지 뿌리기

rwho - 현재 접속자 보기

 

script - 화면 갈무리

sed - stream editor

set - 변수값 설정하기

setup - 시스템 관련 설정하기

sh - 유닉스 표준 쉘

showmount - 호스트의 마운트 정보 보여주기

shutdown - 전원 끄기

size - 오브젝트 파일의 크기들을 보여줌

sleep - 지정한 시간 만큼 실행 보류

sort - 줄 정열과 검색

sortbib - 도서목록형 데이터베이스 정열

source - 스크립트 번역하기

spell, hashmake, spellin, hashcheck - 맞춤범 검사 - 물론 영어겠지요

split - 파일 나누기

ssh - 암호화된 원격 로그인하기

strings - 오브젝트 파일이나, 실행 파일에서 문자열 찾기

strip - 오브젝트 파일에서 심벌 테이블과 중복된 비트 삭제

stty - 터미널라인 설정 보여주기

su - super-user, 임시적으로 새 ID로 바꿈

suspend - 셸 중단하기

swapoff - 스왑 해제하기

swapon - 스왑 활성화하기

symorder - 심벌 순서 바꿈

sync - 버퍼 재설정하기

syslogd - 로그인 과정 설정하기

 

tabs - 터미날 tab 크기 지정

tac - 거꾸로 보기

tail - 문서 끝부분 출력하기

talk - 다른 사용자와 이야기하기

tar - 여러 파일 묶기 또는 묶긴 파일 풀기

tbl - nroff 또는 troff의 도표 작성 도구

tcpdchk - tcp wrapper 설정하기

tcpmatch - 네트웍 요청에 대해 예측하기

tee - 표준 입력으로부터 표준 출력 만들기

telnet - TELNET 프로토콜을 이용한 원격 리모트 호스트 접속

test - 주워진 환경이 참인지, 거짓인지를 돌려줌

tftp - 간단한 ftp.

time - 명령 실행 시간 계산

times - 셸에서의 사용자와 시스템 시간 출력하기

top - cpu 프로세스 상황 보여주기

touch - 파일 날짜 관련 부분을 바꿈

tr - 문자열 바꿔주기

troff - 문서 양식화 도구

true, false - 쉘 스크립트에서 사용되는 참/거짓을 리턴하는 명령

tsort - topological sort

tty - 현재 터미날 이름 보기

type - 유형 보기

 

ue - MICROemacs

ul - 밑줄 처리해서 보여주기

ulimit - 제한하기

umask - 매스크 모드 설정하기

umount - 장치 해제하기

unalias - 별명 제거하기

uname - 시스템 정보 보기

unexpand - 공백 문자를 탭으로 변환하기

unifdef - cpp 입력 줄에서 ifdef 부분 바꾸거나 지움

uniq - 중복되는 빈줄 지우기

units - 프로그램 변환도구

useradd - 사용자 계정 만들기

userdel - 계정 삭제하기

usermod - 사용자 계정정보 수정하기

unset - 설정 변수 해제

uptime - 시스템 부팅시간, 부하 평균 보여주기

users - 로그인된 사용자 보여주기

uucp, uulog, uuname - 시스템 간의 복사

uuencode, uudecode - 이진 파일을 아스키파일로 인코딩, 반대로 디코딩

uusend - 리모트 호스트에 파일 보내기

uux - 리모트 시스템 명령 실행

 

vacation - 자동으로 편지 답장하기

vgrind - grind nice program listings

vi, view, vedit - ex 바탕의 편집기

vtroff - 문서 양식화 도구

 

w - 현재 누가 접속해 있으며, 무엇을 하고있는지 보기

wait - 프로세스가 마치기를 기다림

wall - 모든 사용자에게 메시지 보내기

wc - 문자, 단어, 라인수 세기

whatis - 명령어의 간단한 설명보기

whereis - 찾는 명령의 실행파일, 소스, 맨페이지 경로 보여줌(패스에 해당하는 모든 디렉토리를 뒤져서 해당 명령어를 찾음)

which - 특정명령어의 위치가 어디인지를 찾아줌

while - 루프 명령어

who - 시스템에 접속되어 있는 사람만 보여줌

whoami - 현재 사용하고 있는 자신이 누군지 보여줌

write - 다른 사용자의 화면에 메시지 보내기

 

xargs - 명령행 인자 처리 명령

xcopy - 반복적으로 복사하기

XFree86

xstr - extract strings from C programs to implement shared strings

 

yacc - yet another compiler-compiler: 파싱. 형태소분석 프로그램 생성기

yes - 항상 yes만 응답하는 명령

ypchfn - NIS에서 사용하는 chfn 명령어

ypchsh - NIS에서 사용하는 chsh 명령어

yppasswd - NIS에서 사용하는 passwd 명령어

zcat - 압축 파일 보기

zcmp - 압축 파일 비교하기

zforce - 강제로 gz 만들기

zgrep - 압축 상태에서 grep 실행하기

zmore - 압축 상태에서 more 실행하기

znew - .Z 파일을 .gz로 다시 압축하기

 

 

 

 

<nslookup>

Address

PTR

NS DNS서버

MX 메일 받는 호스트 목록

CNAME 별칭

SOA 권한있는 서버

HINFO 하드웨어 사양

ANY(ALL) DNS 레코드 모두 표시

-------------------------------------------------------------------------------

<로그파일 위치>

 

/dev/console : 콘솔로그 - kernel

/var/log/messages : 시스템로그 - syslogd

/var/log/secure : TCPD로그 - xinetd

/var/log/maillog : 메일로그 - sendmail,qpopper

/var/log/cron : cron 로그 - crond

/var/log/boot.log : 부팅로그 - boot

/var/log/xferlog : FTP로그 - ftpd

/var/log/httpd/* : 웹로그 - httpd

/usr/local/apcache/logs/* : 웹로그

/var/log/named.log : 네임서버로그 - named

/var/named/data/named.run : 네임서버로그

/var/name/data/named_mem-stats.txt : 네임서버로그

 

anaconda.log : OS설치시 설치프로그램인 아나콘다 로그

wtmp : 현 시스템에 접속해 있는 사용자의 정보

utmp : 첯음부터 접속했던 모든사용자의 로그인/아웃 정보 기록

btmp : 시스템에 로그인 실패한 내용에 대한 로그

lastlog : 가장최근에 로그인한 정보

history : 사용자의 쉘상에서 내린 모든 명령의 기록

rpmpkgs : 시스템에 설치되어있는 rpm 파일들에 대한 정보

yum.log : 시스템을 운영하는 동안 yum에 의해 설치/삭제/관리 된 패키지 정보

mysqld.log : mysql이 시작/정지되고 운영되는 동안의 정보

/var/account/pacct : 시스템에 들어온 사용자의 명령어 기록

-------------------------------------------------------------------------------

1. 리눅스의 개념

리눅스는 1991년 핀란드 헬싱키 대학의 리누즈 토발즈에 의애 만들어 졌다

초기버젼은 0.01로 가장 기본적인 커널만 포함하였다.

2. 리눅스의 특징

다중사용자, 다중처리시스템, 시스템의 안정성, 신뢰성, 폭넓은 하드웨어지원

응용프로그램 제공등이 있다.

 

3. 리눅스 시스템의 기본적인 디렉토리 구조

리눅스에서는 디렉토리를 하나의 파일로 인식한다.

리눅스의 디렉토리는 트리구조의 형식으로 최상위에 해당하는 루트(/)파일시스템

을 중심으로 한 하위디렉토리 /usr, /home, /etc 등이 존재한다.

/bin : 기본 실행파일

/boot : 부팅시 필요한 파일

/dev : 각종장치

/etc : 시스템 관리시 필요한 설정파일

/home : 계정의 홈디렉토리

/lib : 각종 라이브러리가 저장된 디렉토리

/mnt : 마운트될 파일시스템의 마운트 포인터가 되는 부분

/proc : 시스템 관리를 목적으로 메모리상에 만들어 놓은 가상 디렉토리

/root : 루트 사용자의 홈디렉토리

/sbin : 시스템 관련 명령어

/tmp : 임시파일을 만들고 삭제하는 디렉토리

/var : 가변 저장 디렉토리

ex) /include 디렉토리는 리눅스에 없는 디렉토리입니다

4. 배포판

리눅스라고 말하는 운영체제의 정확한 이름은 GNU/Linux 이며, 리눅스는 운영체제

의 핵심인 커널을 지칭할 뿐이다. 배포판은 수많은 오픈소스들과 GNU정신을 바탕

으로 만들어진 유용한 프로그램들을 함께 모아서 리눅스의 보급을 보다 손쉽고

효율적으로 하기위해 배포하는 리눅스 패키지를 의미한다.

 

5. 리눅스 관련 용어

 

1) 리차드 스톨만

GNU프로젝트의 리더, Free Software Foundation(FSF), http://www.gnu.org

 

2) GNU

Gnu is not Unix, GNU프로젝트는 자유에 대한 구속을 반대하며, 프로그램을

자유롭게 사용하도록 하자는 운동

 

3) 미닉스(MINIX)

교육용 유닉스

 

4) GPL 과 오픈소스 소프트웨어

GPL이 적용된 소프트 웨어는 자유 소프트웨어이다.

이것은 공개라이센스를 의미하는 것으로 이것을 따르는 모든 프로그램은 소스와

함께 공개되고, 저작권은 있지만 모든 소스의 공개, 배포, 변경에 대한 제한은

없다.

 

5) 커널

운영체제의 핵심적인 기능을 수행하는것

커널버젼: #uname -r

http://www.kernel.org

#finger finger@ftp.kernel.org

최신커널 버젼은?

 

7. 리눅스 설치 부팅 디스켓 만들기

#mount -t iso9660 /dev/cdrom /mnt/cdrom

#cd /mnt/cdrom/images

#dd if=boot.img of=/dev/fd0 bs=1440k

boot.img: 부팅이미지, pcmcia.img: 노트북용 부팅이미지

 

8. 파티션과 파일시스템

 

1) 파티션의 정의

하나의 물리적인 하드디스크를 여러개의 논리적인 디스크로 분리하는것을 의미

 

2) 파티션을 나누는 이유

파일시스템점검 시간단축, 백업의 용이, 특정 파티션 보호

안정성(루트파티션이 없어져도 타 파티션의 자료는 보존된다.)

 

3) 파티션의 종류

하나의 물리적인 디스크에는 4개의 primary 파티션을 갖는다

4개의 primary partition 중에 1개를 extended로 지정한다.

1개의 extended partition 은 여러개의 logical partition 으로 분할이 가능

SCSI하드디스크는 15, IDE하드디스크는 63개의 파티션을 가질수 있다.

 

4) 파티션에 따른 장치명

/dev/hda -> /dev/hda1, /dev/hda2, /dev/hda3

 

5) 파티션 분할

fdisk , disk druid

 

9. 부팅

 

1) 부트매니져

하드디스크의 등장과 대용량이 되면서 하나의 운영체제가 아닌 2개 혹은

그 이상의 운영체제를 하나의 시스템에서 구동되기를 원해서 나온것

 

2) LILO(Linux Loader)

여러개의 운영체제를 선택할수 있게 해주는 부트로더, MBR에 위치

 

3) 일반적인 멀티부트환경

MBR(LILO), /dev/hda1(window), /dev/hda2(linux), /dev/hda3(swap)

 

4) /etc/inittab 멀티 부팅의 레벨 설정

 

5) LILO의 설정파일인 Lilo.conf

 

/etc/lilo.conf

---------------------------------------------

boot=/dev/hda

map=/boot/map

install=menu

prompt

timeout=50

message=/boot/message

lba32

default=linux

password=1234

restricted

image=/boot/vmlinuz-2.4.20-8

label=linux

initrd /boot/initrd.img

other=/dev/hda1

label=dos

-----------------------------------------

11. 로그인

리눅스는 다중사용자들이 사용하는 멀티태스킹 환경이기 때문에 각자의 아이디를

인증 받아야만 사용할수 있다. 시스템에서 구분되는 사용자의 아이디와 암호를

입력하고 접근권한이나 사용권한을 얻는 인증단계를 로그인이라 한다.

 

12. /etc/issue, /etc/issue.net 환영메시지

 

13. 리눅스의 기본 명령어

 

1) 내부명령어

쉘에 내장되어 있는 명령어로 쉘이 명령어를 이해한다.

 

2) 외부명령어

/bin 안에 파일의 형태로 존재하며 사용하는 명령

 

ex) cd 는 내부명령어 혹은 외부명령어중 어느것인가?

3) 내부명령어와 외부명령어의 차이점은 내부명령어는 실행할때 별도의 프로세스

를 시작시키지 않지만 외부명령어를 실행할때는 새로운 서브프로세스를 fork

하고 실행한다.

 

14. 검색경로지정 홈디렉토리안에 .bash_profile

15. 사용자의 기본적인 쉘 환경설정

/etc/default/useradd

#useradd -D

 

21. 그룹관리

groupadd 계정명

/etc/group

groupdel 계정명

ex)#groupadd linuxpia

#cat -n /etc/group | tail -1

 

22. 위치확인 명령어

pwd, cd, tty

 

25. touch : 파일의 액세스 시간이나 갱신시간을 수정

새로운 파일 생성 기능

ex) #touch MMDDHHmm 파일명

 

26. 디렉토리 생성 : mkdir

 

27. 하나 또는 그이상의 파일이나 디렉토리 복사 : cp

-f(강제), -i(기존파일을 덮어쓰기전에 물어봄),-r(하위디렉토리나 파일까지복사)

 

28. 파일이동, 파일명 변경: mv

 

29. 비어있는 디렉토리를 삭제하는 명령어 : rmdir

 

30. 파일삭제 : rm 파일명 , rm -rf 디렉토리

 

31. 특정파일의 종류를 알고 싶을경우 : file

ex) #file /etc/resolv.conf

33. more와 비슷한 명령어로 한페이지씩 문자를 보여준다. 이동가능: less

 

34. 파일의 머리부분을 보는데 사용 : head

 

35. 파일의 꼬리부분을 보는데 사용 : tail

 

36. 파일찾기 : find

ex) find . -mtime +5 -print

(5일이상전에 마지막으로 수정한 파일 찾기)

 

37. 유사한 두파일을 비교하여 처음으로 틀린문자가 나타나는 위치만을 출력 : cmp

 

38. 행단위 파일 비교하는 명령어 : comm

 

39. 표본이 되는 문서는 두번째 파일, 파일비교 : diff

 

40. 파일에서 특정필드를 추출해서 가공해야하는 경우 사용하는 명령어 : cut

ex)#cut -f1,5 -d: /etc/passwd

 

41. 파일의 정보를 추출하는 명령어, 파일내의 단어수, 라인등의 정보 : wc

 

42. 주어진 필드나 문자의 위치를 기준으로 파일을 행단위로 정렬 : sort

ex)#sort -r /etc/passwd

43. 하나의 파일을 여러개의 작은 파일로 분리하는 명령어 : split

ex)#split -b 10000 /etc/services

44. 특정단어, 문자열, 문장을 포함하는 파일 탐색 : grep

ex)#grep linux /etc/passwd

#grep -c linux /etc/passwd

47. 여러 명령을 조합해서 사용시 이용 : 파이프(|)

 

48. 어떤 명령의 결과출력을 원하는 위치로 바꿀경우 : >, >>

 

49. 특정디렉토리의 용량확인 : du

#du -sh

 

51. 하드디스크의 용량확인 : df

 

52. 파일과 디렉토리를 하나의 파일로 묶어주는 아카이브를 생성하는 유틸리티 :

tar

 

53. 압축관련 파일 : gzip

1: 가장빠르게 압축, 6:기본값, 9:최고의 압축률, 속도는 느림

ex)gzip -9v 파일명

 

54. 압축 : compress, bzip2

 

59. 네트워크의 연결상태를 확인하는 명령어 : netstat

-r(라우팅테이블출력), -i(인터페이스테이블출력), -s(네트워크통계)

-p(소켓에대한pid출력), -C(계속되는 리스트 출력), -a(연결된모든소켓을출력)

 

60. 특정호스트까지 연결된 노드를 알아보는 명령어 : traceroute

 

61. 호스트에 대한 정보 확인 : host

 

62. 호스트네임을 출력 : hostname

#hostname -v 호스트명

 

64. 로그인되어 있는 사람과 현재 실행중인 작업의 종류를 나타내는 명령: w

 

65. 시스템을 사용하고 있는 사용자들의 이름과 터미널 번호, 로그인 시간등을

출력하는 명령 : who

66. 시스템의 메모리 사용량 정보를 확인하는 명령어 : free

-------------------------------------------------------------------------------

<디렉토리 위치>

 

/home : 사용자 파일이 저장된다.

 

/lib : 각종 라이브러리가 저장된 디렉터리로 커널 모듈도 있다.

 

swap : 일반적으로 메모리의 2배 크기로 설정한다.

 

/root : 최상위에 위치하는 디렉토리로서 루트디렉토리라고 불린다. 일반적인데이터파

일을

저장하지않는다.

 

/bin : 시스템에서사용되는 기본명령어들이 위치하는 디렉토리이다. 일반적인 cp, ls,

mv, vi등의 명령어들이 저장되어있다.

 

/var내용이 자주변경되는 자료들이 저장된다.

기본적으로 로그파일이 저장되며 메일을 송수신할때

임시로 저장되는 디렉토리 이다.

 

/boot : 리눅스 부팅에 필요한 파일이 저장되어있는 디렉토리이다. 리눅스커널이미지

도 여기에 저장되며 시스템부팅시 부트로더가 커널의 위치를 이곳에서 찾는다.

 

/dev : 각장치에 대한파일이 위치하는 곳이다. 일반파일은 저장되지않는다.

 

/etc : 시스템 관리시 필요한 설정파일들이 있다. 또한 이곳에는 부팅에 필요한 설정

파일들도 위치하게된다.

 

/home : 일반사용자들의 홈디렉토리가 위치하는곳이다.

 

/lib : 시스템운영및 프로그램을 실행할때 필요한 라이브러리가 존재한다. 사용자가

사용하는것이아닌 시스템이 사용하는 라이브러리가 저장되는곳

 

/mnt : 장치를 마운트시킬때 이디렉토리의 하위 디렉토리에 마운트된다.예를들어

cdrom을 마운트하게되면 /mnt/cdrom이 존재하게된다.

 

/proc : 시스템 관리를 목적으로 메모리상에 만들어 놓은 가상 디렉토리로서, 디렉

토리내의 파일들은 현재 시스템 설정을 보여준다.

 

/sbin : system binaries의 약자로 시스템관리자가 사용하는 명령어가 있는곳이다.

이곳의 명령어들은 관리자만 사용가능하다.

예를들어 reboot, shutdown, fdisk, ifconfig...

 

/tmp : 프로세스생성과정에서 발생하는 임시파일이 저장되는곳이다.

시스템을 reboot하게되면 이곳의파일들은 모두사라진다

 

/usr : 모든 응용프로그램및 시스템파일들 라이브러리및 실행파일이 존재하는 디렉

토리이다. 하위디렉토리는

 

/usr/bin : 실행파일을 보관

 

/usr/include : 헤더파일이존재합니다.

 

/usr/lib : 라이브러리가 존재합니다.

 

/usr/share/man : man페이지파일이 저장되어있는곳입니다.

-------------------------------------------------------------------------------

★★★ 선행학습

<GID>

Group Identifer의 약자. 특정그룹을 나타내는 고유 숫자이다.

보통 16비트로 구성되어 있고, 0~65530의 범위의 값을 가질수있다.

보통 0~100 OS에서 사용하는 GID이다.

0번은 root이다.

특정 실행파일에 GID가 설정되어 있을 경우, 프로그램을 실행시킨 사용자의 권한이 아닌

 

해당 파일에 설정된 그룹 권한 (GID)으로 실행된다.

 

<UID>

User Identifer의 약자. 특정사용자를 나타내는 고유숫자

GID처럼 16bit로 구성되어있으며, 0~65530범위의 값을 가질수있다.

보통 0~100OS에서 사용하는 UID이다.

0번은 root이다.

특정 실행파일에 UID가 설정되어 있을 경우, 프로그램을 실행시킨 사용자의 권한이 아닌

해당 파일에 설정된 소유자의 권한 (UID)으로 실행된다.

 

/etc/passwd에서 UID, GID에대해 확인할수있다.

★★★

-------------------------------------------------------------------------------

★★★ 선행학습

부트로더 > OS로딩 > 기계는 MBR 읽음 (MBRHDD의 첫번째 섹터에 있는 데이터를 찾

)

부트로더 2단계 : IPL(initial progam loader) 로딩 > 커널 로딩

 

# LILO : LILO는 모든 리눅스 배포판에 표준으로 자리잡았다. LILO를 사용하기 위해서는

관리자가 /etc/lilo.conf 파일을 수정하여 부팅할 기본 파티션, 타임아웃 값(메뉴에

서 항목을 고르는 시간을 조절), 커널 인자 (어떤 파티션이 루트 파티션인가를 나타냄

), 램디스크 로드여부, LILO가 어디에 설치되어야 하는지 등등을 설정해야 한다.

 

# GNU GRUB : GRUB은 인스톨 명령 하나로 설치가 끝나고 MD5암호화된 패스워드를

사용할 수 있다. 설정파일이 잘못되었을 경우 시스템은 명령행 프롬프트로 부팅하게

된다.

 

LILO는 오래됬고 덜 강력하다. 원래 LILOGUI 메뉴 선택이 없고 텍스트 인터페이스

만 있다. LILO를 사용하려면 관리자가 설정 파일을 수정하는 것 외에도 많은 일을 해

줘야 한다.

이에비해 GRUB은 관리가 편한데, GRUB 로더가 부팅시에 /boot/grub/grub.conf를 알아

서 처리해주기 때문이다. 관리자는 "grub-install" 유틸리티로 GRUB을 한번 설치해

주기만 하면 도니다. 변경된 grub.conf는 자동적으로 다음 부팅시에 적용된다. 반면

lilo.conf는 다음 부팅때 적용되지 않으며, MBR"새로고침" 해 주어야 한다.

★★★

LILO 설정

 

/etc/lilo.conf 파일 설정

 

/sbin/lilo 명령에 의해 수행

 

 

boot=/dev/hda

 

#lilo가 설치될 위치, 플로피 경우(boot=/dev/fd0)

 

map=/boot map

 

#lilo에 의해서 자동으로 생성되는 파일

 

install=menu

 

#22.3버전부터 그래픽 메뉴 사용, 텍스트 프롬프트로 나오게 되면 <tab>을 사용해서 레이블을 볼수 있다.

 

prompt

 

#boot : 프롬프트를 표시한다.

 

timeout=50

 

#키보드 무입력시 자동 부팅까지의 대기 시간 1/10초 단위

 

single-key

 

#키 하나만 입력하여 선택할 수 있도록 한다.

 

message=/boot/message

 

#lilo에 뜨는 선택 화면의 배경 이미지이다. 텍스트도 가능

 

lba32

 

#하드 디스크 LBA 모드 사용, 1024 실린더 이후에서도 LILO를 설치하고 사용할 수 있도록 한다.

 

default=linux

 

#부팅 디폴트 레이블 설정

 

password=1234

 

#부팅 패스워드

 

restricted

 

#inittab에서 지정된 실행 레벨이 아닐 때만 묻는다.

 

image=/boot/vmlinuz-2.6.9-71hs

 

#시동하는 리눅스의 커널 코드 파일의 장소

 

label=linux

 

#해당하는 운영체제의 레이블, 텍스트

 

initrd /boot/initrd.img

 

#초기화에 필요한 루트 디스크 이미지를 표시한다.

 

alias=1

 

#싱글 키(single-key)와 같이 사용되며 OS 선택시 1만 누르면 해당하는 운영체제가 부팅

 

read-only

 

#루트 파일 시스템을 읽기 전용으로 마운트

 

root=/dev/hda3

 

#루트 파일 시스템으로서 마운트하는 파티션을 지정

 

other=/dev/hda1

 

 

# 차이점

 

GRUB과 마찬가지로 LILO는 상호작용적인 명령행 인터페이스를 제공하지 않으며 네트워

크 부팅도 지원하지 않는다. 만약 LILO MBR이 올바로 설정되지 않는다면, LILO 시스템

으로는 부팅할 수 없다. 만약 GRUB 설정파일이 올바르지 않다면 GRUB 명령행 인터페이

스가 실행되며 시스템이 부팅되지 않는 상황을 피할 수 있다.

LILOGRUB 모두 싱글유저 모드로 부팅 가능하다(root일 경우). LILOGRUB 모두 암

호 설정 기능이 있으나 약간 차이가 있다. GRUBMD5를 암호 부호화에 사용하지만 LI

LO는 단지 평문 암호를 사용하기 때문에 누구나 'cat /etc/lilo.conf'명령을 통해 lil

o.conf파일을 읽을 수 있다.

-------------------------------------------------------------------------------

<cat>

 

a > b : a.txt 파일과 같은 내용으로 b.txt 파일을 만드는 명령

a >> b : 추가저장

-n : 넘버링 표기

 

 

-------------------------------------------------------------------------------

/etc/passwd

 

[사용자 이름]:[사용자 비밀번호]:[UID]:[GID]:[참고사항]:[홈 디렉토리]:[로그인 쉘]

root : x: 0: 0: root:/root :/bin/bash

 

x : 비밀번호는 /etc/shadow 파일에 저장되므로 사용하지 않음

UID : 숫자로 된 계정 식별 번호

GID : 계정이 속해있는 그룹 식별 번호

root : 계정 이름과 동일 = 특별한 코멘트 없음

/bin/bash : 로그인 시 사용하는 쉘은 bash

 

<FTP>

 

bin : ninary mode 큰 데이터 전송시 데이터 손실 방지

ha : 다운 상태 표시

prompt : y/n 질의어 생략

mget : 모든 파일을 다운로드

mput : 모든파일을 업로드

get : 다운로드

put : 업로드

 

-------------------------------------------------------------------------------

# ls : 해당 디렉토리에 있는 파일 속성 출력

 

I more : 한 페이지씩 출력

-al : 숨겨진 파일들을 포함해 모든 파일을 자세한 정보로 나열한다.

ex) drwxr-xr-x 4 root level0 4096 Jul 5 08:29

-l(ll) : ?llls -lalias 별칭으로서, 파일들의 자세한 정보를 나열한다.

숨겨진 파일들은 보이지 않는다.

-a : 모든 파일을 보여준다.

-c : 최근 변경 시간에 따라 정렬해서 보여준다. -l과 함께 사용하면 최근 변경 시간을 보여준다.

-d : 디렉토리 정보 출력

-n : UID, GID 출력

-f : 경로와 내용을 디스크에 저장된 순서대로 보여준다.

--full-time : 시간을 간략하게 표시하지 않고, 전체 시간을 보여준다.

-i : 파일 왼쪽에 inode를 보여준다.

-k : 파일 크기를 kb단위로 보여준다.

-l : 파일 목록의 형태, 권한, 소유자, 그룹, 크기, 시간, 파일명을 자세하게 나열한다.

-m : 목록을 가로로 나열한다.

-p : 파일 형태를 지시하는 문자를 각 파일에 추가한다.

-r : 정렬 순서를 내림차순으로 한다.

-s : 파일 크기를 1kb 단위로 나타낸다.

-t : 파일을 시간 순으로 정렬한다.

-x : 정렬 방식을 가로로 한다.

-A : 리스트 목록에서 '.', '..'를 제외한다

-B : 파일 끝이 ~인 파일을 제외한다.

-C : 정렬 방식을 세로로 한다.

-F : 파일 형식을 알리는 문자를 각 파일 뒤에 추가한다.

-G : 자세한 목록

-L : 심볼릭 링크 파일들을 그냥 파일로 보여준다.

-R : 파일 크기가 가장 큰 것부터 정렬한다.

-U : 정렬을 하지 않고, 디스크에 저장된 순서대로 보여준다.

-X : 확장자 순으로 정렬한다.

-1 : 한줄에 한 파일씩 나열한다

-------------------------------------------------------------------------------

# su : root 권한 얻기

-------------------------------------------------------------------------------

# vi : 리눅스 파일 텍스트 편집기

 

★★★ [선행학습]

<파일 속성 설명>

r-읽기, w-쓰기, x-실행가능

l - 링크된 파일로 실제경로는 뒤에 적혀있다.

d - 디렉토리

-------------------------------------------------------------------------------

# pwd : 현재 디렉토리 경로를 출력

-------------------------------------------------------------------------------

# demon : 시스템 프로그램 서비스, OS 로딩시 같이 실행되어 서비스되는 프로그램

 

ex) http 서버, ftp 서버

-------------------------------------------------------------------------------

# chkconfig : 각각의 데몬은 실행레벨에 따라 리눅스 시스템이 부팅하면서 자동으로

시작할 수 있도록 설정한다.

- (메인명령어)I(부가명령어) > 파이프라인

- 명령어에 더해 추가로 명령을 실행

- chkconfig --levels 명령시 에러가 난다면 user 권한 체크후 su 명령어 실행

-------------------------------------------------------------------------------

# ntsysv

- (=chkconfig) 실행 레벨별로 서비스 데몬을 활성화하고 비활성하는데 사용

- [Tab]키로 메뉴 이동

-------------------------------------------------------------------------------

# system-config-services : 데몬 설정프로그램, GUI프로그램

-------------------------------------------------------------------------------

# ps (옵션) : 현제 실행중인 프로세스 확인

 

-ef : 전체 프로세스 확인

-------------------------------------------------------------------------------

# echo : 화면에 출력하는 명령어, 환경변수 쓸때 $ 입력

-------------------------------------------------------------------------------

# set : 환경변수 검색 가능

-------------------------------------------------------------------------------

# id : 현재의 사용자 확인

-------------------------------------------------------------------------------

# passwd : 패스워드 변경

-------------------------------------------------------------------------------

# useradd(adduser) : 사용자 추가

 

-f -5 lms : lms 계정은 앞으로 5일 동안 사용할 수 있도록 한다.

-p : 패스워드생성

-u : UID정보를 임의로 변경하여 생성 (UID 중복불가)

-g : 그룹지정

-c : 설명부여

-d : 홈 디렉토리 설정

-s : 로그인 쉘 변경

-------------------------------------------------------------------------------

# usermod : 사용자 수정

 

-I : 계정명 변경

-p : 패스워드 수정

-u : UID 정보를 임의로 수정

-g : 기본그룹 수정시 사용

-c : 설명수정

-d : 홈 디렉토리 수정

-s : 기본 로그인 쉘(shell)을 변경

-------------------------------------------------------------------------------

# userdel

 

-f : 강제삭제

-r : 모든 정보 삭제

-------------------------------------------------------------------------------

<grep>

 

-i : 대소문자 구분 x

-v abc : abc 제외 출력 (linuxmaster라는 문자열이 포함되지 않은 행만 출력한다.)

-r abc : abc 포함 출력 (현재 디렉토리의 하위 디렉토리까지 모두 포함하여)

-rn abc : abc 포함 행까지 출력

-n : 리스트를 만들어 출력

-w abc : abc 만 출력

[A-Z] : 대문자를 하나라도 포함하는 것을 출력

[a-z] : 소문자를 "

[^a-z] : 소문자로만 된것 출력

^ab : ab로 시작하는 내용을 출력

f$ : f로 끝나는 내용을 출력

. : 빈칸을 제외한 모든내용을 출력

-------------------------------------------------------------------------------

<shutdown>

 

★★★ [선행학습]

Default RunLevel

 

0 시스템 종료 (halt)

1 Single user mode (single 모드로 쉘로 바로 부팅, 주로 복구 시에 사용)

2 NFS 기능을 사용하지 않는 Multiuser Mode

3 모든 기능을 포함한 Multiuser Mode, 콘솔 부팅

4 사용하지 않음

5 X-윈도우로 부팅 및 Multiuser Mode

6 시스템 재부팅 (reboot) ★★★

 

-y : 명령후 지정한 run level 로의 변경여부를 묻는 질문에 자동으로 yes 를 답한다.

-g 30 : (초단위) 30초 있다 꺼라, 지정 안할시 기본값은 60.

message " ~~" : shutdown 명령이 실행되기 전에 사용중인 사용자에게 알리는 메시지

역할.

-h +10 [10분 후에 종료(h : halt)] = init 0

-f : 빠른 재부팅시 사용

-r : 재부팅.

-c [예약된 shutdown 취소 (c : cancel)]

-k now [현재 접속자에게 종료 메시지만 보내며, 실제 종료는 안됨]

-------------------------------------------------------------------------------

# which : 명령어 위치 찾아준다

-------------------------------------------------------------------------------

# date [MMDDmmhhYY] : 시간설정

-------------------------------------------------------------------------------

# cal : 달력 출력

-------------------------------------------------------------------------------

# wall : 현재 접속되어 있는 모든 사용자들에게 메시지 보낼때 사용

-------------------------------------------------------------------------------

 

-------------------------------------------------------------------------------

# hwcolck : 하드웨어 시간확인, 리눅스 시간 동기화

-r : 하드웨어 시간확인

-w : 하드웨어 시간을 시스템 시간과 동기화

-s : 시스템 시간을 하드웨어 시간과 동기화

-------------------------------------------------------------------------------

# time 명령어 실행 시간에 대한 자세한 통계를 보여준다.

-------------------------------------------------------------------------------

# logname : 로그인 사용자명 출력

-------------------------------------------------------------------------------

# w : 현재 접속한 사용자 및 접속정보 출력

-------------------------------------------------------------------------------

# who : 현재 시스템에 접속한 모든 사용자를 보여주는 명령어

-q : 로그인 명과 로그인한 횟수 출력

-m : =whoami

-------------------------------------------------------------------------------

# whoami : 자신이 누구인가

-------------------------------------------------------------------------------

# users : 접속한 사용자들 id정보 확인

-------------------------------------------------------------------------------

# finger : 사용자 계정에 대한 정보를 확인 (선택출력)

-------------------------------------------------------------------------------

# mesg : 메세지 수신여부 설정

root로부터 오는 메세지와 wall 명령어로 전송되는 메세지는 거부할 수 없다.

-------------------------------------------------------------------------------

# write [username] [터미널]

ctrl+d : 메시지 전송 끝

콘솔상에서 간단하게 상대방에게 메세지 전달

-------------------------------------------------------------------------------

# sync : 버퍼재설정하기

-------------------------------------------------------------------------------

# hostname : 현재 시스템의 hostname 확인하거나 변경

-------------------------------------------------------------------------------

# rdate : 원격지의 타임서버로부터 날짜와 시간정보를 받아와 보여주거나 시스템의

시간을 동기화 시키는 명령어

-p : 타임서버의 시간출력

-s : 타임서버와의 시스템 시간 동기화

-------------------------------------------------------------------------------

# 부팅시 시간 동기화

/etc/rc.d/rc.local

ex) echo "hwclokc -w" >> /etc/rc.d/rc.local

-------------------------------------------------------------------------------

# whatis : 명령어에 대한 간략한 설명

-------------------------------------------------------------------------------

# man : 매뉴얼 보기

 

# fsck : 파일 시스템 검사 및 오류 수정

-------------------------------------------------------------------------------

# manpath : 특정 명령어의 amn페이지의 위치를 알고자 할 때 사용

-------------------------------------------------------------------------------

# sleep : 사용자가 지정하는 시간만큼 대기하고자 할 때 사용

-s:, m:, h:, d:하루

ex) sleep 10s > 10초간 대기해라

-------------------------------------------------------------------------------

# arch : CPU에 대한 정보를 확인하는 명령어

-------------------------------------------------------------------------------

# dd : 지정한 블록 크기만큼 파일을 복사할때 사용

하드디스크를 복사하거나 스왑 파일을 만드는데도 유용하게 사용

데이터 백업시에도 자주 사용

-------------------------------------------------------------------------------

# env : 환경변수를 출력하는 명령어

-------------------------------------------------------------------------------

# source : 스크립트나 설정파일들을 수정한 후에 수정된 값이 적용되도록 사용하는

명령어

-------------------------------------------------------------------------------

# ulimit : 시스템 리소스에 대해 최대 한계를 지정할 때 사용하는 명령어

-------------------------------------------------------------------------------

# uname : 시스템에 대한 정보를 출력하는 명령어

-------------------------------------------------------------------------------

# history : 현재까지 사용했던 명령어들의 전체 목록 출력

(홈디렉토리/.bash_history 파일에 기록됨)

-------------------------------------------------------------------------------

# diff : 서로 다른 두파일이나 폴더에 대한 비교할때 쓰는 명령어

 

 

[option]

-brif : 단순비교

-c : 차이점 비교

-d : 상세 비교

-l : 주로 폴더에 사용하며, 서브디렉까지 상세 비교

-b : 하나 이상의 공백문자는 같은 것으로 취급하여 비교한다.

-e : ed 에디터를 위한 스크립트를 생성한다.

-w : 공백을 무시하고 비교 작업을 수행한다.

-------------------------------------------------------------------------------

# diff3 : 3개의 파일 비교 시 사용

-------------------------------------------------------------------------------

# cmp : 두개의 파일을 비교하여 다른점을 확인 할 때 쓰는 명령어

 

ex) cmp [option] file1 file2

 

[option]

 

- l : 틀린 문자의 개수를 출력하고 각각의 틀린 문자에 대한 8진수 값을 출력

- s : 아무런 메시지를 보여주지 않고 종료 코드만을 넘겨줌

종료코드에서 0은 파일이 같음을 1은 파일이 다를 때 2는 파일에 접근할 수 없을때를

의미

-------------------------------------------------------------------------------

# comm : 두 파일의 행 단위를 비교할때 사용

 

ex) comm [option] file1 file2

 

[option]

 

-1 : 두개를 비교하되 파일 1에만 있는 것은 출력하지 않기

-2 : 두개를 비교하되 파일 2에만 있는 것은 출력하지 않기

-3 : 두개를 비교하여 파일1과 파일2에 모두 존재하는 라인은 출력하지 않기

-------------------------------------------------------------------------------