사용자 관리

  • 학습 개요
    리눅스 시스템에서 관리자 계정과 일반 사용자 계정의 차이를 이해하고 사용자 계정 또는 그룹 계정의 생성과 관리에 사용되는 명령과 파일에 관해 알아보자.
    패스워드 에이징의 의미를 학습하고 비밀번호 관리에 사용되는 명령과 파일을 살펴보자.

  • 학습 목표

    1. 사용자 계정의 관리에 사용되는 파일을 나열하고 용도를 알아보자
    2. 사용자 계정을 생성, 삭제, 변경 가능.
    3. 그룹 계정을 생성, 삭제, 변경 가능.

사용자 계정

사용자 관리

  • 사용자 계정이 있어야 시스템을 사용할 수 있음
    • 리눅스는 다중 사용자를 지원하는 운영체제
    • '사용자명' 또는 '로그인 아이디'
    • 사용자 계정은 UID를 가짐
  • 관리자 입장에서 사용자 계정 별로 접근 권한을 통제할 수 있음
    • 사용자 계정에 따라 부여된 권한이 다름
    • 일반 계정은 자신의 홈 디렉토리를 제외하면 제한된 권한을 가짐
    • 일반 계정 외에 root 계정 (UID=0) 시스템 계정도 있음

su

  • 사용자를 전환시키는 명령
  • su [-[l]] [username]
    • su -l jeaha 또는 su - jeaha는 지정된 사용자의 로그인 셸을 시작함
    • root 사용자가 아니라면 지정된 사용자의 암호를 알아야 실행시킬 수 있음
    • su -l과 같이 사용자가 생략되면 root 사용자로 로그인 함
    • 단순히 su를 실행하면 로그인 셸이 아니고, 작업 디렉토리도 바뀌지 않음
  ➜  UNIX git:(master) ✗ su -l
  Password:
  su: Sorry
  ➜  UNIX git:(master) ✗
  • 1 개의 셸 명령을 root 계정으로 실행하는 명령
    • su -c 'command'
      • root 암호를 알아야 함
      • 여러 단어로 되어 있다면 명령 부분을 따옴표로 묶어야 함
[ec2-user@ip-aws ~]$ su -c 'ls -l /root/*'
Password:
su: Authentication failure

sudo

root 또는 다른 사용자가 되어 명령을 실행하기 위한 명령

  • 특정 사용자나 그룹별로 세세한 권한을 부여할 수 있음
  • 본인의 암호만 필요하며, root 계정의 암호를 요구하지 않음
  • /etc/sudoers파일에 누가/어디서/어떤 명령을 수행할 수 있는지 설정되어 있어야 함

sudo [-u username] command

  • 현재 셸에서 수행되므로 명령어 부분에 따옴표가 필요 없음
  • -u 옵션을 사용하면 root 사용자가 아닌 특정 사용자로 수행함
  • sudo -l은 자신에게 sudo를 통해 허용된 명령을 확인할 수 있음

/etc/sudoers

  • root 사용자가 visudo를 사용하여 편집함
    • 문법 오류를 검사하고 안전하게 편집할 수 있음
  • 기본 문법은 user MACHINE=COMMANDS형태

useradd

사용자 계정을 만드는 관리자 명령

  • useradd [options] username
    • useradd -d "jeaha, oh" jeaha jeaha라는 계정을 만든다
    • -c 계정의 comment
    • passwd [username] 명령으로 비밀번호 설정 가능
  • useradd -D [options]
    • 계정을 생성할 때 사용되는 홈 디렉토리, 기본 그룹, 만료일, 기본 셸에 관한 기본 설정 가능
    • 다른 옵션을 사용하여 기본 설정을 변경 가능
옵션 설명
-d home_dir 새로운 계정의 홈 디렉토리를 지정. 기본은 /home/username
-D [options] -D만 사용하면 사용자 계정 생성시 사용되는 현재의 환경 설정 값을 보여줌. options로 -b, -e, -g, -s 등을 사용하면 홈 디렉토리의 위치, 만료 날짜, 주 그룹, 기본 셸 등에 관해 변경 가능.
-e expire_date 계정의 만료일 -e 2020-12-31. 기본값은 /etc/default/useradd 파일에 EXPIRE 변수의 값
-g group 계정이 속할 주 그룹을 지정. 그룹은 /etc/group 파일에 이미 존재해야 함. 기본적으로 사용자 계정 및 UID와 같은 값을 가지는 그룹 계정과 GID가 만들어짐
-G group_list 계정이 속한 부 그룹을 지정. 여러 개를 지정하면 콤마로 구분하여 설정
-s shell 사용자 기본 셸을 지정. -s /bin/bash
-u user_id 사용자의 UID를 수동으로 설정

사용자 계정의 생성 절차

  • /etc/login.defs 파일과 /etc/default/useradd 파일을 읽어서 사용자 계전 생성과 관련된 기본값을 확인
  • useradd 명령어에서 주어진 옵션을 검사하여 기본값을 대체할 것인지 확인
  • /etc/passwd 파일과 /etc/shadow 파일에 새로운 사용자 계정에 해당하는 항목을 생성
  • /etc/group 파일에 새로운 그룹에 해당하는 항목을 추가
  • /home/ 디렉토리에서 사용자 계정의 홈 디렉토리 (/home/username)을 생성
  • /etc/skel/ 디렉토리에 있는 파일을 사용자 계정의 홈 디렉토리에 복사

/etc/passwd

  • 사용자 계정에 관한 정보를 가진 텍스트 파일
    • 라인 별로 사용자 계정의 정보가 저장됨
    • 계정의 생성이나 수정을 위해 직접 수정하는 것은 좋지 않음
  • 각 라인은 콜론 : 으로 구분되는 7개 필드를 가짐
  • 사용자계정:암호:UID:GID:설명:홈디렉토리:기본셸
    • jeaha:x:500:500:Jeaha Oh:/home/jeaha:/bin/bash

/etc/skel

사용자 홈 디렉토리에 복사되는 .bash_profile, .bashrc, .bash_login등의 파일을 가짐

/etc/shadow

사용자 계정의 암호 정보와 '패스워드 에이징' 정보를 가짐
각 라인은 아래와 같은 정보를 가짐

  • 202034-364390:!!:18539:0:99999:7:::
  • 사용자계정:암호화된비밀번호:최종비밀번호변경일:minpa:maxpa:pwp:pip:aed::
  • minpa(minimum password age) : 비밀번호 변경 후 바꿀 수 없는 기간
  • maxpa(maximum password age) : 비밀번호 변경 후 다시 변경하지 않고 사용할 수 있는 최대 기간
  • pwp(password warning period) : 비밀번호 만료 전 경고할 날짜 일수
  • pip(password inactivity period) : 비밀번호 만료 후 로그인 가능한 날짜 수
  • aed(account expiration date) : 사용자 계정의 만료일. 빈 값은 계정이 만료되지 않는다.
  • 예약 필드

chage

  • 사용자의 비밀번호 만료에 관한 정보를 변경하는 관리자 명령
  • chage [option] username
    • chage -l username으로 자신의 패스워드 에이징 정보를 확인함
  • 옵션
    • -l days는 비밀번호 만료 후 비활성화 되기 전까지의 날짜 수 (-1은 사용하지 않음)
    • -m days-M days는 각각 비밀번호의 최소(0은 즉시 수정 가능)/최대 사용 날짜 수(최대 : 99999)
    • -d date는 비밀번호의 마지막 변경 날짜 수정
    • -E date는 사용자 계정의 만료일을 지정 (-1은 사용하지 않음)
  [ec2-user@ip-aws ~]$ chage -l ec2-user
  Last password change                                    : Oct 04, 2020
  Password expires                                        : never
  Password inactive                                       : never
  Account expires                                         : never
  Minimum number of days between password change          : 0
  Maximum number of days between password change          : 99999
  Number of days of warning before password expires       : 7

사용자 계정 만들기

사용자 계정의 기본 설정

  • 사용자 계정을 생성할 때 필요한 기본값을 정의한 파일이 있음
  • /etc/login.defs
    • 각 라인은 키워드와 값으로 구성됨
      • UID_MIN과 UID_MAX는 UID를 자동 할당할 때 유효 범위를 지정
      • USERGROUPS_ENAB은 사용자 계정과 같은 이름의 그룹을 자동으로 만들 지를 지정
  [ec2-user@ip-aws ~]$ cat /etc/login.defs
  MAIL_DIR        /var/spool/mail

  PASS_MAX_DAYS   99999
  PASS_MIN_DAYS   0
  PASS_MIN_LEN    5
  PASS_WARN_AGE   7

  UID_MIN                  1000
  UID_MAX                 60000

  SYS_UID_MIN               201
  SYS_UID_MAX               999

  GID_MIN                  1000
  GID_MAX                 60000

  SYS_GID_MIN               201
  SYS_GID_MAX               999

  CREATE_HOME     yes

  UMASK           077

  USERGROUPS_ENAB yes

  ENCRYPT_METHOD SHA512
  • useradd
    • /etc/default/useradd 파일
    • GROUP은 사용자 계정의 주 그룹(자동 생성을 안 할때)을 지정
    • 홈 디렉토리의 생성 위치와 셸의 종류를 지정
    • INACTIVE가 0이면 비밀번호 만료 후 즉시 계정을 비활성화, -1이면 기능을 사용하지 않는 것.
    • EXPIRE 값이 없으면 계정의 만료일이 없는것
  [ec2-user@ip-aws ~]$ cat /etc/default/useradd
  # useradd defaults file
  GROUP=100
  HOME=/home
  INACTIVE=-1
  EXPIRE=
  SHELL=/bin/bash
  SKEL=/etc/skel
  CREATE_MAIL_SPOOL=yes

