Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

우당탕탕 개발일지

리눅스 마스터 2급 - 1과목 본문

기타/자격증

리눅스 마스터 2급 - 1과목

YUDENG 2023. 12. 10. 03:10

리눅스 운영 및 관리.pdf
0.77MB

권한 관리

 

umask

 

  • 파일이나 디렉터리 생성 시 부여되는 기본 허가권 값을 지정하는 명령
  • 기본값으로 설정한 umask 값의 보수와 AND 연산을 통해 지정
  • 파일 : 666 (rw-rw-rw-)
  • 디렉터리 : 777 (rwxrwxrwx)

<문제>

 

파일이기 때문에 666-022 = 644

=> -rw- r-- r-- 의 형식으로 6 4 4 를 표현

 

su (switch user)

 

  • 다른 사용자로 전환하는 명령어
  • 참조 파일 - /bin/su

passwd

 

  • 사용자 비밀번호 변경 명령어

* 참조 파일

- /etc/passwd(명령어 실행 파일 위치) - 시스템에 등록된 사용자의 정보들이 담겨있는 파일

- /etc/shadow - 암호화된 패스워드와 패스워드 설정 정책이 기재되어 있는 파일

- 비밀번호를 설정하면 /etc/passwd에 적히고 그 적힌 비밀번호는 /etc/shadow로 이동

필드 1 사용자명 필드 5 사용자 이름
필드 2 패스워드 필드 6 사용자 홈 디렉터리
필드 3 사용자 UID 필드 7 사용자 로그인 쉘
필드 4 사용자 GID    

* /dev/null - 데이터를 버리는 데 사용

 

소유권 / 허가권

 

  • 리눅스는 다중 사용자가 동시 접속하여 사용하는 다중 사용자 시스템
  • 모든 파일과 디렉터리에는 소유권 허가권 이라는 속성이 존재

허가권 - chmod

 

- : 해당 파일의 종류

 

  • Directory, Regular file, Symbolic link

rw- : 소유자 권한 / r-- : 그룹 권한 / r-- : 그외 유저 권한

 

  • ‘r’ - 읽기 권한
  • ‘w’ - 쓰기 권한**(디렉터리 - 생성 또는 삭제)**
  • ‘x’ - 실행 권한

특수 권한

 

  • Set-UID - 해당 파일의 소유자 권한으로 인식 소유자 권한 부분의 x자리에 d로 표시 (ex) rw-r--s--
  • Set-GID - 해당 파일을 소유한 그룹 권한으로 인식 그룹 소유권 부분의 x자리에 s로 표시
  • 권한이 설정된 디렉터리에 사용자들이 파일이나 디렉터리를 생성하면 사용자가 속한 그룹 상관없이 디렉터리 소유 그룹으로 만들어짐
  • Sticky-Bit - 디렉터리에 설정되는 특수 권한 other 계층 권한 부분의 x자리가 t로 표시
  • 숫자 모드의 경우 Set-UID는 4000, Set-GID는 2000, Sticky-Bit은 1000

* 특수 권한 설정 파일

- /bin/su

- /bin/mount

- /usr/bin/passwd

 

chmod 명령어

 

  • 숫자 형식 (2진수 → 10진수)
    • 3개씩 잘라서 2진수로 표시한 뒤, 10진수로 합치는 방식
    • rw- : 110 → 6
    • r-- : 100 → 4
  • 문자 모드 (Symbolic method)
    • 사용자, 권한, 설정
    • 사용자 u(user), g(group), o(other)
    • 권한 r(read), w(write), x(execute)
    • 명령부호 +(추가), -(제거), =(특정 권한만)
    • (EX) chmod o-x : o(other)에 대해서 x(Execute) 권한을 -(제거) 하라

소유권 - chown

 

  • chown [옵션] [사용자명] [그룹명] [파일/디렉터리명]
-R --recursive 하위 디렉터리를 포함하여 디렉터리 내부 모든 파일 접근 권한 변경
-C --changes 변경된 정보 출력
-f --silent
--quiet
중요한 오류 메시지가 아니면 출력하지 않음
-v --verbose 명령 진행 결과에 대한 정보를 자세히 출력

