IT

[Linux] 리눅스마스터 2급 정리 #1

data-cloud 2025. 1. 21. 21:03
반응형


💻 소유권 관련 명령어

  • chmod
    - 파일과 디렉토리의 권한을 기호로 설정하는 방법
    - 사용자 지정 : u(사용자), g(그룹), o(다른 사용자)
    - 권한 내용 : r(read), w(write), x(execute)
    - sticky bit 대소문자 차이 : 권한이 있을 때 설정하면 t, 권한이 없을 때 설정하면 T
    - 설정된 값 : Ex) chmod 3770 /choi 일 때... 해당 숫자는 3(2+1=3)이므로 Set-GID와 Sticky-Bit가 설정되어 있음
       4 : Set-UID
       2 : Set-GID
       1 : Sticky-Bit

  • chown
    - 파일과 디렉토리의 사용자 소유권과 그룹소유권을 변경
    - chown [옵션] 소유자[:그룹명] 파일명
    - 옵션 -R : 하위 디렉토리를 포함하여 모든 파일의 소유권 변경

  • chgrp
    - 파일과 디렉토리의 그룹 소유권을 변경
    - chgrp [옵션] 그룹명 파일명
    - 옵션 -R : 하위 디렉토리를 포함하여 모든 파일의 소유권 변경

 

 

 

💻 디스크 쿼터

파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하기 위하여 사용한다.

  • quota
    - 사용자 할당량 사용(주로 'quota 사용자명'으로 사용)

  • edquota
    - 편집기를 이용하여 사용자나 그룹에 디스크 사용량을 할당

  • setquota
    - 편집기 기반이 아닌 명령행에서 직접 사용자나 그룹에 디스크 사용량을 할당

  • quotacheck
    - 파일 시스템의 디스크 사용 상태를 검색

  • repquota
    - 특정 파일 시스템 내의 각 사용자별 디스크 사용량에 대한 내용 확인(주로 'repquota 디렉토리명'으로 사용)

  • 실행순서
    - quotacheck > edquota > quotaon > repquota

 

반응형

 

💻 네트워크 파일 시스템

  • SMB
    - 삼바 파일 시스템을 마운트 지정
    - 리눅스, 유닉스 OS와 윈도우 OS와의 자료 및 하드웨어 공유

  • CIFS
    - SMB를 확장한 파일 시스템
    - SMB를 기초로 응용하여 라우터를 뛰어넘어 연결할 수 있는 프로토콜

  • NFS
    - 네트워크 파일 시스템
    - 썬마이크로시스템이 개발한 네트워크 공유 프로토콜

 

 

 

💻 파일 시스템 관련 명령어

  • mount
    - 특정 디바이스를 특정 디렉토리처럼 사용하기 위해 장치와 디렉토리를 연결
    - mount -t [파일 시스템 타입] [장치 파일] [마운트 포인트]
      * [파일 시스템 타입]
          - 시디롬 : iso9660
          - ms-dos : msdos
          - windowsXP : ntfs
          - ISO파일 : loop
          - NFS파일 : nfs
          - 삼바 : smbfs

  • umount
    - 마운트 해제 명령어

  • eject
    - 이동식 보조기억장치(DVD 또는 CD-ROM)를 해제하고 장치를 제거

  • fdisk
    - 새로운 파티션 생성, 기존 파티션 삭제, 파티션 타입 결정
    - l : 현재 디스크 및 파티션 보기
    - n : 신규파티션 추가
    - t : 파티션 종류 변경 (82=스왑 파티션 / 83=리눅스 파티션 / 8e=논리 볼륨 관리자 파티션 / fd=Linux RAID)
    - p : 파티션 설정 보기
    - m : 메뉴보기
    - a : 부트가능 플래그로 변경
    - d : 파티션 삭제
    - w : 파티션 설정 저장

  • mkfs
    - 리눅스 파일 시스템 생성
    - fdisk로 하드디스크의 파티션을 나눈 후, 해당 파티션에 맞는 파일 시스템을 생성

  • fsck
    - 파일 시스템의 무결성 체크, 대화식으로 복구
  • e2fsck
    - ext2, ext3, ext4 타입의 파일 시스템을 점검 및 복구

  • df
    - 마운트된 하드 디스크의 용량을 파티션 단위로 사용량 확인
    - df -i 또는 df inode : 파티션에 사용가능한 아이노드(I-node)의 수를 확인

  • du
    - 디렉토리별 디스크 사용량 확인

 

 

 