사용자 계정 수정

usermod

  • 사용자 계정의 정보를 수정하는 관리자 명령
  • usermod [options] username
    • 많은 옵션이 useradd 명령과 유사
    • usermod -g root jeaha는 주어진 사용자의 주 그룹을 root로 변경함
    • id username 주어진 사용자의 uid와 gid를 출력
  • 옵션
옵션 설명
-d home_dir 사용자 계정의 홈 디렉토리 변경
-m -d와 함께 사용해야 하며 기존 홈 디렉토리의 내용을 새 디렉토리로 복사함
-l login_name 사용자 계정의 이름 변경
-u user_id 사용자 계정의 UID를 변경
-L 사용자 계정을 잠금. 실제 /etc/shadow 파일에서 비밀번호 앞에 !를 붙임
-U 사용자 계정의 잠금 해제

userdel

  • 사용자 계정을 삭제하는 관리자 명령
    • /etc/passwd 파일에서 해당 라인 삭제
  • user del [options] username
  • 옵션
    • -r 홈디렉토리와 파일을 함께 삭제, 메일 스풀도 삭제.
    • -f 로그인 중이거나 다른 사용자가 사용 중이어도 삭제, 같은 이름의 그룹도 삭제.

사용자 계정 삭제 시 고려사항

  • 홈 디렉토리도 삭제할 것인가
  • 계정을 삭제하지 않고 잠금 할 것인가
  • 삭제될 계정이 소유하는 파일이 더 있는가
    • 삭제 전에 find / -user username -ls로 확인해야 함
    • 삭제 후라면 find / -uid UID -ls, find / -nouser -ls로 확인

그룹 계정과 관리

그룹 계정

사용자 계정들을 모아서 하나의 집합을 이루는 개념

  • 그룹의 구성원은 특정 파일(또는 디렉토리)에 대해 그룹에 부여된 권한을 가짐
  • 일반 사용자는 bin, mail, sys 등의 '시스템 정의 그룹'에는 포함될 수 없음
  • 사용자 계정을 만들 때 주 그룹(기본 그룹)이 지정됨
    • 기본적으로 사용자 계정과 같은 이름으로 그룹 계정이 만들어짐
  • 사용자 계정은 0개 이상의 부 그룹에 속할 수 있음

groupadd

  • 그룹을 만드는 관리자 명령
    • 그룹도 계정 이름과 GID를 가짐
  • groupadd [options] group
  • 옵션
    • -g gid는 수동으로 GID를 지정
    • -r 시스템 그룹 계정 생성
    • -o -g를 함께 사용시 기존 그룹의 GID를 사용하는 것

/etc/group

  • 그룹 계정의 정보를 가진 텍스트 파일
    • 라인마다 그룹 계정의 정보가 저장됨
  • 각 라인은 : 으로 구분되는 4개 핑드를 가짐
  • 그룹계정:암호:GID:구성원_리스트
    • devs:x:1000:jeaha,jeje
  • 암호화된 비밀번호는 /etc/gshadow에 저장됨
  • 사용자 계정을 부 그룹에 추가하는 방법
    • usermod -G group -a username
  • 사용자가 자신의 그룹을 확인하는 방법
    • id username
    • groups username
  [ec2-user@ip-aws ~]$ id ec2-user
  uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal)
  [ec2-user@ip-aws ~]$ groups ec2-user
  ec2-user : ec2-user adm wheel systemd-journal

사용자 계정과 그룹 및 파일의 접근권한

  • 사용자가 파일이나 디렉토리를 생성하면 그것의 소유 그룹은 사용자의 주 그룹으로 지정됨
  • 사용자는 0개 이상의 부 그룹에 속할 수 있음
  • 사용자 스스로 다른 그룹의 구성원이 되게 할 수 없음
    • 관리자라면 gpasswd -a user group으로 구성원 추가 가능
  • newgrp group을 실행하면 일시적으로 자신의 주 그룹 변경 가능
    • 자신이 속해 있는 그룹 중에서 지정해야 함
    • 그룹 계정의 비밀번호를 알고 있다면 다른 그룹으로도 지정 가능
    • 단순히 newgrp를 실행하면 원래 주 그룹으로 돌아감

gpasswd

  • 그룹의 관리를 위한 명령
    • 그룹의 관리자가 사용
  • gpasswd [options] group
    • 옵션을 사용하지 않으면 그룹의 비밀번호를 설정
    • 옵션을 사용하면 그룹의 구성원 변경
  • 옵션
    • -a user는 구성원 추가, -A users는 그룹의 관리자를 지정
    • -d user는 구성원 삭제, -M users는 구성원 설정
    • -r 비밀번호 삭제

groupmod

  • 기존 그룹의 정보를 수정하기 위한 명령
    • 그룹의 관리자가 사용함
  • group [options] group
    • -g gid를 사용하여 GID를, -n name은 그룹 이름을 변경함

groupdel

  • 그룹을 삭제하는 관리자 명령
    • 그룹 계정 관련 파일에서 해당 라인을 삭제함
    • 사용자 계정의 주 그룹으로 되어있는 경우 삭제 불가능
  • groupdel group

사용자 관리를 위한 GUI

사용자 관리 도구

GUI를 지원 하지만 CLI방식에 비해 제한이 있다.

  • 시스템 > 관리 > 사용자 및 그룹
    • root 계정의 비밀번호 입력
    • 사용자 추가그룹 추가로 계정을 추가할 수 있음
    • 선택된 계정에서 등록정보 버튼으로 정보를 수정할 수 있음
728x90
반응형

'OS > Linux' 카테고리의 다른 글

[Linux] 파일 시스템 관리  (0) 2020.10.25
[Linux] vi 사용 텍스트 편집  (0) 2020.10.25
[Linux] 시작과 종료  (0) 2020.10.24
[Linux] 파일과 디렉토리  (0) 2020.10.24
[Linux] Shell 사용하기  (0) 2020.10.16

리눅스의 시작과 종료

  • 학습 개요
    운영체제의 부팅 절차를 이애하고 리눅스 시스템의 부팅 과정을 알아보자.
    업스타트 init 데몬의 기능과 수행 과정 및 런레벨에 따른 서비스 실행 과정을 알아보자.
    시스템의 부팅과 종료, 런레벨에 따른 서비스의 활성화 여부, 서비스 데본을 수동으로 시작하거나 종료하기 위한 관리자 명령을 알아보자.
  • 학습 목표
    1. 일반적인 운영체제의 부팅 과정을 설명할 수 있다.
    2. 초기화 데몬의 실행과 런레벨을 설명할 수 있다.
    3. 부팅 시 서비스의 활성화와 운영 중 서비스의 시작/종료 방법을 설명할 수 있다.
    4. 리눅스의 재부팅과 종료 방법을 설명할 수 있다.

운영체제의 부팅

부팅 과정

전원은 켜고 로그인 프롬프트가 나올때 까지 과정.
(BIOS 기반 X86 시스템과 MBR(Master Boot Record)방식의 컴퓨터를 가정함)

  • ROM BIOS의 펌웨어가 실행됨
    • 하드웨어 검사 후, 부트 로더를 적재
  • MBR에 있는 부트 로더가 실행 됨
    • 파티션 테이블을 조사하여 부팅 가능한 파티션을 찾음
    • 리눅스의 부트로더인 GRUB을 찾아 적재함
    • GRUB은 그래픽 인터페이스와 멀티 부팅을 지원함
  • 커널 이미지와 initramfs를 로드
    • 커널 이미지는 /boot/vnlinux-
    • initramfs는 부팅과정에서 필요한 임시 램 파일 시스템
  • 커널의 실행
    • 하드웨어를 점검하고 초기화함
      • 메모리, 프로세서, 저장장치, 주변장치 등
      • 디바이스를 찾고 디바이스 드라이버를 로드함
    • 루트 / 파일 시스템을 마운트하고 검사함
    • 커널은 /sbin/init 프로그램을 실생시키고 제어를 넘김
      • init 프로세스는(pid=1) 시스템 운영을 위한 나머지 초기화 과정을
      • init은 부팅이 끝난 후에도 계속 수행됨

(이미지로 한번 더 정리해야 할 듯 하다)

초기화 데몬

전통적 init 데몬

  • System V init 데몬이라고 함.
  • 런레벨 (runlevel)에 기초하여 순차적으로 서비스를 실행하는 방식
    • 런레벨에 따라 실행/중단 되어야 하는 서비스가 정해짐
  • 시간이 오래 걸리며, 복잡한 초기화 스크립트로 인해 새로운 하드웨어나 서비스의 등장에 효율적인 대처가 어려움
    • 안드로이드등 소형 기기에 linux를 사용하면서 불편함이 생기게 됨.

업스타트 init 데몬systemd 데몬

  • 이벤트 기반으로 서비스를 실행하는 방식
  • 복잡한 스크립트가 간단한 설정 파일들로 대체됨
  • Upstart는 Ubuntu에서 개발 되어 2006년에 포함되었고 RHEL에서 채택됨
  • systemd 데몬은 2011년 Fedora에서 채택되었음
  • RHEL7과 SUSE, Ubuntu 16에서 systemd가 Upstart를 대체함

