GRUB 화면
/etc/default/grub
TIMEOUT, DISTRIBUTOR, DEFAULT 등 다양한 옵션이 있는것을 확인할 수 있다.
우선 grub의 내용을 보면 GRUB_TIMEOUT=5로 대기시간이 기본으로 5초로 설정되어있는데 변경해보겠다.
- vi /etc/default/grub
- GRUB_TIMEOUT=15 ← 대기시간을 기존 5초에서 15초로 변경
- grub2-mkconfig -o /boot/grub2/grub.cfg
grub의 내용을 변경했다면 변경 내용을 적용하기 위해서 명령어 실행
- 변경한 내용을 확인하기 위해 재부팅 한 후 GRUB 화면에서 변경사항을 확인하니
대기시간이 15초로 변경된 것을 확인할 수 있었다.
인자값이 있는 마지막 줄로 이동하여 인자값 변경
-- 기존 인자값 : rhgb quiet
-- 변경 인자값 : rw init=/bin/sh
Ctrl + x를 눌러 부팅 진행 (이때 응급 복구 모드로 부팅이 자동으로 진행된다.)
사용자 확인 후에 passwd 명령어를 사용하여 패스워드를 변경한다.
-- whoami
사용자가 root인지 확인해야 한다.
(내가 변경하려는게 root의 패스워드이기 때문)
SELinux를 사용할 경우에는 라벨(label) 변경 명령을 실행
-- touch /.autorelabel
시스템 재부팅
-- exec /sbin/init
GRUB에는 아무나 접근하면 안돼기 때문에 GRUB에 사용자(id), 패스워드(pw)를 설정할 수 있다.
/etc/grub.d/00_header 파일에서 GRUB의 사용자, 패스워드 설정 코드를 입력할 수 있다.
vi /etc/grub.d/00_header 파일 수정
아래 명령어를 맨 아랫줄에 입력
-- vi 모드에서 gg → 파일 맨 위로 이동
-- vi 모드에서 Shift + g → 파일 가장 아래로 이동
-- EOF (End Of File)
cat <<EOF
set superusers="4gl"
password 4gl 1234
EOF
사실 결국 제일 중요한건 GRUB의 내용을 변경했다면 변경사항을 적용하기 위해
grub2-mkconfig -o /boot/grub2/grub.cfg 명령어를 실행하는것이 가장 중요함
(해당 명령어를 실행하지 않으면 수정한 의미가 없다.)
나는 지금 실습을 하며 외부와 연결을 하지 않기에 해당 모듈을 종료시키겠다.
콘솔 창의 종류를 변경할 수 있음
F1 - GUI 기반
F2 - CLI 기반
그림과 가벼운 설명으로 컴퓨터의 역사에 대해 쉽게 이해할 수 있는 블로그
https://joone.net/2018/06/21/22-x-window-%ED%83%84%EC%83%9D/
- systemd의 디렉터리
/etc/systemd/system
1. service
관련 파일명이 .service로 끝나며 .service로 끝나는 프로그램을 보통 데몬(daemon)이라고 부름
(daemon : 백그라운드에서 구동되는 프로그램)
2. target = runlevel(런레벨)
관련 파일명이 .target으로 끝나며 부팅 레벨, 특정 동기화 지점같이 유닛을 그룹화 할 때 사용
시스템 상태를 정의할 때 사용
현재 사용중인 target을 확인하는 명령어
systemctl get-default
target을 변경하는 명령어
systemctl set-default multi-user.target 기본 타켓을 멀티유저(CLI)로 변경
target의 디렉터리
/usr/lib/systemd/system
ls -l runlevel❓.target
3. socket
관련 파일명이 .socket으로 끝나며 프로세스간 통신에 사용되는 소켓을 의미
socket과 service의 차이
service : standalone
상시 메모리에 적재 (처리 빠름)socket : xinetd, inted
요청 시에만 메모리에 적재 (처리 느림)
timedatectl list-timezones
- 나라별 시간대 명령어를 확인할 수 있음
timedatectl set-timezone Europe/Budapest
- Europe/Budapest의 시간으로 컴퓨터의 시간을 변경함
- 기존 KST(한국시간)에서 CET(세계기준시간)으로 변경됨
문제) timedatectl 에서 Seoul의 명령어만 표시하고 시간을 다시 Seoul로 변경하라
timedatectl list-timezones | grep Seoul
timedatectl set-timezone Asia/Seoul
기본적으로 도메인 이름은 표시되지 않고 호스트 이름만 표시됨
- hostnamectl set-hostname www.daum.net - 나의 호스트 이름을 www.daum.net으로 바꾸겠다
(변경되었는지 확인하기 위해선 쉘을 재시작해야됨)- exec bash - 쉘 재시작
-- 기본적으로 도메인 이름은 표시되지 않고 호스트 이름만 표시되는것을 알 수 있음
-- 도메인 이름 : daum.net
-- 호스트 이름 : www
head
: 텍스트 파일의 첫 부분의 일정 부분을 보여주는 명령어
- 예시) head -4 hello.txt ➡️ hello.txt 파일의 마지막 4줄을 표시 하라는 의미
tail
: 텍스트 파일의 마지막 일정 부분을 보여주는 명령어
- 예시) tail -4 hello.txt ➡️ hello.txt 파일의 마지막 4줄을 표시 하라는 의미
more
: 파일의 내용이 긴 경우 화면(page) 단위로 출력하는 명령어
- 예시) cat hello.txt | more ➡️ hello.txt를 화면에 표시하고 페이지 단위로 표시해라
less
: 파일의 내용이 긴 경우 커서(방향키)를 사용해서 상하좌우 이동이 가능하며 한 줄씩 표시하는 명령어 (한 줄씩, 페이지 단위 모두 이동 가능 - more 업그레이드 버전)
- 예시) less hello.txt ➡️ hello.txt를 화면에 표시하고 방향키, 페이지 업/다운 등으로 자유롭게 탐색할 수 있음
systemctl
: systemd 기반의 시스템 및 서비스 관리를 제어하는 명령어
- 예시) systemctl --now enable httpd(.service) ➡️ httpd 서비스를 부팅 시 자동으로 시작하도록 하며 즉시 실행한다는 의미
✔️ enable : 다음 번 부팅 시 httpd 서비스를 자동으로 시작함 (이후로 쭉 ~ 자동 시작 상태)
✔️ start : httpd 서비스를 실행시킨다는 의미
✔️ enable + start = --now enable : 재부팅하지 않아도 당장 시작되며 재부팅 이후에도 쭉 자동으로 시작된다는 의미
init
: init 프로세스(현 systemd), 실행 중인 프로세스를 무조건 실행레벨에 맞춰 실행
(강제성이 높아 권장하지 않음)
- 예시) init 0 ➡️ 컴퓨터 즉시 종료
- 예시) init 6 ➡️ 컴퓨터 즉시 재부팅