💻 /etc/fstab

  • 파일 시스템 장치명
    - 장치명, 볼륨라벨, UUID

  • 마운트 포인트
    - 파일 시스템이 마운트될 위치

  • 파일 시스템 종류
    - 파일 시스템 종류 설정

  • 옵션
    - defaults : auto, exec, suid, ro, rw 등 모두 가지는 속성
    - auto : 부팅 시 자동 마운트
    - exec : 실행 파일이 실행되는 것을 허용
    - suid : SetUID, SetGID 사용을 허용
    - ro : 읽기 전용
    - rw : 읽고 쓰기

  • dump 관련 설정
    - 백업 시 덤프 레벨을 결정

  • 파일 점검 옵션
    - 부팅 시 파일 시스템을 점검하는 fsck 순서

 

 

 

💻 Shell

  • Bourne Shell(sh)
    - 스티브 본이 개발
    - 유닉스에서 기본 셸로 사용

  • Korn Shell(ksh)
    - 데이비드 콘이 개발
    - 벨 연구소에서 본셸을 확장해서 만듦
    - 명령어 완성 기능, 히스토리 기능 지원

  • Bourne Again Shell(bash)
    - 브라이언 폭스가 개발
    - 리눅스 표준 셸로 채택
    - POSIX와 호환
    - 명령어 완성 기능, 히스토리, 명령어 치환, 편집 등 기능 지원

  • C Shell(csh)
    - 빌 조이가 개발
    - C언어의 특징을 많이 포함
    - 히스토리, 별명, 작업 제어 등의 기능 지원

  • TC Shell(tcsh)
    - Ken Greer가 개발
    - 확장 C셸로 BSD계열에서 가장 많이 사용
    - 자동 완성 기능, 자동 로그아웃, 로그인 상태, 사용자, 터미널 모니터링 등 지원

  • Shell 확인
    - /etc/shells 확인(Ex. cat /etc/shells)
    - /etc/passwd 파일 확인
    - echo $SHELL
    - chsh -l(-s 옵션은 셸 변경)

 

 

 

💻 환경 변수

  • PATH
    - 실행할 명령어 경로 검색

  • HOME
    - 사용자의 홈 디렉토리 절대 경로

  • HOSTNAME
    - 호스트명

  • USER
    - 사용자명

  • DISPLAY
    - X 응용 프로그램이 화면 출력을 위해 접속할 X 서버의 주소를 지정

  • PS1
    - 셸 프롬프트를 선언 시 사용하는 변수

  • PS2
    - 2차 셸 프롬프트를 선언 시 사용하는 변수

  • PWD
    - 현재 디렉토리의 절대 경로명

  • SHELL
    - 로그인 셸의 절대 경로명

  • TERM
    - 터미널 종류의 이름

  • TMOUT
    - 로그아웃 관련 시간

  • LANG
    - 프로그램 기본 언어

  • PRINT
    - 기본 프린터

  • MAIL
    - 메일 저장 경로

 

 

💻 bash 관련 설정 파일

  • /etc/profile
    - 전체 사용자의 셸 환경을 제어하는 전역 설정 파일

  • /etc/bashrc
    - 별칭과 bash수행 시 실행되는 함수를 전역적으로 제어

  • ~/.bash_profile
    - 개인 사용자의 셸 환경을 제어하는 지역 설정 파일

  • ~/.bash_history
    - 입력한 명령어 기록

  • ~/.bashrc
    - 별칭과 bash수행 시 실행되는 함수를 지역적으로 제어

  • ~/.bash_logout
    - 로그아웃하기 직전에 실행되는 시스템 설정

 

 

 

💻 alias

자주 사용하는 명령어를 특정 문자로 저장하여 간편하게 사용하는 방법.

  • 설정
    - alias 별명='명령어'

  • 해제
    - unalias 별명

 

 

 

