command 사용법을 모를 때 사용
사용법 : man command Ex) man ls, man passwd
man -t passwd > passwd\_manual.ps ⇾ passwd command의 메뉴얼을 passwd\_manual.ps 파일에 저장하여 출력
관련된 명령어들이 함께 나타남 ⇾ Ex) man gzip ⇾ gzip, gunzip, zcat이 나옴 (압축과 관련됨)
Space : 한 페이지 아래로 점프
b : 한 페이지 위로 점프
/word : 해당 단어 찾기 Ex) /serach root
n : 이전 검색 반복하기
g : 맨 위로 가기
q : 종료
h : help
NAME : 이름과 명령어에 대한 한줄의 이유
SYNOPSIS : 가능한 인자
OPTIONS
FILES
ENVIRONMENT : 적절한 환경 변수 EX) shell
1 ⇾ 사용자 명령어 man 1 passwd ⇾ passwd command의 메뉴얼 1 페이지 출력
2 ⇾ 시스템 콜 man 2 passwd ⇾ passwd command의 메뉴얼 2 페이지 출력
3 ⇾ C 표준 라이브러리
4 ⇾ 특별한 파일 (장치 드라이버 파일 같은)
5 ⇾ 파일 형식과 규칙
8 ⇾ 시스템 관리자 명령어와 데몬
특정 명령어나 파일에 대한 한줄의 간략한 설명을 보여줌, man -f 와 동일한 기능 (명령어를 검색할 때 사용)
사용법 : whatis ls, what is passwd, man -f passwd
모든 페이지에서 특정 키워드에 매칭 되는 세션을 검색(파일, 명령어, 아카이브 등등 특정 키워드와 매칭 되는 모든게 출력 됨)
man -k와 동일 (각 세션들의 짧은 설명이 출력 됨)
사용법 : apropos "keyword", apropos open
라인수, 단어수, 바이트수를 출력
Ex) apropos open | wc
특정 명령어에 대한 모든 메뉴얼을 보여줌
사용법 : man -a name Ex) man -a ls
전체 메뉴얼에서 텍스트 내용을 통해 검색
사용법 : man -K Ex) man -k open
명령어에 대한 짧은 설명을 보여줌
사용법 : help cd, help ls
메뉴얼 페이지가 저장된 위치 출력
사용법 : man -aw command Ex) man -aw passwd, man -aw gzip
GNU의 문서 시스템
사용법 : info ls
패키지 : 소프트웨어와 메타데이터의 번들
➜ 소프트웨어 풀 네임
➜ 소프트웨어 설명
➜ 버젼 넘버
➜ 체크섬 (무결성 확인을 위한)
➜ 의존성
파일 아카이브 : 많은 파일들을 한개의 아카이브 파일로 바꾸는 것, 파일의 이동 저장을 더 쉽게 하기 위해 사용
Ex) tar
메타 데이터 : 데이터에 대한 데이터, 구조화된 정보를 분석, 분류하고 부가적인 정보를 추가하기 위해 그 데이터 뒤에 함께 따라가는 정보
Ex) 파일 생성 날짜, 시간, 파일 생성의 지리적 위치, 작성자, 파일 수정 일자, 파일 크기 등
의존성 : 한 패키지가 정상적으로 작동하기 위해 다른 패키지나 라이브러리 패키지 등이 필요한 경우
컴파일과 링킹 프로세스는 모든 의존성에 대한 설명을 필요로 함.
이때 망가진, 관계없는, 불완전한, 호환이 되지않는 의존성들은 프로그램 오류나 버그를 발생시킨다.
길게 여러개의 의존선이 연결된 체인 의존성
의존성 사이의 충돌
원형 의존성
다음 과정의 자동화 도구 모음
➜ 패키지 설치
➜ 패키지 업그레이드
➜ 패키지 구성
➜ 패키지 제거
Base : dpkg(package manager for Debian)
Package : .deb
Tool : apt
dpkg -l : 설치된 모든 패키지들을 나열해줌
dpkg -L package\_name : 패키지에 의해 설치된 파일들을 나열해줌
dpkg -S file\_path : 해당 경로내의 패키지를 검색해줌
dpkg -r package\_name : 패키지를 제거해줌
apt-get install package\_name : 패키지 설치
apt-get remove package\_name : 패키지 제거, --purge option : 패키지 구성파일들도 함께 제거
apt-get upgrade : 설치된 패키지를 업그레이드
apt-get update : 설치 가능한 리스트(정보)를 업데이트, install시 특정 패키지를 설치할 수 없을 때, 최신 패키지 리스트를 업데이트 할 때 사용
⇾ apt-get command log는 /var/log/dpkg.log 파일에 저장됨
if) apt-get install이 lock이 걸려서 안될 때
1) sudo kill all apt-get
2) ⇾ 1번 방법으로 안될 때
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock\*
sudo dpkg --configure -a
sudo apt update
repository : 패키지 저장소, 암호화된 GPG keys를 통해 신원을 인증한다.
우분트 ⇾ 패키지 저장소 사이트 중 허락된 사이트들을 특정 파일에 저장해 둠 ⇾ /etc/apt/sources.list
Main : 표준 지원 무료 오픈 소스 소프트웨어
Restricted : 장치들을 위한 독점 드라이버
Universe : 커뮤니티에서 유지되어지는 무료 오픈 소스 프로그램
Multiverse : 저작권 또는 법적으로 제한되어지는 소프트웨어
관리목적으로 많은 이벤트들의 로그 기록을 남겨둠
이벤트 ⇾ 심각성과 서비스에 근거하여 선택 됨
메세지들은 시스템 콘솔의 파일로 갈수있고 중앙화된 시스템 로그 서버로 갈수도 있다.
Form : facility.level destination
facility : 메세지 창조자 (auth, authpriv, cron, daemon, kern, mail .......)
level : 심각성에 따른 레벨 (가장 낮음 ⇾ 가장 높음)
debug, info ,notice, warning, err, crit, alert, emerg
destination : 메세지 받는 곳
위치 : /var/log
도구 : less, grep, tail, vi 등등
rsyslog의 구성요소를 변경한다면, rsyslog를 다시 읽어오도록 해야함
# kill -HUP /usr/sbin/rsyslogd
또는
# service rsyslog start
# ➜ root user
문제 : 로그파일은 디스크 공간이 바닥날 때 까지 계속해서 저장되서 늘어나게 된다.
해결방법 : 로그 로테이션(로그 파일들은 주기적으로 이름이 변경되고 궁극적으로 삭제되어 진다.)
logrotate ⇾ 로테이션을 수행하는 명령어
logrotate 구성 ⇾ /etc/logrotate.conf
cd etc
vi logrotate.conf
로그 파일 로테이트 기간 ⇾ daily, weekly, monthly, yearly
로그파일이 백로그로 유지되는 기간(주 단위) ⇾ rotate number Ex) rotate 7 ⇾ 7주 동안 유지 됨
로그파일 보관 방법 ⇾ compress(default option), noncompress, delaycompress