init 프로세스

  • 업스타트는 /sbin/init 데몬으로 구현됨
  • 모든 사용자 프로세스의 최상위 조상 프로세스 (PID-1)
    • ps -e, ps ax 명령으로 확인 가능
  • 나머지 부팅 과정, 시스템 초기화 작업을 실행함
    • 사용자 환경을 준비함. 시스템 운영을 위한 서비스 프로그램의 실행 등
  • 계속 수행되며 시스템 운영을 관리하고 셧다운을 처리함
    • 사용자 프로세스의 정리, 로그아웃 후 로그인 서비스의 제공등을 함
  • /etc/init/ 디렉토리에 있는 'job 설정파일'을 읽음
    • job 설청 파일의 확장자는 .conf
    • init 데몬이 실행하는 job(실행 파일 || 셸 스크립트)이 정의 되어 있음
      • 이벤트가 발생할 때 상응하는 job을 시작하거나 중지시킴
  • '전통적 init 데몬'에서는 /etc/inittab 파일을 환경 설정 파일로 사용했음
    • 현재는 초기 런레벨을 설정하는 용도로만 사용됨
    • 이 파일에 업스타트 초기화 과정을 설명하는 내용이 있음
  • initctl 명령
    • job의 상태를 확인하거나 수동으로 시작/중지 시키는 명령
    • initctl command job
    • initctl list는 모든 job의 상태를 보여줌. (list 외에는 사용할 일이 없을것이다.)
    • initctl start job 또는 init stop job을 사용할 수 있음

환경 설정 파일과 스크립트

'upstart init deamon'은 기존 방식과 호환되도록 설계됨.

  • /etc/init/rcS.conf
    • 부팅 시 한번 실행되며 시스템 초기화와 관련이 있는 내용이 설정 되어 있음.
    • 주요 작엄은 초기 런레벨을 읽고 /etc/rc.d/tc.sysinit 스크립트를 실행하는 것.
    • 호스트명 설정, 시스템 점검, 파일 시스템의 마운팅, LVM 장치 활성화, 쿼터 설정 등
      서버가 작업을 실행하는 데 필요한 모든 작업을 수행함
  • /etc/init/rc.conf
    • 부팅되거나 런레벨이 바뀔 때 필요한 서비스를 시작시키거나 필요 없는 서비스를 중단시키기 위해 스크립트를 실행함.
    • 주요 작업은 /etc/rc.d/rc runlevel을 실행하는 것
  • /etc/inittab
    • 부팅 시 정해지는 초기 런레벨이 정의된 파일
    • '업스타트 init 데몬'을 사용하는 경우 초기 런레벨 외의 다른 설정은 의미가 없음
  • etc/rc.d/rc.local
    • 결과적으로 런레벨 2, 3, 5에서 가장 마지막에 실행되는 스크립트

init 프로세스와 런레벨

  • 초기 런레벨은 /etx/inittab 파일에서 id:5:initdefault:와 같이 설정 되어 있다.
  • 런레벨이 5로 부팅 되는 겨웅
    • /etc/rc.d/rc5.d/ 디렉토리에 존재하는 스크립트 파일이 실행됨
    • K로 시작하는 스크립트는 해당 서비스의 종료를 위한 것.
    • S로 시작하는 스크립트는 해당 서비스의 시작을 위한 것.
    • 이런한 파일은 /etc/tc.d/init.d/ 디렉토리에 돈대하는 실제 스크립트 파일에 대한 심벌릭 링크임
  • 런레벨 2,3,5에서 가장 마지막에 실행되는 스크립트는 S99local 이 가리키는 /etx/rc.d/rc.local
    • 관리자가 원하는 특별한 초기화 작업을 추가할 수 있음.

런레벨

  • 0 : 시스템이 종료될 때 사용되는 레벨로 기본값으로 설정해서는 안됨.
  • 1 : 단일 사용자 모드로, 로그인 과정 없이 root 사용자로 로그인 되며 콘솔에서 시스템 점검이나 복구를 위한 관리자 모드로 사용됨.
    명령 행 인터페이스가 제공되며 네트워크 서비스는 제공되지 않음
  • 2 : 기본적으로 네트워크 서비스를 제공하지 않는 다중 사용자 모드
  • 3 : 모든 네트워킹을 지원하는 다중 사용자 모드.
    리눅스 초기 시절에 보편적으로 사용되었던 레벨. CLI만 지원함
  • 4 : 사용하지 않음
  • 5 : 그래픽 사용자 환경을 제공하는 다중 사용자 모드 최근 배포판은 기본으로 설정됨
  • 6 : 시스템을 재부팅할 때 사용되는 레벨로 기본값으로 설정해서는 안 됨

telinit

  • 런레벨을 바꾸는 관리자 명령
  • telinit runlevel
    • telinit 3은 런레벨을 변경하며 텍스트 모드만 지원함.
    • telinit 0 -> 종료, telinit 6 -> 재부팅
  • runlevel
    • 이전 런레벨과 현재 런레벨을 확인하는 명령

chkconfig

부팅 시 런레벨에 따른 시스템 서비스의 활성화 여부를 확인하거나 변경하는 명령

  • chkconfig [--list] [service]

    • chkconfig --list는 각 런레벨에서 모든 서비스의 활성화 여부를 알려줌

    •   [ec2-user@ip-172-31-45-8 etc]$ chkconfig
      
        Note: This output shows SysV services only and does not include native
              systemd services. SysV configuration data might be overridden by native
              systemd configuration.
      
              If you want to list systemd services use 'systemctl list-unit-files'.
              To see services enabled on particular target use
              'systemctl list-dependencies [target]'.
      
        netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
        network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
        [ec2-user@ip-172-31-45-8 etc]$
    • chkconfig [--list levels] service <on|off>

      • 특정 런레벨에서 서비스의 활성화 여부를 지정
      • chkconfig --level 345 httpd on은 런레벨 3,4,5에서 httpd 서비스를 활성화 시킴

service 명령

시스템 운영 중에 /etc/rc.d/init.d/ 디렉토리에 존재하는 초기화 스크립트를 수동으로 실행 또는 중지 시키는 관리자 명령

  • service script command
    • service httpd start는 httpd를 시작 시킴
    • /etc/rc.d/init.d/httpd start도 같음
    • command는 start, stop, restart, reload, status 중 하나
  • service --status-all
    • 모든 초기화 스크립트의 상태를 출력함
  • 데스크톱 메뉴에서 '시스템>관리>서비스'를 실행하면 나오는 '서비스 설정 창'에서 서비스의 초기 설정(활성화 여부)과 실행의 시작/중지를 시킬 수 있음.

시스템 종료

개인 사용자의 로그아웃

  • 계정의 사용을 마치고 빠져 나오는 것
  • 데스크톱 환경에서 '시스템 > 로그아웃'
  • 로그인 셸에서 logout 또는 exit 명령

시스템의 종료

  • 관리자가 시스템을 안전하게 셧다운 하는 것
    • 접속중인 사용자에게 시스템의 종료를 알림
    • 사용자의 로그인을 차단하고 종료함
  • 데스크톱 환경에서 '시스템 > 끄기 > ...'
    • '다시 시작', '취소', '끄기'

shutdown

  • 시간을 정해 시스템을 종료하는 명령
  • shutdown [options] time [message]
  • option
    • -r : 재부팅
    • -c : 셧다운 취소
    • -k : 경고 메세지만 보냄
    • shutdown -r +10
  • time
    • 종료시간으로 절대시간(24시간 포멧의) 형식, +10은 10분 후
    • now는 즉시
    • shutdown -h now

시스템의 종료 절차

  • 실제 init 프로세스를 통해 런레벨을 바꾸어 셧다운이 처리됨
    • init 프로세스는 모든 프로세스에게 종료를 알림
    • 각 프로세스가 스스로 종료하도록 TERM 시그널을 보냄
    • 종료하지 않은 프로세스에게 강제 종료를 위한 KILL 시그널을 보냄
    • 시스템 파일을 잠그고 파일 시스템을 언마운트 함
    • 버퍼에 있는 데이터를 파일 시스템에 기록함 (sync)
    • 시스템 호출을 통해 커널에 재부팅 또는 종료를 요청함
  • -h 또는 -r 옵션을 사용하지 않으면 단일 사용자 모드로 부팅됨.
  • 종료를 위해 halt 명령을, 재부팅을 위해 reboot 명령을 사용할 수 있음

데스크톱

데스트톱 환견

  • GUI를 제공하는 사용자 환경
    • 그래픽 윈도우, 아이콘, 툴바 ,메뉴, 위젯 등을 마우스나 키보드로 조작
  • 대부분의 데스크톱은 X윈도우 시스템에 기반
  • 시각적으로 다양한 스타일의 데스크톱이 존재함
    • 일반적으로 서버로 사용하는 리눅스는 CLI만 제공한다.

GNOME

Red Hat 계열의 리눅스에서 기본 GUI

  • 단순함, 편의성, 안정성에 초점
    • 기본적으로 상단에 메뉴, 하단에 패널이 있음
    • 오른쪽 하단에서 2개의 작업 공간을 선택할 수 있음(가상윈도우)
  • 터미널 창에서 gnome-control-center&을 실행하면 제어판이 나옴

KDE

K 데스트톱이라고 하며 MS Windows와 비슷

  • 다양한 프로그램을 통합적인 모습으로 보여줌
  • yum -y groupinstall 'KDE 데스크탑'으로 설치 한다고?
  • 로그인 할때 GNOME || KDE 선택 가능함.
728x90
반응형

'OS > Linux' 카테고리의 다른 글

[Linux] vi 사용 텍스트 편집  (0) 2020.10.25
[Linux] 사용자 관리  (0) 2020.10.25
[Linux] 파일과 디렉토리  (0) 2020.10.24
[Linux] Shell 사용하기  (0) 2020.10.16
[Linux] 리눅스 설치준비 및 표준 디렉토리  (0) 2020.10.16