* 소유권 변경시 참조 파일 - /etc/passwd

 

chgrp (change group)

  • 파일 또는 디렉토리의 그룹 소유자 변경
  • chgrp [옵션] [그룹명] [파일/디렉터리명]
-c --changes 변경 사항이 있을 때만 메시지 출력
-h   원본 파일의 소유권은 유지 / 심볼릭링크 파일의 그룹 소유권만 변경
-R --recursive 지정된 디렉토리의 모든 파일 지정한 그룹으로 변경

 

디스크

 

mkfs

  • 파티션에 파일 시스템 생성
-t 파일 시스템의 종류 지정

 

mke2fs

 

  • mkfs 확장 명령어
  • ext3 - 저널링 파일 시스템
-j 저널링 파일 시스템인 ext3
-t 파일 시스템 유형 지정
-b 블록 사이즈 지정

 

fdisk

  • 디스크 파티션을 확인하고 추가/삭제하는 명령
t 파티션의 속성 변경
d 파티션 삭제
n 파티션 추가
p 디스크 정보 출력

 

 

fsck

  • 손상된 파일 시스템을 검사하고 수리
  • 디렉토리 - /lost+found
  • 파일 시스템의 일관성을 검사하고 복구 작업을 수행하는 동안 발견되는 손상된 파일이나 디렉토리 저장

* xfs 파일은 xfs_repair로 점검 및 복구

 

du

  • 디렉터리나 사용자별 디스크 사용량 확인
-h 파일 및 디렉토리 사용량을 알기 쉬운 단위로 출력

 

df

  • 파티션 단위 디스크 사용량
-h 디스크 전체 사용량을 알기 쉬운 단위로 출력
-T 파일 시스템 종류 출력

 

blkid

 

  • 블록 장치(하드 디스크, SSD, 파티션)에 대한 정보를 표시
  • 장치명 : UUID 파일시스템 타입 출력

 

mount

 

  • 보조기억장치나 파일 시스템 연결
  • mount 명령만 입력한 경우 현재 마운트 된 장치나 디스크 확인 가능

* 참조 파일 - /bin/mount

 

-a /etc/fstab 파일에 명시된 파일시스템 마운트
-t 파일 시스템 지정
-o 마운트 세부 옵션 설정

 

umount

마운트된 /backup 영역을 마운트 해제하는 과정

 

eject

 

  • CD-ROM이나 DVD-ROM 등 이동식 보조 기억장치의 미디어를 꺼낼 때 사용
  • 명령어 수행시 umount 명령어 자동 수행

* /etc/inittab - init 데몬이 정보를 읽고 프로세스 시작

* /etc/mtab - 현재 마운트 된 정보에 대해 정의

* /etc/fstab - 부팅 시 마운트 정보에 대해 정의

 

[ 장치명 ] [ 마운트 포인트 ] [ 파일 시스템 종류 ] [ 마운트 옵션 ] [ Dump 값 ] [ 무결성 검사 우선순위 값 ]

 

RAID

 

RAID (Redundant Array of Inexpensive Disks)

  • 여러 개의 디스크를 배열하여 속도의 증대, 안정성의 증대, 효율성, 가용성의 증대를 하는데 쓰이는 기술

RAID 0

 

  • Striping = 데이터 분산 저장
  • Concatenate 방식 - 두개 이상의 디스크에 데이터를 순차적으로 쓰는 방법
  • Stripe 방식 - 두개 이상의 디스크에 데이터를 랜덤하게 쓰는 방법

RAID 1

 

  • Mirroring = 데이터 복사 저장
  • Mirror 볼륨 내의 패리티를 사용하지 않고 디스크에 같은 데이터를 중복 기록하여 데이터를 보존
  • 최소 2개의 디스크 필요

RAID 5

 

  • 1개의 패리티 사용 / 최소 3개의 디스크 필요
  • 패리티 정보를 이용해서 하나의 디스크가 고장이 발생한 경우에도 데이터 사용이 가능한 구성 방식

