1. 개발자가 알아야 하는 리눅스 명령문
1) 운영 체제(os란?)
- 사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어이다.
- 우리가 주로 사용하는 운영체제는 window, mac os가 있다.
2) 개발자는 Linux를 알아야 하나요?
- 운영환경은 보통 linux 시스템을 사용하는 경우가 많다.
2. 리눅스 설치
- 리눅스 운영체제를 사용해보기 위해서는 운영체제 설치가 필요합니다.
- 우리 컴퓨터는 이미 window가 설치되어 있기 때문에 가상 머신을 활용해서 리눅스 운영체제를 설치해야 합니다.
- 가상머신 vmware 설치, 가상 머신에 리눅스 배포판 설치
1) 가상머신 vmware 설치
VMware workstation player다운
https://www.vmware.com/kr/products/workstation-player.html
2) 가상 머신에 리눅스 배포판 설치 - 우분투 서버 ISO 이미지 파일 다운
- 2번째: Create a New Virtual Machine클릭
- 3번째: ISO 이미지에 우분투 이미지 파일 추가
- 4번째: 우분투 admin 계정 설정
- 5번째: 설치 위치는 그냥 그대로
- 6번째: 우분투 운영체제의 디스크 용량 설정(그대로)
- 7번째: 상세한 설정 가능
3) 우분투 설치 화면
- 운영체제 설치 화면, space로 선택하고 enter로 넘어가주면 됩니다.
- 로그인 화면
- 설치 완료
3. 리눅스 접속을 위한 SSH 서버 설치
터미널을 이용하여 명령문 내리기-터미널이란?
검은색 창이 리눅스 터미널 입니다.
쉘(shell)이란?
터미널에서 내려진 명령을 해석하는 도구 인터페이스(도구) 입니다.
- sh(본쉘), bash 등이 있다.
1) 커널(kernel)이란?
운영체제와 하드웨어를 이어주는 핵심 기능 , 컴퓨터 시스템 자원들을 관리하는 역할
사용자가 명령 터미널을 통해 입력하면 쉘 이 명령을 받아 해석하고 커널 에 전달하면 커널 을 통해 하드웨어 조작을 하게 됩니다.
- 리눅스는 관리자 계정 root계정이 존재합니다. (최고 관리자-모든 권한을 가지고 있음)
- 리눅스를 사용하는 모든 사람들은 root가 관리자 라는 것을 알기 때문에 관리자 계정으로 바로 로그인하는 것이 아니라, 일반 계정으로 접속해서 관리자로 전환하여 사용한다.
- 리눅스의 명령문들은 관리자 권한이 있어야 실행시킬 수 있는 명령이 있고, 누구든 사용할 수 있는 명령이 있습니다.
1] 관리자의 권한 sudo
- sudo는 관리자의 권한을 의미한다. 루트 권한으로 변경하게 되면 모든 권한을 얻게 됩니다. 관리자의 권한만 빌려쓰고 싶다면 sudo 를 앞에 붙입니다.
리부팅 명령 (관리자의 권한으로 실행함)
sudo reboot
root 계정의 전환 (관리자의 계정으로 전환 할 때는 관리자 권한이 필요합니다)
사용자 계정으로 전환
su 계정명
root 계정으로 전환
sudo su - root sudo su -
탈출
exit, q, ctrl+c
2] 출력문 실행하기 echo
- echo는 커널창의 출력을 명령합니다.
echo 출력문
echo hello world
전역 환경변수 확인하기
echo $PATH
- 리눅스는 프로그램을 실행할 때 해당 환경 변수에 등록된 값을 우선적으로 찾아서 실행하게 됩니다.
- 예를 들어 자바 컴파일러를 실행하고 싶다면 환경 변수에 등록이 되어 있어야 합니다.
3] 명령문의 매뉴얼 확인하기 man
- 명령문을 실행할 때 하이픈( - ) 을 이용하여 옵션을 줄 수 있습니다.
- 이런 옵션들의 확인은 man 명령문 을 이용해서 확인 가능합니다.
- 이런 옵션들은 너무 다양하기 때문에 실제 man명령으로는 간단하게 확인하고 구글을 이용하는 편이 좋습니다.
man 명령문
2) 리눅스에 외부 접속 도구를 이용해서 연결해보기
- VMware자체에서 제공하는 커널은 확대도 되지 않고, 매우 불편하기 때문에 외부 원격 접속으로 편하게 사용하려 합니다.
- 보통 99.99% putty를 이용해서 접속합니다
- putty를 사용해서 접속하려면 SSH에 대한 개념을 알아야 합니다.
SSH란? - Secure Shell Protocol
SSH는 Secure Shell Protocol의 줄임말로 보안이 강화된 서버 원격 접속 및 제어 도구입니다.
기존에 Telnet이라는 서비스를 이용해서 원격의 리눅스 서버에 접속했습니다.
텔넷의 단점: 텔넷의 단점은 데이터가 암호화 되지 않는 다는 점이었고, 패킷을 가로채는 패킷 스니핑에 대상이 되었습니다.
SSH를 이용한 암호화 통신
- 서버와 클라이언트는 비스킷을 하나 쪼개서 서로 나누어 갖는다.
- 원격 접속시 이 비스켓을 맞춰본다.
- 조각이 맞으면 서로만의 비밀 통로을 만들어서 통신한다. (비대칭키 암호화)
- 통로가 만들어 지면 똑같이 생긴 열쇠 두개를 나누어 갖는다. 클라이언트는 열쇠로 암호화 해서 데이터를 전송한다, 서버는 열쇠로 해석한다. (대칭키 암호화) - 밑에서 두번째 사진
1] 내부적으로 돌아가는 서비스들 확인하기
service service --status-all
2] apt를 사용해서 ssh서버 설치하기
- 향상된 패키지 관리 도구 apt방식을 활용합니다. (5강에서 확인)
- apt는 인터넷을 통해 원격에 저장된 패키지를 다운로드 받아서 설치해주는 향상된 패키지 관리 도구 입니다.
- 패키지 관리 도구 업데이트
apt-get update
- 패키지 찾기
apt search <패키지명>
- 패키지 다운로드하기
apt-get install <패키지명>
실행
sudo apt-get update sudo apt-get search openssh sudo apt-get install openssh-server
3] 가상머신 리눅스의 아이피 확인하기
ip addr
4] putty를 설치하고 접속하기
HostName란에 접속방법
- 계정명@아이피주소 (ssh 22번포트)
- 방향키로 기존에 작성했던 명령문 쓸 수 있음!
'TIL > Linux' 카테고리의 다른 글
FTP를 이용하여 서버에 파일을 옮길 때 발생하는 Permission Denied 오류 해결 방법 (0) | 2023.05.21 |
---|---|
rinux로 data, schema.sql 생성 후 mysql_backup 하기(데이터 옮기기), .sh 파일로 한번에 실행하기 (0) | 2023.05.19 |
root 계정의 ssh 접속 허용 설정 (0) | 2023.05.15 |
day95-rinux (0) | 2023.03.27 |
day94-rinux (0) | 2023.03.22 |