Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

Linux의 부팅과 기본 명령어 본문

운영체제/Linux - CentOs

Linux의 부팅과 기본 명령어

세레프 2023. 2. 20. 06:13

 Linux란 서버를 운영하기위해 만든 리눅스커널를 기반으로 둔 운영체제이다. 그래서 우리는 서버를 구축하고 운영하기위해 Linux를 부팅할 줄 알아야 하고, 기본적인 명령들은 기억하고 있어야 한다.

 

Linux의 부팅

 컴퓨터를 작동시키면, 먼저 커널 선택창이 5초동안 멈춰있는 것을 볼 수 있다. 이는 부팅의 과정으로, 부팅이란 컴퓨터가 응용프로그램을 사용할 수 있도록 운영체제를 메모리에 불러오는 과정이다. 이때 부팅과정에서 부팅로더를 사용하는 데, 부팅로더컴퓨터가 사용할 운영체제를 선택하여 그 운영체제에 해당하는 커널을 부팅해서 사용 할 수 있게 해주는 프로그램이다. 즉, 컴퓨터가 시작할 때, 5초동안 운영체제 선택창이 나타나는 것은 부팅로더가 어떤 커널을 사용할 것인지, 사용자에게 묻는 과정이였다. 

VMware를 통해 CentOS를 실행하면 나타나는 부팅로더

 원래 Linux에서는 Lilo라는 부팅로더를 사용했었다. 하지만 GRUB라는 부팅로더가 inux외에 다른 운영체제를 지원하게 되고 멀티부팅(서로 다른 운영체제중에서 하나를 선택해서 부팅하는 기능)을 지원하게 되면서, GRUB가 Lilo를 대체하게 되었다. 하지만 모든서버의 운영체제나 커널은 최신버전으로 사용되지 않는 경우가 많기에, Lilo가 사용되는 곳도 존재한다.

 

콘솔과 터미널

 Linux는 터미널과 6개의 콘솔을 사용하는 데,  콘솔이란 시스템에 진입할 수 있는 text 인터페이스로, 일반적인 grapic 모드가 아닌, text모드로 해당 시스템의 터미널에 진입할 수 있다. 이때, 터미널시스템에 직접 연결시켜주는 쉘로, 명령어를 입력하는 명령창이다. 즉 콘솔은 text모드로 시스템 안으로 들어가는 통로인 터미널에 진입할 수 있는 인터페이스이다.

CentOS의 터미널
CentOS의 콘솔

 위의 두 사진은 각각 CentOS의 터미널과 콘솔의 사진으로, 유사하지만 다르다는 것을 알 수 있다. 먼저 터미널을 보면, [root@localhost ~]#가 터미널에 적혀있는것을 볼 수 있다. 이것은 프롬프트로, 사용자의 명령어입력을 받는 것을 대기한다는 표시이다. 즉, 셸의 역할을 한다고 보면 된다. 

(사용자명)(구분자)(호스트명)(디렉터리)

 위의 구조는 프롬프트의 구조로, 해당 프롬프트에서는 사용자를 root라는 최고 관리자를 사용하고, 호스트명은 나의 pc를 칭하는 localhost이며, 작업 디렉터리가 root의 홈디렉터리에 위치해 있다 . 즉 나의 pc에 최고관리자 계정인 root로 로그인한 상태이며 홈디렉터리에서 명령을 수령하겠다는 뜻이다. 

 

 반면에 콘솔을 보면, 마찬가지로 root라는 계정으로 로그인하면, 그 계정에 맞는 프롬프트가 있는 터미널이 생성되는 것을 확인할 수 있다.

 

 Linux에서 콘솔은 컴퓨터가 부팅되어서 켜졌을 때, 6개까지 열여있으며, ctrl+alt+F1~F6을 통해 변환할 수 있다. 그리고 콘솔에서 로그인 할 때 pw가 나오지 않지 않는데,  공격자가 알지 못하게 하기 위해서 출력되지 않는 것이다.

 