💻 프로세스

  • 유형
    - 포그라운드 : 사용자와 상호작용하는 프로세스
    - 백그라운드 : 사용자와 직접적인 대화를 하지 않고 뒤에서 실행되는 프로세스

  • fork()와 exec()
    - fork() : 새로운 프로세스를 위해 메모리를 할당받아 복사본 형태의 프로세스를 실행
    - exec() : 새로운 프로세스를 위해 메모리를 할당하지 않고 호출한 프로세스의 메모리에 새로운 프로세스를 덮어 씌움

  • 데몬
    - 메모리 상주하며 사용자의 요청이 오면 즉시 실행되는 대기 중인 서버 프로세스
    - 주기적이고 지속적인 서비스 요청을 처리하기 위해 실행
    - standalone : 항상 메모리에 상주. 빠른 응답속도를 요하는 경우에 사용. 서버 부하가 큼
    - inetd : 호출 시점에 메모리에 상주

 

 

 

💻 시그널

  • SIGHUP(1)
    - 터미널과 연결이 끊어졌을 때

  • SIGINT(2)
    - Ctrl + C

  • SIGQUIT(3)
    - Ctrl + \

  • SIGKILL(9)
    - 프로세스 강제 종료

  • SIGTERM(15)
    - KILL 시스템 호출

  • SIGTSTP(20)
    - Ctrl + Z

 

 

 

💻 프로세스 관련 명령어

  • ps
    - 현재 실행 중인 프로세스 상태 확인

  • ps aux
    - USER : 프로세스 소유자명
    - PID : 프로세스 식별번호
    - %CPU : CPU 사용 비율(추정치)
    - %MEM : 메모리 사용 비율(추정치)
    - VSZ : 가상메모리 사용량
    - RSS : 실제 사용된 메모리량
    - TTY : 프로세스와 연결된 터미널 번호
    - STAT : 현재 프로세스 상태
    - START : 프로세스 시작 시간
    - TIME : 총 CPU 사용 시간
    - COMMAND : 실행 명령

  • pstree
    - 실행 중인 프로세스들을 트리구조로 표현

  • jobs
    - 작업 중지, 백그라운드 진행, 변경되었지만 보고되지 않은 상태 등을 표시

  • bg
    - 포그라운드에서 백그라운드로 전환
    - bg %작업번호 또는 bg 작업번호

  • fg
    - 백그라운드에서 포그라운드로 전환
    - fg %작업번호 또는 fg 작업번호

  • kill
    - 프로세스 종료
    - kill [옵션] [시그널 번호 또는 시그널 이름] [PID 또는 %작업번호]

  • killall
    - 같은 데몬의 여러 프로세스 종료
    - killall [옵션] 프로세스명

  • nice
    - 프로세스 우선 순위 변경(프로세스명 입력)
    - 범위 : -20(높은 우선권) ~ 19(낮은 우선권)

  • renice
    - 실행 중인 프로세스 우선 순위 변경(PID값 입력)

  • top
    - 운영 상태를 실시간으로 모니터링

  • nohup
    - 사용자가 로그아웃하거나 터미널 창을 닫아도 실행 중인 프로세스를 백그라운드로 실행(단, 명령어 뒤에 &로 명시)

 

 

 

💻 스케줄링

  • at
    - 지정된 명령어나 스크립트를 한 번만 자동 예약 후 실행

  • crontab
    - 정해진 시간에 주기적으로 실행
    - 포맷 : * * * * * ./etc/observe.sh
    - 의미 : 분 / 시간 / 일 / 월 / 요일
    - 옵션
         1) l : crontab에 설정된 내용 출력
         2) e : crontab을 작성하거나 수정
         3) r : crontab 내용 삭제
         4) u : 특정 사용자의 일정 수정
    - 저장위치
        1) 일반 사용자 : /var/spool/cron
        2) 관리자 : /etc/crontab

 

 

 

💻 에디터

  • vi
    - 빌조이 개발
    - 리눅스 배포판과 유닉스에 기본적으로 포함
    - 모드형 편집기
    - 입력모드 : a, i, o, s
    - 명령모드 : 삭제, 복사, 붙여넣기 가능
    - EX 명령모드 : 저장, 종료, 환경설정

  • vim
    - 브람 무레나르 개발
    - 편집 시 다양한 색상을 이용하여 가시성을 높일 수 있음
    - 패턴 검색 시 하이라이트 기능 제공
    - 다중 되돌리기 기능
    - 문법 검사 기능

  • pico
    - Aboil Kasar 개발
    - 초기 리눅스에서 사용
    - 기능이 부족하고 업데이트가 지원 부족

  • emacs
    - 리차드 스톨만이 최초의 개발자이며 제임스 고슬링이 다양한 기능 추가
    - 비모드형 편집기로 여러 가지 명령 수행을 위하여 Ctrl 또는 Alt 키와 조합하여 사용

 

 

 

