리눅스 기초

kangking·2024년 4월 30일

기반기술

목록 보기
1/14
post-thumbnail

기본 질문


서버란?

일반적으로 데이터가 저장되는 컴퓨터라고 생각하기 좋지만, 서버는 서비스를 제공하는 프로그램이다.


클라이언트란?

서비스를 이용하는 프로그램
웹 클라이언트: 크롬, 사파리

프론트

nginx, apache(httpd)


백엔드

Tomcat, IIS


DB

maria, postgres, oracle, mysql, mssql


운영체제란?

컴퓨터의 자원을 효율적으로 사용할 수 있도록 해주는 프로그램(CPU, RAM, HDD, I/O 등)



  • 윈도우에서 탐색기를 끄면? => 아무것도 표시가 안됨(탐색기가 아이콘을 표시해주고 실행시켜주기 때문) 탐색기는 부팅과 동시에 자동 실행됨

리눅스

리눅스도 윈도우와 같은 운영체제의 일종
리눅스 할 줄 아나? => 리눅스로 프로그램 다운, 실행 삭제 등을 할 줄 아냐는 질문




리눅스는 왜 쓰는가?:

  • 무료임(오픈소스 운영체제, 윈도우는 유료이고 소스코드 공개가 되어있지 않음)
  • 윈도우처럼 GUI를 신경쓰지 않아도 돼서 자원 사용에 있어서 유리함

즉 윈도우보다 싸고 효율적이고 가볍다!


많이 쓰는 리눅스 대표주자

Ubuntu
CentOS(서버에 적합) * 이걸 수업때 기준으로 씀
레드햇은 유료임!


리눅스의 기본 구성요소

커널:

프로세스 스케쥴링, 메모리 관리, 파일시스템 관리, 장치드라이버 관리 등
OS의 핵심 기능을담당하는 구성요소

쉘:

윈도우에서 탐색기와 cmd에 해당 | 리눅스는 쉘을 통해 명령어로 관련한 기능을 수행한다.

명령어:

특정 작업을 수행하도록 CLI(Command Line Interface)를 통해
OS에 주어지는 명령이다. ex) ls, ipconfig 등등

H/W:

컴퓨터 시스템의 물리적 요소를 일컫는 말
ex) CPU, 메모리, 저장장치 등


리눅스의 설치(윈도우 기준 VM웨어 사용)

VM(가상머신)을 통해 컴퓨터 사양을 직접 세팅해 가상으로 작동시킨다

VMware 기준 과정

1. 게스트 운영체제 선택

Linux - CentOS 8 64bit (* 최신버전은 잘 안쓰는 편 - 버그많음)

2. 설치할 폴더 이름(VM이름) 및 경로 설정

3. 사양 세팅

4. 네트워크 세팅

5. I/O 컨트롤러 세팅

6. 저장소 타입 세팅(서버용은 보통SCSI)

7. 디스크 용량 세팅


기본적인 리눅스의 활용

  1. 디렉토리 작업

    • pwd: 현재 작업 디렉토리 확인
    • cd [경로]: 해당 경로로 이동
    • cd -: 이전 디렉토리로 이동
    • cd ..: 한 단계 상위 디렉토리로 이동
    • ls -al: 디렉토리 내용 확인(a: 숨겨진 파일 l:자세히)
    • cp -r [원본경로][사본경로]: 폴더를 경로로 복사
    • mv [원본경로][바꿀경로]: 이동 및 이름 변경
    • mkdir [생성할 디렉토리 이름]: 폴더 생성
    • rm -rf [삭제할 파일 or 디렉토리 경로]: 폴더와 파일 포함 전부 삭제
  2. 파일 관련 명령어

    • 기본적인 이동, 복사, 삭제 등은 폴더와 동일
    • touch [생성할 파일 이름]: 파일 생성(빈 메모)
  3. 검색

    • find [경로] -name [이름]
      • 이름만 입력시: 일치하는 파일
      • 이름뒤*: 포함하는 모든 파일
  4. 권한 변경

  5. 작업 관리자

    • ps -ef: 실행중인 프로세스 목로 표시
    • kill -9 [pid]: 해당 pid를 가진 프로세스 종료
      • pid란?: 컴퓨터가 실행된 프로그램을 구분하는 번호(매번 다르다)
  6. 압축

    tar는 압축이라기보단 아카이브 파일에 가깝다(압축은 gzip)

    • tar cvf [아카이브 파일이름][압축할 파일1] [압축할 파일2] ...: 아카이브 파일 생성
    • tar xvf [아카이브 파일이름]: 아카이브 해제
    • gzip [압축할 파일]: 압축
    • gunzip [압축 파일 이름]: 압축 해제
    • tar zxvf [압축 및 아카이브 파일이름]: 압축 및 아카이브 한 번에 해제

