
오늘부터 시작하네요. Linux를 이틀동안 진도 나가신다네요. 너무 빠를 것 같아서, 걱정은 되는데. 비전공자는 울어요..전자과가 비전공자 신세라니. 그치만 뭐 어떡해, 따라가야죠. 남는 시간에 공부해서 따라가야지! 파이티이잉!! 아 제가 받은 교재는 모두의 리눅스라는 책이에요! (리눅스 펭귄 귀여워)
강사님한테 허락 받고 올리는 거에용
1. 리눅스(Linux)
: 윈도나 맥 OS와 같은 운영체제이다.
운영체제는 하드웨어와 모든 소프트웨어를 관리하는 역할을 한다.
-> 너 이자식 못하는 게 뭐얏!
2. 리눅스 장점
서버용 운영체제로 많이 사용됨. 무료다! FREE~~(무료 좋아)
스크립트를 통해, 자동화할 수 있음 -> 운영에 편리함
3. 리눅스 단점
멀티미디어 편집하는 SW 부족 & 한글이 깨짐. 따로 설치해줘야함.
-> 이런이런..한국어가 얼마나 아름다운데!! 뭐 어쩌겠어요. 한국어 SW 다운 받으면, 안 깨짐^^
4. 리눅스 배포판
: 명령어+커널+애플리케이션을 패키징한 것
+) github 처음 써봐서 못 들어가는 분을 위한 설명.
(사실 제가 처음 써봐서, 메모합니다.)
왼쪽 삼선모양 눌러서, home 누르세요.
그럼 이렇게 뜨는데요.

이 버튼 누르면, 관련 자료 볼 수 있어요.
=> 리눅스는 운영체제다. 그러니까 가상머신 이용해서, 다룸. 아니면 그냥 운용체제를 깔아줘도 되는데, 찍먹파는 가상머신 다운로드가 편할거에용.
https://www.virtualbox.org/wiki/Downloads
(VirtualBox 가상머신 썼어요.)

여기에서 OS 맞춰서, 다운로드 받아주면 됩니다. 전 윈도우라, Windows hosts 눌러서 다운 받았어요.
근데 visual studio 다운로드 안 받으면, 안되니까 미리 다운로드 하세요.
https://learn.microsoft.com/ko-kr/cpp/windows/latest-supported-vc-redist?view=msvc-170
여기 들어가서,맨 아래에 있는 거(세 번째) 눌러서 다운로드!


환경설정 클릭 -> 위쪽 상단에서 Expert 클릭 -> 입력 클릭 -> 표에서 맨 위, 단축키 Ctrl+Alt 입력 (키보드로 누르기만 하면 됨. 타자치는 거 아님)

가져오기 클릭 -> 파일 -> ova 파일 넣어주기 -> 아래 설정 클릭
(ova 파일은 강사님 통해서 받았음. 구글링하면, 받을 수 있을 거임. 그 정도는 알아서 하시길)

MAC주소 정책에서 모든 네트워크 어댑터 MAC 주소 포함으로 변경 -> 완료 클릭

가상머신 열면, 이런 화면이 떠요. 리눅스 운영체제에 접속하신 걸, 환영해여
이제 또 개념 설명을 드릴게요.
=> 여기까지 했다면, 교재(모두의 리눅스) p34까지 한거에요. 조금 교재랑 다르긴하지만, 뭐 내용적으론 그래요.
=> Linux는 CLI로 쓰려고, 다운 받은거다. 우린 개발자니까
GUI와 CLI가 뭐야?

GUI
: 마우스나 터치패드로 클릭하여 컴퓨터에 명령을 내리는 인터페이스
CLI
: 키보드로 명령어를 입력하고 결과가 문자열로 출력되는 인터페이스
=> 쉽게 말하자면, GUI는 그래픽으로 되어있으니 아이콘 모양으로 들어가는 거고, CLI는 명령어로 들어가는 거임
ex) GUI: 바탕화면 아이콘 클릭 -> 다운로드 파일 아이콘 클릭
ex) CLI: cd ./Desktop/Download


: 키보드로 명령어를 입력해줌. ex) sh, csh, bash 등
=> 커널의 인터페이스(다리역할)라고 보면 됩니다. 껍데기래요~

