배운점
유닉스(Unix)
리눅스가 탄생하기 이전 운영체제
지금도 많이 사용되는 운영체제 중 하나이지만 높은 비용 지불 필요
IBM의 AIX, HP의 HP/ UX, 오라클의 Solaris, DEC의 Digital Unix, SCO의 SCO Unix 등
리눅스(Linux)
무료 유닉스 개념
유닉스와 거의 동일한 운영체제이면서 무료, 어떤 면에서는 유닉스보다 뛰어남
커널(Kernel)
리누스 토발즈(Linus B. Torvalds)가 1991년에 리눅스 커널(kernel) 0.01 버전을 작성
1992년에 0.02 버전을 내놓으면서 인터넷에 소스코드를 공개, 이것이 리눅스의 시초
통상적인 리눅스는 토르발스가 만든 커널에 컴파일러, 셸, 기타 프로그램이 조합된 배포판
배포판은 전 세계적으로 수백 가지가 넘지만 모두 토발즈가 제작한 커널을 사용하며 대표적인 것이 우분투 리눅스
리눅스 배포판의 구성
멸령어와 사람을 연결 :셀
커널 : 리눅스라 봐도됨
GNU 프로젝트
대표적인 리눅스 배포판
GNU 프로젝트의 목표와 FSF
모두가 공유할 수 있는 소프트웨어를 만드는 것이 목표
1985년 스톨먼은 GNU 프로젝트에서 제작한 소프트웨어를 지원하면서 누구든 소프트웨어
를 자유롭게 사용할 수 있도록 자유소프트웨어재단(Free Software Foundation, FSF) 설립
GPL(General Public License)
FSF에서 제공하는 자유 소프트웨어 대부분의 수정 및 공유를 보장하는 가이드
GPL은 소프트웨어 사용/수정/재배포/수익 창출에 대한 자유의 개념 내포
단, 수정한 소프트웨어로 수익 창출 시, 소스 코드를 공개해야 함
커널의 구성
안정 버전(stable version): 이미 검증된 개발 완료 코드로 구성
메인라인 버전(mainline version): 토르발스가 개발 중인 버전, 안정 버전이 나오기 전에 추가된 기능을 미리 접하고 싶을 때 사용
프리패치 버전(prepatch version): 안정 버전이 나오기 전에 추가된 기능을 미리 접하고 싶을 때 사용
커널 버전 업그레이드
2019년 5월을 기준으로 안정화된 최신 커널은 5.1.15 버전
파일 이름에 붙은 숫자 5.1.15의 5는 주버전(major version), 1은 부버전(minor version), 15는 패치 버전(patch version)을 의미
배포판에 포함된 기본 커널을 사용자가 직접 최신 커널로 업그레이드할 수 있으며, ‘커널
업그레이드’ 또는 ‘커널 컴파일’이라고 함
데비안 리눅스
유명한 리눅스 배포판 중 하나이며 1993년에 이언 머독(Ian Murdock)이 창시한 데비안 프로젝트(Debian Project)에서 제작
데비안 리눅스의 정식 버전은 1996년 1.1 버전(코드명 Buzz)으로 시작, 2019년 10 버전 발표
패키지의 설치와 업그레이드가 상당히 단순하고 apt 프로그램을 이용하여 소프트웨어 설치나 업데이트가 자동으로 진행됨
우분투 리눅스
데비안 리눅스를 기초로 유니티(unity) 데스크톱 환경을 사용하는 리눅스 배포판
첫 버전을 출시한 이후 계속 업그레이드됨, 인기 리눅스 배포판 중 하나
기본적으로 우분투 데스크톱과 우분투 서버를 배포
쿠분투(Kubuntu), 우분투 킬린(Ubuntu Kylin), 루분투(Lubuntu), 주분투(Xubuntu) 등 다양한 배포판 개발, 이를 통틀어 ‘우분투 플레이버스(Ubuntu flavours)’라고 부름
우분투 리눅스 버전 주기
일반 버전은 약 6개월마다, LTS(장기, 5년) 버전은 2년마다 새로운 버전 발표
Ex) 우분투 15.10 - 2015년 10월에 발표한 일반 버전, 우분투 18.04 LTS - 2018년 4월에 발표한 장기 지원 버전
최신버전 21.10
최소 혹은 권장 하드웨어 사양
CPU: 2GB 이상의 듀얼코어 프로세서
하드디스크의 여유 공간: 25GB 이상(추가 설치에 따라서 달라질 수 있음)
메모리: 2GB 이상
그래픽 카드: 1024×768 이상의 해상도 지원
패키지에 대한 세부 내용
우분투 프로젝트 위키 https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes
우분투의 의미와 로고
: ‘Ubuntu’는 남아프리카 어느 부족의 말로, ‘너가 있으니 나도 있다’라는 뜻
네트워크카드로부터 가상 라우터를 통해 윈도우와 연결, 가상 라우터가 가상아이피 제공
가상머신(게스트 컴퓨터) 3대를 만들고 리눅스 3대 설치
가상머신 3대에는 가상 IP 주소를 할당하고, 가상 라우터를 통해 가상머신 3대를 하나의 네트워크로 묶어 동일한 네트워크 환경으로 사용
→ 윈도우(호스트 OS) 1대와 리눅스 3대로 이루어진 환경이 만들어짐
root
password
cd /etc/apt
ls
sudo mv sources.list sources.list.bak : 파일 이름 변경
sudo su - root
passwd : 패스워드 입력
reboot : 재부팅
쿠분투
halt -p : 시스템종료
마우스안보일때 : ctrl+alt
shift + 콜론 , 편집모드
터미널 열기 : Ctrl + Alt + T
런레벨
init 명령어 뒤에 붙는 숫자가 런레벨(runlevel)
리눅스의 시스템 가동 방법은 다음과 같이 일곱 가지로 분류
런레벨 모드를 확인하려면 /lib/systemd/system 디렉터리의 runlevel?.target 파일 조회
init 0 명령은 ‘지금 즉시 런레벨 0번으로 시스템을 전환하라’는 의미
런레벨 0번은 종료 모드, ‘지금 즉시 시스템을 종료하라’는 의미
init 6 명령은 ‘지금 즉시 재부팅하라’는 의미
설정된 런레벨 터미널에서 확인하기
cd
ls -l /lib/systemd/system/default.target
graphical로 변경된거 확인
런레벨 변경하기
ln -sf /lib/systemd/system/multi-user.target /lib/systemd/system/default. target
// multi-user 로 변경
ln -sf /lib/systemd/system/graphical.target /lib/systemd/system/default.target
// graphical 로 변경
ls -l /lib/systemd/system/default.target
reboot
이전에 사용했던 명령
history
history -c // 이전 명령어 삭제
터미널 닫기
exit
gedit와 vi 에디터
gedit는 X 윈도우에서 제공하는 편리한 에디터
윈도우의 메모장과 동일한 역할
터미널에서 간단히 gedit 파일명 명령을 입력하면 해당 파일 편집 가능
vi 에디터는 모든 유닉스, 리눅스 시스템에 기본으로 포함됨
gedit
메모장과 비슷한 용도로 사용
gedit // 홈에 저장
gedit /root/test.txt //기존의 파일이 열림
vi
vi 에디터를 종료하려면, Esc 누르고 shift + ; 누름 ‘:q’ 입력 후 Enter 누르기
Esc -> shift +; 후 vi new.txt 입력
I또는 A 입력 -> 입력모드
내용 입력 후
:wq 입력 (Write) 종료(Quit)됨
내용 작성하다가 :w test3.txt 하면 중간에 파일 저장,생성
:q! 입력 시 종료(변경 내용 무시하고 종료)
저장을 했다면 :q로 바로 종료
Esc 누른 후 ‘:wq test3.txt’ 입력하고 Enter 누르면 저장과 동시에 종료
기존 파일 열어 수정 및 저장하기:
터미널에서 vi test3.txt 명령 입력하면 기존 파일이 열림
Esc 누른 후 ‘:wq’ 입력하고 Enter 누르면 저장과 동시에 종료
:q! 입력 시 종료(변경 내용 무시하고 종료)
회고
리눅스 학교다닐때 안만져봤다. 수강신청을 안했기 때문이다.
윈도우말고 다른 os 를 다뤄보고 싶었다. 개발자가 리눅스는 필수다.
좋은 기회다.
공부할 환경만드는게 복잡하고 cli라 명령어들을 외워야한다.
난 잘하고 싶다
외우자
오전에 Board프로젝트 각 조별로 발표했다. 난 내수준에서 열심히 했다. 발표를 보니 생각보다 내 코드와 비슷하고 크게 다를바 없었다. 못한건 아니란 생각이 들었다.
간단한 CRUD 에서 db연결, 파일 입출력은 시간이 좀걸리지만 다룰 수있을것 같다. 다가오는 미니 프로젝트에 많은기여를 하고싶다.
'신세게 - Java 공부' 카테고리의 다른 글
10주차 배운점 - 리눅스 명령어, 네트워크 (3) | 2024.10.07 |
---|---|
9주차 배운점 느낀점 - JDBC, (INSERT, DELETE, UPDATE, SELECT) (7) | 2024.10.07 |
9주차 배운점 느낀점 - 네트워크, IP, Port (4) | 2024.10.07 |
9주차 배운점 느낀점 - 입출력스트림, 보조스트림, 직렬화 역직렬화 (3) | 2024.10.07 |
9주차 배운점 느낀점 - 이상현상, 함수 종속성, 정규화 (3) | 2024.10.07 |