RAID 6

 

  • 2개의 패리티 사용 / 최소 4개의 디스크 필요

 

LVM (Logical Volume Manager)

  • 여러 개의 HDD의 용량을 합쳐서 하나의 파일 시스템으로 구성
  • 서버 운영에 있어서 작은 용량의 HDD를 하나로 합쳐 대용량의 스토리지를 구성할 때 사용
PV Pysical Volume 디스크를 LVM에서 사용할 수 있게 변환하는 작업
PE Physical Extent PV에서 나누어 사용하는 블록. 4MB 단위
VG Volume Group PV가 모여 만들어진 그룹
LV Logical Volume VG에서 사용자가 필요한 만큼 할당돼서 만들어지는 공간
LE Logical Extent LV가 나누어진 일정한 크기의 블록

 

디스크 쿼터

 

  • 리눅스는 기본적으로 사용자의 용량을 제한하지 않는다.
  • 사용자가 많은 서버의 경우 사용자의 디스크 사용량 제한이 필요

제한하는 것

  • 사용자 및 그룹의 디스크 사용량
  • 생성할 수 있는 파일 개수(l-node 개수)

설정 순서

quotacheck → edquota → quotaon → requota

 

quotacheck 쿼터 기록 파일을 가장 최근의 상태로 업데이트
edquota • 사용자나 그룹에 쿼터를 설정
• 실행시키면 vi 편집기 실행
quotaon/quotaoff 쿼터 설정을 활성화/비활성화
repquota 파일 시스템 단위로 쿼터 설정 정보를 출력
setquota 쿼터를 설정

 

quota 파일 용량 개수 설정
usrquota 사용자 할당량 사용
uquota xfs 파일에 적용

 

* xfs가 들어가면 CentOs 관련

 

프로세스
  • 리눅스가 부팅을 시작하면 커널이 최초의 프로세스인 init 프로세스를 발생시키는데, 할당되는 PID는 1이다.
  • CentOS 7 리눅스에서는 최초 프로세스가 init 대신 systemd가 사용된다.
  • 프로세스는 크게 사용자의 입력에 관계없이 실행되는 Background 프로세스와 입력 후 수행종료까지 기다리는 Foreground 프로세스가 있다.

ps (process status)

 

  • 동작중인 프로세스의 상태 출력
-a 현재 실행중인 모든 프로세스 출력
-u 사용자 이름과 프로세스 시작 시간 출력
-x 접속된 터미널뿐만 아니라 사용되고 있는 모든 프로세스 출력

* ps aux - 현재 시스템 사용자가 사용중인 모든 프로세스 정보 확인

 

fork

새로운 프로세스를 위해 메모리를 할당받아 복사본 형태의 프로세스를 실행

 

exec

하나의 프로세스가 새로운 프로세스를 생성할 때 원래의 프로세스를 새로운 프로세스로 대체하는 형태로 호출한 프로세스의 메모리에 새로운 프로세스의 코드를 덮어씌워 버린다.

 

jobs

백그라운드로 실행시킨 프로세스를 확인하는 명령

 

Foreground (fg)

 

  • 셸에서 명령을 실행하면 해당 프로세스가 종료될 때까지 기다려야함
  • 거의 모든 명령어는 foreground로 실행
  • 백그라운드 작업으로 실행하고자 할때는 명령어 뒤에 ‘&’를 붙여줌

Background (bg)

 

  • 다중 작업을 수행할 때 유용
  • 명령어 뒤에 &문자를 붙이게 될 경우 백그라운드로 실행
ctrl + c 작업 취소
ctrl + d 작업 정상 종료
ctrl + z 작업 일시 정지

 

실행중인 프로세스를 백그라운드 모드로 전환하기
- jobs를 이용하여 현재 앞쪽의 번호 확인 후 bg명령어 %[번호]를 이용하여 백그라운드 전환
- [ctrl]+[z]로 포그라운드 프로세스는 정지 시키고 백그라운드 프로세스로 전환해야함

 

시그널

 

  • 프로세스 간 메시지를 보내는 통신에 이용
