DAY01. Linux 기초
Linux 설치 : VMware 가상 머신 기반 Ubuntu 16.04 설치
가상 머신
가상 머신(Virtual machine)
현재 사용하는 OS 위에 다른 OS를 애플리케이션처럼 운용
가상 머신의 한계
가상 머신의 종류
Full-virtualization 전가상화
Para-virtualization 반가상화
Full-virt.
다운로드
VMware workstation player
www.vmware.com/kr/products/workstation-player/workstation-player-evaluation.html
Ubuntu 16.04.07
카카오 미러
mirror.kakao.com/ubuntu-releases/16.04.7/ubuntu-16.04.7-desktop-amd64.iso
설치: VMware
설치 : VMware: License
설치: VMware: 실행 화면
Linux 설치 후 작업 / 유용한 주요 기능
우분투 GUI 사용법
터미널 사용법
<CTRL + ALT + T>
<CTRL + SHIFT + T>
<ALT + numeric key>
<CTRL + PageUp/PageDown>
한영 전환
<Super(Window key)+Space>
Window: move
<ALT+Mouse1>
Window: resize
<ALT+Mouse2>
도크 정리
시스템 설정: 잠금 해제
시스템 설정 > 밝기와 잠금
시스템 설정: 단축키
시스템 설정 > 키보드 > 바로 가기
Super키 사용법
Super키를 지그시 누르고 있으면 나옴
우분투 설치 후 작업
vmware-tools
vmware-tools 기능
vm-tools 기능
파일 복사 기능
윈도우즈 탐색기에서 파일을 끌어다가 X window 화면에 넣으면 복사가 된다.
Clip-board 기능
윈도우즈에서 <CTRL-C>로 복사한 텍스트는 <Shift-Insert>로 붙이기가 가능.
반대로 리눅스에서 마우스 왼쪽 버튼으로 색칠하거나 복사한 텍스트는 윈도우즈에서 <CTRL-V>로 붙이기 가능.
데일리 서비스 비활성화
sudo systemctl disable -- now <unit 이름>
$ sudo systemctl disable --now apt-daily.service
$ sudo systemctl disable --now apt-daily.timer
$ sudo systemctl disable --now apt-daily-upgrade.service
$ sudo systemctl disable --now apt-daily-upgrade.timer
데일리 서비스 비활성화 : 확인
sudo systemctl status <unit 이름>
$ sudo systemctl status apt-daily.service
$ sudo systemctl status apt-daily.timer
$ sudo systemctl status apt-daily-upgrade.service
$ sudo systemctl status apt-daily-upgrade.timer
4개의 unit이 모두 disabled / inactive 상태로 되어있어야 한다.
root 유저 암호 설정
sudo passwd 명령으로 root 암호 설정
끄기
X window에서는 우측 상단에 "컴퓨터 끄기"로 끈다.
혹은 terminal에서 poweroff 명령어를 내린다.
VT (Virtualization Technology) 활성화 / VMware : Preferences
VMware settings
VMware settings: VT
VT (virtualization Technology)
가상화 가속 기능 : 켜두면 VMware가 빨라진다.
VMware settings: VT 활성화
VMware settings: VT: VM settings
VMware Player: Preferences
Linux 운영체제와 shell 인터페이스 / CLI, CUI, GUI의 차이 / Linux 사용법 : login, logout
운영체제(OS)란?
Modern Operating system의 구성
shell : application을 구동시킴
program : OS의 구성중 일부분
application : web browser, music player...
kernel : 하드웨어를 제어하는 핵심 코드
shell, User Interface
CLI/CUI
Command Line Interface
CLI/CUI 인터페이스는 명령행에서 타이핑을 하고 결과를 출력하는 방식이다.
TUI
Text-based (graphical) User Interface
텍스트를 이용해서 구현하는 그래픽을 사용하는 UI
GUI
Graphical User Interface
VGA 그래픽 방식을 사용하는 UI
CLI/CUI VS GUI : performance
UNIX, Linux는 CLI/CUI방식을 선호한다.
Performance가 좋기 때문 == 낮은 대역폭에서도 잘 작동 and 저전력
CLI on Linux
Login / Logout
Console, Terminal
login, logout
tty
poweroff, halt
Console/Terminal
Console terminal vs Remote terminal
Console: interface에 따른 분류
Text Console
Text console 스위칭 방법
일반적으로 <ALT-F1> ~ <ALT-F6>에 맵핑되어있으며, tty라고 부른다.
Graphical console에서 전환할 때는 <CTRL-ALT-F1> ~ <CTRL-ALT-F6> 로 바로 이동 가능
Graphical Console
Graphical console은 F1 or F7에 맵핑된다.
<ALT-F7>
Login : definition
Login: console
Login: Text console
실습: login: text console
Login: command prompt
실습: Console 스위칭
Prompt prefix
# : root 유저를 의미
$ : 일반 유저를 의미
Logout : exit, logout 명령어
logout 명령어 : exit, logout, <CTRL-D>
<CTRL-D> : EOT(End of Transmission)
poweroff / reboot
shutdown -h와 halt는 소프트웨어적인 종료를 의미
하드웨어 전원을 끄는 경우에는 poweoff 명령어 제공
reboot 시스템 재시작
Homework
UNIX account(계정)
UNIX account: class
System account
normal account
UNIX account: user, group
user, group 관리 명령어
user
useradd, usermod, userdel
id, whoami
group
groupadd, groupmod, groupdel
UNIX account: authentication
user 교체, 권한 등의 명령어
user 관련
su (substitute user)
passwd (password)
group 관련
newgrp (log in to a new group)
gpasswd (group password)
Practice #1
Homework
user : substitution
su [-] [ID]
substitute user
✔ login shell
su를 그냥 사용하면 권한, 환경설정에 문제가 생길 수 있다.
따라서 항상 su - 로 login shell로 교체하거나, 혹은 sudo를 이용하는 방식을 사용하는 것이 좋다.
Practice #2
환경변수(Environment variable)
login 시 세팅되는 주요 환경변수 리스트
설명 | |
HOME | 홈 디렉터리 위치 |
HOSTNAME | 현재 호스트 컴퓨터의 이름 |
TERM | 현재 사용하는 터미널의 종류 |
HISTSIZE | 명령어 히스토리 크기 |
USER | 현재 로그인 유저명 |
Email을 읽어올 위치 | |
PATH | 실행파일 검색 경로 리스트 |
PWD | 현재 작업 디렉터리 위치 |
LANG | 쉘의 로케일 정보, 캐릭터 세트 |
PS1 | 프롬프트 형태 |
SHELL | 현재 사용하는 쉘 |
man 페이지 / locale
Man page와 locale 설정
Online manual : man page
Locale 설정 : 언어, 국가(지역) 및 문자세트
man page
UNIX 계열은 CLI로 작동하는 online manual이 있음
이를 man page라고 한다
man page: 개요
man [option] <item>
e.g. man useradd, man -f printf
man page: 출력 언어
Practice : man page
LANG, LANGUAGE: locale/character set
LANG 환경변수
locale: 사용자의 언어 및 지역정보
language : ISO 639-1
country(territory) : ISO 3166-1
character set : 입출력 문자표, ISO 646/ISO 8859/MS CP/ISO 2022/UTF-8,16,32...
LANG, LANGUAGE: locale/character set
locale
locale -a
all option : 시스템에서 가능한 로케일 리스트를 모두 출력
locale: C
Practice : man page (on console)
Practice : date (on console)
locale: LANG에 따른 변화: date
date는 날짜 출력 명령어 (옵션이 없는 경우 현재 시각)
locale-gen
# locale-gen ja_JP.utf8
locale-gen으로 ja_JP.utf8을 생성한 뒤에 locale -a로 확인
localectl
System의 locale을 확인 및 설정 (설정은 root권한 필요)
localectl -h
localectl <double tab>으로 사용가능한 명령을 확인 가능
update-locale은 옛날 명령어다. localectl로 사용하여야 한다.
localectl : set-locale
localectl set-locale LANG=en_US.utf8
character set(encoding): putty
Homework