시험종목 : 제1702회 리눅스마스터 2급 2차
시험일자 : 2017. 06. 10.(토), 14:00 ~ 15:40(100분)
바로가기 >> 리눅스마스터 기출문제 목록
과목1 (1-48)
소유권은 어떠한 파일이나 디렉터리를 소유하여 지배하는 권리를 말하고, 허가권은 파일이나 디렉터리에 접근 권한을 설정하는 권리로 일반적으로 소유권을 가진 사용자가 허가권을 설정한다. 소유권은 사용자 소유권과 그룹 소유권으로 나누고, 허가권은 사용자(user), 그룹(group), 다른사용자(other)로 나누어 설정할 수 있다.
파일
r : 파일의 내용을 볼 수 있는 권한
w : 파일의 내용을 수정할 수 있는 권한
x : 실행 파일을 실행시킬 수 있는 권한
디렉터리
r : 디렉터리 내부의 내용을 볼 수 있는 권한
w : 디렉터리 내부에 파일을 생성 또는 삭제할 수 있는 권한
x : 디렉터리 내부로 접근할 수 있는 권한
chown(change owner)
파일아나 디렉터리의 소유권 및 그룹 소유권을 변경하는 명령이다.
chmod(change mode)
파일이나 디렉터리에 접근할 수 있는 허가권을 설정하는 명령이다. 알파벳 기호를 사용하는 문자모드와 8진수의 값을 사용하는 숫자모드로 지정한다.
r 4 읽기
w 2 쓰기
x 1 실행
u user 소유자
g group 소유그룹
o order 다른 사용자
a all 모든 사용자
u g o a 는 + – = 기호를 사용하여 설정
+ 설정
– 해제
= 특정 권한만 설정
특수 권한
Set-UID : 보통 실행 파일에 사용되며 Set-UID 가 부여된 파일을 실행 시, 해당 파일을 실행하는 동안 해당 파일의 소유자 권한으로 인식힌다. 설정하면 소유자 권한 부분의 x 자리에 s 로 표기된다. 실행권한이 없는 파일에 부여하면 대문자 S 로 나타난다.
Set-GID : 파일에 설정되어 있을 경우 소유한 그룹 권한으로 인식힌다. 보통 Set-GID 는 주로 디렉터리에 설정되는데, 이 권한이 설정된 디렉터리에 사용자들이 파일이나 디렉터리를 생성하면 사용자가 속한 그룹에 상관없이 디렉터리 소유 그룹 권한이 만들어진다. 그룹 소유권 부분에서 x 자리에 s 로 나타나며, 실행 권한이 없을 경우 대문자 S 로 표시된다.
Sticky-Bit : 디렉터리에 설정되는 특수 권한으로 일종의 공유 디렉터리로 사용된다. /tmp 디렉터리에 설정되어 있다. Sticky-Bit를 설정하면 사용자들이 생성에는 제한이 없지만, 삭제할 경우 본인이 생성한 파일 이외에는 불가능하다. 설정하면 other 계층 권한 부분의 x 자리에 t 로 표기되며 실행권한이 없는 경우 대문자 T 로 표기된다.
4번 문제해설참조
df(disk free)
현재 마운트된 디스크의 크기, 사용량, 남아있는 용량 등에 대한 정보를 출력
주요 옵션
-h : 용량의 단위를 표시(KB, MB, GB)를 해준다.
-k : 킬로바이트(kilobyte) 단위로 보여준다.(기본값)
-m : 메가바이트(megabyte) 단위로 보여준다.
-T : 각 파티션에 대한 파일 시스템의 유형을 보여준다.
-i : 아이노드의 사용량을 보여준다.
du
파일이나 디렉터리들이 디스크에서 차지하고 있는 크기를 출력
[사용법]
$ du [option] [FILE(s)]
[주요 옵션]
-h : 용량의 단위 표시(KB, MB, GB)를 해준다.
-b : 바이트 단위로 보여준다.
-k : 킬로바이트 단위로 보여준다.
-m : 메가바이트 단위로 보여준다.
-a : 디렉터리에 존재하는 모든 파일에 대해 각각의 크기를 보여준다.
-s : 파일들의 전체 크기를 합한 값만 보여준다.
mount
보조기억장치(HDD, FDD, CD-ROM 등)나 파일시스템이 다른 디스크를 / 의 하위 디렉터리로 연결하여 사용 가능하게 해주는 명령이다. 특정한 옵션없이 mount 명령을 내리면 현재 마운트된 장치나 디스크를 확인할 수 있다.
사용법
# mount [option] [device] [directory]
주요옵션
-a : /etc/fstab 에 명시된 파일 시스템을 마운트할 때 쓰이는 옵션
-t fs_type : 파일시스템의 유형을 지정하는 옵션으로 지정하지 않으면 /etc/fstab 파일을 참조한다.
-o 항목 : 마운트할 때 추가 설정을 적용할때 사용하는 옵션으로 다수의 조건을 적용할 때는 콤마(,)로 구분한다.
주요 파일 시스템의 유형
mados : MS-DOS 의 파일 시스템인 FAT-16을 마운트할 때 지정한다.
vfat : 마이크로소프트사의 파일 시스템인 FAT-32 를 마운트할 때 지정한다.
ntfs : 마이크로소프트사의 윈도우 NT, 2000, XP 이후에 버전에서 사용하는 파일 시스템을 마운트할 때 지정한다.
ext2, ext3, ext4 : 리눅스 시스템을 마운트할 때 지정한다.
iso9660 : CD-ROM 이나 DVD 를 마운트할 때 지정한다.
smbfs : 네트워크 파일 시스템인 삼바 피일 시스템을 마운트할 때 지정한다.
cifs : 삼바 파일 시스템이 확정된 파일 시스템이다.
nfs : 네트워크 파일 시스템인 NFS 로 공유된 영역을 마운트할 때 지정한다.
udf : DVD 파일 시스템으로 대부분의 배포판 리눅스에서 iso9660 으로 지정해도 마운트 할 수 있다.
-o 의 주요항목
ro : 읽기 전용으로 마운트한다.
rw : 읽기/쓰기 모드로 마운트한다. (기본값)
remount : 해당 파티션을 다시 마운트한다. 파티션 정보를 바꾸었을 때 사용한다.
loop : loop 디바이스로 마운트할 때 쓴다. CD-ROM 이미지 파일인 iso 를 마운트해서 사용할 때 쓴다.
noatime : 파일의 내용을 읽게 되면 Access Time 이 변경되는데 이 옵션을 사용하면 파일이 변경되기 전까지는 Access Time 이 변경되지 않는다.
eject
CD-ROM, DVD 등과 같이 이동식 보조기억장치의 미디어를 꺼낼 때 사용한다. 이 명령을 사용하면 자동으로 언마운트 작업을 수행한다.
Shell 은 커널과 사용자간의 다리역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 한다.
Shell의 종류
bourne Shell : 1977년 스티븐 본이 개발한 유닉스 버전 7의 기본 셸
bash : 1989년 브라이언 폭스가 GNU 프로젝트를 위해 개발한 배시셸은 본 셸을 기반으로 만들어졌다. GNU 운영체제, 리눅스 , 맥 OS X 등 다양한 운영체제에서 사용중이며 현재 리눅스의 표준 셸이다
C 셸 : C 셸(C shell, csh)은 1978년 버클리 대학의 빌 조이가 개발한 것으로 C 언어를 기반으로 만들어졌으며 강력한 프로그램 작성 기능을 가지고 있다.
tcsh : 1975년 켄 그리어가 테넥스(TENEX)라는 운영체제에 명령행 완성 기능을 반영하게 되었고, 1981년 C Shell 과 통합해서 탄생시킨 것이 tcsh 이다. csh 의 기능을 강화시킨 셸.
ksh : 콘 셸(Korn Shell, ksh) 은 1983년 벨연구소의 데이비트 콘이 개발. 본 셸을 확장해서 만들어졌으며, 벨연구소 사용자들의 요청으로 C 셸의 많은 기능을 추가하였다.
셸의 확인
명령 프롬프트 상에서 ‘echo $SHELL’ 이라고 실행하면 확인 가능하다. 또한 다른 셸을 사용하기 위해 변경 가능한 셸의 확인은 ‘chsh -l’ 명령을 실행하거나 ‘cat /etc/shells’ 로 확인할 수 있다.
chsh
로그인하여 사용하는 기본 셸을 임시로 다른 셸로 변경하는 명령어
주요 옵션
-s : 지정하는 셸을 앞으로 사용할 로그인 셸로 변경
-l : /etc/shells 파일 안에 지정된 셸을 나열
stty – 터미널 환경 설정 ( /bin/stty )
터미널 라인 설정을 확인하고 수정하는 명령어이다.
사용법
stty [옵션]
셸 관련 파일 및 디렉터리
/etc/profile : 시스템 전체(모든 사용자)에 적용되는 환경변수와 시작관련 프로그램을 설정한다.
/etc/bashrc : 시스템 전체(모든 사용자)에 적용되는 alias 와 함수를 설정한다.
~/.bash_profile : 개인 사용자의 환경 설정과 시작 프로그램 설정과 관련이 있는 파일로 로그인 시 읽어 들인다.
~/.bashrc : 개인 사용자가 정의한 alias 와 함수들이 있는 파일이다.
~/.bash_logout : 개인 사용자가 로그아웃할 때 수행하는 설정을 지정하는 파일이다.
/etc/profile.d : 몇몇 응용 프로그램들이 시작할 때 필요한 스크립트가 위치하는 디렉터리로 보통 /etc/profile 에서 호출된다. 일반 사용자의 alias 설정 등과 관련된 스크립트가 존재한다.
주요 환경 변수
HOME : 사용자의 홈 디렉터리
PATH : 실행 파일을 찾는 디렉터리 경로
PWD : 사용자의 현재 작업 디렉터리
SHELL : 사용자의 로그인 셸
USER : 사용자의 이름
UID : 사용자의 UID
리디이렉션
어떤 프로세스의 입출력을 표준 입출력이 아닌 다른 입출력으로 변경할 때 사용한다. 출력 결과를 파일로 지정하거나 파일의 내용을 프로세스의 입력으로 사용하는 기법이다.
> : 프로세스의 출력을 표준 출력에서 다른 출력으로 변경
>> : 프로세스의 출력을 지정한 출력(보통 파일)에 추가한다.
< : 프로세스의 입력을 표준 입력에서 다른 입력으로 변경
<< : 기호 뒤에 지정한 문자열을 입력으로 받아 해당 문자열이 나오기 전까지를 표준 입력을 삼아 해당 내용을 출력한다.
/etc/passwd
/etc/passwd 는 시스템에 로그인하여 자원을 이용할 수 있는 사용자의 목록을 저장하고 있는 정보 파일이다.
기본구조
username : password : UID : GID : fullname : home-directory : shell
셸에서 사용되는 특수문자
~ : 홈디렉터리
. : 현재 디렉터리를 나타내거나, 명령행 앞에서 source 라는 의미로 셸스크립트 등을 실행시킬 때 사용
.. : 부모 디렉터리
& : 특정 명령을 백그라운드로 실행할 때 사용한다.
< : 입력 재지정
> : 출력 재지정
/ : 경로명 디렉터리 분리자
fg
백그라운드 프로세스를 포그라운드 프로세스로 전환하는 명령이다
사용예
$ fg
백그라운드로 수행중인 작업을 포그라운드로 전환한다. 만약 백그라운드로 수행중인 작업이 여러개인 경우에는 가장 최근에 수행한 작업(보통 + 기호가 붙어 있는 작업) 을 포그라운드로 전환한다.
프로세스 상태코드인 STAT 의 주요 값
R : 실행 중 혹은 실행될 수 있는 상태
S : 인터럽트에 의한 sleep 상태로 특정 이벤트가 끝나기를 기다리는 상태
D : 디스크 I/O 에 의해 대기하고 있는 상태
T : 정지된 상태
W : paging 상태
Z : 좀비 프로세스를 뜻하는데 작업이 종료되었으나 부모 프로세스로부터 회수되지 않아 메모리를 차지하고 있는 상태
X : 죽어 있는 상태. 상태값으로 볼 수 없다.
top 실행 상태에서의 명령
k : kill 명령을 내린다.
h : 도움말을 출력
q : top을 종료
r : Nice 값을 변경
m : 메모리와 관련된 항목을 on/off 한다.
t : 프로세스의 CPU 항목을 on/off 한다.
jobs
백그라운드로 실행중인 프로세스나 현재 중지된 프로세스의 목록을 출력해 주는 명령이다.
주요옵션
-l : 프로세스 번호(PID) 를 추가로 출력해 준다.
셸에서 사용되는 특수문자
‘ ‘ : 작은따옴표는 모든 문자나 특수문자들을 일반문자로 취급한다.
\ : 탈출(escape)문자로 바로 다음에 오는 특수문자의 기능을 없앤다.
crontab
사용자가 주기적인 작업을 등록하기 위해 사용하는 명령으로 실행하면 기본 편집기인 vi 가 실행된다.
주요 옵션
-l : crontab 에 설정된 내용을 출력한다.
-e : crontab 의 내용을 작성하거나 수정한다.
-r : crontab 의 내용을 삭제한다.
-u : root 사용자가 특정 사용자의 crontab 파일을 다룰 때 사용한다.
p : 버퍼에 저장된 내용을 커서의 오른쪽으로 붙여 넣는다
dd : 현재커서가 위치한 줄의 전체를 삭제
yy : 한 줄 전체의 내용을 복사
:w : 저장하기 (write)
:q : 종료하기 (quit)
:wq : 저장하고 종료하기
:q! : 편집한 내용을 저장하지 않고 종료하기
rpm 파일 구성
패키지 이름 : 어떤 패키지인지를 알려주는 패키지의 이름
버전 : 패키지의 버전
릴리즈 : 한 버전의 패키지를 몇 번 빌드했는지를 알려준다. 최근에는 이 필드에 리눅스 버전을 같이 명기하고 있다.
아키텍처 : 패키지가 사용 가능한 시스템을 의미한다.
예) i386, i486, i586, i686, ia64, x86_64, alpha, ppc, ppc64, sparc, s390
rpm 사용법
rpm 명령의 사용법은 설치 및 갱신, 제거, 질의, 검증, 리빌드모드 등 총 5가지로 나눌 수 있다.
설치 및 갱신(install & upgrade) 모드
새로운 패키지를 설치하거나 갱신을 할 수 있다.
주요옵션
-i : 새로운 패키지를 설치할 때 사용한다. 기본적으로 이전 버전의 같은 패키지가 있을 경우 설치가 되지 않는다.( install)
-U : 기존의 패키지를 새로운 패키지로 업그레이드할 때 사용한다. 만약 설치된 패키지가 없을 경우에도 새로운 버전을 설치할 수 있는데 이 경우에는 -i 옵션과 같다고 볼 수 있다.( upgrade)
-F : 이전 버전이 설치되어 있는 경우에만 설치한다.( freshen)
-v : 메시지를 자세히 보여준다.
-h : 설치 상황을 ‘#’ 기호 표시해 준다.( hash)
force : 기존 버전이 설치되었을 경우처럼 강제로 설치할 때 사용한다.
nodeps : 의존성 관계를 무시하고 설치한다. rpm 설치 시에 의존성 관계에 있는 패키지가 존재하지 않을 경우에는 설치가 되지 않는데, 그런 경우 강제로 설치할 때 사용한다.
-vv : 메시지를 아주 자세히 보여준다.
test : 실제로 파일에 기록하는 작업을 제외한 대부분을 테스트할 때 사용한다. 패키지를 실제 설치하기 전에 제대로 설치되는지 테스트해 볼 경우에 사용한다. 보통 -vv 와 같이 사용한다.
rebuilddb : 특정한 패키지 설치 후에 rpm 패키지를 검색했으나 나타나지 않을 때 rpm 데이터베이스를 업데이트할 때 사용한다.
gzip, gunzip
gzip(GNU zip)은 GNU 에서 만든 압축 프로그램으로 유닉스용 압축 프로그램인 compress 를 대체하기 위해 만들어졌다. gzip 으로 압축하면 파일명 뒤에 .gz 이 붙고, 압축 해제는 gunzip 명령을 사용한다.
사용법
$ gzip [option] 파일명
$ gunzip [option] 파일명
주요옵션
-d : 압축을 풀 때 사용한다.
-1 : 파일의 압축 시간을 줄인다. 이옵션을 사용하면 압축은 빠르지만 압축률은 떨어진다.
-9 : 파일을 최대로 압축한다. 압축률은 좋아지지만 시간이 많이 걸린다.
-c : 결과를 표준 출력으로 보낼 때 사용한다. tar와 병행해서 작업할 때 사용한다.
-l : 압축 파일에 대한 정보를 출력하는 명령이다.
dpkg
데비안 패키지 관리도구
주요 옵션
-i 패키지 파일명 : 패키지를 설치할 때 사용한다.
-R 디렉터리명 : 설치하는 옵션인 -i 와 같이 사용되어 지정한 디렉터리 안에 있는 패키지를 설치할 때 사용한다.
-l : 설치되어 있는 패키지를 출력한다.
-c 패키지 파일명 : 패키지 파일에 포함된 파일 정보를 출력한다.
-L 패키지명 : 패키지가 설치한 파일목록을 출력한다.
unpack 패키지 파일명 : 환경 설정은 하지 않고, 패키지를 풀기만 한다.
configure 패키지명 : unpack 옵션으로 풀린 패키지를 환경 설정할 때 사용한다.
-s 패키지명 : 패키지에 대한 상태를 출력한다.
tar 은 테이프 관련 장치를 이용하여 백업할 때 사용하는 명령이었으나, 현재는 여러 파일들을 하나의 파일로 묶어주는 명령으로 사용한다.유닉스에서 사용되던 tar 는 파일로 묶거나 풀어주는 기능만을 할 뿐이지만, 리눅스에서 사용되는 GNU tar 는 옵션을 이용해서 파일로 묶거나 풀 때 압축 관련 작업을 동시에 진행할 수 있다. 지원되는 압축 형식에는 compress(tar.Z), gzip(tar.gz), bzip2(tar.bz2), xz(tar.xz) 등이 있다.
주요 옵션
-c : 지정한 파일이나 디렉터리를 하나로 묶어 새로운 tar 파일을 생성한다.
-x : 생성된 tar 파일을 푼다.
-v : 어떤 명령을 실행할 때 새상이 되고 있는 파일들을 보여준다. 예를 들면 c 옵션과 함께 사용하면 묶여지는 동안 파일의 이름을 보여준다.
-f 파일명 : 작업 대상이 되는 tar 파일의 이름을 지정한다. 파일명 대신 – 를 쓰면 표준 입출력이 된다.
-Z : compress 관련 옵션으로 예전 UNIX 계열 표준 압축 파일인 tar.Z 에 사용한다.
-z : gzip 관련 옵션으로 압축 파일인 tar.gz 에 사용한다.
-j : bzip 관련 옵션으로 압축 파일인 tar.bz 에 사용한다.
-J : xz 관련 옵션으로 압축 파일인 tar.xz 에 사용한다.
OSS(Open Sound System, 오픈 사운드 시스템)
CUPS(Common Unix Printing System)
컴퓨터를 인쇄 서버로 기능하도록 해주는 유닉스 계열 운영 체제를 위한 모듈 방식의 프린팅 시스템
애플에서 개발한 오픈 소스 프린팅 시스템으로 유닉스 계열 운영체제의 시스템을 프린터 서버로 사용가능하게 해준다.
CUPS 관련 파일
/etc/cups/cupsd.conf : CUPS 프린터 데몬의 환경 설정 파일로 기본 문법이 아파치의 httpd.conf 와 유사하다.
/etc/cups/printers.conf : 프린터 큐 관련 환경 설정 파일로 lpadmin명령을 이용하거나 웹을 통해 제어할 수 있다.
/etc/cups/classes.conf : CUPS 프린터 데몬의 클래스(class) 설정 파일.
cupsd : CUPS의 프린터 데몬
리눅스에서 프린트 관련 명령어는 BSD 계열과 System V 계열 명령어로 나눌 수 있는데, 대부분의 배포판에서는 이 두 계열의 명령어를 모두 지원한다. DSD 계열 명령어에는 lpr, lpq, lprm, lpc 등이 있고, System V 계열 명령어에는 lp, lpstat, cancel 등이 있다.
-h : 도움말 옵션으로 사용 가능한 옵션 목록을 출력한다.
lp
System V 계열에서 사용하는 인쇄 명령으로 BSD 계열의 lpr 명령과 유사하다.
[주요 옵션]
-d : 다른 프린터를 지정한다.
-n : 인쇄할 매수를 지정한다.(1-100)
[주요 옵션]
-# 값 : 인쇄할 매수(1-100)을 지정하는 옵션이다.
-P 프린터명 : 기본 설정된 프린터 이외에 다른 프린터를 지정할 때 사용한다.