1 SIGHUP 터미널과 연결이 끊겼을 때 발생
2 SIGINT 키보드로부터 오는 인터럽트 시그널
3 SIGQUIT 프로세스 종료
9 SIGKILL 프로세스 무조건 종료 (강제)
15 SIGTERM • 프로세서가 어떻게 동작 할건지에 대한 명령 신호를 보내는 명령
• ‘kill’ 시스템 호출 시 옵션 넣지 않으면 15번 시그널 사용
18 SIGCONT STOP 시그널 이후 계속 진행할 때 사용
20 SIGTSTP 프로세스 중단 (종료 상태 X)

 

kill

 

  • 프로세스를 종료시킨다.
-l 시그널 종류 나열
-s [시그널 번호] 전달할 시그널 종류 지정

 

kill -9 [PID] -9 : 강제 종료 옵션
killall [프로세스명] 프로세스명으로 프로세스 종료

 

free

 

  • 메모리 사용량 확인하는 명령

top

 

  • 시스템 상태를 실시간으로 모니터링하거나 프로세스 관리
  • 실시간으로 CPU 사용량을 확인할 때 이용하는 명령
k PID를 입력하여 종료신호를 보냄
m 메모리 관련 항목을 on/off
w 바꾼 설정을 저장

 

우선순위

ps -l 우선순위 확인 명령
PRI 번호 • 운영체제가 참고하는 항목으로 사용자가 인위적으로 조작 x
• 낮은 값일수록 우선순위가 높음
NI 번호 • 관리자와 사용자가 조작할 수 있는 우선순위 값
• 낮은 값일수록 우선순위가 높음
• -20부터 19까지 설정 가능

 

nice [-n 조정수치][프로세스명] 새로운 프로세스를 만들어 NI값 적용
renice [NI값][PID] 기존 프로세스에 NI값 변경

* nice는 프로세스 명을 입력해야되고, renice는 PID 값을 입력해야 한다.

 

스케줄링

 

  • 특정 시간에 특정 작업을 하는 데몬을 크론(Cron)이라 한다.
  • 크론이 원하는 시간에 원하는 명령 또는 프로그램을 수행하도록 명령 리스트를 만드는 것을 크론탭(Crontab) 작업이라고 한다.

cron

패키지 이름 - 버전 - 릴리스번호 - 시스템.압축확장자

 

시스템 운영에 필요한 작업

 

  • root 권한으로 /etc/crontab에 등록해서 주기적으로 수행 가능

사용자의 필요에 의한 작업

 

  • 사용자는 crontab 명령을 수행해서 등록 가능
  • 설정된 작업은 ‘/var/spool/cron/사용자 아이디’ 파일로 저장

* crontab - 7개의 필드로 구성

-e 편집
-l 작업 내용 확인
-r 전체 작업 삭제

 

 

crontab 주기

 

  • *** * * * * {실행 명령}**
  • 분 시 일 월 요일 {실행 명령}
  • 요일 : 0과 7은 일요일이며 1부터 월요일
0 * * * * 매시 정각에 실행
25,55 * * * * 매시 25분, 55분에 실행
*/15 * * * * 15분마다 실행

 

에디터

.exrc

 

  • vi 편집기의 환경 설정을 지속적으로 사용하기 위한 설정 파일

* 문자 치환 - :% s/[변경 대상]/[변경 문자]/g

* 정규표현식 - 특정 규칙을 가진 문자열 집합을 표현하기 위한 형식

: 현재줄    
^ 줄의 시작 $ grep ‘^linux’ linux로 시작하는 행
$ 줄의 끝 $ grep ‘linux$’ linux로 끝나는 행
% 첫줄부터 끝줄까지    
\ < 단어의 시작 $ grep ‘\<linux’ linux로 시작하는 단어를 포함하는 행
\ > 단어의 끝 $ grep ‘linux \>’ linux로 끝나는 단어를 포함하는 행

 

-c 특정 명령어 실행
-r 이전에 편집 중이던 파일이 중단되거나 충돌로 인해 손실된 경우 복구
R 읽기 전용 모드 (수정 불가능)
+ 파일을 열면서 커서를 특정 위치에 놓을 때 사용

 

