<1. 리눅스 일반>
/etc/password
- 사용자의 목록 저장
- 암호화하여 /etc/shadow에 추가 관리함
- [아이디] : [password] : [UID] : [GID] : user의 추가 정보 : user의 홈 디렉터리 : 로그인 시 사용하는 셸
- ex ) luster47 : 1q2w3e4r : 600 : 500 : engineer : /home/luster : /bin/bash
ls
- 디렉토리 안의 내용 출력
- -a : 숨겨진 파일, 디렉터리/ '.' : 숨겨진 파일
- -F : 파일 형태에 따라 관련된 정보 출력
- * : 실행 가능한 파일 (파일 이름 뒤에)
- ./ : 디렉터리 (이름 뒤에)
- @ : Symbolic link 뒤에
- -l : 파일이나 디렉터리 정보를 한 줄씩 하나씩 길게 보여줌
- -d : 디렉터리에 대한 정보 출력
- -t : 시간 순으로 출력
- -u : 사용된 시간 순으로 출력
- -i : i-node 번호 출력(파일 or 디렉터리 명 앞에)
- -r : 알파벳 역순으로 출력
- -R : 관련 내용 전부 출력
- -S : 파일 크기가 큰 것부터 출력
- --color : 파일 종류에 따라 색 보여줌
- -1 : 한 줄의 한 파일씩 출력
- -Z : 보안 문맥 출력
- 출력 결과 : [허가권] [하드 링크 수] [파일 소유자(파일 생성자)] [소유 그룹] [파일 크기] [파일 생성한 시간] [파일명]
<2. 리눅스 운영 및 관리>
1.1_권한 및 그룹 설정
umask
- 파일이나 디렉터리 생성 → 허가권 지정
- 파일 생성 시 : 666
- 디렉터리 : 777
- -S : umask 값을 문자로 표기
ex) umask -S
u=rwx, g=rwx, o=rw
u : 파일 소유자 접근 권한
g : 그룹에 속한 사람들에 대한 접근 권한
o : 다른 사용자들에 대한 접근 권한
cmod
- 파일이나 디렉터리에 접근할 수 있는 허가권 설정
- 권한 표시 - r, w, x
- 사용자 지정 - u, g, o. a
- 설정 - +, -, =(특정 권한만 지정)
1.2_파일 시스템 관리
리눅스의 파일 시스템
- 파일 시스템 : os가 파티션 or 디스크에 데이터 저장, 읽기, 쓰기, 찾기 위해 구성하는 일련의 체계
- ext3 (저널링 파일 시스템 기능 있음): 리눅스 커널 2.4부터 사용
- 저널링 파일 시스템 : 파일 시스템에 변경사항을 반영하기 전에
- 저널(로그)에 변경사항을 저장하여 추적이 가능하게 만든 파일 시스템
- 시스템에 충돌 현상 or 전원 문제 발생 -> 데이터 복구 확률 높여줌
- minix
- ext
- ext2
- ext3 : 저널링 파일 시스템
- ext4 : 저널링
- Reiserfs : 저널링
- XFS : 저널링
- JFS : 저널링
/etc/fstab
- 파일 시스템에 대한 다양한 정보 담고 있는 파일로 부팅 시에 마운트 할 파티션 정보가 기록되어 있는 파일
- mount, umount, fsck,, 수행될 때 이 파일이 정보를 참고함.
- 필드 구성
- 첫 번째 : 장치명 기록 -> 볼륨 라벨, UUID
- 두 번째 : 마운트 될 디렉터리 ex) /, /home
- 세 번째 : 파일 시스템의 유형 ex) ext4, swap, nfs
- 네 번째 : 마운트 될 때의 옵션
- 다섯 번째 : dump 명령을 통한 백업 시 레벨 덤프 주기 결정
- 0 : dump사용 안 함
- 1 : 매일 수행
- 2 : 이틀에 한번 수행
- 여섯 번째 : fsck 명령의 순서 정함 (부팅 시 파일 시스템 점검)
- 0 : 부팅 시에 해당 파일 시스템 검사 X
특수 권한 //
- Set-UID : 해당 파일을 실행하는 동안에는 실행시킨 사용자의 권한이 아닌 해당 파일의 소유자 권한으로 인식함
- 소유자 권한 부분의 x자리에 s로 표시
- 실행 권한이 없는 파일에 부여 -> S로 표시
- Set-GID : 주로 디렉터리에 설정,
- 이 권한이 설정된 디렉터리에 user가 파일들을 생성 -> 사용자가 속한 그룹에 상관 X, 디렉터리 소유 그룹 권한으로 만들어짐
- 그룹 소유권 부분 x자리에 s로
- 실행 권한이 없는 경우 -> S로 표시
- Sticky - Bit : 특수 권한 공유 디렉터리
- /tmp디렉터리에 기본적으로 설정
- 삭제하는 경우에 본인이 생성한 파일 이외에는 삭제 불가능
- Group과 other 계층 사용자에게 사용할 수 있지만, 같이 사용 불가
- other계층에 설정함
- x자리에 t로 표기,
- other계층에 실행 권한이 없는 경우 -> 대문자 T로
fdisk
- 디스크 파티션을 확인하고 추가/삭제하는 명령
- 설정 후에는 재부팅해야 함
- 옵션
- -I : 현재 디스크 파티션 테이블 출력
- -s partition : 특정 파티션의 크기 출력, 단위는 block
- 명령어
- p : 현재 디스크 정보 출력
- d : 파티션 삭제
- n : 파티션 새로 생성
- t : 파티션 속성 변경
- w : 변경된 파티션 정보 저장하고 종료함
- q : 파티션 정보 저장 X 하고 저장
- ex) fdisk /dev/hi
- p
mkfs(make filesystem)
- 새로운 파일 시스템 만듦
- root만 사용 가능
- 파일 시스템 유형 설정 안 하면 -> ext2로
- mkfs [-t fs_type] [option] 장치명
- 옵션
- -t fs_type : 파일 시스템 유형
- -c : 배드 블록을 체크한 후 파일 시스템 구축
- ex ) mkfs -t ext3 /dev/asdf
- /dev/asdf을 리눅스 파일 시스템인 ext3로 만듦
mount
- 보조기억장치나 파일 시스템이 다른 디스크를 /의 하위 디렉터리로 연결하여 사용 가능하게 해 줌
- 옵션
- -a : /etc/fstab에 명시된 파일을 마운트 할 때
- -t : fs_type : 파일 시스템의 유형 지정
- 지정하지 않으면 : /etc/fstab 참조함
- -o : 추가적인 설정 적용할 때
- 유형
- msdos : FAT - 16 마운트 할 때
- vfat : FAT - 32
- ntfs : NT, 2000, XP 이후 버전에서 사용하는 파일 시스템 마운트 할 때
- ext2, ext3, ext4
- xfs
- iso9660 : CD-ROM, DVD 마운트 할 때
- smbfs : 네트워크 파일 시스템(삼바 파일 시스템)
- cifs : 삼바 시스템 확장된 거
- nfs : 네트워크 파일 시스템 (NFS) , 공유된 영역 마운트 할 때
- udf : DVD 파일 시스템
- -o의 항목
- ro : 읽기 전용
- rw : 읽/쓰 (기본값)
- remount : 다시 마운트
- loop : loop 디바이스로 마운트 할 때, iso(CD-ROM 이미지 파일)를 마운트 해서 사용할 때
- noatime : 파일이 변경되기 전까지 Access Time(파일 내용 읽을 때 변경됨) 변경 X
- username = 사용자명 : 사용자 계정 필요할 때
- password
- acl : ext3에서 지원하는 접근제어 리스트 사용 가능하도록
- ex) mount -t ext4 -o ro /dev/sdf /hn
- ext4인 /dev/sdf를 /hn 디렉터리에 읽기 전용으로 마운트
↓설명 너무 잘 되어 있다. 매일 읽자
df (disk free)
- 현재 마운트 된 디스크의 크기, 사용량, 남아있는 용량,,, 대한 정보 출력
- 옵션
- -h : 용량 단위 표시
- -k : 킬로바이트 단위로 보여줌 (기본)
- -m : 메가바이트 단위로 보여줌
- -T : 파일 시스템 유형 보여줌
- -i : 아이 노드의 사용량 보여줌
du (disk usage)
- 파일 or 디렉터리들이 디스크에서 차지하고 있는 크기 출력
- 옵션
- -h : 용량의 단위 표시
- -s : 파일의 전체 크기 합한 값만 보여줌
nice
- 우선순위 변경
- 프로세스 명으로 우선순위 조정
- 명령 실행 -> 새로운 프로세스 추가 발생
- NI 설정할 때 (증감)
- root만 가능
- nice [옵션] 프로세스 명
- 옵션
- -n 값, -값/ --adjustment=값
- 기본값은 10
renice
- 실행 중인 프로세스 우선순위 변경할 때
- 기존 프로세스 교체하여 조정
- 설정된 NI 값 바로 설정 됨
- renice [옵션] NI PID
- 옵션
- -p : PID 지정
- -u : 사용자 이름 지정
- -g : 프로세스 그룹 ID지정
2. shell
shell : 커널 - 사용자 간의 다리 역할
사용자로부터 명령어 받 -> 해석 -> 프로그램 실행
셀 확인
- echo $SHELL
- 변경 가능한 쉘 확인
- chsh -l
- cat /etc/shells
- 쉘 변경
- chsh [쉘 이름]
- 쉘 관련 파일 및 디렉터리
- /etc/profile : 시스템 전체의 환경변수, 시작 관련 프로그램 설정
- /etc/bashrc : 시스템 전체에 적용되는 alias와 함수 설정
- ~/. bash_profile : 개인 사용자의 환경설정, 시작 프로그램 설정과 관련 있는 파일/ 로그인 시 읽어 들인다.
- ~/. bashrc : 개인 사용자가 정의한 alias와 함수들이 있는 파일
- ~/. bash_logout : 개인 사용자가 로그아웃할 때 수행하는 설정 지정
- /etc/profile.d : 몇몇 응용프로그램이 시작할 때 필요한 스크립트가 위치하는 디렉터리
3. 프로세스 관리
- 프로세스 : 실행 중인 프로그램
- 시스템 호출 방법
- fork : 새로운 프로세스를 위해 메모리 할당 받음 -> 복사본 형태의 프로세스 실행
- 기존 프로세스는 그대로 실행
- 원래 프로세스와 똑같은 코드 기반으로 실행됨
- exec : 원래의 프로세스를 새로운 프로세스로 대체
- 메모리 할당 X
- fork : 새로운 프로세스를 위해 메모리 할당 받음 -> 복사본 형태의 프로세스 실행
- 부팅 시작 -> init 프로세스 발생 -> init는 PID 1번 할당
- 명령어 앞에 exec : 기본 프로세스 교체, 새로운 프로세스 할당됨
- bg : 백그라운드 프로세스로 전환
- fg : 포어그라운드 프로세스로 전환
- 시그널 - 순서 기억
- 특정 프로세스가 다른 프로세스에게 메시지 보낼 때
- SIGHUP : 터미널에서 접속이 끊겼을 때 보냄, 재시작할 때 쓰임
- SIGINT : 키보드로부터 오는 인터럽트 시그널 ( ctrl + c)
- SIGQUIT : 키보드로 부터 오는 중지 시그널 (ctrl + \)
- SIGKLL : 프로세스 강종
- SIGTERM : 정상 종료
- SIGCONT : 정지된 거 다시 실행시킬 때
- SIGSTOP : 정지
- SIGTSTP : 정지 후 다시 실행을 계속하기 위해 대기시킴 (ctrl + z)
- 데몬
- 백그라운드로 실행
- 지속적인 서비스 요청 처리
- 서버 역할
- 방법
- standalone : 부팅 시에 실행, 메모리 상주하면서 클라이언트의 요청 처리
- inet : 클라이언트의 요청이 들어왔을 때 관련 프로세스 실행 -> 접속 종료 후에 자동으로 프로세스 종료
스케줄링과 cron
- 스케줄링 : 특정한 시간에 특정한 작업 수행, at, cron사용
- cron
- 시스템 운영에 필요한 작업 : /etc/crontab에 등록해서 주기적으로 실행
- 사용자의 필요에 의한 작업 : crontab명령으로 등록 가능
- 필드
- minute
- hour
- day of month
- month
- day of week : 1월, 2화 ...
- user-name
- command
ps
- 동작 중인 프로세스의 상태를 출력해 주는 명령
- 옵션 계열
- System V : (dash, -)사용
- BSD : 대시 사용 X
- GNU : 두 개의 대시
- ps [option]
- 옵션
- a : 터미널과 연관된 프로세스 출력
- u : 프로세스의 소유자를 기준으로 출력
- x : 터미널에 종속되지 않는 프로세스 출력
- l : 프로세스의 정보를 길게 보여줌, 우선순위와 관련된 (RPI, NI)값 확인
- 옵션 항목
- USER : BSD 계열, 프로세스 소유자의 이름
- UID : SYSTEM V 계열, 프로세스 소유자의 이름
- PID : 프로세스의 식별 번호
- %CPU : CPU 사용 비율 추정치 (BSD)
- %MEM : 메모리 사용 비율의 추정치 (BSD)
- VSZ : K단위 또는 페이지 단위의 가상메모리 사용량
- RSS : 실제 메모리 사용량
- TTY : 프로세스와 연결된 터미널
- STAT : 현재 프로세스의 상태 코드
- START : 프로세스 시작 시간 or 날짜
- TIME : 총 CPU 사용 시간
- COMMAND : 프로세스의 실행 명령행
- STIME : 프로세스가 시작된 시간 혹은 날짜(Sys V)
- C, CP : 짧은 기간 동안의 CPU사용률
- F : 프로세스의 플래그 (1:exec 호출 없이 fork된 경우 / 4 : 슈퍼유저 권한 사용자)
- PPID : 부모 프로세스의 PID
- PRI : 실제 실행 우선순위
- NI : nice 우선 순위 번호
- STAT의 주요 값
- R ( Runnig) : 실행 중 혹은 실행될 수 있는 상태
- S ( Sleeping) : 인터럽트에 의한 sleep 상태, 특정 이벤트가 끝나기를 기다리는 상태
- D ( Disk wait) : 디스크 I/O에 의해 대기하고 있는 상태
- T ( Traced or stopped) : 정지된 상태
- W : paging 상태
- Z ( Zombie) : 작업이 종료되었거나 부모 프로세스로 부터 회수되지 않아 메모리를 차지하고 있는 상태
- X : 죽어있는 상태, 상태값으로 볼 수 X
- < : 우선순위가 인위적으로 높아진 상태
- N (Nice) : 다른 사용자에 의해 인위적으로 우선순위가 낮아진 상태
- L : 메모리 안에서 페이지가 잠금된 상태
- s : session Leader
- I : 멀티 쓰레드 상태
- + : 포어그라운드 프로세스 그룹
'자격증 > 리눅스 마스터' 카테고리의 다른 글
리눅스 마스터 2급 2차 3-2.2 (0) | 2021.03.12 |
---|---|
리눅스 마스터 2급 2차 3-2.1 (0) | 2021.03.12 |
리눅스 마스터 2급 2차 준비 (3-2) - 차례 (0) | 2021.03.12 |
리눅스 마스터 2급 2차 정리 (3-1) (0) | 2021.03.12 |
리눅스 마스터 2급 2차 준비 (2-6) (0) | 2021.03.12 |