💻 rpm

  • rpm -i
    - 새로운 패키지를 설치할 때 사용

  • rpm -U
    - 기존의 패키지를 새로운 버전의 패키지로 업그레이드할 때 사용(설치된 패키지가 없을 경우 패키지를 설치)

  • rpm -v
    - 메시지를 자세하게 출력

  • rpm -h
    - '#'기호로 표시

  • rpm -e(--erase)
    - 지정한 패키지 제거

  • rpm --nodeps
    - 의존성이 있는 패키지가 존재할 경우에도 제거

  • rpm -qa
    - 설치된 패키지에서 지정한 문자열이 포함된 패키지 출력

  • rpm -qi
    - 패키지 이름과 버전만 표시/설치된 패키지 정보를 출력

  • rpm -qd
    - vsftpd 관련 문서 및 man 페이지 파일 정보를 출력

 

 

 

💻 yum

  • yum list
    - 전체 패키지에 대한 정보를 출력

  • yum install 패키지명
    - 패키지 설치

  • yum remove 패키지명
    - 지정한 패키지 제거

  • yum history 패키지명
    - 패키지 설치, 삭제 등 작업 이력 확인

  • yum info 그룹 또는 패키지
    - 패키지 또는 그룹의 패키지를 자세하게 확인

  • /etc/yum.repos.d
    - yum 명령의 저장소 관련 파일들이 위치하는 디렉토리

 

 

 

💻 패키지별 삭제 옵션

  • rpm : -e
  • apt-get : remove
  • dpkg : r(시스템에서 삭제), p(패키지기반 모두 삭제), --purge(완전 제거)- 본문
  • yum : remove

 

 

 

💻 tar

  • c
    - 아카이브 생성

  • C
    - 디렉토리를 변경할 때 사용

  • r
    - 아카이브의 마지막에 파일들 추가

  • x
    - 아카이브 풀기

  • t
    - 아카이브에 포함된 내용 확인

  • v
    - 처리 과정 출력

  • f
    - 대상 아카이브 지정

  • z
    - gzip으로 압축하거나 해제

  • j
    - bzip2로 압축하거나 해제

  • J
    - xz로 압축하거나 해제

 

 

 

💻 소스파일 설치 순서

  • configure > make > make install
  • cmake > make install

 

 

 

💻 압축률(낮은순 -> 높은순)

  • compress(.Z) -> gzip(.gz) -> bzip2(.bz2) -> xz(.xz)

 

 

 

💻 프린터

  • LPRng
    - 버클리 프린팅 시스템
    - 프린터 스풀링과 네트워크 프린터 서비스 지원

  • CUPS
    - 애플이 개발한 오픈소스 프린팅 시스템
    - HTTP 기반의 IPP를 사용
    - /etc/cups/cupsd.conf : 프린터 데몬의 환경 설정 파일
    - /etc/cups/printers.conf : 프린터 큐 관련 환경 설정 파일
    - /etc/cups/classes.conf : 프린터 데몬의 클래스 설정 파일
    - cupsd : 프린터 데몬

 

 

 

💻 프린터 명령어

  • BSD
    - lpr : 프린터 작업 요청
    - lpq : 프린터 큐에 있는 작업 목록 출력
    - lprm : 큐에 대기 중인 작업 삭제
    - lpc : 프린터나 프린터 큐 제어

  • System V
    - lp : 프린터 작업 요청
    - lpstat : 프린터 큐 상태 확인
    - cancel : 프린트 작업 취소

 

 

 

반응형

'IT' 카테고리의 다른 글

[Database] DDL, DML, DCL, TCL  (1) 2025.01.21
[Linux] 리눅스마스터 2급 정리 #2  (4) 2025.01.21
[GitHub] 깃허브 Repository 합치기  (2) 2025.01.21
[SQL] COUNT(1), COUNT(*), COUNT(column) 차이점  (1) 2025.01.21
[Linux] 리눅스 alias  (1) 2025.01.21