TIL 20.12.07 - 리눅스 역사, 설치, 실습
1. 리눅스 역사
공식 문서
UNIX : www.opengroup.org/?
The Open Group Website
The Open Group works with customers and suppliers of technology products and services, and with consortia and other standards organizations to capture, clarify, and integrate current and emerging requirements, establish standards and policies, and share b
www.opengroup.org
UNIX, Linux역사 만화 : joone.net/2016/11/05/%ec%b0%b0%ec%8a%a4-%eb%b0%b0%eb%b9%84%ec%a7%80%ec%99%80-%ec%97%90%ec%9d%b4%eb%8b%a4-%eb%9f%ac%eb%b8%8c%eb%a0%88%ec%9d%b4%ec%8a%a4/
1. 찰스 배비지와 에이다 러브레이스
인류는 수학 계산을 좀 더 편리하고 정확하게 하기 위해 여러가지 도구를 만들었다. 그 중 주판은 여러 고대 문명에서 사용되었다. 우리나라에는 1400년대경에 중국에서 주판이 전래되었고 1980
joone.net
기존 UNIX는 Assembly로 작성되어 새로운 CPU가 나올 때마다 새로 작성해야 했다.
-> 포팅에 너무 많은 시간이 걸림.
-> C언어를 개발.
-> UNIX를 C언어로 새로 작성.
-> 하드웨어가 달라져도 rebuild 혹은 약간의 수정만으로 포팅이 가능한 장점.
-> C언어는 어셈블리어의 몰락을 가져오게 됨.
당시는 인터넷이 지금처럼 발달하지 않아 -> 개발자들간 소통의 부재로 인해 -> 폐쇄적으로 필요한 기능을 추가하여 -> 호환성 문제가 발생 -> 분열된 UNIX들의 경쟁
미국 정부에서도 불만 -> IEEE주도로 System call의 표준화 진행
POSIX : 'phazicks(파직스)'라고 읽는다.
POSIX는 입력과 출력은 정확하게 맞추고 구현은 자유롭게. semantic을 강제. API의 모양이나 함수의 형태를 강제.
POSIX.1 = IEEE std 1003.1 (파직스 원 = 아이트리플이 스탠다드 일공공삼점일)
OSF (Open Software Foundation) 설립.
원래 2개의 구도 양강구도였는데, 오히려 3,4강까지 늘어남.
Maunal Page: X/Open에서 만든 것.
※ man standards 명령어 꼭 실행해보기
POSIX는 공통 분모임.
빌게이츠가 Windows NT를 발표함으로써 UNIX계열을 모두 합치는 결과를 낳음.
SUS : Single UNIX Specification 유닉스 단일 표준안. 모든 유닉스 업계가 빌게이츠에 대항하기 위해 힘을 모음.
1995년에 UNIX95 발표.
1998년에 UNIX98 발표. 이것이 실직적 첫 SUS 표준
Open Standard를 통해서 표준화.
UNIX를 Open System이라고 부르는 경우가 많다.
이때 'Open'의 의미는 운영체제의 api나 구조가 공개되어 있기 때문.
Linux는 임시 운영체제였다.
리누스 토발즈: 리눅스의 아버지
GNU: 원래 '거누'라고 읽음. 근데 보통 '지엔유'라고 읽음.
Gnu is Not UNIX의 약자.
< FSF & GNU & GPL >
FSF에서 도움을 줘서 Minix가 빠르게 발전. Free Software Foundation
Time-Sharing 시분할
gcc개발
GNU가 만든 건 GPL 라이센스가 있음.
이 라이센스를 가진 소프트웨어는 누구든 쓸 수 있고, copy할 수 있다. 하지만 이것을 이용해서 개발한 것은 모두 공개해야 함.
LGPL, MIT, BSD, Apache 라이센스
Mac OS X (최초 이름 Darwin이었음)
우분투는 DEB계열 (데비안 계열)
RedHat계열: RPM패키지를 사용하는 경우.
- RHEL : Red Hat 공식 리눅스. 상업 지원을 받을 수 있다.
- CentOS : RHEL의 브랜드 삭제. 상업 지원을 받을 수 없지만 무료이다. 상업용 회사들은 대부분 사용.
- Fedora : 가장 빠른 최신 버전. 신기술이 많이 있다. 개발자들은 Fedora를 많이 쓴다.
- Suse : 수세 리눅스
Debian계열: Deb패키지 사용.
Ubuntu: 기본적으로 스파이웨어(광고)가 깔려서 욕 먹고 있음.
2. Linux 설치
2020/12/07 - [OS/윈도우] - 윈도우에 VMware Workstation 16 Player 설치
윈도우에 VMware Workstation 16 Player 설치
1. VMware 다운로드 및 설치 www.vmware.com/kr/products/workstation-player/workstation-player-evaluation.html 계속 Next눌러주다가 다음만 설정을 바꾸었다. 재부팅을 하고 나면 바탕화면에 VMware 아이콘이..
donie.tistory.com
2020/12/07 - [OS/윈도우] - 윈도우 VMware에 우분투(16.04) 설치방법2
윈도우 VMware에 우분투(16.04) 설치방법2
2020/12/07 - [OS/윈도우] - 윈도우 VMware에 우분투(16.04) 설치방법1 윈도우 VMware에 우분투(16.04) 설치방법1 1. 우분투 ISO 다운로드 mirror.kakao.com/ubuntu-releases/16.04.7/ubuntu-16.04.7-desktop-amd6..
donie.tistory.com
2020/12/08 - [OS/윈도우] - VMware에 Ubuntu설치 후 작업
VMware에 Ubuntu설치 후 작업
1. vmware-tools 설치 터미널창을 키고 다음 명령어를 수행한다. sudo apt update sudo apt list open-vm-tools* sudo apt -y install open-vm-tools* 설치 중간에 오류를 발견했다고 뜨는데, 그냥 취소 누르면..
donie.tistory.com
2020/10/02 - [OS/리눅스] - Ubuntu 16.04 한글 설치
Ubuntu 16.04 한글 설치
1. 아래의 명령어 실행하여 fcitx-hangul 패키지 설치 sudo apt-get install fcitx-hangul 2. System Settings 실행 Language Support 아이콘 실행 언어팩을 설치하라는 팝업창이 뜨면 설치 'Keyboard input meth..
donie.tistory.com
3. 실습
Login/Logout
console terminal: = console
remote terminal: = terminal 웹브라우저도 터미널의 일종.
서버나 장치에 직접 붙어있으면 console.
PC, Notebook, PC는 remote terminal.
로그인이란
1) 접속을 요청하고
2) 인증과정을 거쳐서
3) 시스템 내부와 통신 가능한 상태가 되어
4) 시스템
로그인을 하지 않으면 세션이 안 생긴다.
GNOME ('그놈'이라고 읽음)
Ctrl + Alt + F3 누르면 Text Console로 이동
Alt + F7 누르면 Graphic Console로 돌아옴
Prompt prefix
#: (hash라고 읽음. 샾 아님 주의.) 루트계정.
$: (달러라고 읽음.) 일반 계정.
어떤 명령어 앞에 # 또는 $표시를 보고 어떤 계정(루트 or 일반 계정)에서 내려야 하는 명령인지 판단해야 한다.
로그아웃
login하면 session이 만들어지는데, 이를 해제하는 것을 logout이라고 한다.
logout명령어: exit, logout, <Ctrl-D>
Session은 서버 측에 존재하는 출근부와 같다고 생각하자. login은 출근, logout은 퇴근에 비유할 수 있다.
UNIX account(계정)의 종류
관리 명령
1. 새로운 유저 추가
useradd -m username : username라는 이름의 유저를 생성한다.
adduser 명령어 사용 가능.
계정 변환 su명령어 이용.
linuxer로 변환하기 때문에 linuxer의 비밀번호를 입력하면 계정이 변경된다.
Ctrl + D를 누르면 바로 이전 유저로 돌아간다.
Ctrl + D를 눌렀는데, logout이 쳐지면서 이전계정인 hs계정으로 돌아갔다.
유저 정보 확인
$ id username
uid=0은 항상 root계정이다.
루트계정 비밀번로 설정방법
sudo passwd UserName : UserName계정의 비밀번호를 설정한다.
Password를 입력하라고 뜬다. 입력하면 됨.
한 유저가 여러 개의 그룹에 가입할 수 있다.
그룹 추가: root계정에서 해야 한다.
# groupadd dev1
sudo그룹에 가입시켜주면 sudo명령어를 이용할 수 있다.(?)
su 뒤에 - 를 항상 붙인다.
'-'는 로그인 과정을 수행하는 것을 의미한다. - 를 쓰지 않으면 권한의 문제가 생길 수 있다.
그렇기 때문에 su명령으로 유저를 교체할 때, - 를 쓴다.
환경 변수: 세션이 만들어지면 세션에 대한 정보.
LANG이라는 변수.
man page
manual page보는 방법
man [option] <item>
<item>은 명령어 또는 단어.
ex. man useradd 를 실행하면 아래 화면처럼 useradd에 대한 설명이 나온다.
man su 명령어를 실행하면 아래와 같이 나온다.
환경설정을 영어로 해놨기 때문(?)
LANG 환경변수
locale + character set
LANG변수 확인: echo $LANG
en_US.UTF-8
en은 language 언어, US는 country 나라, UTF-8은 character set을 의미한다.
locale -a : 사용할 수 있는 locale전부 출력
Locale "C" : C언어는 UNIX개발을 위해 만들어졌기 때문에 C언어가 사용하는 최소한의 로케일을 따로 저장.
Locale "POSIX" : POSIX는 최소한의 공통 분모.
locale -a 를 실행했을 때 ja_JP.utf8이 없는 것을 확인.
새 로케일 추가: 루트계정에서 실행
locale-gen ja_JP.utf8
export LANGUAGE=''
로케일을 바꿀 때는
localectl set-locale LANG=<설정할 locale>
putty 쁘띠