2강 - 리눅스

2024. 8. 21. 17:13Security(보안) - 코리아IT아카데미(강남점)/리눅스1(주말)

01. 리눅스의 시작과 종료

1) 시작 : 전원 스위치 켜기


2) 종료

#shutdown [옵션] [설정값/시간]

shutdown -h +1 : 1분 뒤에 자동으로 시스템 종료
shutdown -c : 시스템 종료 취소

#shutdown -h now

#shutdown -h +1 <-- 1분 후 종료

#shutdown -h 12:30 <-- 12시 30분 후 종료

 


#init 0

 

> systemd

 

init 과 systemd

init : initialization(초기화, 시작하기 위한 세팅), 6.9이하 버전에서 "리눅스의 정상적인 부팅을 위해 초기화를 해주는 프로세스"라는 역할을 하는 최초의 프로세스

systemd : "system management daemon"의 약자, "기존 init 기능 + 시스템을 총 관리해주는 데몬"

 

1. 단위(Unit)

  • init 시스템 : 각 서비스를 스크립트로 정의하여 시작한다. 보통 /etc/init.d 디렉터리에 위치한다.
  • systemd : 단위라는 개념을 도입하여 각 서비스를 unit 파일로 정의한다. /etc/systemd/system 디렉터리에 위치한다. 

2. 처리 방식

  • init 시스템 : 간단하고 직렬적인 방식으로 서비스 및 프로세스를 시작한다. 하나의 서비스가 시작되기를 기다린 후 다음 서비스가 시작된다. 이런 과정에 따라 부팅 시간이 늘어난다.
  • systemd : 병렬로 여러 서비스 및 프로세스를 시작하여 부팅 속도를 개선한다. 의존성을 분석하고 병렬 실행하여 시스템 초기화를 효율적으로 처리한다.

3. 로그 및 디버깅

  • init 시스템 :  간단한 로그 매커니즘을 사용한다. 따라서 복잡한 문제의 원인 파악이 어려울 수 있다.
  • systemd : 강력한 로깅 및 디버깅 기능을 제공한다. 서비스 실행 중 발생한 문제를 빠르게 식별하고 해결할 수 있다.

<런 레벨>

0: 종료

1: 단일 사용자/긴급 모드

2: 다중 사용자 모드(Not NFS)

3: 다중 사용자 모드(텍스트 모드/CLI/TUI)

4: Not Used

5: 다중 사용자 모드(GUI/X-Windows)

6: 재시작

 

#halt  <-- 시스템 종료

#halt -p <-- 전원(OFF)까지 종료

1. 명령어 : halt -p 실행
2. 전원까지 꺼지는걸 알수가 있다.

#poweroff


3) 재시작

#shutdown -r now  <-- 즉시 시스템을 재부팅

#shutdown -r +1 <-- 1분후에 시스템 재부

 

#reboot  <--  시스템 재부팅

#init 6

 

02. 부팅 모드 변경

1) 텍스트 모드(TUI)

# systemctl set-default multi-user.target

1.텍스트 모드로 변경 -> reboot 명령어로 시스템 재부팅, 텍스트 기반 로그인만 지원

 

2. 텍스트 모드로 부팅 -> login: root, Password 입력

2) X-Window 모드(GUI)

# systemctl set-default graphical.target

3. 시스템은 멀티 유저, 그래픽 및 텍스트 기반 로그인 지원

 

03. 사용자 모드

1) 일반 사용자

[test(사용자명)@(구분자)localhost(호스트명) ~(자신의 홈 디렉터리)]$

[test@localhost ~]$

1. 일반 사용자(test) 로 들어가기, Password 입력
2. $로 표시됨

2) 관리자 모드

[root(사용자명)@(구분자)localhost(호스트명) ~(자신의 홈 디렉터리)]#

[root@localhost ~]#

 

> 사용자 전환

$su root <-- root 사용자로 전환할 때....

> password:

 

#su test

$

 

> 명령어 자동 완성 기능(※ 오타를 줄일 수 있음)

> [TAB]

 

> 방향키 <-- 이전 명령어 사용

 

> help 명령어

> man 명령어

 

04. 리눅스 기본 명령어

#ls <-- 파일/디렉터리 목록 출력

#ls -l <-- 자세하게 파일/디렉터리 목록 출력

<옵션>

-l : 자세히 출력(#ll로 쓸 수도 있음)

ls -1 명령어
ll 명령어

#cd <-- 디렉터리 이동

#pwd <-- 현재 작업 디렉터리 출력

cd : 디렉터리 이동 pwd : 현재 작업 디렉터리 출력

 

#cd .. <-- 한 단계 상위 디렉터리로 이동

cd home : home 디렉토리로 이동, ls 명령어 : 파일/디렉터리 목록 출력
cd dir1 : dir1 디렉터리로 이동, pwd 명령어 : 현재 작업 디렉터리 출력 cd.. : 한단계 상위 디렉터리로 이동

 

# cd - <-- 바로 이전 단계 디렉터리로 이동

05. 리눅스 디렉터리 구조 및 활용

*> /bin : 일반 명령어 저장

*> /boot : 부팅과 관련된 파일 저장(커널 저장)

*> /dev : 장치 파일 저장

*> /etc : 모든 환경 설정 파일 저장

*> /home : 일반 사용자들의 홈 디렉터리

> /root : root 사용자의 홈 디렉터리

> /lib : 동적 라이브러리 파일 저장(32비트)

*> /lib64 : 동적 라이브러리 파일 저장(64비트)

> /media : 미디어 마운트 디렉터리

> /mnt : 파일시스템 마운트 디렉터리

> /opt : 대용량 프로그램 설치

*> /sbin : 시스템 관련 명령어 저장

> /srv : 서버/서비스 관련 파일 저장

> /tmp : 임시 디렉터리

*> /usr : 일반 사용자들의 명령어 및 라이브러리 저장

*> /var : 시스템 운영 중 변경되는 파일 저장

 

06. 파일/디렉터리 관련 명령어

1) 이동