: 컴퓨터의 입출력만 담당하는 하드웨어. but, SW로 구현된 터미널을 사용한다고 보면 됨.
SSH 들어가기
https://www.cloudflare.com/ko-kr/learning/access-management/what-is-ssh/
서버와 클라이언트

-> 띠용하게 왜 설명하냐고요? 원격 접속 얘기하려구!
윈도우 PC: 클라이언트, 가상 머신 리눅스: 서버
다시 돌아와. 이제 부터 글 아래에 사진 첨부할게요. 헷갈리지 마세요!
터미널에서 명령어 입력한답니당
sudo apt update
비번 입력하면, 다운로드 받아져요. sudo가 관리자 권한이라 비번 입력하는 게 뜨는 겁니당.
이런 식으로 말이죠~ clear 누르면, 창이 깔끔해져요.
그 다음은, 아래 명령어 작성하세용
sudo apt install openssh-server

설치하시겠습니까? 뜨면, Y 입력하면 이렇게 다운 받아져용
자 다음, 아래 명령어 입력하세요.
sudo systemctl status ssh

그럼 이제 이렇게 화면이 떠요. 하다가 에러 뜨면, 명령어 잘못 입력한 거니, 잘 확인하세요! 현재는 실행되고 있진 않아요. inactive(dead)라고 적혀있죠? 예아..깨꼬닥
sudo systemctl enable ssh
enable: 실행상태가 항상 유지되도록, 재부팅하는 한이 있어도!

아래 명령어 입력합시당
sudo systemctl restart ssh

다시 아래 명령어 입력
sudo systemctl status ssh
그럼 이제 active(running)이라고 뜨는 것을 확인할 수 있지용
위에 작성한 명령어들을 정리해봅시다.
- sudo apt update
: 패키지 목록을 최신 상태로 갱신합니다.- sudo apt install openssh-server
: SSH 서버(OpenSSH)를 설치합니다.- sudo systemctl status ssh
: SSH 서비스의 현재 상태를 확인합니다.- sudo systemctl enable ssh
: 부팅 시 SSH 서비스가 자동으로 시작되도록 설정합니다.- sudo systemctl restart ssh
: SSH 서비스를 재시작하여 설정을 적용합니다.
=> 이제 본격적으로 port 번호를 이용해서, ssh주소를 알아봅시당 IP+port로 작성해요. 위의 사진 보면 port 번호가 22번이죵? remember me...

그럼 방화벽 이용하는 것도 해봐야죠?
sudo ufw status
sudo ufw enable
sudo ufw allow ssh
# 한 줄씩 작성하기!

이런 식으로 뜨면 됩니당. 마지막 확인! 아래 코드 작성
sudo ufw allow ssh

이렇게 활성화되면 됩니당! 이제 서버쪽은 설정 끝~ 그럼 클라이언트 해야죠?
cf) 포트 포워딩 개념


+) 본인 IP 확인하는 방법
: cmd 창에서 아래 코드 작성하면 됨.
ipconfig

이제 가상머신에 있는, IP 알기 위해 아래 명령어 먼저 작성.
sudo apt install net-tools

다운로드 받고, 아래 코드 작성.
ifconfig

그럼 이렇게 떠요. 이렇게 윈도우 ip랑 Linux ip 둘 다 확인했으니, 다시 MobaXterm으로 가서, 설정해줍시다.

그럼, 이렇게 맞춰주면 됩니당!
다시 MobaXterm으로 돌아가!
아래 사진처럼, 설정해주기. Session 누르면 뜸.

그러고 OK 눌러주면, 리눅스 비번 입력해주면 접속된다.

접속이 잘 된 것을 확인할 수 있다.

리눅스에서 바탕화면 들어간 사진(GUI)

원격으로 접속해서 바탕화면 들어가는 거 해보기(CLI)

echo "Hello" > demo.txt
# 현재 바탕화면 경로에 들어와 있으니, 바탕화면에 demo.txt파일을 만들건데.
그 txt 파일에 Hello 글자 입력되게 설정
오른쪽 가상머신으로 연 리눅스 확인할 수 있음.
ssh-keygen -t rsa
Enter 3번 정도 누른다.

이렇게 뜨면 된다. 이제 가상머신으로 돌아가자

