반응형
💻 소유권 관련 명령어
- 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 : 프린트 작업 취소
반응형
'Server' 카테고리의 다른 글
[macOS] Docker Desktop 완전 삭제 (0) | 2023.11.11 |
---|---|
[Linux] 리눅스마스터 2급 정리 #2 (0) | 2023.07.16 |
[Linux] 리눅스 alias (0) | 2023.07.04 |
도메인주소로 IP주소 찾기 (0) | 2023.07.03 |
[macOS] zsh: command not found: brew (1) | 2023.04.23 |