시험종목 : 제 1704회 리눅스마스터 2급 2차
시험일자 : 2017. 12. 2(토), 14:00 ~ 15:40(100분)
바로가기 >> 리눅스마스터 기출문제 목록
Set-UID : 보통 실행 파일에 사용되며 Set-UID 가 부여된 파일을 실행 시, 해당 파일을 실행하는 동안 해당 파일의 소유자 권한으로 인식힌다.
Set-GID : 파일에 설정되어 있을 경우 소유한 그룹 권한으로 인식힌다. 보통 Set-GID 는 주로 디렉터리에 설정되는데, 이 권한이 설정된 디렉터리에 사용자들이 파일이나 디렉터리를 생성하면 사용자가 속한 그룹에 상관없이 디렉터리 소유 그룹 권한이 만들어진다.
Sticky-Bit : 디렉터리에 설정되는 특수 권한으로 일종의 공유 디렉터리로 사용된다. /tmp 디렉터리에 설정되어 있다. Sticky-Bit를 설정하면 사용자들이 생성에는 제한이 없지만, 삭제할 경우 본인이 생성한 파일 이외에는 불가능하다.
umask
파일이나 디렉터리 생성시 부여되는 기본 허가권 값을 지정하는 명령이다.
주요 옵션
-S : umask 값을 문자로 표기
chown (change owner)
파일이나 디렉터리의 소유권 및 그룹 소유권을 변경하는 명령이다.
사용법
# chown [option] owner[:group] file(s)
옵션
-R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 접근 권한을 변경한다.
-c : 변경된 정보를 출력
-f : 주요한 오류 메시지가 아니면 출력하지 않는다.
chmod
파일이나 디렉터리에 접근할 수 있는 허가권을 설정하는 명령
사용법
# chmod [option] mode file(s)
옵션
-R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 접근 권한을 변경한다.
-c : 변경된 정보를 출력
-f : 주요한 오류 메시지가 아니면 출력하지 않는다.
chmod 명령에서 권한 지정방법 1번째
r 읽기 4
w 쓰기 2
x 실행 1
ex) chmod 755 test
사용자는 7(4+2+1), 그룹은 5(4+1), order은 5(4+1) 의 권한으로 지정 -> 사용자는 7(읽기+쓰기+실행)의 권한을 주고 그룹과 order은 5(읽기+실행)의 권한을 줌
chmod 명령에서 권한 지정방법 2번째
u g o a 각각 사용자(u), 그룹(g), order(o), all(a) 을 의미한다. 생략하면 all
+ – = 각각 권한 추가(+), 삭제(-), 지정(=)을 의미한다.
ex) chmod go-rx test : 그룹과 order에게 r(읽기) 과 x(실행) 를 제거
chown (change owner)
파일이나 디렉터리의 소유권 및 그룹 소유권을 변경하는 명령이다.
chgrp
파일이나 디렉터리의 소유그룹을 바꾸는 명령으로 root가 아니면 사용하는 경우가 드물지만 특정한 사용자가 여러 그룹에 속한 경우에 본인 소유의 파일을 본인이 속한 그룹 내에서 소유권을 변경시킬 수 있다.
UUID 는 범용 고유 식별자라고 부르는데, 보통 여러 개체들을 존재하는 환경에서 식별하고 구별하기 위해서 사용되는 고유한 이름을 통칭한다. 최근 리눅스에서 파티션을 생성하면 이러한 고유한 UUID 를 부여하고, blkid 라는 명령을 사용하면 관련 정보를 확인할 수 잇다.
df
현재 마운트된 디스크의 크기, 사용량, 남아있는 용량 등에 대한 정보를 출력
du
파일이나 디렉터리들이 디스크에서 차지하고 있는 크기를 출력
free
현재 사용중인 메모리의 상태를 출력해 주는 명령이다.
mount
보조기억장치(HDD, FDD, CD-ROM 등)나 파일시스템이 다른 디스크를 / 의 하위 디렉터리로 연결하여 사용 가능하게 해주는 명령이다.
mount
보조기억장치(HDD, FDD, CD-ROM 등)나 파일시스템이 다른 디스크를 / 의 하위 디렉터리로 연결하여 사용 가능하게 해주는 명령이다.
사용법
# mount [option] [device] [directory]
주요옵션
-a : /etc/fstab 에 명시된 파일 시스템을 마운트할 때 쓰이는 옵션
-t fs_type : 파일시스템의 유형을 지정하는 옵션
-o : 마운트할 때 추가 설정을 적용할때 사용하는 옵션으로 다수의 조건을 적용할 때는 콤마로 구분한다.
umount : unmount 의 약자로 마운트된 파일 시스템을 해제시켜주는 명령
eject : 보조기억장치의 미디어를 꺼낼 때 사용. 이명령을 사용하면 자동으로 언마운트 작업을 수행한다.
dumpe2fs
지정된 파일시스템의 슈퍼블록(superblock ), 블록그룹(block group) 정보를 보여주는 명령어
df(disk free)
현재 마운트된 디스크의 크기, 사용량, 남아있는 용량 등에 대한 정보를 출력
사용법
$ df [option]
주요 옵션
-h : 용량의 단위를 표시(KB, MB, GB)를 해준다.
-k : 킬로바이트(kilobyte) 단위로 보여준다.(기본값)
-m : 메가바이트(megabyte) 단위로 보여준다.
-T : 각 파티션에 대한 파일 시스템의 유형을 보여준다.
-i : 아이노드의 사용량을 보여준다.
chsh
로그인하여 사용하는 기본 셸을 임시로 다른 셸로 변경하는 명령어
주요 옵션
-s : 지정하는 셸을 앞으로 사용할 로그인 셸로 변경. ( shell)
-l : /etc/shells 파일 안에 지정된 셸을 나열. ( list-shells)
bourne Shell
1977년 스티븐 본이 개발한 유닉스 버전 7의 기본 셸
bash
1989년 브라이언 폭스가 GNU 프로젝트를 위해 개발한 배시셸은 본 셸을 기반으로 만들어졌다. GNU 운영체제, 리눅스 , 맥 OS X 등 다양한 운영체제에서 사용중이며 현재 리눅스의 표준 셸이다. bash의 명령어 문법은 sh와 호환되고, ksh와 csh의 유용한 기능을 참고하여 명령 히스토리, 명령어 완성 기능, 명령어 치환, 명령행 편집(Connand Line Edit)등을 지원하고 POSIX와도 호환된다.
csh
C 셸(C shell, csh)은 1978년 버클리 대학의 빌 조이가 개발한 것으로 C 언어를 기반으로 만들어졌으며 강력한 프로그램 작성 기능을 가지고 있다. C 셸은 히스토리 기능, 별명(Alias) 기능, 작업 제어 등의 유용한 기능들을 포함하였다.
tcsh
1975년 켄 그리어가 테넥스(TENEX)라는 운영체제에 명령행 완성 기능을 반영하게 되었고, 1981년 C Shell 과 통합해서 탄생시킨 것이 tcsh 이다. csh 의 기능을 강화시킨 셸로 명령어 완성 기능(command-completion), 명령행 편집 기능 등을 추가로 지원한다.
ksh
콘 셸(Korn Shell, ksh) 은 1983년 벨연구소의 데이비트 콘이 개발. 본 셸을 확장해서 만들어졌으며, 벨연구소 사용자들의 요청으로 C 셸의 많은 기능을 추가하였다. 작업 제어, 앨리어스, 히스토리 기능, Vi 및 Emacs 스타일의 명령행 편집 기능, 명령행 완성 기능 등을 제공한다.
셸의 확인
명령 프롬프트 상에서 ‘echo $SHELL’ 이라고 실행하면 확인 가능하다. 또한 다른 셸을 사용하기 위해 변경 가능한 셸의 확인은 ‘chsh -l’ 명령을 실행하거나 ‘cat /etc/shells’ 로 확인할 수 있다.
셸은 커널에서 분리된 별도의 프로그램
bash 에서 제공하는 주요 환경 변수
HOME : 사용자의 홈 디렉터리
PATH : 실행 파일을 찾는 디렉터리 경로
LANG : 셸 사용 시 기본으로 지원되는 언어
TERM : 로그인한 터미널 종류
PWD : 사용자의 현재 작업 디렉터리
SHELL : 사용자의 로그인 셸
USER : 사용자의 이름
DISPLAY : X 에서 프로그램 실행 시 출력되는 창
PS1 : 프롬프트 변수
PS2 : 2차 프롬프트 변수
HISTFILE : 히스토리 파일의 절대경로
HISTSIZE : 히스토리 파일에 저장되는 명령어의 개수
HISTFILESIZE : 히스토리 파일의 크기
HOSTNAME : 시스템의 호스트명
MAIL : 도착한 메일이 저장되는 경로
TMOUT : 사용자가 로그인한 후 일정 시간 동안 작업을 하지 않을 경우에 로그아웃 시키는 시간. 단위는 초.
UID : 사용자의 UID
16번 문제해설 참조
명령어 history 기능
bash 에서는 입력 후 실행했던 모든 명령들은 히스토리 리스트 버퍼에 스택으로 저장된다. 이렇게 저장된 명령들은 위아래 방향키를 사용하여 검색 및 편집하여 특정 명령을 반복해서 수행할 수 있다. history 라는 명령을 입력하면 히스토리 리스트에 있는 명령어들이 출력된다. 또한 사용자들이 실행한 명령들은 각 사용자의 홈 디렉터리 안에 .bash_history 라는 파일에 추가로 기록되며, 로그아웃을 할 때 메모리에 기억된 명령의 목록을 파일에 저장한다.
Ctrl+C (SIGINT) : 프로세스를 종료시킨다. 2
Ctrl+\ (SIGQUIT) : core dump를 남기고 프로세스를 종료시킨다. 3
Ctrl+Z (SIGTSTP) : 프로세스를 중단시킨다. 20
jobs
백그라운드로 실행중인 프로세스나 현제 중지된 프로세스의 목록을 출력해 주는 명령
fg
백그라운드 프로세스를 포그라운드로 전환하는 명령이다.
사용예
$ fg
백그라운드로 수행중인 작업을 포그라운드로 전환한다. 만약 백그라운드로 수행중인 작입이 여러 개인 경우에는 가장 최근에 수행한 작업(보통 + 기호가 붙어 있는 작업)을 포그라운드로 전환한다.
$ fg 2
작업번호가 2번인 프로세스를 포그라운드로 전환한다.
kill
프로세스에 특정한 시그널을 보내는 명령으로 옵션 없이 실행하면 프로세스에 종료 신호(15, TERM, SIGTERM)를 보낸다. 보통 중지시킬 수 없는 프로그램을 종료시킬 때 많이 사용한다.
주요옵션
-l : 시그널의 종류를 출력
-s signal : 시그널의 이름을 지정하는 옵션
killall
같은 데몬의 여러 프로세스를 한 번에 종료시킬 때 사용하는 명령으로 프로세스명을 사용한다.
사용법
# killall [option] 프로세스명
주요옵션
-l : 시그널의 종류를 출력
-w : 시그널을 받은 프로세스들이 종료될 때까지 기다린다.
-v : 시그널이 전송된 결과를 출력한다.
-s signal : 시그널의 이름을 지정하는 옵션
&
Shell 에서 명령어를 백그라운드로 실행하고자 할 경우에 사용되는 기호
백그라운드 프로세스는 말 그대로 눈에 보이지 않게 뒤에서 실행시키는 방식이다. 실행시키는 방법은 기존의 포그라운드 프로세스 실행 명령 뒤에 & 만 추가로 붙여서 실행한다.
프로세스 우선순위
하나의 시스템에는 많은 프로세스들이 동시에 실행되는데, 이러한 프로세스들은 우선순위를 부여하여 관리된다. 명령행에서 ‘ps -l’ 이라고 실행하면 PRI 와 NI 가 나타나는데, 이 두 항목이 프로세스의 우선순위와 연관되어 있다. PRI 는 운영체제에서 참고하는 우선순위 값으로 낮은 값일수록 우선순위가 높다. PRI 는 인위적인 조작이 되지 않고, 시스템 상황에 따라 적절히 부여된다. NI 값은 root 나 사용자가 조작하는 우선순위 값으로 -20 부터 19 까지 설정 가능한다. 이 값 역시 낮은 값일수록 우선순위가 높고, root 만이 값을 낮출 수 있다. NI 값을 설정하면 리눅스는 상황에 따라 PRI 값을 적절히 변경하여 우선순위를 조정한다. 관련 명령어로는 nice, renice 등이 있다.
cron 을 이용하여 주기적으로 실행하는 작업은 시스템 운영에 필요한 작업과 사용자의 필요에 의한 작업으로 나눌 수 있다.
실행에 필요한 작읍은 root 권한으로 /etc/crontab에 등록하여 주기적으로 수행할 수 있고 사용자는 crontab라는 명령을 수행해서 등록할 수 있다.
crontab 파일은 다음과 같이 총 7개의 필드로 구성되어 있다.
<minute> <hour> <day_of_month> <month> <day_of_week> <user-name> <command>
사용예
10 1 1 1-12/2 * /etc/joon.sh
1월부터 12월까지 2개월마다 1일날 오전 1시 10 분에 실행한다. 실행파일 경로는 /etc/joon.sh
5 4 * * 1,3,5 /etc/log.sh
로그를 점검하는 스크립트인 /etc/log.sh 를 매주 월, 수, 금요일 새벽 4시 5분에 실행
0 12 * * 1-5 /home/posein/work.sh
월요일부터 금요일까지 오후 12시에 /home/posein/work.sh 스크립트를 실행한다.
22 4 ** 0 /root/backup.sh
매주 일요일 4시 22분에 /root/backup.sh 스크립트를 실행
‘*’는 모든(all) 을 의미하고, ‘-‘는 연결된 설정 값을 지정할 때 ‘,’은 연결되지 않은 값을 나열할 때 ‘/’는 연결된 설정 값 범위에서 특정 주기로 나눌 때 사용한다.
crontab
사용자가 주기적인 작업을 등록하기 위해 사용하는 명령으로 실행하면 vi 편접기가 실행된다.
사용법
$ crontab [option] 파일명
주요옵션
-l : crontab 에 설정된 내용을 출력한다.
-e : crontab 의 내용을 작성하거나 수정한다.
-r : crontab 의 내용을 삭제한다.
-u : root 사용자가 특정 사용자의 crontab 파일을 사룰 때 사용한다.
Ctrl+Z (SIGTSTP) : 프로세스를 중단
Emacs
이맥스(Emacs)는 사용자가 많은 부분을 설정할 수 있는 고성능 문서 편집기이다. 특히 프로그래머들이 많이 쓴다. 이맥스는 단순한 편집기를 넘어서는 텍스트 처리를 위한 포괄적인 통합환경, 또는 응용 프로그램 실행 환경이라고 할 수 있다. 이맥스는 매우 오랜 역사를 갖고 있고, 바탕부터 새롭게 짜는 개선을 거쳐, 많은 친족을 낳으며 현재에 이르고 있다. 현재의 GNU 이맥스의 개발은 유닉스 환경(과 VMS)을 주된 대상으로 하고 있지만, 마이크로소프트 윈도 등 다양한 환경에서도 이용할 수 있다.
이맥스는 처음에 리처드 스톨만이 TECO의 매크로로서 개발했다. 이맥스는 Editor MACroS의 약자이다.
나중에 제임스 고슬링이 고슬링 이맥스로 개선하였고, 이 때에 리스프(Mocklisp 이라 부른다) 언어에 의한 환경설정 기능 및 에디터 자신의 기능을 확장할 수 있는 기능이 포함되었다.
현재 주로 사용되는 것은 자유 소프트웨어 재단의 리처드 스톨만이 바닥부터 다시 작성한 GNU 이맥스라 불리는 이맥스다. GNU 이맥스도 이맥스 리스프라고 하는 리스프에 기반을 두는 환경 설정 언어를 가지고 있다.
GNOME :그래픽 사용자 인터페이스로서 완전히 소스 공개 자유 소프트웨어
gedit : GNOME 에 포함된 문서 편집 프로그램
nano
나노(nano)는 유닉스 계열 컴퓨팅 시스템이나 명령 줄 인터페이스를 사용하는 운영 환경을 위한 문서 편집기이다. 파인 전자메일 클라이언트의 일부인 피코 문서 편집기를 가상으로 구현하며 부가 기능도 제공한다. 피코와는 달리 나노는 GNU 일반 공중 사용 허가서(GPL) 라이선스로 배포된다. 1999년 크리스 알레그레타가 자유 소프트웨어로 출시한 나노는 오늘날 GNU 프로젝트의 일부로 되어 있다.
예기치 않은 시스템 다운후 되살리기
– vi -r : 되살릴수 있는 모든 파일의 이름을 보여준다.
– vi -r file : vi에디터를 실행하여 지정한 파일을 되살리는 옵션이다.
Y : 한 줄 전체의 내용을 복사한다 (yy 와 동일)
파일 열기 옵션
vi [filename] : 파일 열기
vi -R [filename] : 파일을 읽기 전용으로 열기
vi + [filename] : 파일을 열고 마지막 행에 커서를 위치
vi +n [filename] : 파일을 열고 n 번째 행에 커서를 위치
vi +/pattern [filename] : 파일을 열고 패턴이 나타나는 행에 커서를 위치
소스 코드 컴파일
리눅스에서 소스 프로그램을 설치하기 위해서는 보통 압축풀기 > 디렉터리 이동 > configure > make > make install 의 5단계를 거친다.
소스 설치의 주요 3단계
configure : 소스 프로그램의 환경 설정을 하는 스크립트이다. tar.gz 등으로 제공되는 것은 대부분 프로그램 소스이기 때문에 사용자의 환경에 맞게 수정이 필요하다. 그러나 사용자들이 대부분 프로그래머가 아니기 때문에 쉽게 수정할 수 없다. configure 는 사용자들이 자신의 환경에 맞도록 손쉽게 제공된는 스크립트이다. 이 스크립트는 대부분 소스 코드의 최상위 디렉터리에 존재한다. 사용자는 이 스크립트를 수정하거나 특별히 설정할 필요는 없다. 이 스크립트는 성공적인 컴파일을 하기 위해 필요한 컴파일러, 라이브러리, 유틸리티, 기타 정보를 시스템에서 찾아낸다. 이 스크립트는 이 정보를 이용해 사용자 시스템에 적당한 소프트웨어 패키지가 생성되도록 Makefile 을 만든다.
make : 소프트웨어를 컴파일하는 유틸리티로 configure 에 의해 변경된 내용을 반영하고 타겟과 의존성 관련 작업을 하고 최종적으로 실행파일을 만든다.
make install : 컴파일된 실행 파일을 지정한 속성으로 지정된 디렉터리에 설치한다.
tar(tape archive)
테이프 관련 장치를 이용하여 백업할 때 사용하는 명령이었으나 현재는 여러 파일들을 하나의 파일로 묶어주는 명령으로 사용한다.
주요 옵션
-c : 지정한 파일이나 디렉터리를 하나로 묶어 새로운 tar 파일을 생성한다.
-x : 생성된 tar 파일을 푼다.
-v : 어떤 명령을 실행할 때 대상이 되고 있는 파일들을 보여준다.
-f 파일명 : 작업 대상이 되는 tar 파일의 이름을 지정한다.
-r : 기존의 tar 파일 뒤에 파일을 추가한다.
-t : tar 파일 안에 묶여 있는 파일의 목록을 출력한다.
-h : 심볼릭 링크가 가리키고 있는 원본 파일을 저정한다.
-p : 파일이 생성되었을 때 권한을 그대로 유지하게 해준다.
apt-get
데비안 리눅스 배포판에서 패키지 관리를 쉽게 하기 위해 제공되는 명령행 기반의 유틸리티로 레드햇 계열의 yum과 유사하다.
[사용법]
# apt-get [option] [command] [패키지명]
[주요 옵션]
-y : 모든 질의에 ‘yes’ 라고 답한다. ( yes, assume-yes)
purge : remove 명령을 수행할 때 환경 설정까지 같이 제거한다.
[command]
update 패키지 목록을 업데이트할 때 사용한다.
upgrade 모든 패키지를 최신 버전으로 업데이트할 때 사용한다. update 후에 사용한다.
install 패키지명 : 패키지를 설치할 때 사용한다. 보통 이 명령을 사용하면 .dev 파일들이 /var/cache/apt/archive 에 생성된다.
remove 패키지명 : 패키지를 삭제한다.
clean : /var/cache/apt/archive 에 생성된 파일을 삭제한다.
compress
전통적으로 유닉스에서 사용했떤 압축 프로그램이지만, 리눅스에서는 압축률이 낮아 현재는 거의 쓰이지 않는다. compress 는 압축명령으로 지정한 파일명 뒤에 .Z 가 붙고, uncompress 는 압축해제 명령이다.
gzip
gzip(GNU zip)은 GNU 에서 만든 압축 프로그램으로 유닉스용 압축 프로그램인 compress 를 대체하기 위해 만들어졌다. gzip 으로 압축하면 파일명 뒤에 .gz 이 붙고, 압축 해제는 gunzip 명령을 사용한다.
bzip2
bzip2 는 버로우즈-휠러 변환이라는 블록 정렬 알고리즘과 허브만 부호화를 사용하여 줄리안 시워드가 만든 압축 프로그램이다. gzip 보다 압축률은 좋지만 압축시간이 더 걸린다. bzip2 로 압축하면 파일명 뒤에 .bz2 가 붙고, 압축 해제는 bunzip2 명령을 사용한다.
xz
xz 는 LZMA2라는 알고리즘을 이용하여 만든 데이터 무손실 압축 프로그램이다. gzip 및 bzip2 와 비교하여 매우 높은 압축을 자랑한다. xz 로 압축하면 파일명 뒤에 .xz 가 붙고, 압축 해제는 unxz 명령을 사용한다.
RPM 제거모드
설치된 패키지를 제거한다. 패키지를 제거 할 때는 -e 옵션을 사용한는데, 다른 패키지에 대한 의존성이 발생할 경우에는 제거되지 않는다. 의존성이 발생한 패키지를 제거하기 위해서는 먼저 의존성 관련 패키지를 제거하거나 nodeps 옵션을 지정해야 한다.
rpm 사용법
rpm 명령의 사용법은 설치 및 갱신, 제거, 질의, 검증, 리빌드모드 등 총 5가지로 나눌 수 있다.
설치 및 갱신모드
새로운 패키지를 설치하거나 갱신할 수 있다.
제거모드
설치된 패키지를 제거한다. 패키지를 제거 할 때는 -e 옵션을 사용한는데, 다른 패키지에 대한 의존성이 발생할 경우에는 제거되지 않는다. 의존성이 발생한 패키지를 제거하기 위해서는 먼저 의존성 관련 패키지를 제거하거나 nodeps 옵션을 지정해야 한다.
질의모드
패키지 관련 정보를 알아내기 위해 -q 옵션을 사용한다. -q 옵션만 사용하면 패키지 설치 유무나 간단한 버전정보만 출력한다. 더욱 정확한 정보출력을 위해서 -i, -a, -l, -d 등의 옵션과 연동해서 쓴다.
-q : 질의시 꼭 사용해야 하는 옵션. 패키지를 찾으면 이름과 버전만 표시
-a : 시스템에 설치된 모든 패키지 목록을 출력한다.
검증모드
검증모드는 rpm 데이터베이스에 저장되어 있는 패키지의 메타데이터 정보를 이용하여 변경된 정보를 찾아내는 모드이다. 검증모드는 -V( verify) 옵션을 사용하고 파일의 크기, 허가권, 소유권, 파일 형식 등에 대한 변경 정보를 출력한다.
yum 주요 command
list 항목 : 전체 패키지에 대한 정보를 출력
info 패키지명 : 패키지에 대한 정보를 출력
check-update : 업데이트가 필요한 패키지를 출력
update 패키지명 : 패키지를 업데이트할 때 사용
install 패키지명 : 패키지를 설치할 때 사용
search 문자열 : 문자열이 포함된 패키지를 찾아준다.
remove 패키지명 : 패키지를 삭제할 때 사용한다.
queryformat : 질의의 결과를 원하는 형태로 출력할 때 쓴다. C언어의 print() 함수의 동작방법과 유사하다.
사용예
$ rpm -qa queryformat “%10{size} %{name}\n”
패키지를 사용자가 지정한 형태로 출력한다.
LPRng
버클리 프린팅 시스템으로 BSD 계열 유닉스에서 사용하기 위해 개발되었다. 라인 프린터 데몬 프로토콜을 사용하여 프린터 스풀링과 네트워크 프린터 서버를 지원한다.
iSCSI(Internet Small Computer System Interface)
컴퓨팅 환경에서 데이터 스토리지 시설을 이어주는 IP 기반의 스토리지 네트워킹 표준이다.
LPRng
버클리 프린팅 시스템으로 BSD 계열 유닉스에서 사용하기 위해 개발되었다. 라인 프린터 데몬 프로토콜을 사용하여 프린터 스풀링과 네트워크 프린터 서버를 지원한다. lpr, lpq, lprm 과 같은 BSD 계열의 명령뿐만 아니라, lp, lpstat, cancel 과 같은 System V 계열 명령어도 지원한다.
SANE(Scanner Access Now Easy)
SANE 은 평판 스캐너, 핸드 스캐너, 비디오 캠 등 이미지 관련 하드웨어를 사용할 수 있도록 해주는 API 이다.
GPL 라이선스로 대부분의 운영체제를 지원한다.
OSS(Open Sound System,)
유닉스 및 유닉스 계열 운영 체제의 사운드를 만들고 캡처하는 인터페이스
44번 문제해설 참조
sane-find-scanner
USB 및 SCSI 스캐너와 관련 장치 파일을 찾아주는 명령
사용법
# sane-find-scanner [option] [장치 파일명]
주요 옵션
-q : 스캐너 장치만 출력한다.
-v : 자세한 정보를 출력한다.
-p : 직렬(Parallel) 포트에 연결된 스캐너만 찾는다.
프린터 관련 명령어
BSD 계열
lpr : 프린터 작업을 요청하는 명령
lpq : 프린터 큐(Queue) 에 있는 작업의 목록을 출력는 명령
lprm : 프린터 큐에 대기중인 작업을 삭제하는 명령
lpc : 라인 프린터 컨트롤 프로그램 으로 프린터나 프린터 큐를 제어할 때 사용.
System V 계열
lp : System V 계열에서 사용하는 인쇄 명령으로 BSD 계열의 lpr 명령과 유사하다.
lpstat : 프린터 큐의 상태를 출력 해주는 명령. 프린터 작업 상태를 확인할 수 있는 명령
cencel : 프린터 작업을 취소하는 명령으로 lpstat를 이용하여 먼저 요청 ID 를 확인해야 한다.
cancel
프린트 작업을 취소하는 명령으로 lpstat 를 이용하여 먼저 요청ID(Request-ID)를 확인해야 한다.
사용법
# cancel 요청-아이디
주요 옵션
-a : 모든 인쇄 작업을 취소한다.
ALAS( Advanced Linux Sound Architercture ) 고급 리눅스 사운드 아키텍쳐
ALSA 는 사운드 카드용 장치 드라이버를 제공하기 위한 리눅스 커널의 요소이자 프레임워크
GPL 및 LGPL 라이선스 기반으로 배포되고 있어서 대부분의 리눅스 배포판에 기본적으로 내장되어 있다.
사운드 관련 명령어
alsactl : ALSA 사운드카드를 제어하는 명령
alsamixer : 커서 라이브러리 기반의 ALSA 사운드카드 오디오 믹서 프로그램
cdparanoia : 오디오 CD에서 음악 파일츨 추출할 때 사용하는 명령