소프트웨어 패키지를 설치, 업데이트, 삭제하는 작업을 관리하는 시스템
명령어
패키지 업데이트 및 업그레이드
apt update
: 패키지 목록을 업데이트합니다.apt upgrade
: 설치된 패키지를 최신 버전으로 업그레이드합니다.apt dist-upgrade
: 패키지 간 의존성 문제를 고려하여 시스템 전체를 업그레이드합니다.패키지 설치 및 삭제
apt install [패키지 이름]
: 패키지를 설치합니다.apt remove [패키지 이름]
: 패키지를 삭제합니다.apt purge [패키지 이름]
: 패키지와 관련된 설정 파일까지 모두 삭제합니다.패키지 검색
apt search [검색어]
: 패키지를 검색합니다.패키지 정보 확인
apt show [패키지 이름]
: 패키지의 정보를 확인합니다.의존성 문제 해결
apt-get -f install
: 의존성 문제를 해결합니다.기타
apt autoremove
: 더 이상 필요하지 않은 패키지를 자동으로 삭제합니다.apt list
: 설치된 패키지 목록을 출력합니다.리눅스는 멀티테스킹 운영체제로, 동시에 여러 개의 프로세스를 실행할 수 있습니다
각 프로세스는 운영체제로부터 자원을 할당받아 실행됩니다.
리눅스에서는 프로세스를 생성하고, 중단하고, 관리하는 등의 작업을 프로세스 관리 기능으로 수행합니다.
또한 리눅스는 각 프로세스에 대해 PID(Process ID)를 부여하여 구분합니다. 이를 통해 운영체제는 각 프로세스의 상태를 추적하고, 필요한 경우 프로세스를 강제 종료시킬 수 있습니다.
- 실행 중(Running): 현재 CPU를 점유하고 있는 상태
- 대기 중(Waiting): CPU가 사용 가능해질 때까지 기다리는 상태
- 정지(Stopped): 프로세스가 일시 정지된 상태
- 종료(Terminated): 프로세스가 실행을 마치고 종료된 상태
fork()
함수를 이용하여 새로운 프로세스를 생성exec()
함수를 이용하여 새로운 프로그램을 실행wait()
함수를 이용하여 자식 프로세스가 종료될 때까지 부모 프로세스를 대기ps
ps -ef
- 전체 프로세스 정보ps -ef | grep [ ]
- 프로세스 검색kill -l
- signal 정보보기top
- 프로세스 상태창 보기shift
+c
: cpu 기준 정렬, m
:메모리 기준 정렬pstree -pn
- 프로세스 트리 정렬물리적으로 존재하는 장치를 논리적인 디렉토리에 연결하는것을 의미
특정장치를 사용하기 위해 메모리를 할당
명령어 mount -t <fs-type> <장치명> <directory>
mount -l
- 마운트 정보 확인
df -h
fdisk -l
- 파티션 정보
mount -t iso9001 /dev/cdrom /media/cdrom
umount
- 마운트 해제
사용자 관리의 이유
리눅스는 다중 사용자 운영체제이기 때문에 사용자 계정 관리 기능을 제공
이를 통해 시스템 관리자는 각 사용자에 대한 권한을 지정하고,
시스템 보안을 유지를 위해 사용한다.
관리방안
사용자 계정을 생성하고, 수정하고, 삭제하는 등의 작업을 사용자 관리 기능으로 수행
사용자 관리는 대부분 root 권한이 필요
사용자 계정의 구분
사용자 계정은 각각 고유한 사용자 ID(UID)와 그룹 ID(GID)를 가지며, 이를 통해 시스템은 각 사용자의 권한을 구분합니다. 사용자는 소속 그룹을 가질 수 있으며, 그룹 권한을 이용하여 사용자들 간의 공유 리소스에 대한 접근 권한을 설정할 수 있습니다.
명령어 정리
useradd
: 새로운 사용자 계정 생성usermod
: 사용자 계정 수정userdel
: 사용자 계정 삭제passwd
: 사용자 암호 변경chown
: 파일 소유자 변경chgrp
: 파일 그룹 변경groups
: 사용자가 소속된 그룹 확인groupadd
: 새로운 그룹 생성groupmod
: 그룹 수정groupdel
: 그룹 삭제예제
useradd yes
: yes 사용자 계정생성passwd yes
: yes 사용자 passwd생성useradd -m -d /home/yes yes
: yes계정 생성시 홈디렉터리를 /home/yes로 지정useradd -s /bin/csh yes
: yes계정 생성시 login shell지정usermod -L no
: no user에게 LOCK을 건다usermod -U no
: Lock 해제useradd 명령시 기본값 변경
useradd -D
: default값 보기useradd -D -s /bin/bash
: 기본 shell 변경nl /etc/shells
: 사용가능한 shell종류 보기vi /etc/login.defs
/ CREATE_HOME yes
: vi에디터로 login.defs 파일을 열고 빈줄에 CREATE_HOME yes를 추가 후 저장하면 useradd시 자동으로 home_dir생성groupadd ABC
: ABC 그룹 생성nl /etc/group
: 생성확인usermod -G ABC yes
: yes계정의 그룹 ABC로 변경버전마다 방법이 다름 현재 버전은 ubunto 20.04 기준
vi /etc/fstab
에서 /dev/disk/by-uuid/aa30 /home ext4 defaults
끝에,usrquota 0 1
입력mount -o remount /home
quotaoff -avug
quotacheck -avugm
repquota -a
quotaon -avug
edquota -t
edquota -u <user>
-- 기본단위 : Block (1 blcok = 1024 byte)ctrl + o
엔터 후 ctrl + x
edquota -p <source-user> <target-user>
quota복사소유권
허가권
권한읽기
기호 | 숫자 | 권한의 의미 |
---|---|---|
r | 4 | read-only 권한 (읽기 권한) |
w | 2 | write 권한 (쓰기 권한) |
x | 1 | execute 권한 (실행 권한) 또는 directory access 권한 (디렉토리 진입 권한) |
0 | - | 권한없음 |
예시
명령어
chmod +x <파일명>
: 전체에 실행권한 추가chmod -w <파일명>
: 전체에 쓰기권한 추가umask -S
전체권한 : 7 7 7
umask : 0 2 2
-
7 5 5
디렉토리 : 7 5 5
umask : 1 1 1
-
6 4 4
rwxrwxrwt
: chmod 1777 <파일이름>
명령어 : at
간단예제
at now + 10 minutes
at> /home/user/backup.sh
at> CTRL+D
주기적으로 반복되는 작업을 스케줄링하는 방법
명령어 : crontab -e
간단예제
vi /etc/crontab
0 * * * * user /home/user/check_log.sh
작성