본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


Linux

리눅스 공부 5- 명령어에 별칭 부여 , 리눅스 부팅 순서

반응형

명령어에 별칭 부여 

 

자주쓰는 명령어들을 type 명령어를 통해 살펴보면

 

사실 어떤 명령어의 별칭으로 이루어져 있다는 것을 알 수 있다 .

 

 

 

 

ls 와 ll 을 보면 ls is an alias for ls -G 라는 설명이뜬다 . 

 

사용자가 특정 명령어에 약칭을 직접 줄 수 도 있다.

 

alias 별칭=' 별칭으로 사용할 명령어 '

 

위와 처럼  명령어에 별칭을 줄 수 있다 'ls -l'은  이미 ll 이라는 약칭이 존재하지만 예를들기 위해 

 

alias ld='ls -l' 로 ld라는 약칭을 만들어봤다 

 

 

 

'ls -l'이 ld라는 약칭으로 지정됬다.

 

위와 같은 방식으로 약칭을 주면 터미널을 껏다 키면 초기화된다  

 

위와 같은 약칭들을 영구적으로 사용하기 위해선 시스템을 부팅할때  초기화 스크립트 작성하여 해당 profile을 저장하는 것이 필요하다 .

 

 

리눅스 부팅 순서

 

 

먼저 리눅스시스템의 부팅 순서부터 알아보자

 

1. BIOS (BASIC INPUT OUTPUT SYSTEM)

 

컴퓨터를 키면 BIOS라는 메인보드에 있는 시스템이 작동한다. BIOS는 시스템 구동에 필요한 기본적인 하드웨어 조건들을 체크한다(메모리가 붙어있는지, 그래픽카드는 꽂혀있는지 ) 만약 체크 과정에서 문제가 있다면 경고음을 내거나 에러를 보여준다 . 

 

2.Master Boot Record (MBR)

 

BIOS에 문제가 없으면  소프트웨어를 로드하기위해 디스크에 정의되 있는 가장 바깥에 있는 영역을 찾게되는 데 이를 MBR이라한다 .

 

3.LILO or GRUB 

 

옜날에는 MBR에 운영체제를 여기에 심었었는데  요즘에는 멀티부트를 하는 경우도 있기 떄문에  LILO 와 GRUB 이라는 곳에서 운영체제를 심어서 멀티부트시 운영체제를 고를 수 있게 한다 . 

 

4.Kernel 

 

3번에서 선택된 운영체제의 kernel이 로드된다 

 

5. init

 

Kernel이 로딩될때 시스템 초기화가 일어나는데  초기화를 담당하는 /sbin/init이 프로세스가 PID 1번이된다.

다음으로는 

-/linuxrc : load modules / initialize devices / exits  시스템 구동에 필요한 모듈들이 로딩되고

-아래의 순서대로 초기화에 필요한 service 프로그램들이 로딩된다 

-/sbin/init

      -/etc/inittab :run boot scripts 

           -etc/init.d/rcS

                   -/etc/rcs.d/S* scripts 

                   -/etc/rc.boot/* 

 

6.Run Levels 

 

 5번의 작업은 0부터 6까지  일곱 모드로  나눠지는데 리눅스 배포판에 따라 분류가 좀다르다 

데비안의 계열의 경우 7가지로 나뉘어지는데 

 

데비안 사이트에는  아래와 같이 나와있다 . 

 

 0 (halt the system)

 1 (single-user / minimal mode),

 2 through 5 (multiuser modes),

 and 6 (reboot the system).  

 

Debian run levels 

 

0 - Halt (종료)

1  - Single-user mode (window의 안전모드같은 기능)

2 - Multi-user mode (일반모드)

4 - Multi-user mode

5 - Multi-user mode

6 - Rebbot (재부팅)

 

특정 모드에 따라서 실행되어야 할 서비스들은 당연히 다 다를 것이다 . 

 

run level들을 확인해보자 

 

먼저 1번 프로세스를 확인해보자 

 

 

 

ps -p 프로세스번호 ef 로 프로세스를 확인할 수 있다 . 1번을 초기화를 담당하는 /sbin/init이 차지하고 있다 

 

다음으로 /etc 폴더에 가보자 

 

 

 

 

rc0 부터 rcS까지 7개가 있다 (rc는 run commend를 의미한다) rc0.d에 들어가 보자

 

 

 

 

0은 종료(halt)를 의미하는 것 이고 그에 해당하는 서비스(실행파일)들의 링크 파일들이 들어있다 . 

 

0번부터 S까지 보면 다 각기 다른 서비스들이 들어 있다 .

 

이름을 보면 K01atd 이런식으로 K01이 다 붙어있는데 K는 KILL(종료)를 의미하고 뒤의 숫자는 실행순서를 의미한다. 

현재는 순서가 모두 동일하게 순차적으로 실행되지만 특정 서비스를 먼저 실행시키고싶거나 나중에 실행하고싶을떄는 

01 02 03 등으로 순서를 줄 수 있다 . K02atd 이런식으로 이름이 바뀐다면 나머지 서비스들이 모두실행되고 atd는 마지막에 실행 될 것 이다. 

 

0번은 종료를 의미하여 K이지만 시작하는 모드인 2~5번까지는 S가 붙는다 S는 START를 의미한다.

 

init 명령어로 해당 런레벨을 직접 구동할 수도 있다 .

이를 'init tell' 이라고 부른다 

 

init 6 이면 6의 런 레벨은 재부팅이니 재부팅이 될 것이다.

 

우분투가 default 로 사용하는 런 레벨은 2번이다 

 

https://wiki.debian.org/RunLevel (데비안 계열 run level)

 

init tell을 편하게 하기 위한 서비스를 제공한다 

 

컴퓨터 종료를 위한 명령어

 

poweroff   

shutdown 현재 컴퓨터 사용자들에게  종료를 예고하고 컴퓨터를 종료한다.

$halt 

$init 0 

 

재부팅을 위한 명령어

 

 reboot

 shutdown -r 

 init 6

 

반응형