# cd <-- 디렉터리 이동

# cd <-- 자신의 홈 디렉터리로 이동

# cd ~ <-- 자신의 홈 디렉터리로 이동

# cd - <-- 바로 직전 디렉터리로 이동

# cd .. <-- 한 단계 상위 디렉터리로 이동

# cd . <-- 현재 디렉터리

 

2) 디렉터리 생성

# mkdir [옵션] [생성할 디렉터리명]

 

# mkdir dir1  <-- dir1 디렉터리 생성

dir1 디렉터리 생성

# mkdir dir3 dir4 dir5  <-- dir3, dir4, dir5 디렉터리를 한 번에 생성

dir3, dir4, dir5 디렉터리를 한번에 생성

# mkdir -p dir2/dir3/dir4/dir5/dir6  <-- dir2, dir3, dir4, dir5, dir6 하위 디렉터리를 한 번에 생성

dir2 하위 디렉터리
dir3 하위 디렉터리
dir4 하위 디렉터리
dir5 하위 디렉터리
dir6 디렉터리 파일 목록 현재 위치 표시

3) 디렉터리 삭제

#rmdir [디렉터리명]  <-- 빈 디렉터리만 삭제

rmdir dir5 : dir5디렉터리 삭제

#rm [옵션] [디렉터리명]  <-- 빈 디렉터리나 파일/디렉터리가 존재해도 삭제 가능

 

07. 파일 관련 명령어

1) 생성

> 각종 편집기 생성

 

#touch [파일명]  <-- 빈 파일 생성

#touch [파일명]  <-- 파일이 존재하면 파일의 수정 시간 변경

file1.txt 파일 생성
file2.txt, file3.txt 파일 한번에 생성

#echo [내용] > [파일명]

file5.txt 파일에 "Welcome to Linux"내용 삽입 후 cat 명령어를 사용해서 파일 내용 확인

2) 파일 내용 확인

#cat [파일명]

#cat file5.txt

 

3) 삭제

#rm [파일명]

#rm file1.txt

file1.txt 파일 삭제

 

<옵션>

-r : 디렉터리 삭제

-f : 삭제 여부 묻지 않기

삭제 여부 묻지 않고 file2.txt 파일 삭제

# rm file1.txt

# rm -rf f*.txt  <--  f 문자로 시작되는 모든 파일 삭제

# rm -rf ff*.txt  <--  ff 문자로 시작되는 모든 파일 삭제

1. ffile1.txt, ffile2.txt, ffile3.txt 파일 생성
2. rm -rf ff* : ff 문자로 시작되는 모든 파일 삭제

# rm -rf *.txt  <--  .txt로 끝나는 모든 파일 삭제

.txt 로 끝나는 모든 파일들 삭제

# rm -rf *  <-- 모든 파일/디렉터리 삭제

모든 파일 삭제


 

<Console>

CTRL+ALT+F2 

CTRL+ALT+F3

CTRL+ALT+F4

CTRL+ALT+F5

CTRL+ALT+F6

 

> 화면 지우기

#clear

 

CTRL+SHIFT+N : 새창 열기

새 창 열기

CTRL+SHIFT+T : 새 터미널 열기

새 터미널 열기

 

CTRL+SHIFT+ "+" ▶ 콘솔창을 확대시킬 수 있음

CTRL+SHIFT+ "-" ▶ 콘솔창을 축소시킬 수 있음

 

 

◆  시스템 진입

CTRL+ALT+F3 > ▶localhost login : root ▶Password : 비밀번호 입력
exit > 시스템 진입에서 벗어난다
CTRL+ALT+F2 > 초기화면으로 돌아감
shell 화면창


◆  콘솔창 기본설정

1. 〓 클릭 > 기본 설정 클릭

1. 텍스트 설정

2. 기본 설정(텍스트) > 이름 없음 > 사용자 지정 글꼴 체크 > "Monospace"글꼴 선택 > 클자 크기 "16"

2. 배경색 설정

색 > 글씨 및 배경 색 > "시스템 테마 색 사용" 클릭 해제 > 내장 팔레트 : 검정 배경에 흰 글씨(추천)

3. 화면 잠금 설정

1. 바탕화면 우 클릭 > 설정
2. 개인정보 클릭
2. 화면 잠금 > 빈 화면 지연 시간 : "안함" ▶자동 화면 잠금, 알림 표시 및 화면 잠그기 OFF

4. 전원 설정

전원 > Power Saving Options > Screen Blank : Never 설정