파일과 디렉토리

  • 학습 개요
    리눅스에서는 모든 것이 파일로 취급되어 디렉토리나 디바이스도 파일로 취급한다.
    파일의 종류를 살펴보고 파일과 디렉토리의 접근권한이 가지는 의미를 이해해 보자.
    파일과 디렉토리를 다루기 위한 쉘 명령을 익히고 텍스트 파일의 출력을 위한 명령을 알아보자.

  • 학습 목표

    1. 리눅스에서 파일의 종류를 나열할 수 있다.
    2. 파일과 디렉토리를 조작하는 명령의 사용법을 익힌다.
    3. 파일과 디렉토리의 접근권한에 관해 설명할 수 있다.
    4. 파일의 내용을 확인하는 명령을 나열하고 설명할 수 있다.

파일 시스템 탐색

파일 시스템

  • 운영체제가 디스크(파티션)상에 파일을 구성하는 방식
  • 파일과 디렉토리의 집합을 구조적으로 관리하는 체계
  • 다양한 형식의 파일 시스템이 존재
  • 리눅스는 전체 파일 시스템을 개의 트리구조로 관리
    • 1개의 루트(/) 디렉토리만 있음.

ls

  • 파일과 서브 디렉토리 목록을 나열.
    • 파일(또는 디렉토리)가 가지는 속성까지 확인할 수 있음.
  • ls [options] [names]
    • ls directory
      • 디렉토리에 존재하는 파일과 서브 디렉토리의 정보 출력.
    • ls file
      • 해당 파일의 정보를 출력
  ➜  UNIX git:(master) ✗ ls
  Lecture                        중간과제

  ➜  UNIX git:(master) ✗ ls -l
  total 0
  drwxr-xr-x   7 jeahasorrowkissed  staff  224 Oct 19 22:06 Lecture
  drwxr-xr-x  11 jeahasorrowkissed  staff  352 Oct 15 17:46 중간과제

  ➜  UNIX git:(master) ✗ ls -l Lecture
  total 80
  -rw-r--r--  1 jeahasorrowkissed  staff   9161 Oct 16 16:47 01_LINUX.md
  -rw-r--r--  1 jeahasorrowkissed  staff   5615 Oct 16 18:06 02_Install_Linux.md
  -rw-r--r--  1 jeahasorrowkissed  staff  14176 Oct 16 19:53 03_Use_Shell.md
  -rw-r--r--  1 jeahasorrowkissed  staff   1473 Oct 19 22:13 04_File_And_Directory.md

  ➜  UNIX git:(master) ✗ ls -l ./Lecture/01_LINUX.md
  -rw-r--r--  1 jeahasorrowkissed  staff  9161 Oct 16 16:47 ./Lecture/01_LINUX.md

옵션

짧은 옵션 긴 옵션 설명
-a --all 모든 파일을 보여줌 점(.)으로 시작하는 숨김 파일도 보여줌
-d --directory 디렉토리 자체에 대한 정보를 보여줌
-F --classify 우측에 파일의 종류를 알려주는 문자를 붙임. 실행파일은 *, 디렉토리는 /, 심볼릭 링크는 @
-l --format=long 긴 포맥으로 결과를 보여줌
-R --recursive 재귀적으로 수행되는데 서브 디렉토리의 내용도 나열함
-S --sort=size 파일의 크기 순서로 결과를 보여줌
-t --sort=time 최종 수정 시간 순으로 보여줌

파일의 종류

  • 정규 파일
    • 데이터를 저장하는 데 주로 사용
    • 각종 텍스트 파일, 실행 파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일
    • 실행 파일이나 이미지 파일의 경우 바이너리 형태로 저장되어 바이너리 파일이라고 함
  • 디렉토리
    • 리눅스에서 디렉토리도 파일로 취급
    • 해당 디렉토리에 저장된 파일이나 하위 디렉토리에 대한 정보가 저장
  • 심볼릭 링크
    • '소프트 링크'라고도 함
    • 원본 파일에 대한 링크로서 다른 이름으로 파일명을 지정한 것
      • 윈도우 바로가기와 비슷한 것
  • 장치 파일
    • 리눅스에서 프린터, CD-ROM, HDD, 키보드 등과 같은 각종 장치를 파일로 취급 함
    • 블록 디바이스 파일과 문자 디바이스 파일로 구분 됨

file

파일의 종류를 알려주는 명령

  ➜  UNIX git:(master) ✗ file ./Lecture/01_LINUX.md
  ./Lecture/01_LINUX.md: UTF-8 Unicode text

pwd

절대 경로 방식으로 현재 작업 디렉토리를 알려줌

➜  UNIX git:(master) ✗ pwd
/Users/Jeaha/git/KNOU/3-2/UNIX

cd

작업 디렉토리를 이동

  • 디렉토리를 지정하지 않으면 사용자의 홈 디렉토리로 이동함
  • cd [directory]
➜  UNIX git:(master) ✗ cd Lecture
➜  Lecture git:(master) ✗

파일과 디렉토리 관리

mkdir

  • 디렉토리를 만드는 명령
  • mkdir [options] directories
  • 옵션
    • -p 필요한 경우 상위 디렉토리를 만듦
    • -m 디렉토리를 만들면서 접근 권한을 설정

rmdir

  • 디렉토리 삭제 명령
    • 비어있는 디렉토리만 삭제할 수 있음
    • 조건없이 디렉토리를 삭제하려면(모든 파일과 하위 폴더를 포함) rm -r dir 또는 rm -rf dir을 사용해야 함(위험하다.)
  • 옵션
    • -p 비어있는 디렉토리를 삭제하면서 부모 디렉토리가 비게 되는 경우 사용

cp

  • 파일이나 디렉토리를 복사
  • cp [options] file1 file2
    • cp -i file1 file2
    • 대상 파일이 존재 한다면 덮어쓰기 함.
  • cp [options] files directory
    • 마지막 인자가 디렉토리인 경우
    • 여러 파일을 지정된 디렉토리에 같은 이름으로 복사
    • cp file1 file2 dir1
  • cp -r [options] dir3 dir2
    • 디렉토리응 재귀적으로 복사할 때 -r 옵션 사용
    • 대상 디렉토리가 존재하는 경우, 그 곳에 디렉토리 자체가 복사됨

mv

  • 파일의 이름을 변경하는 명령
  • 또는 다른 디렉토리로 이동하는 명령
  • mv [options] source target
    • mv file2 file2
    • 대상 파일이 존재한다면 덮어쓰기가 수행됨
    • mv dir1 dir2
    • 디렉토리의 이름을 변경함
      • 대상 디렉토리가 존재한다면 서브디렉토리로 이동됨.
  • mv [options] files directory
    • 마지막 인자가 존재하는 디렉토리인 경우
    • 여러 파일을 지정된 디렉토리로 이동함
    • mv file1 file2 dir1

rm

  • 파일을 삭제
    • 기본적으로 파일만 삭제함
  • rm [options] files
    • 파일을 삭제할 때 조심해야 함
    • alias rm='rm -i'를 해두는 것도 좋은 방법임
  • 옵션
    • -r 디렉토리와 하위 를 모두 함께
    • -i 삭제 전에 물어봄
    • -f 물어보지 않고 무조건 삭제

파일의 접근 권한

  • 권한이 없는 사용자의 접근을 막기 위해 접근권한을 설정함
    • 사용자 부류에 따라 읽기/쓰기/실행 권한을 각각 설정함
  • 사용자 부류
    • u 소유자
    • g 그룹
    • o 기타
  • 권한
    • r 읽기
    • w 쓰기/수정/삭제/이름바꾸기
    • x 실행

디렉토리의 접근 권한

  • 권한
    • r : 디렉토리가 가진 파일과 서브 디렉토리의 목록 보기
    • w : 파일과 디렉토리를 만들거나 삭제
    • x : 디렉토리로 이동하거나 디렉토리에서 프로그램 실행 또는 파일의 메타데이터 보기
  • 디렉토리를 자유롭게 사용하려면 읽기/쓰기/실행 권한을 모두 가져야 함
    • 적어도 읽기/실행 권한을 가지고 있어야 해당 디렉토리로 이동하거나 해당 디렉토리에서 ls -l을 실행할 수 있음.
➜  UNIX git:(master) ✗ ls -ld /home ~root
lrwxr-xr-x  1 root  wheel   25 Oct 22 11:07 /home -> /System/Volumes/Data/home
drwxr-x---  7 root  wheel  224 Apr 19  2020 /var/root

chmod

파일의 소유자가 파일의 접근 권한을 변경하는 명령

  • chmod [options] mode files
    • -R 옵션을 디렉토리에 적용하면 모든 파일과 서브 디렉토리까지 권한을 변경
  • 8진수 모드
    • 읽기(r)은 4, 쓰기(w)는 2, 실행(x)는 1
    • 예: rwxr-xr-x -> 111101101 -> 755
    • chmod -R 755 dir1
  • 기호 모드
    • 형식은 [ugoa][+-=][rwx]
    • ugoa는 각각 user, group, other, all을 의미. 생략 하면 all
    • +-=는 각각 권한의 추가, 제거, 지정을 의미함.
    • chmod u+x file1
    • chmod u=rwx,g=rx,o=x file2

umask

  • 접근권한의 기본값을 출력하거나 설정하는 명령
    • 보통 /etc/bashrc에 설정되어 있음
  • umask [-S][mask]
    • 단순히 umask 또는 umask -S 명령을 실행하면 현재 기본값을 알 수 있음
    • -S 옵션은 기호모드로 결과를 보여줌
    • umask 002 마스크 값이 라는 것은 -------w-, 즉 기타 사용자에게 쓰기 권한을 부여하지 않겠다는 것.
    • 결국 마스크 값이 002 라는 것은 접근 권한을 주는것.
    • 파일의 경우 실행 권한은 부여되지 않으며 접근 권한은 664가 됨.
  • 참고로 touch file 명령을 파일의 접근/수정 시간을 현재 시간으로 변경하며 파일이 존재하지 않으면 파일을 생성함.

chown