-a 커서 뒤부터 입력
-i 현재 문자 앞에 입력
-o 현재 커서 다음 줄로 입력 모드
-e 커서가 위치한 단어의 맨 끝 부분으로 이동
-s 커서 위치에 한 문자 지우고 입력 모드
-x 커서에 위치한 문자 삭제
-u 되돌리기(undo)

 

-h 커서를 한칸 왼쪽으로 이동하는 명령
-j 커서를 한줄 아래로 이동하는 명령
-k 커서를 한줄 위로 이동하는 명령
-l 커서를 한칸 오른쪽으로 이동하는 명령

 

set ai 자동 들여쓰기 옵션
• 윗 라인에 맞춰 같이 자동으로 들여쓰기
set ic 검색 패턴 사용 시 대소문자 구별 X
set sm 소스 코딩 작성 중 괄호를 닫을 때 어디에 있는 열기 괄호와 연관 되어 있는지 표시
set list 눈에 보이지 않는 특수문자 표시

 

set nu (= set number) 라인번호 출력
set nonu (= set nonumber) 라인번호 해제

* vi 파일명 - 파일의 마지막 행으로 이동

* vi -r 파일명 - 파일 복구 후 잘못된 동작 이후부터

 

vi

 

  • 빌 조이가 만든 편집기

pico

 

  • 아보일 카사르가 만든 편집기
  • 편집 시에 다양한 색상을 이용해서 가시성을 높였으며, 패턴 검색 시에 하이라이트 기능을 제공하여 빠른 검색이 가능
Ctrl + a 커서가 위치한 줄의 맨 앞으로 이동
Ctrl + e 커서가 위치한 줄의 맨 뒤로 이동
Ctrl + i 화면 갱신
Ctrl + k 현재 줄 삭제
Ctrl + o 편집중인 문서 저장

 

nano

 

  • GNU 프로젝트에서 만들어진 pico 복제 버전 편집기
  • GPL 라이선스
  • 터미널 기반 간단하고 사용하기 쉬운 에디터
  • 초기 사용자나 간단한 텍스트 편집이 필요한 경우 적합
Ctrl + a 현재 행의 맨 앞으로 이동
Ctrl + e 현재 행의 마지막으로 이동
Ctrl + c 현재 커서 위치 표시
Ctrl + x nano 종료

 

gedit

 

  • GNOME 데스크톱 환경에서 사용되는 GUI 기반 에디터
  • 편리한 사용자 인터페이스와 여러 플러그인을 지원

emacs

 

  • 리처드 스톨만이 제작
  • 매크로 기능이 있는 텍스트 교정 및 편집기

vi 편집기 개발 순서

vi → pico → nano

 

패키지 관리

 

  • 일반적으로 소스 패키지 설치는 configure, make, make install 3단계로 이루어진다.

configure

 

  • 설치 전에 여러가지 옵션을 지정해주고 컴파일 환경을 검사하는 단계
  • 빌드 환경을 만들어주는 스크립트
  • 작업 이후 makefile이 생성됨

configure 옵션

--help 환경 설정과 관련된 옵션 정보 확인
--prefix 설치될 위치를 지정
  • make : 미리 정해진 스크립트를 따라 소스 코드 컴파일 단계
  • make install : 설치 마무리 단계
  • cmake : 소스파일 내부까지 들여다보고 분석해서 의존성 정보 스스로 파악
make PHP, SAMBA, Apache HTTP
cmake MySQL

 

배포판 기본 패키지 관리 기법 온라인 패키지 관리 기법
레드햇 계열 RPM YUM
데비안 계열 Dpkg apt-get
수세 계열 YaST zipper

 

 

RPM (RedHat Package Manager)

 

  • 레드햇 계열의 리눅스 배포판에서 사용하는 패키지 설치 관리 도구
  • 단점 : 패키지 의존성

--nodeps 의존성 관계를 무시하고 설치
--force 기존에 설치된 패키지와 관계없이 강제로 설치

 

