오늘부터 시작하네요. Linux를 이틀동안 진도 나가신다네요. 너무 빠를 것 같아서, 걱정은 되는데. 비전공자는 울어요..전자과가 비전공자 신세라니. 그치만 뭐 어떡해, 따라가야죠. 남는 시간에 공부해서 따라가야지! 파이티이잉!! 아 제가 받은 교재는 모두의 리눅스라는 책이에요! (리눅스 펭귄 귀여워)
강사님한테 허락 받고 올리는 거에용

1. 리눅스(Linux)
: 윈도나 맥 OS와 같은 운영체제이다.
운영체제는 하드웨어와 모든 소프트웨어를 관리하는 역할을 한다.
-> 너 이자식 못하는 게 뭐얏!

2. 리눅스 장점
서버용 운영체제로 많이 사용됨. 무료다! FREE~~(무료 좋아)
스크립트를 통해, 자동화할 수 있음 -> 운영에 편리함

3. 리눅스 단점
멀티미디어 편집하는 SW 부족 & 한글이 깨짐. 따로 설치해줘야함.
-> 이런이런..한국어가 얼마나 아름다운데!! 뭐 어쩌겠어요. 한국어 SW 다운 받으면, 안 깨짐^^

4. 리눅스 배포판
: 명령어+커널+애플리케이션을 패키징한 것

  • 커널: 하드웨어를 제어하는 역할을 담당하는 소프트웨어
    cf) 레드헷 계열: 기업용으로 많이 사용함.
    cf) 데비안 계열: 대표적 우분투가 있음. 오픈소스 활용하기 좋음.

+) 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로 구현된 터미널을 사용한다고 보면 됨.

-> 띠용하게 왜 설명하냐고요? 원격 접속 얘기하려구!
윈도우 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 뒤에 30021 의미
    : 윈도우에다가 너 내부에 있는, 가상머신에서 접근한 Linux에 있는 Port 22번에 접근하게 도와줘!
  • MobaXterm 사용하기
    https://mobaxterm.mobatek.net/download-home-edition.html
    그러기 전에 미리 해야하는 설정이 있음

    ubuntu-linux 실행중 아이콘 우클릭 -> 네트워크 클릭 -> 포트 포워딩 클릭 -> 오른쪽 초록색 +버튼 클릭 -> 이름 SSH로 변경 -> 127.0.0.1(loopback IP) or 본인 컴퓨터 IP ->

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

ipconfig 

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

sudo apt install net-tools

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

ifconfig

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

그럼, 이렇게 맞춰주면 됩니당!

다시 MobaXterm으로 돌아가!
아래 사진처럼, 설정해주기. Session 누르면 뜸.

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

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

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

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

  • 원격 접속해서, 리눅스 바탕화면에 파일 만들어보기

    왼쪽 MobaXterm에서 아래 코드 작성
echo "Hello" > demo.txt
# 현재 바탕화면 경로에 들어와 있으니, 바탕화면에 demo.txt파일을 만들건데. 
그 txt 파일에 Hello 글자 입력되게 설정

오른쪽 가상머신으로 연 리눅스 확인할 수 있음.

  • SSH 공개 키 인증(MobaXterm에서 만듦)
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 누르면 된다. 그러면 비번을 입력하지 않아도, 접속 가능해진다.

지금까지 포트 포워딩을 한 거다.

리눅스 파일/디렉터리(교재 5, 6장)

  1. 리눅스 파일

    • 리눅스는 모든 것을 파일로 다룸
    • 하드디스크, 키보드, 프린터조차도 파일로 다룬다.
  2. 리눅스 디렉토리(Directory)

    • 디렉토리 안의 디렉토리를 서브 디렉토리 or 자식 디렉토리
  3. 루트 디렉토리(Root Directory)
    : 디렉토리 구조에서 맨 위에 있는 / 디렉토리/
    -> 트리: 루트 디렉터리 아래에 디렉토리와 파일이 있는 계층 구조

  4. 작업 디렉토리(Working Directory)
    : 현재 위치한 디렉토리.
    -> 현재 작업 중인 디렉토리 확인하려면 pwd 명령어 사용.

  5. 절대 경로와 상대 경로

    • 절대경로
      : 루트 디렉토리에서 해당 파일에 이르는 경로를 표시함.
      (파일 위치를 정확히 나타나지만, 경로가 길면 좀 불편함)

    • 상대경로
      : 현재 디렉터리의 위치를 기준으로 경로를 표기함.
      cf) .
      : 현재 디렉토리를 의미함.
      cf) ..
      : 상위(부모) 디렉토리를 의미함.

  6. 디렉토리 이동
    아래 명령어들을 작성해보면서, 아래 사진과 같이 잘 나오는 지 확인하자

pwd
cd /
pwd
ls

이렇게 나왔다면, 잘 한겁니다.

  1. 디렉토리 내용 확인
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시간 동안 설명해주셨는데, 정말 친절하게 하나하나 알려주셔서 감사했다. 저런 교수님이 계시면, 진짜 인기 많을 듯. 강의력 최고!!

profile
메가우쿨렐레는 나의 것

2개의 댓글

comment-user-thumbnail
2025년 6월 19일

진짜 감사합니다ㅠㅠ

1개의 답글