[week1-2] 리눅스 설치 및 기초

haeryong·2022년 11월 1일
0

Linux 기초

Linux 설치 : VMware 가상 머신 기반 Ubuntu 설치

가상 머신 소개

가상 머신
현재 사용하는 OS 위에 다른 OS를 애플리케이션처럼 운용.
현재 OS : Host OS / 가상 OS : Guest OS

장점 : 간편한 설치 및 구성, 백업

단점 : 느린 속도, 일부 Host OS의 하드웨어 장치를 사용할 수 없다.

가상 머신의 종류
Full-virtualization
-낮은 성능, 높은 독립성
-Host OS 위에서 하나의 애플리케이션으로 인식(Hypervisor)
-CPU나 플랫폼에서 가상화를 돕는 가속화 기능 필요(Intel VT-x, VT-d, AMD-V)

Windows : VMware, Virtualbox(vbox), WSL

OSX : VMware, Virtualbox(vbox), Parallels

Linux : VMware, Virtualbox(vbox)

#라이선스 : vbox는 Opensource, 그 외는 상업적 소프트웨어

Para-virtualization
-높은성능, 낮은 독립성(Host OS와 밀접한 관계)

VMware 설정

가상머신 생성
Create a New Virtual Machine 클릭
I will install the operating system later 체크 후 next
Guest OS로 Linux 체크, Version으로 Ubuntu 64-bit 선택
VM 파일 저장 위치 지정
Maximum disk size (GB) 50GB 정도로
Finish

세부 설정
Edit virtual machine settings 클릭
Processor 탭의 Virtualize Intel VT-x/EPT 체크해서 가상 머신 가속 기능 활성화.
CD/DVD 탭에서 Use ISO image file 체크, 우분투 iso파일 선택, ok

Play virtual machine으로 시작

Ubuntu 설치 후 설정

open-vm-tools
VMware의 vm-tools의 패키지버전
컴파일 과정 없이 설치만으로 VMware vm-tools의 사용이 가능

기능
-화면 조절, 그래픽 가속
-클립 보드: 윈도우에서 복사한 텍스트를(Ctrl + C) 리눅스에서 붙여넣기(Shift + Insert)가능 / 리눅스에서 복사(드래그)한 텍스트를 윈도우에서 붙여넣기 가능
-파일 복사: 윈도우 탐색기에서 파일을 끌어다가 리눅스에 놓으면 됨.

설치

$ sudo apt install open-vm-tools{,-desktop}
$ sudo reboot

데일리 서비스 비활성화

서버 용도의 경우 보안 및 관리를 위해 사용하는 것을 권장한다. 하지만 데스크탑, IoT용도의 경우 daily를 weekly로 변경하거나 비활성화하는 경우가 많다.

비활성화
$ sudo systemctl disable --now apt-daily.timer
$ sudo systemctl disable --now apt-daily-upgrade.timer

확인
$ sudo systemctl status apt-daily.timer
$ sudo systemctl status apt-daily-upgrade.timer
2개의 unit에 모두 disabled / inactive이면 비활성화 된 것임.

root 유저 암호 설정

암호 설정
$ sudo passwd
$ 새 암호 입력

root유저로 교체해 확인해보기
$ su -
$ 암호 입력

돌아가기

$ exit 
또는 ctrl + D

가상머신 끄기
1. terminal에서 poweroff 커맨드 입력
2. X window 우측상단의 컴퓨터끄기 or Poweroff

VT활성화, VMware: Preference

VT(Virtualization Technology) 활성화

VMware Settings
VT : 가상화 가속 기능
VT를 지원하는 지 확인해보기
-Win10에서 cmd 혹은 powershell 실행
systeminfo 명령어 실행

(펌웨어에 가상화 사용 : 예) 라고 된 경우 그냥 넘어가기.
아니면 바이오스에서 켜기.

Vmware setting의 Processor에서 VT-x 옵션 체크

*wsl이 설치된 경우 삭제해야함!

VMware : Preferences

VMware Preference
Close beavior 부분에 Power off the virtual machine 체크

Software updates, Customer Experience ... 부분은 모두 체크 해제

Ubuntu GUI 사용법

terminal 사용법

fixed width font 설치

$ sudo apt -y install fonts-nanum* fonts-naver*

터미널 상단의 편집 -> preference -> 터미널 글꼴 선택에서 나눔고딕코딩 선택

새 페이지 추가 : Ctrl + shift + T
Alt + 1~0 또는 Ctrl + pgup / pgdown으로 페이지 이동

window

창 move : alt(또는 window) + mouse1 드래그
창 resize : 마우스를 모서리 부근에 두고 alt(또는 window) + mouse2(휠클릭) 드래그
Super 키(= Window 키)

시스템 설정(제어판)

우측상단 아이콘 또는 apps에서 Settings 클릭

지역 및 언어
한국어 101/104키 삭제하기
한국어(Hangul)만 남겨두기

한영키 전환 : Shift + Space
세팅을 통해 바꾸기 가능.

개인 정보
자동화면잠금 끄기

전원
빈 화면 시간 변경

키보드
단축키 변경

Login shell and Environment

운영체제(OS)

Operating System

OS : 하드웨어를 제어하는 핵심 코드인 kernel과 다른 application들로 이루어져 있음.

shell : 다른 application을 구동시킴. kernel 바깥에 있고, kernel과 app 사이 Interface 역할을 함.

실행 영역에 따라 구분하자면
system 영역 : kernel의 기능을 가져다 씀
user 영역 : kernel의 도움이 필요 없는 영역

모든 프로세스는 user, system영역을 동시에 사용함.
하드웨어 기능이 필요한 경우 system call이 kernel 기능을 호출함.

shell, User Interface