-U • 기존 패키지 업그레이드
• 설치된 패키지가 존재하지 않으면 새로운 버전 설치
-V 파일이 침입자에 의해 권한 획득이나 변조되었는지 검사
-F 기존 패키지가 있는 경우에만 설치

 

-e 패키지 삭제
-e nodesps 의존성 무시하고 제거
-q 패키지 정보 표시
-qa 시스템에 설치된 모든 패키지 목록 출력
-qf 파일이 속한 패키지 출력
-ql • 설치된 패키지의 위치 출력
• 패키지에서 설치한 모든 파일 정보 출력
-qi • 설치된 패키지 명 출력
• 패키지 이름과 버전만 표시하여 정보 출력

 

yum (Yellodog Update Modified)

 

  • 레드햇 계열의 리눅스 배포판에서 사용하는 프로그램 설치 관리 도구
  • repository에 관련 페키지들을 모아두고, 네트워크를 통해서 의존성 검사하여 설치 및 업데이트 등을 수행
  • 장점 : 패키지 간의 의존성을 신경쓰지 않고 설치 가능
install 패키지 설치
remove 패키지 삭제
history 작업 이력 출력
list 전체 패키지에 대한 정보 출력

 

apt-get

 

  • 데비안 계열 리눅스 시스템에서 사용하는 패키지 설치 관리 도구

* 참조 파일 - /etc/apt/sources.list

 

압축

 

  • tar는 파일을 묶는 역할을 하고 gz는 압축하는 역할을 한다.
  • 압축 했을 때 파일 크기가 클 수록 압축률이 낮음
-r append 파일 내의 기록에 다른 파일 내용을 추가로 묶음
-c create 새 파일을 만듦
-x extract 기록에서 파일을 발췌
-t list 압축된 파일 안에 있는 구성 파일 출력

 

tar

 

tar 압축 방법 (create)  -  tar -cvf [새로운 파일명][압축할 파일명]

tar 압축파일 내용 확인 방법 (list)  -  tar -tvf [tar 파일명]

tar 압축파일 해제 방법 (extract)  -  tar -xvf [tar 파일명]

* rvf(replace) - 이미 생성된 아카이브에 파일 추가하는 기능

 

* 압축 효율 - Z(compress) << .gz(gzip) << .bz2(bzip2) << xz

compress -Z .Z
gzip -z .gz
bzip2 -j .bz2
xz -J xz

 

gzip

 

  • 파일 압축 및 압축 해제
-d --decompre 압축 파일 해제
-c --stdout 표준 출력으로 결과 출력
-l   파일명 크기, 압축률 정보 출력
-f --force 강제 압축
-r --recursive 디렉토리 파일도 압축

 

프로토콜

 

vsftpd

 

  • FTP의 보안을 강조한 파일 전송 프로토콜

smb (Server Message Block)

 

  • 파일 및 프린터 공유 프로토콜
환경 설정

 

환경변수

 

  • 환경 변수는 시스템 내에 저장된 키 = 값 세트이다.
  • $ → 뒤에 오는 표시가 변수라는 것을 정의
set 셸에서 선언된 셸 변수 전체 조회
env 환경 변수를 보여주거나 설정 혹은 삭제
export 셸 변수를 환경변수로 저장
chsh 사용 가능한 셸 목록 확인

 

DISPLAY x 응용 프로그램이 화면 출력을 위해 접속할 때 x 서버
SHELL 사용자의 로그인 셸 기록
PS1 1차 셸 prompt 선언시 사용 변수
PS2 2차 셸 prompt 선언시 사용 변수

 

chsh (=change shell)

 

  • 일반 사용자 환경에서 셸 변경시 사용
-s --shell 지정하는 쉘을 앞으로 사용한 로그인 셸로 변경
-l --list-shells /etc/shells 파일 안에 지정된 변경이 가능한 셸 목록 출력
-v --version 버전 정보 출력

 

!! 마지막에 사용한 명령 실행
!n 히스토리 명령 목록 번호 중에서 n번에 해당하는 명령 실행
history n 최근에 실행한 마지막 n개 명령어 목록 출력

 

HISTSIZE 히스토리 스택의 개수 저장
HISTFILESIZE 히스토리 저장 파일 최대 크기

 

