Linux Day1 커널, 셀, 가상머신, 리눅스 시스템

김지원·2022년 6월 26일

Linux

목록 보기
1/7

OS

: 컴퓨터가 구동될 때 실행되는 것.

  • 리눅스
  • window
  • mac
  • android

리눅스 (LINUX)

컴퓨터 OS커널의 일종인 리눅스 커널을 사용하는 운영체제로, 리누스 토르발스가 만든 커널에 쉘, 컴파일러, 기타 응용 프로그램들이 조합된 배포판.

  • 리누스 토르발스가 유닉스를 기반으로 개발한 공개용 OS
  • 무료판 유닉스(Unix)

UNIX

: 처음으로 어셈블리어가 아닌 고급 프로그램언어인 C언어로 작성된 운영체제(OS)
어셈블리어 : 프로그래밍 언어.

  • C언어로 개발되었기 때문에 다른 하드웨어로 이식하기가 쉬웠으며, 멀티태스킹 시술을 도입하여 여러 사용자가 동시 사용함.
  • CLI(Command Line Interface에 특화되어 있음 (검은 화면에 글만 있다.)
    ( <-> GUI 클릭, 이미지, 버튼같은 것들이 잇음)
  • CLI : 가상 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식

커널 (Kernel)

: 사전적 의미는 '알맹이', Linux Os 의 핵심으로 자동차의 엔진에 해당하는 부분

  • 프로세스 관리, 메모리 관리, 파일 시스템 관리, 장치들과의 정보 교환 및 제어 등
  • 현재 제어하는 하드웨어 장치의 지원 여부 정보, 하드웨어 성능, 하드웨어를 제어하는 코드 등이 있다.

셀 (Shell)

: 사용자가 입력한 명령어의 해석을 담당

  • 사용자가 운영 체제의 내부(커널) 사이의 인터페이스를 감싸는 층
  • 운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스 제공 프로그램
  • 셀은 텍스트 기반에서 사용자가 원하는 작업을 실행하고 그 명령을 운영체제를 통하여 수행 후 다시 사용자에게 결과를 보여줌.
  • dash셀이 기본셀이다.

리눅스의 특징

다중사용자

: 서로 다른 사용자가 동시에 하나의 시스템을 사용할 수 있는 OS

자유 사용

: 리눅스는 오픈소스 소프트웨어로, 누구나 사용할 수 있고 눈구나 수정할 수 있으며, 판매 및 재배포 가능

높은 이식성 (확장성)

: C언어로 작성된 OS로서, 특정 기계에 비 의존적이기 때문에 어느 기계나 컴퓨터에서도 구동하기 쉬움.

계층적 구조

: 리눅스는 root 폴터부터 시작하여 계층적 구조로 이루어져 있음.

  • 리눅스는 폴더로 이루어져잇고 최상위 폴더가 항상 존재한다.

root 사용자

: 계정 및 전체 시스템을 관리감독 할 수 있는 관리자 계정이 존재하며, 관리자를 통해서만 가능한 작업이 존재.


리눅스를 배워야하는 이유

: 개발은 리눅스 위에서 돌아간다.
윈도우에서 서버개발을 하게 되는 것은 목적에 맞지 않으며 굳이 무거운 윈도우를 쓸 필요 없다. ( GUI가 필요없고 서버가 실행만 되면 되기 때문에 리눅스를 사용한다. )

리눅스 배포판

  • RedHat Enterprise : 기업이 사용하기 때문에 안정성이 필요하다.
  • CentOS
  • Bebian
  • Fedora : RedHat이 Test용으로 만들었다. 막 쓰기 좋고 최신기술 경험하기 좋다. 해킹연습 할 때 쓰기 좋다.
  • Mint
  • openSUSE

Ubuntu (우분투)

: 데비안 리눅스를 기초로 그놈(GNOME) 데스크톱 환경을 사용하는 리눅스 배포판

  • 우분투 테스크톱 / 우분투 서버 두 가지 버전이 있다.
  • 우분투 데스크톱 : x윈도 환경(GUI환경)을 지원한다.
  • 우분투 서버 : x윈도 환경을 지원하지 않으며 GUI 대신 TUI 환경의 인터페이스 제공.

Ubuntu (우분투) 리눅스의 장점

  • 설치가 쉽다.
  • 유니티 그래픽 환경 (내가 쓸것은 GNOME이고 20버전이다.)
  • 쉬운 업데이트 / 자동 업데이트
  • 소프트웨어 센터
  • 높은 점유율과 활발한 커뮤니티

가상머신

: 진짜 컴퓨터가 아닌 가상(Virtual) 으로 존재하는 컴퓨터 (기계. Machine)

  • 가상머신 소프트웨어 : 가상머신을 생성하는 소프트 웨어로 컴퓨터에 설치된 운영체제(호스트 OS) 안에 가상의 컴퓨터를 만들고, 그 가상의 컴퓨터 안에 또 다른 운영체제(게스트 OS) 를 설치/ 운영 할 수 있도록 제작된 소프트웨어

가상머신 장점

  • 기존 컴퓨터의 변경없이 다양한 운영체제를 설치/운영 가능
  • 하나의 컴퓨터로 다양한 테스트가 가능
  • 오류 발생 시 리스크가적으며, 롤백가능

-> virt

  • Desktop 선택
  • see our alternative downloads 선택
  • 두개 다 다운로드 진행

-> SANPSHOT 설정

  • 무슨짓을 하든 이걸 설정해두면 다시 돌릴 수 있다.

리눅스 시스템

리눅스 콘솔

: 리눅스 시스템을 제어하는 곳으로, 명령어 사용을 통해 시스템을 제어할 수 있음
< example > : root@Server:~바탕화면#

  • root : 접속중인 사용자 계정 (root:관리자)
  • @ : 구분자
  • Server : 시스템명
  • ~ : 마지막 작업경로
  • # : 계정의 유형 (#은 root, $는 일반 유저)cd

리눅스 명령어

내장명령어

: export, history, logout, exit 등, 파일로 존재하지 않고 셸에 내장되어있는 명령어

외장 명령어

: 리눅스 대부분을 차치하며 /bin 또는 /sbin 디렉터리에 파일 형태로 존재 (프로세스 발생)

PATH

: : 사용자들이 실행 명령어를 입력했을 때 찾는 디렉터리의 목록을 저장하고 있는 환경변수

man

: 내장 명령어 관련 정보를 볼 수 있는 명령어

#man [명령어]

[SPACE] : 한 페이지 밑으로 내려간다.
[ENTER] : 한 줄 밑으로 내려간다.
[b] : 전 페이지로 올라간다.
[q] : man 명령을 종료한다.

echo

: 문자열을 그대로 출력해주는 명령어.

  • $과 함께 사용하면 $뒤가 변수일 경우 변수의 값을 출력해줌
`#echo "test"`,`#echo $PATH`

기본명령어

history

: 사용자가 사용한 명령어 내역을 볼 수 있는 명령어

/root/.bash_history         : root 계정의 명령어 내역
/home/{계정명}/.bash_history : 해당 사용자 계정의 명령어 내역

-c : 기존 history 전부 삭제 history -c

-d offset : 해당 offset에 해당하는 history 제거 history -d 3

숫자 : 최근 사용한 명령어를 해당 개수만큼 출력 history 10

-w : 현재 history를 파일로 저장 history -w HistoryFile

!offset : offset에 해당하는 명령어 실행 !30

!string : string으로 시작하는 가장 최근 명령을 실행 !

시스템 종료 및 재시작

shutdown (시스템 종료)

: 시스템 종료와 관련된 명령어. 예약 가능.

#shutdown [option] [time] [message]

로그아웃

 #logout, #exit

-P : +숫자 숫자(분) 이후 종료 (P: poweroff)

  • shutdown -P +10 : (10분 후 종료)

-r : 시간 shutdown 후 해당 시간에 재부팅 (r: reboot)

  • shutdown -r 22:00 (22시에 재부팅)

-c : 예약된 shutdown 취소 (c: cancle)

  • shutdown -c (예약된 shutdown 취소)

-k : +숫자 현재 접속한 사용자에게 해당 분 후 종료된다는 메세지만 보내고 실제로는 종료되지 않음 (k: knock)

  • shutdown -k +15 (15분 후 종료된다고 알림)

-h : shutdown 후 halt 실행

  • shutdown -h now

-f : 재부팅 시 fsck(file system check)를 안하고 빠르게 재부팅

  • shutdown -f

reboot (시스템 종료)

#reboot [option]
#reboot -f: shutdown 단계를 거치지 않고 강제 재시작

halt (시스템 종료)

 #halt [option]
#halt -p: 시스템 즉시 종료

init (시스템 시작)

#init [option] [run level] (해당 run level에 해당하는 모드로 시스템을 시작)
#startx : X윈도우로 시스템을 재가동
/lib/systemd/system/default.target : 시스템에 설정된 런레벨 확인
/lib/systemd/system/runlevel?.target : 가능한 런레벨 모드 확인
런 레벨 |     영문모드     | 설명
  0   =   Power Off    : 종료모드 (HDD 동기화 후 정상 종료)
  1   =   Rescue       : 시스템 복구 모드, 단일 사용자모드
  2   =   Multi-User   : NFS/X-window를 제외한 부팅, 사용하지 않음
  3   =   Multi-User   : 텍스트 모드의 다중 사용자 모드 (CLI)
  4   =   Multi-User   : 사용하지 않음
  5   =   Graphical    : 그래픽 모드의 다중 사용자 모드 (X-window)
  6   =   Reboot       : 재부팅 모드 (시스템 재시작)

0개의 댓글