root 사용자가 파일이나 디렉토리 소유자를 변경하는 명령

  • 파일 또는 디렉토리는 그것을 생성한 사용자 계정과 그룹이 곧 소유자와 소유 그웁으로 설정됨.
  • chown [options] newowner files
  • newowner에 소유자만 주어지면 소유자를 변경하는것.
    • 소유자:그룹 또는 소유자.그룹 의 형태로 지정할 수 있음.
      • 소유자가 생량디면 :그룹 변경이 없어지는 것이며, 그룹이 생략되면 소유자: 소유자와 같은 그룹으로 정해짐
    • -R 옵션을 사용하여 디렉토리에 재귀적으로 적용할 수 있음

ln

  • 파일에 다른 이름으로 연결(link)하는 명령
  • ln [options] 원본파일명 [대상파일명]
  • 기본적으로 하드 링크를 만들며, -s 옵션을 사용하면 심벌릭 링크가 만들어짐
  • 하드 링크(hard link)
    • 하나의 파일에 다른 이름을 부여하는 것
    • 원본 파일의 링크 카운트가 증가함
    • 다른 파일 시스템에는 링크할 수 없음
  • 심벌릭 링크
    • 윈도우 '바로가기'와 같은 역할의 독립적 파일
    • 다른 파일 시스템에 링크를 만들 수 있음
    • 원본을 삭제하면 심벌릭 링크는 의미가 없어짐
    • 디렉토리의 경우, 심벌릭 링크만 만들 수 있음
  • 하드 링크와 심벌릭 링크의 차이
➜  Lecture git:(master) ✗ ll
total 96
-rw-r--r--  1 jeahasorrowkissed  staff   8.9K Oct 16 16:47 01_LINUX.md
-rw-r--r--  1 jeahasorrowkissed  staff   5.5K Oct 16 18:06 02_Install_Linux.md
-rw-r--r--  1 jeahasorrowkissed  staff    14K Oct 16 19:53 03_Use_Shell.md
-rw-r--r--  1 jeahasorrowkissed  staff   9.9K Oct 22 11:41 04_File_And_Directory.md
➜  Lecture git:(master) ✗ ls -l 04_File_And_Directory.md
-rw-r--r--  1 jeahasorrowkissed  staff  10115 Oct 22 11:41 04_File_And_Directory.md
➜  Lecture git:(master) ✗ ln 04_File_And_Directory.md 04.hl
➜  Lecture git:(master) ✗ ln -s 04_File_And_Directory.md 04.sl
➜  Lecture git:(master) ✗ ls -li 04*
37003925 -rw-r--r--  2 jeahasorrowkissed  staff  10115 Oct 22 11:41 04.hl
37110394 lrwxr-xr-x  1 jeahasorrowkissed  staff     24 Oct 22 11:45 04.sl -> 04_File_And_Directory.md
37003925 -rw-r--r--  2 jeahasorrowkissed  staff  10115 Oct 22 11:41 04_File_And_Directory.md

37003925 -rw-r--r-- 2 jeahasorrowkissed staff 10115 Oct 22 11:41 04_File_And_Directory.md
의 2는 링크의 갯수를 의미함.
37110394 lrwxr-xr-x 1 jeahasorrowkissed staff 24 Oct 22 11:45 04.sl -> 04_File_And_Directory.md
의 ->는 대상 파일의 심볼릭 링크임을 의미함.

파일의 내용 확인

more

  • 파일의 내용을 한 화면 단위로 출력하는 명령
    • 한 화면을 보여준 상태에서 멈춤
  • more [options] file
    • 한 화면에 모두 보여줄 수 없을 때 --More--(69%)와 같은 메세지가 나옴
    • space bar를 누르면 다음 화면으로 이동
    • enter를 누르면 한라인씩 이동
    • q를 누르면 종료
    • more -20 +10 /etc/services
      • 10번째 라인부터, 20라인 단위로 보여줌
    • 한방향으로만 스크롤 가능.

less

  • more 명령의 개선된 버전 양방향 스크롤 가능
  • 위 또는 아래로 스트롤 가능
    • page up, page down, up, down등
  • 그외 내부 명령이 있음
    • 라인/화면 단위 이동, 라인/퍼센트로 위치 지정, 검색 등

head