데몬
  • 데몬은 서버 프로세스로 시스템이 살아 있는 동안 항상 실행되는 백그라운드 프로세스 상태로 존재

ineted

 

  • 관련 프로세스가 메모리에 항상 상주하는 것이 아니라, 클라언트 서비스 요청이 들어오면 관련 프로세스를 실행하고 서비스가 종료되면 관련 프로세스도 종료
  • 효율적인 서버자원의 활용 측면에서 공통적인 부분을 처리하도록 클라이언트 요청을 슈퍼 데몬이 모두 처리
  • 100개의 작업이 있더라도 작업을 처리하는 1개의 데몬만 존재
  • 커널 2.4버전부터 xinetd 대체

standalone

 

  • 데몬이 백그라운드에서 항상 실행되고 있다가 클라이언트로부터 해당 서비스의 요청이 발생하면 즉각 처리

 

  • 셸은 커널과 사용자 사이를 이어주는 매개체 역할을 하는 프로그램

로그인 셸

/bin/sh 일반계정 생성 시 할당
/bin/bash 사용자 계정에 로그인 했을 때 기본적으로 사용되는 쉘
/bin/false shell, ssh 접근 및 홈디렉토리 제공 등 모든 것이 제한
/sbin/nologin • 로그인이 안되는 계정
• 보안상의 이유로 nologin 계정 사용
• shell, ssh 접근 및 홈디렉토리는 제공하지 않음

 

셸 발전 순서

sh (Bourne Shell) → csh (C Shell) → tcsh (tee-see-Shell) → zsh (Z Shell) → bash (Bourne-again shell)

 

sh

 

  • 스티브 본이 개발한 최초의 셸
  • 대부분의 리눅스에 기본적으로 설치가 되어있다.

csh

 

  • 빌 조이가 개발한 셸
  • C언어를 기반으로 만들어졌다.

tcsh

 

  • 카네리 멜런 대학교 학생들이 개발한 셸
  • 켄 그리어가 테넥스(TENEX)라는 운영체제에 반영한 C Shell에서 명령 행 완성과 명령 행 편집 기능을 추가

zsh

 

  • 폴 포스타드가 첫 버전 작성
  • 많은 개선 사항들이 갖추어진 확장형 Bourne Shell
  • Mac OS의 기본 셸로 채택

bash

 

  • GNU 프로젝트를 위해 브라이언 폭스가 작성한 현재 가장 많이 쓰이는 유닉스 셸
  • GNU 운영체제와 리눅스 등 기본 셸로 채택

dash

 

  • POSIX와 호환되는 /bin/sh를 가능한 작게 구현
  • 빠른 작업 수행이 가능
  • history 명령 지원

ksh (Kornshell)

  • 1980년대 초에 벨 연구소의 데이비드 콘이 개발한 유닉스 셸

* /etc/passwd - 사용자의 로그인 셸 정보 확인

* /etc/shells - 사용 가능한 셸 목록

* /etc/profile - 시스템 환경변수와 시작관련 프로그램

~/.bashrc - 개인 사용자가 정의하는 alias, function이 있는 파일

~/.bash_logout - 사용자가 로그아웃하기 바로 직전에 실행하는 프로그램에 관한 시스템 설정 파일

~/.bash_profile - 개인 사용자의 시작 프로그램 설정, 환경 변수 설정과 관련있는 파일

 

파일

 

ext (Extended File System)

 

  • 리눅스 운영 체제를 목표로 만들어진 첫 번째 파일 시스템

vfat (Virtual File Allocation Table)

 

  • Microsoft가 개발한 파일 시스템
  • windows 운영체제와 호환성을 유지하면서 다양한 기기에서 사용

ntfs (New Technology File System)

 

  • Microsoft vfat을 대체
  • 고급 데이터 구조 사용으로 인한 성능 개선
  • 추가 확장 기능을 더한 디스크 공간 활용

 

장치

 