파일 모양 클릭하고, 파일 오른쪽 삼선모양 클릭 -> 숨긴 파일 표시 클릭 -> 현재 붉은 살구색 2개 파일이 키쌍(keypair)이 될 거다.
cd
cd.ssh
mv id_rsa.pub authorized_keys

이렇게 뜨면 된다.
이제 키쌍을 가지고, 인증처리를 해줄거다.

지구본 모양 클릭 -> 맨 오른쪽 파란 노트 클릭 -> id_rsa 우클릭 -> 다운로드에 저장 -> Window Download 경로에 다운된 거 확인.
확인이 다 됐다면, 터미널 닫아주기.

우클릭 -> Edit session 클릭
맨 왼쪽 키 모양 클릭 -> 문서 모양 클릭 -> 다운로드 받은 파일들어가서, id_rsa 클릭.

이렇게 완성해주고, OK 누르면 된다. 그러면 비번을 입력하지 않아도, 접속 가능해진다.

지금까지 포트 포워딩을 한 거다.
리눅스 파일
리눅스 디렉토리(Directory)
루트 디렉토리(Root Directory)
: 디렉토리 구조에서 맨 위에 있는 / 디렉토리/
-> 트리: 루트 디렉터리 아래에 디렉토리와 파일이 있는 계층 구조
작업 디렉토리(Working Directory)
: 현재 위치한 디렉토리.
-> 현재 작업 중인 디렉토리 확인하려면 pwd 명령어 사용.

절대 경로와 상대 경로
절대경로
: 루트 디렉토리에서 해당 파일에 이르는 경로를 표시함.
(파일 위치를 정확히 나타나지만, 경로가 길면 좀 불편함)
상대경로
: 현재 디렉터리의 위치를 기준으로 경로를 표기함.
cf) .
: 현재 디렉토리를 의미함.
cf) ..
: 상위(부모) 디렉토리를 의미함.
디렉토리 이동
아래 명령어들을 작성해보면서, 아래 사진과 같이 잘 나오는 지 확인하자
pwd
cd /
pwd
ls

이렇게 나왔다면, 잘 한겁니다.
ls
: 현재 작업 디렉터리에 있는 파일이나 하위 디렉터리의 목록을 확인
cd/
# root로 들어감.
ls
# root 안에 있는 파일들 확인
cd /
# home으로 돌아오기
ls
# home 안에 있는 파일들 확인.

ls /etc/apt /home/beyond
# /etc/apt와 /home/beyond 2개 확인.
ls /etc/apt .
# 이제 상대경로를 사용할 수 있음.

ls -a
# all 보여줌. 숨긴 파일도 다 보여줌.
ls -l
# 파일의 속성, 상세정보도 출력해줌.

교재 내용은 추가적인 내용은 따로 적을게요.
# 디렉터리 만들기
mkdir
# 파일 만들기
touch
# 파일과 디렉터리 삭제하기
rm
rmdir
# 파일 내용 출력하기
cat
# 스크롤 표시하기
less
# 파일과 디렉토리 복사하기
cp
# 파일 이동하기
mv
# 링크 만들기
ln

# develop라는 파일 만들기
mkdir develop
# develop 파일 생성된 거 확인
ls
# test1, test2, test3 파일 만들기
mkdir test1 test2 test3
# 생성됐는 지, 확인
ls
# test1 안에 test4 파일 만들기
mkdir ./test1/test4
# 잘 들어갔는 지 확인
cd ./test1
ls
# test1 안에 test2가 있고, 그 안에 test5 만들고, test5안에 test 6만들기
mkdir -p ./test2/test5/test6
# test2 안에 test5 있는 지, 확인
ls test2
# test 5안에 test 6 있는 지, 확인
ls test2/test5
오늘 정말 많이 배웠네. 근데 왜 별로 안 힘들지..? 재밌어.. 이상하네.. 재밌을 리가 없는데... 뭐 적성에 맞나보징~~
강사님 8시간 동안 설명해주셨는데, 정말 친절하게 하나하나 알려주셔서 감사했다. 저런 교수님이 계시면, 진짜 인기 많을 듯. 강의력 최고!!
진짜 감사합니다ㅠㅠ