파일의 맨 앞 부분을 10라인(기본 값) 출력하는 명령

  • head [options][files]
    • 옵션 -n 숫자 또는 -숫자 를 사용하면 보고싶은 라인 수를 변경할 수 있음
    • head -n 5 /etc/passwd
    • head -3 /etc/*.conf

tail

파일의 마지막 부분을 10라인(기본값) 출력하는 명령

  • tail [options] [files]
    • head 명령과 같은 옵션을 사용할 수 있으며,
      옵션 -n + 숫자를 사용하면 해당 라인부터 출력함
    • -f 옵션을 사용하면 변화하는 파일의 내용을 계속 감시함.
      • tail -f /log/catalina.out

cat

하나 또는 여러 파일을 연결(concatenate) 시켜 화면에 출력

  • cat [options] [files]
    • 파일을 지정하지 않으면 표준 입력으로부터 읽음
    • cat > file을 수행하여 텍스트 파일로 만들 수 있음
    • 여러 파일의 내용을 연결시킬 때 사용할 수 있음 (리다이렉션 활용)
    • 옵션 -n을 사용하면 라인 번호를 붙일 수 있음
➜  Lecture git:(master) ✗ cat > cat1.txt
asdf
1234
➜  Lecture git:(master) ✗ cat > cat2.txt
cat2 22222
eee222^C
➜  Lecture git:(master) ✗ cat cat2.txt
cat2 22222
➜  Lecture git:(master) ✗ cat cat*.txt > total.txt
➜  Lecture git:(master) ✗ cat total.txt
asdf
1234
cat2 22222
➜  Lecture git:(master) ✗ ll
total 144
-rw-r--r--  1 jeahasorrowkissed  staff   8.9K Oct 16 16:47 01_LINUX.md
-rw-r--r--  1 jeahasorrowkissed  staff   5.5K Oct 16 18:06 02_Install_Linux.md
-rw-r--r--  1 jeahasorrowkissed  staff    14K Oct 16 19:53 03_Use_Shell.md
-rw-r--r--  2 jeahasorrowkissed  staff    13K Oct 22 12:08 04.hl
lrwxr-xr-x  1 jeahasorrowkissed  staff    24B Oct 22 11:45 04.sl -> 04_File_And_Directory.md
-rw-r--r--  2 jeahasorrowkissed  staff    13K Oct 22 12:08 04_File_And_Directory.md
-rw-r--r--  1 jeahasorrowkissed  staff    10B Oct 22 12:09 cat1.txt
728x90
반응형

'OS > Linux' 카테고리의 다른 글

[Linux] 사용자 관리  (0) 2020.10.25
[Linux] 시작과 종료  (0) 2020.10.24
[Linux] Shell 사용하기  (0) 2020.10.16
[Linux] 리눅스 설치준비 및 표준 디렉토리  (0) 2020.10.16
[Linux] 리눅스 란  (0) 2020.10.16

셸 사용하기

  • 학습 개요
    셸은 명령 행 인터페이스를 제공한다.
    셸 명령의 기본 사용법과 온라인 매뉴얼의 활용법을 살펴본다.
    셸이 제공하는 강력한 기능으로 파이프, 입출력 리다이렉션, 명령 치환, 수식과 변수의 확장 및 환경 변수와 환경 설절 파일 등을 학습한다.

  • 학습 목표

    1. 셸 명령의 기본 사용법을 익히고 온라인 매뉴얼 기능을 활용할 수 있다.
    2. 히스토리 기능과 명령 행 자동 완성 기능을 사용할 수 있다.
    3. 셸의 특수문자, 명령 치환, 수식과 변수의 확장에 관해 설명할 수 있다.
    4. 셸의 환경 설정 파일을 나열하고 설명할 수 있다.

셸 개요

Shell

  • 명령어 해석기 또는 명령 행 인터페이스
    • 사용자와 커널 사이에서 명령어를 해석하여 처리
    • 셸 명령을 사용하면 GUI로는 하기 힘든 다양한 기능을 수행할 수 있음
  • 셸 명령을 프로그램으로 작성하여 처리할 수도 있음
    • 셸 스크립트는 텍스트 파일로, 프로그래밍을 통한 셸 명령의 조합
    • 반복적으로 수행되는 작업을 셸 스크립트로 작성할 수 있음
    • 셸이 쉘 스크립트 파일을 읽어 처리할 수 있음
  • 로그인을 하면 기본 셸이 주어짐.

Shell 사용하기

  • 터미널에서 로그인을 해야 함
  • GNOME 데스크톱에서 터미널 창을 실행 시켜 셸을 사용함
  • '프로그램 > 시스템도구 > 터미널'
    • 여러 터미널 창을 띄워 사용할 수 있음
    • 셸은 명령 프로프트와 명령 행을 제공함
  • 기본적으로 한 라인에 명령을 입력하고 Enter를 쳐 명령을 수행함
    • 결과가 출력되면 명령 프롬프트가 다시 등장함
    • 세미콜론(;)을 사용하면 한 라인에 여러 명령을 입력할 수 있음

Shell의 종류

  • 많은 리눅스 배포판에서 bash를 기본 셸로 사용함
    • 명령 프롬프드로 일반 사용자는 $, root 사용자는 #을 사용함
  • 셸의 종류에 따라 alias 설정, 초기화 파일, 스크립트 작성, 명령 행 완성 기능, 명령 행 편집 기능 등에 차이가 있음

bash shell

  • Bourne Again Shell로 Bourne Shell의 개선된 버전
    • 많은 셸 스크립트의 문법이 Bourne Shell에 기반을 둠
  • C Shell과 Korn Shell의 유용한 기능을 가져옴
  • 실행 명령은 /bin/bash
    • /etc/passwd 파일에 다음과 같은 라인이 있음
    • jeaha:x:500:500:jeaha:/home/jeaha:/bin/bash

셸 선택하기

  • 기본 셸을 변경할 수 있음
    • chsh -s /bin/셸이름
  • 터미널 창은 대화형 셸임
    • 셸을 종료하면 exit 명령어 또는 ctrl + d를 실행
  • 로그인 셸과 비로그인 셸을 구분해야 함.
    • logout 명령은 로그인 셸에서만 사용 가능
    • 셸 프롬프트에서 셸 프로그램을 실행하면 '서브 셸'이 실행 됨

셸 명령

셸 명령의 형식과 실행

  • $명령어 옵션 인수
    • 예) usermod -L jeaha
    • 옵션과 인수는 여럿일 수 있으며 선택적 또는 필수적
  • 명령어는 프로그램의 이름
  • 가장 간단한 형태의 실행은 명령의 이름만 사용
    • who, date, ls, pwd

chsh 명령

  • 기본 셸을 바꾸는 명령
  • chsh [*option*] [*username*]
    • 대괄호는 생략 가능, 이텔릭체는 적당한 내용으로 대체해야 함
    • 복수는 여러 개가 가능하다는 의미

옵션과 인수

  • 짧은 옵션 -
    • li -l
    • ls -latls -l -a -t는 같은 것
  • 긴 옵션 --
    • ls --all
  • 인수는 명령의 수행 대상을 지정하는 것
    • cat -n /etc/passwd
    • grep "jeaha" /etc/passwd
  • 옵션도 인수를 가질 수 있음
    • chsh -s /bin/sh jeaha
    • chsh --shell=/bin/bash jeaha

명령어의 종류

명령어 설명
엘리어스 alias 명령을 사용하여 만든 명령의 별칭
셸 예약어 예약된 단어로 do, while, case
함수 셸에서 수행되는 함수의 정의
내장 명령 셸 내부에 존재하는 명령으로 cd, echo, pwd
일반 명령 실행 파일이 존재하는 명령

환경 변수 PATH에 설정된 경로 중에 실행 파일이 존재하면 이름만으로 실행이 가능

  • 아니면 절대경로를 사용해야 함
  • 현재 디렉토리(.)는 보통 PATH에 포함되어 있지 않음
  • echo $PATH로 저장된 경로를 확인할 수 있음

alias

자주 사용되는 명령의 단축 명령을 만드는 명령.
계속 유지하려면 셸의 환경 설정 파일에 기록해 두어야 함.

  • alias
  • alias la=ls -a
  • alias rm=rm -i

type

명령이 어떻게 해석 되는지 알려주는 명령

  • type cd
  • type -a ls

which

실행 프로그램을 환경변수 PATH를 기초로 찾아 경로를 출력함

  • which rm
  • 비슷한 명령으로 whereis가 있음

man

메뉴얼 페이지를 보여줌

  • 명령의 사용법이나 설정 파일 등에 관한 온라인 도움말 제공
  • man passwd 또는 man 5 passwd
  • 명령어의 간단한 도움말을 보려면 명령 --help를 사용할 수 있음.
섹션 내용 섹션 내용
1 사용자 명령 5 시스템 설정 파일
2 커널의 시스템 호출 6 게임
3 C 라이브러리 함수 7 파일 포멧, 인코딩 등
4 디바이스 드라이버 정보 8 시스템 관리 명령

history

이전에 수행했던 명령 행의 목록을 불러옴

  • history 또는 history 10

히스토리 기능을 이용하여 명령을 실행하는 방법

  • 이전에 수행했던 명령을 이용하여 명령을 수행할 수 있음.
  • 다음을 입력하고 실행함.
    • 명령 행 편집도 가능
입력 방법 설명
!! 직전 명령을 불러옴
!n 히스토리 목록에서 해당 명령을 불러옴
!string 지정된 문자열로 시작되는 최근 명령을 불러옴
up or down 누를 때마다 직전 또는 직후 명령을 불러옴

명령 행 자동 완성

  • 일부만 입력하고 나머지를 자동으로 완성하는 기능
  • 처음 몇 자만 입력한 후, tab 키를 누르면 실행됨
    • 명령어, 변수, 파일, 디렉토리 등을 구분하여 결정함
  • 정보가 충분하지 않은 경우, tab 키를 한번 더 누르면 모든 가능한 경우를 보여주고 원래의 명령 행이 유지 됨

명령의 연결과 확장

특수문자

셸에서 특별한 의미를 가지는 문자

문자 의미
\ 특수 문자의 기능을 제거하는 escape 문자 또는 긴 명령 행을 분리할 때 사용
~ ~ 또는 ~username은 사용자의 홈 디렉토리를 의미
. 현재 작업 디렉토리를 표시 또는 명령 행의 맨 앞에서 셸 스크립트를 실행하는 source 명령
.. 현재 디렉토리의 부모 디렉토리
# # 문자의 뒤에 나타나는 문자를 주석으로 처리
$ $ *변수*는 변수의 값을 추출
& 명령&는 명령을 백그라운드로 실행시킴
* 파일 이름에서 사용할 때, 0 개 이상의 임의 문자열과 대응됨
? 파일 이름에서 사용할 때, 1 개 문자와 대응됨
| 앞 명령의 출력을 다음 명령의 입력으로 연결 시킴
<또는> 입출력 리다이렉션에서, 즉 파일로부터 입력 받을 때 또는 파일로 출력할 때 사용
>> 표준 출력을 파일의 끝에 덧붙일 때 사용
! 명령 히스토리 기능을 이용할 때 사용

파이프

앞 명령의 출력 결과를 다음 명령의 입력으로 연결

  • 명령1 | 명령2
    • cat /etc/passwd | sort | more

입출력 리다이렉션

  • 명령 < 파일 : 명령 수행에 필요한 표준 입력 대신 파일로부터 얻음
    • sort < /etc/passwd
  • 명령 > 파일 : 명령 수행의 결과를 표준 출력으로 보내지 않고 파일에 기록함
    • grep typedef /usr/include/* > typedef.out
  • 명령2 > 파일 : 명령 수행 중 표준 오류 출력을 파일에 덧붙임
    • ls 2 >> error.txt

명령 치환

명령을 수행할 때, 명령의 인수로서 다른 명령의 결과를 사용

$(command) 또는 `command`

➜  UNIX git:(master) ✗ ls -l $(which passwd)
-rwxr-xr-x  1 root  wheel  45312 Sep 22 09:29 /usr/bin/passwd
➜  UNIX git:(master) ✗ which passwd
/usr/bin/passwd
➜  UNIX git:(master) ✗ ls -l /usr/bin/passwd
-rwxr-xr-x  1 root  wheel  45312 Sep 22 09:29 /usr/bin/passwd
➜  UNIX git:(master) ✗

인용 부호

  • 빈칸을 포함하는 문자열을 개의 인수로 사용할 때 인용 부호가 필요함
  • 작은 따옴표 ''는 특수 문자의 의미를 제거함
  • 큰 따옴표 ""는 $, ``, , !를 해석하여 확장함.
➜  UNIX git:(master) ✗ echo "$(date)"
Fri Oct 16 19:29:05 KST 2020
➜  UNIX git:(master) ✗ echo "\$(date)"
$(date)
➜  UNIX git:(master) ✗ echo 'Today is $(date)'
Today is $(date)
➜  UNIX git:(master) ✗

수식과 변수의 확장

  • 수식의 결과를 명령 수행 전에 전달
    • $[수식] 또는 $((수식))
  • 변수의 값을 추출하여 명령 수행 전에 전달
    • $변수
➜  UNIX git:(master) ✗ echo "I am $[ 2020 - 1992 ] years old."
I am 28 years old.
➜  UNIX git:(master) ✗ echo BASH
BASH
➜  UNIX git:(master) ✗ ls -l $BASH
total 24
-rw-r--r--   1 jeahasorrowkissed  staff  10623 Oct 16 19:31 03_Use_Shell.md
drwxr-xr-x   4 jeahasorrowkissed  staff    128 Oct 16 16:51 Lecture
drwxr-xr-x  11 jeahasorrowkissed  staff    352 Oct 15 17:46 중간과제

셸 변수

셸 변수와 환경 변수

  • 셸 변수는 셸의 환경을 설정하기 위함 값을 저장

    • 모든 변수와 값을 출력하기 위해 set 명령을 사용
  • 셸 변수

    • 현재 셸에서만 사용이 가능하고 서브 셸로는 전달되지 않음(지역변수)
  • 환경 변수

    • 현재 셸뿐만 아니라 서브 셸로도 전달 (전역 변수)
    • 보통 변수 이름으로 대문자를 사용함
    • 터미널 창을 열어 셸을 시작하면 이미 많은 환경 변수가 설정되어 있음
    • 모든 환경 변수와 값을 출력하기 위해 prrntenv 명령을 사용
  • 변수 설정과 환경 변수로 만드는 방법

    • 변수=값
    • export 변수
  • 특정 환경 변수의 값 확인하는 방법

    • printenv 변수
    • echo $변수는 모든 종류의 변수 값을 확인할 수 있음
  ➜  UNIX git:(master) ✗ FOO=bar
  ➜  UNIX git:(master) ✗ export FOO
  ➜  UNIX git:(master) ✗ sh
  sh-3.2$ echo $FOO
  bar
  sh-3.2$ printenv FOO
  bar
  sh-3.2$ exit
  exit
  ➜  UNIX git:(master) ✗ unset FOO

자주 사용되는 환경 변수

변수 내용
HISTSIZE 1개 셸에서 저장되는 명령 히스토리 목록의 최대 개수로 기본 값은 1000
HOME 홈 디렉토리
MAIL 사용자의 메일박스에 해당하는 파일로 보통 /var/spool/mail/username
PATH 명령을 수행할 때 실행 파일을 찾기 위한 디렉초리 목록
PS1 셸 프롬프트를 표시하기 위한 문자열
SHELL 사용 중인 기본 셸
PWD 현재 작업 디렉토리
USER 현재 사용자 계정

로그인과 셸의 환경 설정 파일

  • 로그인할 때 또는 셸을 시작할 때 자동으로 실행되는 명령을 저장한 파일
    • 시스템 환경 설정 파일과 사용자 환경 설정 파일이 있음
    • 셸의 종류에 따라 다른 이름의 파일을 사용함
    • bash 셸의 경우 다음과 같음.
파일 설명
/etc/profile 모든 사용자에게 적용. 로그인할 때 가장 먼저 수행 됨 PATH, MAIL, HISTZISE 등 전역의 환경 변수가 설정됨
~/.bash_profile 로그인할 때 수행되며 개별 사용자에게 적용됨 보통 내부에서 ~./bashrc를 수행
~/.bashrc 셸을 시작할 때마다 수행되며 개별 사용자에게 적용됨 보통 내부에서 /etc/bashrc를 수행
/etc/bashrc 모든 사용자에게 적용. 셸을 시작할 때마다 수행됨 PS1, alias 설정, umask를 사용한 접근 권한의 초기값, 함수등 설정.
~/.bash_logout 로그아웃을 수행할 때 실행되는 스크립트 파일
728x90
반응형

'OS > Linux' 카테고리의 다른 글

[Linux] 사용자 관리  (0) 2020.10.25
[Linux] 시작과 종료  (0) 2020.10.24
[Linux] 파일과 디렉토리  (0) 2020.10.24
[Linux] 리눅스 설치준비 및 표준 디렉토리  (0) 2020.10.16
[Linux] 리눅스 란  (0) 2020.10.16

리눅스 설치

  • 학습 개요
    CentOS Linux 배포판의 설치를 위한 준비 작업을 알아본다.
    리눅스 파티션의 의미, 장치이름과 주요 표준 디렉토리의 종류와 용도를 살펴본다.
    CentOS의 설치 과정을 학습하고 설치함으로 실습을 준비한다.

  • 학습 목표

    1. 리눅스 설치를 위한 준비 과정을 설명할 수 있다.
    2. 파티션, 장치이름, 리눅스 표준 디렉토리에 관해 설명할 수 있다.
    3. CentOS 운영체제를 설치할 수 있다.

리눅스 실습 환경의 준비

CentOS

  • RHEL의 소스코드를 이용해 만들어진 무료 배포판.
  • 상용 RHEL과 호환되나 운영상의 문제가 생길 때 스스로 해결해야 함.
  • 웹 서버나 데이터베이스 서버용 컴퓨터로 널리 사용됨.
  • 리눅스 마스터 1급 2차 : CentOS 6.9 또는 Fedora 13 버전으로 시험 진행.

CentOS 설치를 위한 하드웨어 사양

  • i386 || x86_64 프로세서
  • GUI를 사용하려면 512M이상의 RAM과 5G 이상의 하드디스트가 필요함.

설치전 준비 작업

추후 정리 후 링크 연결 하겠음.
ISO 이미지 파일을 가상머신 SW에 설치하거나 설치 DVD를 만들어 설치할 수 있음.

하드디스크의 비어있는 파티션에 설치

  • 기존 운영체제에서 사용하지 않는 파티션이 있는지 확인.
    • 리눅스용 파티션을 준비하는 것.
  • 리눅스 설치 공간은 기존의 운영체제 공간과 구분됨.
  • 부팅시 윈도우와 리눅스 중 선택할 수 있음(멀티부팅)

가상머신 SW를 이용하여 설치

  • 가상머신 소프트웨어 설치 후 가상머신에 리눅스 설치
  • 게스트 운영체제로 설치됨.

가상머신에 설치하는 방법으로 추후 정리하여 링크로 연결 하겠음.

저장 장치 이름과 표준 디렉토리

파티션

  • 하드디스크를 논리적으로 나눈 구역.
  • 파티션 별로 파일 시스템을 만들 수 있음.
  • 윈도우에서는 각 파티션 마다 각각의 드라이브로 지정함 (C:, D:, ...)
  • 리눅스는 오직 개의 루트 디렉토리(/)만을 가짐.
    • 파티션은 푸트 파일 시스템의 특정 디렉토리에 부착됨.
      • 저장장치를 사용하려면 해당 저장장치 이름을 파일 시스템의 특정 디렉토리에 마운트 시켜야 함.
    • 예) 장치이름/dev/sdb1 을 /home에 부착
  • Linux는 하드디스트나 주변 장치를 모두 파일로 취급함.
  • 네트워크 소켓이나 프로세스, 모든 주변 장치 등을 파일처럼 다룸.

장치 이름

  • 리눅스에서 사용하는 하드디스트 장치 또는 파티션의 이름
  • IDE 디스크 : 이름에 'hd'를 붙임.
    • /dev/hda, /dev/hdb, ...
  • SCSI 디스트 : 이름에 'sd'를 붙임
    • /dev/sda, /dev/sdb, ...
  • 물리적인 하드디스크가 추가될 때 알파벳 순서대로.
  • 파티션 번호는 숫자를 1부터 차례대로 붙임
    • /dev/hda1, /dev/hda2, ...
  • CD/DVD
    • /dev/sr0, /dev/sr1, ...

리눅스 표준 디렉토리

다양한 배포판이 등장함으로써 디렉토리 구조나 사용방법의 통일성을 위해 디렉토리 표준이 생겼음.
거의 모든 리눅스 배포판이 비슷한 디렉토리 구조를 갖게 됨.

/ -               : 루트 디렉토리
  |                 * 전체 파일 시스템의 최상위 경로
  +- bin          : 바이너리 디렉토리
  |                 * 기본적인 명령의 실행 파일들이 위치
  +- sbin         : 바이너리 디렉토리
  |                 * 시스템 관리와 관련된 명령의 실행 파일이 위치
  +- boot         : 부트 디렉토리
  |                 * 리눅스가 부팅될 때 사용되는 설정 파일이 위치
  |                 * 커널 이미지(vmlinz)와 부트 로더 설정 파일을 포함
  +- dev          : 디바이스 디렉토리
  |                 * 장치를 접근하는데 사용되는 '디바이스 파일'이 위치
  +- etc          : 시스템 설정 파일 디렉토리
  |                 * 초기화 스크립트, 사용자 정보 등 시스템의 중요한 환경 설정 파일이 위치
  +- home         : 사용자 계정 디렉토리
  |                 * 사용자 계정의 홈 디렉토리가 만들어지는 디렉토리 예) /home/jeaha
  |                 * 사용자의 홈 디렉토리는 해당 사용자만 사용할 수 있는 독립적인 공간
  +- lib          : 공유 라이브러리 디렉토리
  |                 * 프로그램들이 사용하는 시스템 라이브러리 파일들이 위치
  +- media        : 미디어 디렉토리
  |                 * 이동식 저장장치가 마운트 될 때, 마운트 지점을 제공함.
  +- proc         : 시스템 정보 디렉토리
  |                 * 커널이 사용하는 가상의 파일 시스템
  +- root         : 루트 계정의 디렉토리
  |                 * root 계정의 홈 디렉토리
  +- usr          : 사용자 디렉토리
  |   +- bin      : 여러가지 실행파일
  |   +- sbin     : 여러가지 실행파일
  |   +- include  : 라이브러리 헤더파일
  |   *- lib      : 실행파일을 위한 사용자 라이브러리
  *- var          : 가변 자료 저장 디렉토리
                    * 시스템 운영 중에 필요한 가변 자료가 저장되는 디렉토리
                    * 시스템 작동 로그, 인쇄, 메일 등

리눅스 설치하기

가상머신에 설치하는 방법을 추후 정리하여 링크로 연결 하겠음.

728x90
반응형

'OS > Linux' 카테고리의 다른 글

[Linux] 사용자 관리  (0) 2020.10.25
[Linux] 시작과 종료  (0) 2020.10.24
[Linux] 파일과 디렉토리  (0) 2020.10.24
[Linux] Shell 사용하기  (0) 2020.10.16
[Linux] 리눅스 란  (0) 2020.10.16

리눅스 란

  • 학습 개요
    UNIX 운영체제와 리눅스의 발전 과정을 알아보고 리눅스의 특징을 알아보자.
    GNU 프로젝트와 오픈소스 소프트뤠어 라이센스의 의미를 알아보자.
    또 주요 리눅수 배포판의 특징을 정리해 보자.

  • 학습 목표

    1. 리눅스의 발전사와 특징을 알아본다.
    2. 오픈소스 소프트웨어 라이센스의 종류를 나열해 보자.
    3. 주요 리눅스 배포판의 특징을 설명해 보자.

유닉스와 리눅스

UNIX의 특징

다중 사용자(Multi User), 다중 작업(Multi Thread)을 지원하는 신뢰성 높은 시분할 방식의 운영체제.
운영체제가 C로 작성되었기 때문에 이식성이 좋음.
네트워크 기능에 강력함.
단순화 된 설계, 모듈화된 설계로 기능을 제공함.
파일 시스템 트리가 하나로 통합됨.
셸스크립트로 명령 행 기반의 인터페이스를 사용할 수 있음.

UNIX와 LINUX

  • 리눅스는 UNIX의 무료 공개 버전.
  • 초기의 리눅스는 PC용 운영체제로 개발 되었음. (UNIX는 고성능 혹은 중형 컴퓨터 용으로 제작됨)

UNIX 발전사

  • 최초의 UNIX
    • Multics
      • 1969년 assembly 언어로 작성된 최초의 시분할 운영체제.
    • Unicx -> UNIX
      • 작고 심플한 운영체제로 다시 작성됨.
      • 1973년 대부분이 C 언어로 다시 작성 됨.
  • 대표적인 UNIX 시스템
    • BSD 계열 (버클리) : Free BSD, SunOS
    • System V 계열 (직계) : HP-UX, IBM AIX, Solaris(SunOS가 System 계열로 넘어옴)
    • Linux : 리눅스 커널을 사용하는 운영체제

Linux의 등장

  • 1983년 GNU 프로젝트
    • 리처드 스톨만(MIT연구원)이 UNIX와 유사한 공개 운영체제를 개발하기 위해 GNU 프로젝트를 시작.
    • 소프트웨어 상업화에 반대하고 소스코드의 공유, 자유로운 사용과 배포를 주장.
    • 1985년 GNU 선언문 (Manifesto) 발표.
    • 1989년 GPL을 발표.
    • 현재 Free Software Foundation(FSF)라는 이름으로 활동.
    • GNU 프로젝트에서 만들어진 Util들이 Linux에서 사용 됨.
  • 1991년 Linux Kernel
    • 리누스 토발즈가 리눅스 커널을 작성하여 발표
      • 커널은 하드웨어를 제어하고 응용 프로그램과의 상호작용을 제공하는 운영체제의 핵심임.
    • 개발자인 Linus와 UNIX의 이름을 따서 Linux로 명명함.
  • 1992년
    • 최초의 리눅스 배포판인 MCC Interim 리눅스가 발표됨.
    • 보통 리눅스라 함은 리눅스 커널을 사용한 운영체제(리눅스 배포판)를 의미함.
  • 1998년
    • IBM과 Oracle이 리눅스 지원을 발표함.

리눅스 개요

리눅스 발전상

  • 전 세계 리눅스 사용자는 만명 정도로 추산됨.
  • 유수의 100만 도메인 중 95% 이상이 리눅스를 사용
  • Mac, 안드로이드 운영체제가 리눅스 기반.
  • 슈퍼 컴퓨터의 95%가 리눅스에서 운영됨.
  • 주요 증권 거래소에서 리눅스 서버 사용.
  • 대다수 전자장비에서 리눅스 사용.

리눅스의 특징

  • 다중 사용자와 다중 작업을 지원.
  • 뛰어난 이식성
  • 모듈화 되어 있어 업그레이드 또는 업데이트가 용이함.
  • CUI와 GUI를 지원.
    • Character UI : Shell을 통해 커맨드 입력.
    • Graphical UI : X Window, GNOME, KDE 등의 데스트 톱.
  • 소스코드가 공개죔.
    • 공개 소스로서 빠르게 발전하고 보완됨.
  • 여러 종류의 파일 시스템을 지원.
    • Minix, ext 계열, FAT, FAT32, NTFS, NFS, ISO-9660 등.
  • 효과적인 하드웨어의 활용.(저사양 하드웨어에서도 효율적으로 활용 가능하다)
  • 다양한 응용프로그램과 소프트웨어 개발 환경을 제공.

오픈소스와 라이센스

오픈소스

  • 개발자(저작권자)가 소스코드를 공개하여 누구나 사용, 수정, 공유할 수 있도록 허가람 소프트웨어.
  • 반대 개념은 "proprietary (closed) SW"

소프트웨어 라이센스

  • 컴퓨터 프로그램은 지식재산권으로 보호받는 저작물.
  • 원칙적으로 저작자가 공표, 복제, 배포, 개작할 권한을 가짐.
  • 타인에게 일정한 대가나 조건을 전제로 권한을 부여할 수 있음.(라이센스)
    opensource.org

오픈 소스의 장점

  • 누구나 잘못된 점을 발견하고, 알리거나, 고칠 수 있음.
  • 배울 수 있고, 효율적인 프로그램 개발에 적용할 수 있음.
  • 오픈 소스는 여러 사람에 의해 테스트되어 안전함.
  • 오픈소스 운동의 철학은 커뮤니티를 통한 협력, 공유, 개방이 발전을 위해 효율적이라는 것.

GNU 프로젝트와 자유 소프트웨어 운동

  • 목적에 상관없이 프로그램을 실행할 수 있는 자유
  • 프로그램을 복제하고 공유할 수 있는 자유
  • 소스코드를 개작할 수 있는 자유
  • 개작된 프로그램을 배포할 수 있는 자유
    • 소프트웨어 소스코드는 공개

리눅스의 라이센스

  • 리눅스는 독접되거나 배타되지 않는 자유 소프트웨어
    • 공개 라이센스에 따라 자유롭게 고치고 배포 가능
  • 주로 GPL (GNU General Public License)를 따름.
  • 일부는 LGPL(GNU Lesser General Public License)
  • X Window는 MIT 라이센스

GNU GPL

  • 자유롭게 사용, 복제, 배포
  • 필요에 따라 자유롭게 수정하고 배포 가능.
  • 수정하여 배포하는 경우 소스코드를 공개하여야 함.
  • 수정된 소프트웨어에 저작권을 표시하고 똑같이 GPL 조건으로 배포하여야 함.

다양한 오픈소스 소프트웨어 라이센스

  • GPL, LGPL, MPL
    • 소스코드를 공개해야 하는 카피레프트 라이센스
      • 기본적으로 코드를 공개하도록 함.
    • LGPL은 주로 오픈소스 라이브러리에 적용됨
    • MPL 코드와 결합하여 프로그램을 만들 때, MPL 코드를 포함하지 않은 파일은 공개 의무가 없음.
    • 소스코드의 공개 범위는 다르게 정의 됨.
      • 전체 / 파일 / 모듈 단위 등
  • BSD, Apache, MIT 라이센스
    • 배포 시 소스코드의 비공개가 허용됨.
    • Permissive 라이센스라고도 함.
    • 코드의 재사용을 높이려는 목적.

리눅스 배포판

리눅스 배포판의 역사

  • 리눅스 배포판은 리눅스 커널 외에 시스템 유틸리티, 응용프로그램, 설치 프로그램을 포함한 완전한 운영체제
  • 리눅스 커널은 1991년 처음 개발됨.
    • 1994년에 커널 1.0이 발표 되었고 최신 안정 버전은 4.12
  • 1992년 최초의 배포판 MCC Interim과 SLS(Softlanding Linux System) 배포판이 발표됨.
  • 1993년부터 주요 배포판이 나오기 시작함.

주요 리눅스 배포판의 종류

  • Debian 계열 : Debian, Ubuntu etc
  • Slackware : Slackware, SUSE etc
  • Red Hat : Redhat, Fedora, CentOS etc

Debian Linux

  • Debian Project
    • 자유 운영체제를 만들어가는 사람들의 독자적인 모임.
    • Ian Merdock에 의해 1994년에 비영리 조직으로 설림
  • GNU 정신에 가장 충실한 배포판
    • GNU의 공식 후원을 받는 유일한 배포판
  • 세 가지 릴리즈를 유지
    • stable, testing, unstable
    • 코드명을 가지며(toystory 케릭터 이름), unstable 버전은 항상 코드명이 sid

Red Hat

  • 배포판 가운데 가장 널리 알려진 리눅스
  • Red Hat Linux
    • 2003년 지원 중단. 마지막 버전은 9.
  • Red Hat Enterprise Linux (RHEL)
    • Red Hat 사에 의해 지원. 최신 버젼은 7
  • Fedora 라는 오픈소스 프로젝트를 지원. (Fedora는 RHEL의 테스트 버젼)
  • RPM(Redhat Package Manager)
    • 바이너리, 설정파일, 라이브러리, 문서 등을 일괄 관리 기능
    • 데이터베이스를 검색하여 패키비나 특정 파일의 검색 기능
    • 패키비에 필요한 파일, 의존성 유무 등을 조사하는 기능

CentOS

  • Red Hat Linux로 부터 파생
  • RHEL 기반의 무료 버전
    • RHEL의 소스코드 기반으로 만들어지는 무료 배포판
    • RHEL은 유료로 지원
  • 서버용으로 많이 사용됨.
  • 최신 버전 7.3

SuSE Linux

  • Slackware Linux 의 파생
  • 독일에서 만든 배포판, 유럽에서 많이 사용.
  • Software und System Entwicklung의 약자(Software 와 System의 발전).
  • 풍부한 기능, 안정성, 보안 기능을 포함.
  • Novell 사에 의해 지원.
  • 두가지 종류
    • SUSE Linux Enterprise(유료)
    • openSUSE (무료)

Slackware Linux

  • SLS linux에서 파생
  • 가장 먼저 대중화 된, 현존하는 가장 오래된 배포판.
  • 1992년 Patrick Volkerding에 의해 시작됨.
  • 간결한 설계 철학으로 함. (the KISS priciple)
    • 현재 GNOME desktop이 제외되어 있음.
  • 유닉스 자체 학습에 적합함.

Ubuntu

  • Debian Linux에서 파생
  • desktop Unity를 제공하여 Linux를 쉽게 사용할 수 있도록 함.
  • Debian Linux에 비하여 사용 편리성에 중점을 둠.
  • 인기 있는 리눅스 배포판 중 하나.
728x90
반응형

'OS > Linux' 카테고리의 다른 글

[Linux] 사용자 관리  (0) 2020.10.25
[Linux] 시작과 종료  (0) 2020.10.24
[Linux] 파일과 디렉토리  (0) 2020.10.24
[Linux] Shell 사용하기  (0) 2020.10.16
[Linux] 리눅스 설치준비 및 표준 디렉토리  (0) 2020.10.16

+ Recent posts