ALSA (Advanced Linux Sound Architecture)

 

  • 사운드 카드용 장치 드라이버를 위한 API를 제공하는 소프트웨어 프레임워크
  • 리눅스에서 Audio 장치를 접근하는 방법을 구조화
  • GPL 및 LGPL 라이선스 기반으로 배포

* alsactl - 사운드 카드를 제어하는 명령

 

OSS (Open Sound System)

 

  • 유닉스 및 유닉스 계열 운영 체제의 사운드를 만들고 캡쳐하는 인터페이스
  • 표준 유닉스 장치시스템 콜(POSIX)에 기반

* 프린터

[ LPRng → CUPS ]

리눅스에서 프린터를 지원해주는 인쇄시스템으로 초기에는 LPRng를 기본으로 사용했으나 최근 배포판에서는 CUPS를 사용하고 있다.

 

LPRng

 

  • 버클리 프린팅 시스템
  • BSD 계열 유닉스에서 사용하기 위해 개발
  • BSD, SystemV 계열 모두 지원

* 설정 디렉토리 - /etc/printcap

 

CUPS

 

  • 유닉스 계열의 프린팅 시스템
  • 애플이 오픈소스 프린팅 시스템으로 개발
  • 웹 서버의 Common Log Format 형태의 로그 파일을 제공
  • HTTP 기반의 IPP를 사용하고, SMB 프로토콜도 부분적으로 지원
  • 프린트 데몬의 환경 설정 파일의 기본 문법이 아파치의 httpd.conf와 유사

* 설정 명령 - lpadmin

* 설정 디렉토리 - /etc/cups

 

  • lPP (Internet Printing Protocol) - 인터넷상에서 원격으로 인쇄하기 위해 사용되는 프로토콜

BSD 계열 명령어

 

lpr - 프린터 작업 요청

-# 인쇄매수 지정
-r 출력 완료 후 파일 삭제
-P 작업할 프린터 지정
-F 파일 포맷 설정

 

lprm - 프린터 큐 목록 대기중인 작업 삭제 및 취소

- 모든 작업 취소
-P 프린터 지정
-U 특정 사용자의 작업 취소

 

lpq - 프린트 큐에 있는 작업 내역 확인

-l 자세히 출력
-P 특정 프린터 지정 후 출력
-a 모든 프린터 작업 출력

 

lpc - 프린터 큐 작업 내역 제어

cancel - Ipstat를 이용하여 request ID를 확인 후 프린트 작업 취소

 

* 프린터 설정 명령

 

  • system-config-printer - x-windows
  • printconf / printtool - Red Hat Linux & Fedora

System V 계열 명령어

lp 프린트 인쇄 명령
lpstat 프린트 큐 상태 출력
cancel 프린트 작업 취소

 

* 스캐너

SANE (Scanner Access Now Easy)

 

  • 리눅스 및 유닉스 계열
  • 평판 스캐너 등 이미지 관련 하드웨어를 사용할 수 있도록 해주는 API
  • GPL 라이선스로 공개되어 있다.
  • 스캐너 관련 드라이버와 사용자 관련 명령이 있는 2개의 패키지로 구분되어 배포

XSANE (X-based interface for the SANE)

 

  • SANE을 기초로 발전시킨 프로그램
  • GTK+ 라이브러리로 만들어짐

* 스캐너 명령어

xcam - GUI 기반으로 이미지를 스캔 해주는 도구

scanadf - 자동 문서 공급 장치(ADF)가 장착된 스캐너에서 다수의 사진을 스캔할 때 사용하는 명령

scane-find-scanner - USB 혹은 SCSI 스캐너와 관련 장치 파일을 찾아주는 명령어

 

PCI (Peripheral Component Interconnect)

 

  • 컴퓨터 시스템에 추가 하드웨어 구성 요소를 추가하기 위한 인터페이스

* lspci - PCI 관련 장치의 목록 확인

728x90

'기타 > 자격증' 카테고리의 다른 글

SAA - 03 키워드 정리  (1) 2024.02.06
리눅스 마스터 2급 - 2과목  (0) 2023.12.11
SQLD 계층형 질의와 셀프 조인  (1) 2023.11.13
SQLD 표준 조인  (0) 2023.11.13