Linux는 기본으로 bash라는 shell을 사용함.

UI(User Interface) : 시스템의 조작 및 통신을 위해 외부의 접속을 받아들이는 부분
shell은 기본적으로 CLI/CUI 방식 사용
CLI(Command Line Interface)/CUI(Character User Interface)
(<-> GUI(Graphic User Interface))

CLI/CUI

Command Line Interface
-Prompt에서 command 타이핑을 통해 실행되는 구조
-텍스트 베이스 방식.

장점: 오버헤드가 적다. 입출력 결과를 파일로 지정할 수 있다.
단점: 사용자 친화적이지 않다.

Text-based (graphical) User Interface
-텍스트를 이용해서 구현하는 그래픽을 사용하는 UI
장점: 오버헤드가 적다.
단점: 화면 크기, 글꼴에 따라 화면이 깨질 수 있음.

Graphical User Interface
VGA 그래픽 방식을 사용하는 UI
장점: 섬세한 그래픽, 색상
단점: 높은 통신 대역폭, 메모리 -> 높은 하드웨어 성능 필요

CLI/CUI vs GUI : performance
UNIX, Linux는 CLI/CUI 방식을 선호
낮은 대역폭에서도 잘 작동하고 저전력으로 작동하기 때문.

Login / Logout

console: 컴퓨터에 물리적으로 연결된 제어용 송수신 장치를 의미함.
terminal: 데이터를 송수신하는 목적지, 출발점이 되는 장치.

console terminal : 시스템에 물리적으로 부착된 콘솔에서 액세스한 터미널. 그냥 console로 불림
remote terminal : 원격에서 액세스한 터미널 : ssh, web shell, X terminal 등등으로 접속.
보통 terminal로 불림.

Text Console
대부분의 UNIX, Linux 서버는 text console을 사용
-오버헤드, 대역폭이 이유

Text console 전환 방법
일반적으로 Alt + F(1~6)을 통해 전환. Graphical console에서 전환할 때는 CTRL을 함께 눌러줌.

Login
-접속을 요청
-인증 과정을 거침
-시스템 내부와 통신 가능한 상태가 되어
-시스템에 명령을 내릴 수 있는 인터페이스가 실행되는 것.
로그인 성공 결과로 session이 만들어짐.

DE
Graphical console은 Desktop Environment에 따라 조금씩 다르고,
배포판에 따라 기본 DE가 다르다.
Ubuntu : Unity / GNOME(주로 사용)
Debian, RH 계열 : GNOME / KDE / Xfce(저성능에서 주로 사용) / MATE

Prompt prefix
#(해시) : root 유저를 의미
$ : 일반 유저를 의미

Logout
session을 해제하는 것.
exit, logout, Ctrl + D를 통해 로그아웃

poweroff / reboot

Old Linux/UNIX에서
shutdown -h 또는 halt == poweroff

RH7 Linux 이후(systemd 기반)
shutdown -h, halt는 소프트웨어적인 종료를 의미
poweroff 명령어 사용.

reboot

UNIX account

UNIX account

UNIX 계정의 종류
1. System account
-root 및 system service 전용 계정

  1. normal account
    -나중에 추가하는 로그인이 가능한 일반 유저

계정의 계층에 따라 권한이 분리되고, 접근할 수 있는 dir, file, process가 구분됨.

user, group 관리 명령어
user :
useradd, usermod, userdel
id, whoami

group :
groupadd, groupmod, groupdel

user 교체, 권한 등의 명령어
user 관련 :
su (substitute user)
passwd

group 관련 :
newgrp(log in to a new group)
gpasswd

계정 및 그룹의 생성, 변경, 삭제

새로운 유저 추가
$ useradd -m linuxer
(-m : 유저의 home dir을 생성함.)

위에서 추가한 linuxer라는 유저의 패스워드 정하기.
$ passwd linuxer

유저 정보 확인
$ id linuxer

root 유저 암호 설정
$ sudo passwd

그룹 생성, 암호 설정

# groupadd teamdev4
# gpasswd teamdev4

그룹 가입

# usermod -aG teamdev4 linuxer

linuxer로 로그인한 뒤에 그룹 로그인하기.

$ newgrp teamdev4

id를 통해 확인하면 gid가 변해있다.
exit을 통해 로그아웃.

sudo 그룹 추가

# usermode -aG sudo linuxer

권한 박탈('' 그룹을 제외한 나머지 그룹 모두 제거)

# usermod -G '' linuxer

1개만 제거할 때

# gpasswd -d linuxer teamdev4

유저 교체

su [-] [ID]
(substitute user)
ID 생략 시 root 유저로 교체함을 의미함
- 지정 시 login shell로 작동하기 떄문에 대부분 붙여 줌.

man page와 locale

man page
UNIX 계열은 CLI로 작동하는 online manual이 있고 이를 manpage라 한다.
표준 UNIX 명령어는 XPG라는 메뉴얼에서 유래.

manpage 명령어

# man [option] <item>

무괄호, <> : 필수 항목
[] : 옵션 항목.

메뉴얼 보기(설치 언어로 나옴)

$ man su

LANG 환경변수 : 설정을 통해 표시 언어를 변경 가능.

$ echo $LANG
ko_KR.UTF-8
locale : ko_KR(language_country)
character set : UTF-8

환경변수 변경

$ export LANG=en_US.UTF-8

LANGUAGE 환경변수 : language의 우선순위 결정

locale "C"
C언어가 작동하기 위한 최소한의 로케일

locale-gen
시스템에 없는 로케일 생성 명령어

# locale-gen ja_JP.utf8

localectl
시스템의 locale을 확인 및 설정

# localectl -h
# localectl <double tap>으로 가능한 명령어 확인

0개의 댓글