<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 디렉터리에 읽기 전용으로 마운트

↓설명 너무 잘 되어 있다. 매일 읽자

jhnyang.tistory.com/12

 

마운트(mount) 뜻, 관련 명령어 & 문제 (fdisk, df, mkfs,디스크마운트)

리눅스 완전 정복 : 리눅스 목차 아마 마운트라는게 윈도우 운영체제에서는 우리가 실감할 일이 없기 때문에 리눅스를 처음 접하시는 분들은 헷갈릴 수 있는 개념이예요. 오늘은 마운트에 대해

jhnyang.tistory.com

 

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
  • 부팅 시작 -> 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 : 멀티 쓰레드 상태
      • + : 포어그라운드 프로세스 그룹

+ Recent posts