종료 명령어

 모든 운영체제는 전원아이콘으로 종료할 수 있지만 종료 명령어를 통해서도 서버를 종료 할 수 있다. 그렇다면 Linux에서의 종료 명령어는 어떻게 될까?

  • shutdown[옵션][시간(분단위)] : 전원을 종료하는 명령어
  • init[런레벨] : 리눅스커널에서 모든 프로세스를 관리하는 명령어
  • poweroff[옵션] : 전원을 종료하는 명령어
  • halt[옵션] : 프로세스만 종료하고 전원을 종료하진 않는다.

 shutdown 전원을 종료하는 명령어로 가장 안전한 종료방법이다. 옵션에는 -h(종료), -c(명령취소), -r(시스템 재시작)이 있다. "shutdown -h 60"로 터미널에 작성하면 1시간 뒤에 서버와 전원를 종료시키라는 명령으로 인식이 되어서 1시간 뒤에 운영체제가 종료하는 것을 볼 수 있다.


 init 유닉스 기반의 OS에서 모든 프로세스를 관리하는 최상위 프로세스로, 모든 프로세스는 init에서 부터 시작한다. 하지만 CentOS7이상에선 최고 프로세스를 systemd로 사용하고 있다. init 7개의 런레벨로 구성되어 있으며, 커널을 통해 직접 실행된다.

  • init 0: 프로세스 종료 후 전원 종료
  • init 1: 단일 사용자 모드 => 한사람만 접근 가능 상태 (긴급 모드로 사용), 네트워크는 안되는 상태
  • init 2: 다중 사용자 모드 => 네트워크는 안되는 상태
  • init 3: 다중 사용자 모드 => TUI (teminal)/CLI : text모드(명령어로 운영되는 상태)
  • init 4: Not Used
  • init 5: 다중 사용자 모드 => GUI(X-Window) : grapic모드(아이콘으로 운영되는 상태)
  • init 6시스템 재시작

 poweroff와 halt에 대해서 간단히 보면, poweroff는 shutdown과 같이 전원을 종료하는 명령어이며, halt는 프로세스만 종료하기 때문에 전원은 직접 종료해야 한다

 정리하면 shutdown -h now, init 0, poweroff 명령어들은 차이점이 없으며, 터미널에 작성하여 실행하면 전원이 꺼지게 된다.

 

 Linux 기본 명령어

  • cd [디렉터리 경로]: 디렉터리를 이동 할 수 있는 명령어로, 하위 파일이나 디렉터리, 상위 디렉터리로 이동 가능    
cd의 응용 명령어
cd .. : 한단계 상위디렉터리로 이동
cd ~ or cd   :사용중인 사용자의 홈디렉터리로 이동
cd . : 현재디렉터리로 이동(새로고침)
cd - :  이전 디렉터리로 이동

 

  • ls [옵션][디렉터리]: 디렉터리 내의 파일과 디렉터리의 목록을 볼 수 있는 명령어 
옵션 목록
-l: 파일종류, 수정일, 파일명등 자세하게 디렉터리 목록을 볼수 있는 명령어 
-a: 숨김 파일/디렉터리까지 츨력
-A: 숨김 파일/디렉터리까지 출력할때 상위디렉터리(..)와 현재디렉터리(.)는 출력되지 않음
-i: i-node 번호(디렉터리나 파일의 고유번호) 출력
-n: UID(사용자코드 - 사용자의 고유번호), GID(그룹코드 - 그룹의 고유번호)출력
-r: 역순정렬 출력
-R: 하위디렉터리 내용 출력
-F: 파일,디렉터리의 종류에 따라 다른 심볼을 출력(디렉터리:/, 실행파일:*)

 

  • pwd:현재 작업 디렉터리의 경로 확인하는 명령어
  • man [명령어] : 명령어 관련 메뉴얼 리스트 출력
  • date : 시간 날짜 출력
  • cal : 달력 출력 (-y : 1년 달력, -3 : 3개월 달력, -jy : 1월 1일 기준으로 날짜 세는 달력
  • rdate -s [동기화할 시간]: 시간을 동기화하는 명령어
    • 현 시간으로 동기화 할 때 사용하는 동기화 시간
      1. time.bora.net
      2. time.nuri.net
      3. time.windows.com
      4. ntp.kornet.net
      5. time.nist.gov
  • alias : 쉘에서 설정한 단축 명령어 설정 목록
    • shell 환경 설정 파일(/etc/bashrc)에서 영구적으로 추가, 수정 가능
    • alias l='ls-l'같이 명령하면 수정, 추가가 되지만 명령어로 명령했기에 로그아웃하면 사라진다.

[root@client ~]# date
2023. 04. 15. (토) 05:27:17 KST
[root@client ~]# cal
      4월 2023      
일 월 화 수 목 금 토
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
[root@client ~]# man ls
[root@client ~]# rdate -r time.bora.net
Unknown option -r
rdate: [time.bora.net]	Sat Apr 15 05:33:53 2023

[root@client ~]# date
2023. 04. 15. (토) 05:33:59 KST
[root@client ~]#
[root@client ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

 

'운영체제 > Linux - CentOs' 카테고리의 다른 글

네트워크와 프로세스  (0) 2023.03.06
디스크, 파티션 관리  (1) 2023.03.05
데이터 관리 기본 명령어  (1) 2023.02.27
디렉토리, 파일 기본 명령어  (0) 2023.02.26
운영체제와 Linux  (0) 2023.02.19
Comments