리눅스 편집

vi의 3가지 모드

  1. 명령 모드: esc를 통해 진입하며 키워드를 통해 다양한 모드로 전환 가능
  2. 편집 모드: 문서를 직접 편집 할 수 있는 모드(보통 'i'로 진입)
  3. Last Line 모드: ':'와 함께 키워드 입력을 통해 실행

vi의 활용

편집
i(insert): 편집모드(커서 앞에서 편집 시작)
a(insert): 편집모드(커서 뒤에서 편집 시작)
esc: 명령모드로 나가기
:w - 저장
:q - 나가기
:wq! - 저장하고 나가기(!는 강제 덮어쓰기)
커서이동
G: 마지막줄
gg: 첫 줄
$: 커서 줄의 가장 오른쪽으로 이동
0: 커서 줄의 가장 왼쪽으로 이동
[라인번호]G: 해당라인으로 이동
w: 한 단어 뒤
b: 한 단어 앞
삭제
yy: 한 줄 복사
y[커서 이동]: 커서 이동만큼 복사
p: 붙여넣기(커서 아래줄에)
u: 되돌리기
r: 해당 커서의 내용 수정
편집기 상태 변경
:set nu 라인 넘버 표시
:set nonu 라인 넘버 표시 안함
검색
find [경로] [조건] [아규먼트] [행동]
경로: 어디를 기준으로 검색?
조건: 어떤 조건으로? ex) 이름이 ~~인
아규먼트: 조건에 맞는 값
행동: 결과 처리 어떻게?
서비스 관리
systemctl start [서비스 프로그램 이름]
systemctl restart [서비스 프로그램 이름]
systemctl stop [서비스 프로그램 이름]
systemctl status [서비스 프로그램 이름]
기타 명령어
netstat -anlp: 네트워크 상태 확인
setenforce 0: 로컬 방화벽 off
systemctl stop firewalld: 네트워크 방화벽 off

기타 tip

커서가 VMware 안쪽에 갇힌다? => Ct+Alt로 나가기

운영체제는 기본적으로 하드디스크에 저장됨

사용자명과 비밀번호로 로그인(비밀번호는 원래 입력해도 안보임)

왜 리눅스와 VMware를 사용하나?
=> 개발한 코드를 실행해둘 컴퓨터가 필요한데 이를 가상으로 구축하기 위함(실행해둘 컴퓨터가 리눅스를 주로 사용)

명령어(ipconfig, ls 등등)란?: 하나의 프로그램(OS에 의해 실행됨)

PATH?: 프로그램 구동을 위한 주소를 특정 명령어로 미리 등록해두어 사용하기 위함

절대경로: 최상위 디렉토리부터 전체를 표기
상대경로: 절대경로를 제외한 모든 경로(일반적으로 현재 경로를 기준으로 함)

윈도우든 리눅스든 대부분의 파일은 텍스트 형태이며 중요한건 파일의 내용이다
따라서 확장자만 바꾼다고 해서 파일 자체의 성격이 변하지는 않는다.

profile
하루하루 의미있게

0개의 댓글