개요

리눅스는 오픈 소스 운영체제로 윈도우처럼 다중 사용자, 다중 작업을 지원한다.
보통 리눅스 운영체제를 사용하게 되는 환경은 AWS에 배포할 때와 도커를 사용할 때로 리눅스 콘솔만 보면 항상 막막해진다.
이번 기회에 공부해보자.

특징

  • 오픈소스 운영체제
  • 유닉스와 완벽한 호환
  • 안정적인 운영체제
  • 하드웨어의 효율적 운영

리눅스는 오픈소스인 만큼 여러가지 버전이 존재한다. 가장 오래된 배포판은 슬랙웨어로 종류로는 SUSE, Vector Linux 등이 있다.

그 다음으론 데비안이라는 배포판이 등장했는데 1993년 이안 머독에 의해 설립되어 개발, 배포, 패키지 설치 및 업그레이드가 편리하다는 장점이 있다.
대표적인 것들은 Ubuntu, Linux Mint 등이 있다.

우분투는 영국 캐노니컬 사의 지원을 받아 개발 및 배포된 판으로 데비안 GNU/Linux에 기반한 배포판이다.
고유한 데스크톱 환경인 유니티를 사용하고 6개월 마다 새로운 버전을 배포한다.

레드헷은 미국의 레드헷사가 개발 및 배포한 버전으로 유로인 RHEL과 무료인 Fedora로 나누어 배포하고 있다.
대표적으로는 CentOS가 있다.

RHEL은 레드헷사가 개발 및 배포하는 사용 리눅스 배포판으로 상용 패키지는 유료지만 소스코드는 무로 공개하고 있다.
계약 기간에는 기술지원 및 추가 비용 없이 업그레이드가 자유롭다는 특징이 있다.

CentOS는 RHEL과 완벽하게 호환되는 기업용 무료 배포판이다.

리눅스 부팅 과정

  • Power On Sell Test과정을 수행 후 하드웨어 이상 유무를 검사한 후 에러가 발생할 시 알림을 준다. 이 때 부트 로더가 로딩된다.
  • 부트 로더를 실행하여 커널을 로딩하고 스와퍼 프로세스를 호출한다.
  • 장치들의 드라이버가 초기화된다. init프로세스가 실행된다.
  • init프로세스가 실행되어 /etc/inittab 파일을 읽는다.
  • 부트 레벨을 결정한다.
  • rc.sysinit 스크립트를 실행하여 시스템 초기화 작업을 수행한다.
  • rcs.d 스크립트를 실행하여 해당 부트 레벨 스크립트를 순차적으로 실행한다.
  • x 윈도를 실행한다.

기본 디렉터리 구조

  • /: 최상위 디렉터리
  • /bin: System Binary의 약자로 이진 파일과 리눅스의 기본 명령어가 저장된 디렉토리
  • /usr: 시스템에 사용되는 각종 프로그램이 설치되는 디렉토리
  • /etc: 리눅스 시스템의 각종 환경설정 파일과 디럭터리가 저장된 디렉토리
  • /sbin: 시스템 관리를 위한 명령어가 저장된 디렉토리
  • /lib: 프로그램의 각종 라이브라리 파일이 저장된 디렉토리
  • /var: 시스템에 사용되는 동적 파일을 저장하는 디렉토리
  • /tmp: 임시 디렉토리
  • /root: 시스템 관리자의 디렉토리
  • /proc: 시스ㅔㅁ의 각종 프로세서, 프로그램 정보와 하드웨어 정보가 저장된 디렉토리
  • /dev: 시스템의 각종 장치에 접근하기 위한 장치 드라이버가 저장된 디렉토리
  • /home: 일반 사용자의 홈 디렉토리

리눅스 운영

기본 명령어를 알아보자.

useradd: 사용자 계정을 생성하는 명령어로 계정 정보는 /etc/passwd, /etc/shadow, /etc/group 파일에 저장된다.
기본 형식은 useradd [옵션] [계정명] 이다. 옵션으로는

  • -c: 사용자 계정에 설명 추가
  • -d: 사용자 계정의 홈디렉터리 지정
  • -e: 사용자 계정의 유효기간 설정
  • -f: 패스워드가 만료된 후 계정의 만료 날짜 지정
  • -G: 사용자 계정의 새로운 그룹 추가
  • -s: 사용자 계정의 로그인 기본 셀 지정

passwd [계정명]: 패스워드 변경 명령어다.

passwd [옵션] [계정명]: 사용자 계정의 패스워드를 관리한다.
옵션으로는

  • -d: 사용자 계정의 패스워드 삭제
  • -l: 사용자 계정을 잠금
  • -S: 계정 상태 출력
  • -u: 잠금 상태의 사용자 계정을 해제

su: Switch User 혹은 Substitute User의 약자로 현제 계정에서 로그아웃하지 않고 다른 사용자로 전환하는 명령어다.
su [옵션] [사용자] [셀 변수]
옵션으로는

  • -,-l, –login: 사용자 환경변수를 적용하여 로그인
  • -c: 셀을 실행하지 않고 주어진 명령어 실행
  • -s: 지정된 셀로 로그인

usermod: 사용자 계정 정보를 변경하는 명령어다.
usermod [옵션] [설정값] [계정명]으로 사용할 수 있는 옵션으론 다음이 있다.

  • -c: 설명 변경
  • -d: 사용자 홈 디렉터리 변경
  • -e: 계정 만료일 변경
  • -f: 사용자 계정 유효일 지정
  • -g: GID 변경
  • -G: 지정한 그룹에 사용자 추가
  • -s: 로그인시 사용할 기본 셀 지정
  • -u: uid 변경

다음으론 파일 관련 명령어다.

ls: 디렉터리 안의 파일아니 디렉터리 목록을 출력하는 명령어로 dir에 해당한다. 사용할 수 있는 옵션으론 많이 사용하는 것이
숨김 파일을 포함한 모든 목록을 출력하는 옵션인 -a-l파일의 모드, 링크 수, ㅊ최종 수정 시간 등을 출력하는 명령어다.

rm: 파일이나 디렉터리를 삭제 할 때 사용하는 명령어로 -f 삭제 여부를 묻지 않고 삭제, -r 하위 디렉터리를 포함하여 삭제가 있다.

다음으로 많이 쓰는 명령어로는 cat이 있다. 주로 파일의 내용을 출력할 때 사용한다. 간단하게 파일을 만들고 경로로 이동하여 cat [파일명]을 입력하면 파일의 내용이 출력된다.
tail은 파일의 가장 끝 행부터 지정한 줄 수만큼 출력하는 명령어다. 예를 들어 서버를 운영하는데 서버가 다운되었다면 많은 로그들 중에서 가장 마지막 로그를 출력하여 보는 형식으로 할 수 있다.

##